Removes lots of copypaste.
Admin newscaster barely modified, they still are a gigantic copypaste from the topic.dm() of the newscaster object.
Printed diaries will now only report the information available when they were printed, including wanted status and the different types of censorship.
All datums are now under /datum/newscaster
Wanted is now a different type of datum, /datum/newscaster/wanted_message
Fixed a bug where you couldn't censor normal submissions, made by crewmembers.
Fixes#944
- Viciously rips radio code from bots, replacing it with something
better and faster!
- Bot patrol logic redesigned, much faster.
- Gives all bots Robotics access for easy patrol activation.
- Bot navigation beacons are no longer radios. Instead, they are
maintained in a global list.
- Navbeacons can now be accessed by Roboticists, and they use a better
UI.
- PDA bot code rewritten. They no longer use radio objects at all!
- Captain now has all-access! His cartridge now has everything except
Mime and Clown functions.
- There is now one button across all PDAs for accessing bots. Only bots
you have access to control will show on the list.
- Buffed the signaler cartridge! It may now be used to signal on all
valid frequencies.
- The AI's botcall interface now includes the bot's model, so it can
always identify the type of bot it is controlling. PDAs have this as
well.
- Spilled my blood to begin Jordie's dark ritual.
-The Captain's PDA can now access multiple bots!
- The Captain and HoP PDAs can now also remotely access Newscasters!
- Bot radio code now no longer uses filters to allow for multi-access
radio control.
- Bots can now patrol while off station.
Misc:
+Fixes unreported issue with initializing lighting on a specific zlevel
+Fixes two similar issues with moveElement and moveRange. Where fromIndex or toIndex could be adjusted incorrectly in certain conditions. Potentially causing bad-sorts, or out of bound errors.
+Rewrites listclearnulls(list/L) to no longer iterate through L.len elements for every null in the list (plus 1). i.e. went from L.len*(number_of_nulls+1) list-element reads (best-case), to L.len list-element reads (worst-case)
+New proc/getElementByVar(list/L, varname, value) which finds the first datum in a list, with a variable named varname, which equals value. You can also feed it atoms instead of lists due to the way the in operator functions.
+Fixes an unreported issue with Yota's list2text rewrite. Under certain conditions, the first element would not be converted into a string. Causing type-mismatch runtimes.
+New global map_ready variable. This is not fully implemented yet, but will be used to avoid duplicate calls to initialize() for map objects.
+All turfs now maintain references to all lights currently illuminating them. This will mean higher memory use unfortunately, due to the huge number of turfs. However, it will speed up updateAffectingLights significantly. I've used list husbandry to reduce baseline memory usage, so it shouldn't be any worse than some past atmos modifications memory-wise.
-Removed 'quadratic lighting', can add this back at some point. Sorry.
+modified the way lum() works slightly, to allow turfs to have overridden delta-lumen. i.e. space cannot be illuminated more than its default ambiance. This allowed removal of some iffy special-snowflake lighting areas implemented by somebody else.
+Lighting images in the dmi can now use arbitrary naming schemes. It is reliant on order now. This allows the dmi to be replaced by simply dropping in a new dmi.
-Removed all subtypes of /area/shuttle. Shuttles now create duplicate 'rooms' of /area/shuttle. (More on this later). This will conflict with most maps. Guide on how to fix to follow.
+All verbs/tools relating to world.tick_lag were refactored to use world.fps. However old config text for setting tick_lag will still work (it converts the value to fps for you)
+MC stats improved using smoothing. They now have their own tab so they dont get in the way when you're playing as an admin.
-removed the push_mob_back stuff due to conflicting changes. Sorry Giacom.
_OK, NOW THE ACTUAL INTERESTING STUFF_
Following systems moved over to subsystem datums:
air_master
garbage_manager
lighting_controller
process_mobs (aka Life())
nanomanager
power
sun
pipenets
AFK kick loops
shuttle_controller (aka emergency shuttle/pods), supply_shuttle and other shuttles
voting
bots
radio
diseases
events
jobs
objects
ticker
Subsystems hooks and variables should be commented fairly in-depth. If anything isn't particularly clear, please make an issue.
Many system-specific global variables have been refactored into
All tickers which previously used world.timeofday now use world.time
some subsystems can iterate before round start. this resolves the issue with votes not working pregame
- ED-209's effective range has been reduced to 7, down from 12, to
prevent them attacking people off-screen.
- Ruthlessly nukes ".src" from the bot files, especially ed209bot.dm and
secbot.dm!
- Summoned bots now report on their department radio when summoned by
PDA.
- Bot radio frequencies now use the helpers instead!
- Officer Pingsky (On the MiniSat) is now set to declare his arrests on
the AI Private frequency, instead of Security.
- The remote_disabled var now prevents bots from being summoned or
controlled via PDA as well removing them from the AI's control panel.
- The AI can no longer re-activate a bot's remote control radio by
hacking it from the interface.
- The telescopic baton is now considered a safe weapon to carry and
wield by security bots.
- Added a small reminder to PDA users that bots can download access from
their ID to reach them.
It will search list/L for a /datum/data/record with fields[field] == value, and return it.
This removes a vast amount of copypasta (there's still so much left in there though). It also removes all the locate(\ref[record]) I could find, which were normal used with topic(), meaning it was susceptible to abuse.
Secbots, ed209s and turrets are now smarter with their record-checks. They now prefer to use our face-name rather than id-name. ICly, this is the bot using facial recognition. This fixes an issue where it'd try to use the name variable which could be in the format "Unknown (as their id name)" when they were disfigured, etc. causing record-lookup to fail.
Additionally, these bots will treat those without a valid record in the security database, to be treated like criminals.
My thinking behind this is ff the detective isn't meant to arrest people himself but is meant to call for back up instead, why not give him access to back up that will actually show up?
Also added SecBot access to the Captains for no reason other than he's the Captain and he should be getting his hands dirty.
Also is the captain's PDA meant to have access to all pda functions? Because I've noticed theres a few missing.
This patch removes texticon() for the following status-displays:
obj/machinery/status_display (general/emergencyshuttle/supplyshuttle)
/obj/machinery/door_timer (brig timers)
These displays now use maptext and act the same as they did before (as close as I could get them, that is). This should hopefully reduce the overall cpu usage by status displays.
Examining status_displays will now give a message like "the display reads: ....blahblahblah"
The number of updates was halved for scrolling text. Removing one spawn per tick for each display.
The length of scrolling messages is now capped to 40 characters and sanitized for < > tags and such.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5640 316c924e-a436-60f5-8080-3fe189b3f50e
Added Gas Scanner function to atmos and science carts
Added spare atmos PDA cart to CE office
Fixed engineering break room tile icons
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5407 316c924e-a436-60f5-8080-3fe189b3f50e
-Added missing door to chemistry
-Added missing welding goggles to R&D
-Fixed piping error that caused toxins mixing to bug out
-Added more biohazard shutters to Science
-Reversed direction of toxins mixing pipes
-Re-enabled reagent scanner function in toxins PDAs
-Added missing disposal pipe under Mining Dock door
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5308 316c924e-a436-60f5-8080-3fe189b3f50e
-Changed the focus from the high-res scanner to the regular scanner. It will simply scan the fingerprints and display them to the detective. For extra functionality, it'll store it's findings in a log and then you can print it out in a report by using attack_self().
-Detectives can now use the medical computer.
-Removed the pda forensic scanning functionality.
-Got rid of now useless high-res scanner computer. Got rid of the now useless fingerprint cards.
-Added a medical computer to the detective's office and replaced the useless medical cabinet with an empty one.
Other
-Got rid of diseases magically moving down a stage.
-Optimized playsound()
-Added an attack_self() to sprayers so that you can change the reagent use of them between 5 and 10.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5168 316c924e-a436-60f5-8080-3fe189b3f50e
Fixes issue 526. MMI-Mech issues
MMIs can now change intent. There's no feedback, but they can at least function properly now in mechs.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5098 316c924e-a436-60f5-8080-3fe189b3f50e
-Atmos delay is now based on active players, to help fight lag for massive player rounds.
-Changed some for(blah in world) loops to use the correct lists.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4958 316c924e-a436-60f5-8080-3fe189b3f50e
FEA_gas_mixture.dm: Removed comments that documented a removal of useless variables. I will let the SVN handle documenting that.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4752 316c924e-a436-60f5-8080-3fe189b3f50e
Added a little bar for nuke ops to relax in, following a job well done.
Updated pod control computers to only show time controls if a mass driver is attached. Doors don't need to be on a timer.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4703 316c924e-a436-60f5-8080-3fe189b3f50e
- The folders themselves are now finished
- Next I'll go through each file and organize them
- Lastly I'll start pulling the object definitions out of /code/defines/ and put them into their respective files.
**Note to committers**
Make sure the .dme file updates when you update to this revision. If necessary delete the .dme and svn-update.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4546 316c924e-a436-60f5-8080-3fe189b3f50e