Commit Graph

13 Commits

Author SHA1 Message Date
AnturK c6d9df04ba Switches to assoc lists 2016-07-25 22:42:06 +02:00
AnturK 69dcf5bd98 Applies the change to PAI's 2016-07-25 22:13:30 +02:00
Kyle Spier-Swenson 235b79fb5a StonedMC, the bastard love child of GoonPS and CarnMC (#17987)
Basically, they key difference between StonedMC and CarnMC is that when multiple ticks want to run at the same byond tick, we divvy up the tick between the subsystems, rather then allow one subsystem to hog it all.

The key difference between StonedMC and GoonPS is that we allow the subsystems to tell us how to divvy up the tick using flags and priority.

The new SS_ flags allows us to select behaviors that used to be piggybacked as side effects of dynamic wait or default but sometimes unneeded behavior.

Dynamic wait is 100% gone, lower priority and SS_BACKGROUND are better more refined ways of doing this when combined with MC_TICK_CHECK

I have by design never looked at the inners of goonPS, so this is all original code but I know it uses two loops because of comments by goon devs on reddit threads, that design didn't make sense before, but when I can tell a SS how much of a byond tick it is allowed to have, knowing how many need to run this tick is helpful I also know a bit more about how it works from piecing together comments in #vgstation.

Detailed list of changes:

Subsystems now have flags, allowing fine grain control over things like rather or not it processes, inits, rather it's wait is how long between runs (post run timing) or how long between starts, and rather or not late fires should cause the next fire to be earlier.

Mc now has two loops One loop handles queuing shit, one loop handles running shit.

MC now splits up tick allotment rather than first come first serve Subsystems can even request a bigger share using higher priorities. (It will even resume subsystems it paused if other subsystems hadn't used as much as it predicted they might need)

Default fps is now 20 This is related enough to the MC and it's a change that's really long since over due

All code oddities are most likely to be necessities to lower overhead on the mc since it runs every tick
2016-06-16 18:01:16 +12:00
Kyle Spier-Swenson 2663cb2937 lets try another way of doing this. 2016-02-13 17:27:53 -08:00
Kyle Spier-Swenson 94ca3fb84b Fixes Runtime 2016-02-11 18:09:42 -08:00
Kyle Spier-Swenson 3b849aa499 Fixes pai don't ask me again
The way it did it here was weird and i think it caused the bug because it would check the ask time + 600 and that would wrap around.

I don't know for sure if that's the cause of the bug, but this is an improvement none the less.
2016-02-07 22:55:13 -08:00
Firecage 332bde0f4f Does the rest of the if()'s/ else's 2016-01-17 19:03:12 +02:00
MrStonedOne 69a70daebd Ghost popup part 2: The didn't do much-a-ning
Fixes button3, does the remie
2015-12-31 01:54:15 -08:00
Bjorn Neergaard 531e4b947f Subsystem display tweaks 2015-12-05 10:13:59 -06:00
Remie Richards b9394257da About a million changes, but largely: Functional (Sort of) Antag Huds, Mind fixes, and Final glue to get the mode working. 2015-10-07 22:11:19 +01:00
Remie Richards 58483beb50 Hand of god gamemode!
be_special and antag defines are no longer limited to 16 values (1 - 32768) by being changed from a bitfield to a list, an appropriate block of code exists to automatically update bitfield versions to the new list format. the list format allows us to have (functionally) infinite antag types.
2015-09-27 16:49:56 +01:00
Firecage 4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
carnie a44795a699 Resolves #6993 - Moved pai controller into a subsystem. 2015-01-15 23:50:46 +00:00