This requires a 508 beta version to use. If Travis fails this he's a bitch
Exceptions will generate a stack trace, which is way easier to see and more helpful in actually solving this kind of crap. Also logs all the arguments, src, line, and file automatically.
Removed any dubiously helpful information in the exception names so the runtime condenser won't see each one as a different runtime. If the information is critical to solve these bugs (camera one maybe?), then I'll just make these warnings.
Thrown exceptions crash the currently running proc. Yes that means there's useless returns in a bunch of these, sue me. spawn()'s are to let the proc continue.
Almost all of these are difficult to trigger, but I did test playsound. And frankly even if they do cause bugs by crashing procs, big whoop
I forgot a step in the algo and made it so it was decreasing in its slowdown effect with more lag, not increasing.
I've also made the -1.5 magic number in the algo configurable. its was a simple buffer of cost the subsystem is allowed to use that isn't counted against it in dwait.
- Uncommented all stuff that was commented in the last commit.
- Added a check in front of it that blocks them from showing up in the setup window if JOIN_WITH_MUTANT_HUMANS is not set.
- Included new game_options.txt as an example.
The tgstation server has never used the example game_options.txt so the new config option will not be enabled on it. Even if it did, the option starts commented out in the file.
-The proc is defined as proc/qualifies_for_rank(var/rank, var/list/features), and by default defined to always return 1. You must override it locally in your species definition to set special job properties.
-Lizards will fail the check for jobs in command_positions and pass it for any other job. Just like before.
-Humans will always pass the check if they don't have ears or tails. If they do have ears or tails, they will fail the check if the job is in command_positions, engineering_positions, science_positions, medical_positions, security_positions or equal to "Quartermaster", effectively limiting their job selection to civlian, lower supply and silicon jobs.
- Patch: Don't update html_interface clients that have been inactive for more than 10 minutes.
- Patch: Attempt to speed up _renderContent some more (in case of multiple clients) by using spawn.
- Patch: Second argument for hiIsValidClient hook: reference to the current html_interface object (used by crew monitoring computer).
- Feature: procqueue singleton. You can use this to put proc executions on a queue. Used by the crew monitoring computer to queue the update "for the next tick" when humans move.
Adminhelps now use it so that they can cancel the timer to return the admin help verb.
Adminhelps now allow admins to reject the adminhelp, giving the user back the verb and a message telling them how to construct a better admin help.
Dominator sets Delta Alert now
Delta Alert text changed to accommodate this change (+3 squashed commit)
Squashed commit:
[3129c95] Icon state update
[21bddf3] Dominators play the malf sound when activated (until I can find a better alternative).
[2289074] Unfucks changelog (+1 squashed commits)
Squashed commits:
[2289074] Unfucks changelog
It was not as proper as the name would imply, and experience and amused redditors have taught me that writing a proper HTML-scrubbing function is a very hard task indeed.
The MC will now track the total cost of all subsytems (normalized out to a per second cost number so that subsystems that only run every 10 minutes but are costly (looking at you server tasks) aren't accounting for 90% of the number when they shouldn't.)
This is now used in the dynamic wait subsystems to ensure they slow down when other things are being lagging
This mainly means that air won't lag things if the singulo gets free.
I also tweaked the scaling curve used by the dynamic wait system so that it scales less during slight lag, but much more during higher lag times.
I added qdel to the dynamic wait subsystem with a really high scale. This didn't make sense before, because it limits its run time, but now it can scale back how often it runs when the other subsystems are being laggy. I also lowered qdel's max runtime from 2ds to 1ds, because deletes take 0.9 ds on avg, so it would end up running for 2.9ds often.
This should prevent air+singulo+qdel causing excessive amounts of lag.