* Overhaul mecha logging
Removes user access to the log, not needed and that log can get large
removes all the internal log vars and passes all logging through to a
new log file, the mecha log
* somehow this makes it compile
* add it to the config too
In preparation of pixel movement, I want to refactor our slowdown system to something more modular, and something that doesn't require /quite/ as many proccalls/calculations a tick. The way this works is intended to only have things recalculate when it's necessary, rather than calling it every move.
However, I've left movement_delay() in, as without completely redoing a lot of code it's not /quite/ ready at this point to tear it out completely, but I'm hoping everything can be transitioned over to this system later.
* Photography Update
* Pictures logged in their own /data/picture_logs folder rather than normal logs
* Pictures logged in their own /data/picture_logs folder rather than normal logs
* Photos broke, retrying
* Persistence stuff
* I'm almost done I promise!
* Persistence mostly working, compile, etc etc
* Persistence mostly working, compile, etc etc
* Remove something really not needed from the PR
* Prevents duplication
* default to off
* removes check tick
* increase slots in albums to 21
* Allows for singular loading
* Update camera_image_capturing.dm
* Addresses review
* Anturk
* Update camera.dm
* Update misc.dm
* Update datum.dm
* Update camera.dm
Adds maintenance pills. They are a rare maint loot that holds a random reagent, with exception of a few blacklisted ones. Their name and description are also random
Added a new ghost verb that lets you change your ignore settings, allowing previously ignored popups to be un-ignored and notifications without an ignore button to be ignored
The old color-change functionality of the multitool remains unchanged. The hud is toggled with an action button, because multitools already have an attack_self() that does something. When toggled on, you get the hud as long as the multitool is in any slot on your body.
The only way I could find to reliably show exactly where an AI is looking was to place an image on every turf they are looking at. Because AI eyes move around a lot and I do not want them placing images all over the place when they do not have to, if there is nobody in the world currently using an ai detection multitool, they will not update the images until someone is.
Only AI eyes and multicamera zones currently appear. Advanced camera consoles do not appear on the hud, and no longer trigger the proximity color change. Also fixed multitools not appearing in-hands if their icon state changed.
The logging is now stored in the persistent client/player_details datum,
that will survive an entire round
The existing mob log is retained and a new admin verb is added to access
it. It will only show logs for the mob in question, across all players
who possibly spent time in that mob
A new log type is added that tracks the mobs the player changes across
into and the times they occured, to better help admins manage complex
situations, this also appears in the mob log as a record of the players
who entered/exited control of the mob
* Adds VR Snowdin and Syndicate Trainer
* Replace var edit
* I did forget to add a few
* Adds one full outfit spawn
* internals too
* closet
* Extends same Z level check to monitor and emping
* restricted uplinks
* camera bug fixes
don't talk about the bees
outfit changes
More items
outfit fix
* Adds vr sleepers to runtime station
* More mapping fixes
* Adds telecomms to taunt your enemies
* More restrictions
* Some fixes
* badabing
* More fixes
* emag related changes
* forgot the ract
* Additions
* griff resistance mode
* minor changes
* Removes old centcom away map
* Pushes you out of VR if you try to ghost
* this is :b:roke
* this shit is not :b:roke
* as requested
experimental: Tesla damage has been reworked to structures and objects have been worked with a linear scaling.
experimental: All tesla weapons now no longer need to hit a mob to arc lightning; however, they will no longer stun, and only hit each target once.
tesla_zap vars are now a single bitfield.
The component is initialized with any combination of three flags, EMP_PROTECT_SELF protects against effects that target the object itself, EMP_PROTECT_WIRES protects against wires being messed with similar to the NO_EMP_WIRES_1 flag which this PR removes, EMP_PROTECT_CONTENTS protects against things that are inside the object like organs, internal "non-virtual" power cells and the like
This enables (but doesn't introduce) new mechanics such as adding EMP shielding at runtime to any atom, or taking it away.
This is primarily a compatibility layer that enables both forward and backward compatibility for all past and future APIs based on the detected running TGS version. It also bundles all it's includes to make future upgrades not have to modify the dme, heck, could even use a submodule if it wanted (not happening). No other changes necessary.
There's an upcoming event system and new chat management functions. Check them out here: https://github.com/tgstation/tgstation-server/blob/303448457e1529c900fa183a8b3c7f2e5459acf1/DMAPI/tgs.dm
Also added /datum/proc/CanProcCall()
* kill BANG_PROTECT_2
* let's put this back in
* dirty
* kill OMNITONGUE_2
This is a write-only variable, probably leftover from some refactor years ago
* kill flags_2
code: HEALS_EARS_2 is removed in favor of the earhealing component
code: wearertargeting component is available to subtype for components that want to target the wearer of an item rather than the item itself
* station lovin' happened so fast
* Update stationloving.dm
* less qdel memes
* imbue soul signal
* rename imbue soul signal
* dupemode
* henk
* Update atoms_movable.dm
* Update nuclearbomb.dm
* Update nuclearbomb.dm
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.