Re-adds IPC APC feeding
Removes more of the horror that is type paths in text strings when they don't have to be there :ree:
Fix a bunch of lore blurbs
SQL saving is fixededed
Mark-up REGEX now requires whitespace or line ending/starts between tokens. It doesn't grab tokens surrounded by non-whitespace characters.
Updated the server greeting to only updated saved hashes if a user actively clicks on a tab.
C4 now forces old system for itself, due to raisins.
Admin verb to toggle between global default explosion type. One round only. Requires R_DEBUG or R_SERVER, is hideable.
In short, baymerge changed beekeeping. Generally for the better, i love some of the new things they did. But they also removed some things (like the actual bee mobs) and some of their new stuff wasn't properly implemented.
So this PR fixes up both the bay beekeeping content and ours, to work in harmony together, remove redundant stuff, and fix lots of bugs.
Moved explosion calculations into a process that processes a queue of explosions with SCHECKs in areas with significant processing.
Significantly reduces server freezes during large explosions, and almost completely nullifies them for small ones.
Likely subtly changes how explosions behave.
bugfix: "Global nightmode toggle no longer affects security as was originally intended."
tweak: "Manually turning on nightmode will prevent the automatic system from turning it off."
rscadd: "Added a night-mode control program for the Chief Engineer."
tweak: "Changed how night-mode works internally."
tweak: "Red alert now disables night-mode."
spellcheck: "Slightly changed alert messages."
Fixes#1200
Redefine span() to be a macro. Because we don't need it to be a proc ever again.
Rebuild the .all_changelog.yml file to have Bayport stuff at the bottom (onto which we'll add our own shit from this cycle).
Rebuilt the .html file for changelogs to correspond to the above change.
Modified download programs to actually use seconds.
Ports Apollo's infraction's system, creating a permanent criminal record for every character. Every minor or medium infraction accrued over the course of a round is added to the character's permanent security record which is available at vanilla records councils. Antagonists are automatically exempt from this process, and players can exercise control over what charges they consider canon or not.
Brigging a person is now dependent on the criminal sentencing computer, which reads a person's ID and applies a brig timer automatically for the charges selected. Personnel without ID's will have to be brigged manually.
Fixes the mousebeam for more gibbings and ensures that nowhere is safe.
Fixes the multipliers because fuck.
Makes the night lighting process not runtime if night lighting is disabled. Note to Bed: del()-ing processes is bad, they should be disabled instead.
changes:
rscadd: "Added a button on APCs to set the area lights to a 'night-mode' which is dimmer and saves energy."
rscadd: "Added an automated system to turn 'night-mode' on in hallways between 6pm and 7am in station time."
Introduces a few updates from /tg/station13 with regards to runtime logging, and then modifies the runtime logging code to work properly. Developers now have access to both condensed and uncondensed runtime logs, with the former being updated at the end of each round.
Updates code to be 510 compile compatible.
Also introduces the new updates to the GOON processScheduler, which should make for better gameplay and less lag. Specially on high population.
Greatly decreases the number of objects that need to be created (currently 3 event handlers in total vs basically 3 per datum)
The price is a slower lookup of listeners but on a per round basis it should still be much less than the current startup time penalty.
Moves the event manager processing into the process itself.
Ensures the last_object var is properly set in case of issues.
Also fixes a potential risk of the camera damage event looping forever.
Corrects a number of places where New() did not call ..(), and implements similar changes to attempt to ensure New()/initialize() complete running before qdel() runs.
Cuts down on the number of created items during server start.
Modified spawn_sync to include the spawning code, thus simplifying it's usage.
Modified spawn_sync to use actual time for failsafes.
A couple of sensibility tweaks for the wireless controller.
Cleaned up devices.dm to use new spawn_sync code.
Suggestions courtesy of @mwerezak
Added a changelog
Documentation, documentation, documentation.
Safety checks.
Reshuffled some code.
Modified wifi senders and receivers to both use var/id, instead of two different vars for basically the same purpose.
Added toggle variants for buttons, allowing them to "deactivate" connected devices.
Converted flashers and holosigns.
Fixes to keep in line with upstream.
Pulls over the SQL based controller for automatically publishing news articles, and ties it to the process-scheduler. Also refractored it a little from the initial implementation in oldcode.
- Better implementation of #10714
- This fix corrects the issue by merging pipenet process to machinery process to ensure order of execution doesn't change randomly. This shouldn't have any performance effect as pipenet process doesn't have much work anyway (not to be confused with air process that runs ZAS, this one only called process() on each pipenet). Screenshot of profiler (pipenet process highlighted, idle server with one player, engine set up) http://i.imgur.com/ecCg6rS.png
- Unlike previous fix, this does not come with various game-affecting side effects, players shouldn't see a change (except for the fact that odd fluctuations introduced by devmerge disappear). Previous fix buffed engine output as side effect, and caused one TEG to generate considerably more than second TEG, which caused TEGs to begin sparking despite overall output being below 1MW.