By moving our logging to a DLL we see a drop in CPU/real time of 2-3 orders of magnitude. This is due to BYOND opening and closing file handles on every write, causing incredible amounts of unneeded overhead. The logging library also handles timestamps for us, further increasing performance gains.
This library will also allow for further offloading in the future, such as completely replacing file2text() and friends.
A pre-compiled DLL is bundled, but Linux users will have to compile manually. Directions can be found at the rust-g repo.
Log output is enhanced with millisecond time stamps:
[2018-04-01 15:56:23.522] blah blah blah
This includes runtimes as well, which benefit from the same timestamp improvements and no longer have hacky splitting code to add their own timestamps.
Log shutdown is handled in a dedicated proc called as late as possible, as rust-g integration expands this will be factored out into a generic native code shutdown proc.
cl ninjanomnom
fix: Shuttles have proper baseturfs now.
fix: Mineral walls properly use their baseturfs when destroyed/drilled.
add: A new engineering goggle mode allows you to see the shuttle area you're standing in.
admin: Buildmode works a bit better with baseturfs now and can properly only remove the top layer of turfs when editing. Note that as a result the order you place turfs is important and a wall placed on space means when the wall is removed there will be space underneath.
/cl
This adds an area hook for turfs getting the PlaceOnTop proc called so shuttle areas are able to intercept it and add a special turf used for determining where the bottom of the shuttle is. I'm not too certain on this being the best way to handle it but the alternatives restrict the kind of turfs that are allowed to be on shuttles which I didn't want to do as it was part of the whole intent of the baseturf change to allow any turf type on shuttles.
The alternative to the area hook would require a tool which attaches turfs to a shuttle which is why there's a shuttle area viewing tool in this pr. I considered doing it this way first but decided it was too clunky.
In addition to other changes:
Tiled/Reinforced floors have proper baseturfs now.
A large amount of the remaining ChangeTurf calls were swapped over to various baseturf helpers so, for example, mining doesn't create a lavaland turf if somehow the mineral wall is on plating.
Escape pods, the aux base, and syndicate drop pod have been converted over to shuttle templates as well.
The error when the timid var is set incorrectly has been changed to a stack_trace.
The change turf file has been made all lowercase as per standard.
cl ShizCalev
fix: Fixed a large number of missing APCs on Omegastation
fix: Fixed unpowered Incinerator outlet injector on Omegastation.
fix: Replaced glass window at Omegastation's incinerator with a plasma window.
fix: Fixes broken atmos injectors on Omega
fix: Fixes broken air outlet on Meta
fix: Fixed a couple of malfunctioning atmospheric monitors across the rest of the maps
add: New test atmos monitoring console debug verb to help alleviate future issues.
/cl
Added a ton of missing APCs and cleaned up some dirty camera name varedits.
* Revert "Merge pull request #36340 from vuonojenmustaturska/beelogreen"
This reverts commit 259838f38c, reversing
changes made to 111cd316a9.
* Fixes stopsounds properly
Also I forgot to actually block admins from bad protocols
it just showed them a message that it was blocked but didn't
block it
* Play Internet Sound sanity checks
Now checks if the content URL uses http(s) before playing
* HTML is not HTTP: renames regex
* Converted global regexes to procs that return them
* Revert "Converted global regexes to procs that return them"
This reverts commit 2eedbd6982b0c4de943a72c94f92f9d75001c06e.
This is basically extracting the functionality of the animation spell into an admin verb.
Please excuse the browser.dm code, this is more of a stepping stone towards the more complicated popup needed for custom ERTs.
cl Naksu
admin: Admins can now easily spawn mobs that look like objects. Googly eyes optional!
/cl
* Virus antagonist initial commit
* Updated disease code
* Sentient virus improvements
* Renamed /mob/living/var/viruses to diseases, and /mob/living/var/resistances to disease_resistances
* Added sentient virus event
* Renamed VIRUS defines to DISEASE defines
* Fixed bugs in rewritten disease code
* Fixed advanced disease Copy()
* Finalized disease antagonist
* Made cooldown buttons stop processing if they are removed from an owner.
Made sentient disease active sneeze and cough not available if the host is unconscious.
Made sentient disease menu refresh when adaptations are ready or hosts are added or removed.
Made sentient disease following use movement signals instead of fastprocess.
* Added better icons to sentient disease abilities