Commit Graph

73 Commits

Author SHA1 Message Date
MrStonedOne
3f75fdb42d Addtimer refactor: Officially faster then byond's internal sleep system 2017-01-16 12:56:48 -08:00
Kyle Spier-Swenson
bee4b132a3 [READY]Makes addtimer use callbacks (#22660)
* Makes addtimer use callbacks

* I broke the comment

* I fucked up the regex

* this was a silly idea.
2017-01-04 16:02:56 +13:00
Cyberboss
51c463815d Better addtimer logging 2016-12-04 01:17:09 -05:00
Kyle Spier-Swenson
0ed1c63066 Fixes a small oversight in timer subsystem
hashlist was designed to ensure that timers on different objects with the same name didn't get detected as the same timer, but when I added it, i forgot to make this line actually use the hashlist.
2016-11-30 14:43:09 -08:00
Cyberboss
e37f807941 Fixes the false armblade removal timer. Refactors addtimer (#21714)
* Clever girl...

* Make the addtimer unique param safe

* Refactor addtimer calls

* Moved the location of the define so the other SSs can use it
2016-11-25 22:05:58 +13:00
oranges
a62066ebe4 Merge pull request #18727 from RemieRichards/global_procs_in_addtimer
You can now call global procs with addtimer()
2016-06-21 10:18:49 +12:00
Remie Richards
b0634d3227 istext() check on procToCall 2016-06-20 23:06:51 +01:00
Kyle Spier-Swenson
b05886a132 sstimer: Does a thing in a less retarded way. 2016-06-18 21:14:25 -07:00
Remie Richards
0422a46fbb You can now call global procs with addtimer(), by supplying the object as GLOBAL_PROC, a special define that tells the timing subsystem to use a different call()() syntax (the syntax that supports global procs) 2016-06-19 00:40:04 +01: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
Bjorn Neergaard
063dd9fb84 Get the code running on 510
* Travis for 510
* Remove json, list2text, text2list, bygex
* Change blind and click catcher to a low plane
2016-02-04 17:19:40 -06:00
Bjorn Neergaard
2f46b224ae Fix air alarm hacking, raise SStimer display 2016-01-25 12:03:00 -06:00
Bjorn Neergaard
dbc64b7d28 tgui fire alarms 2016-01-25 12:02:59 -06:00
xxalpha
9377ec8423 Changed /datum/timedevent Destroy() to return QDEL_HINT_IWILLGC 2016-01-21 19:25:23 +00:00
MrStonedOne
b50e8d2a63 removes a bunch of unneeded spawns
spawns have a high overhead.

I only went for easy targets, almost every spawn could be removed with a few subsystems in place to handle delays or cooldowns
2016-01-02 18:23:02 -08:00
Bjorn Neergaard
71d96ba35f Fix error in SStimer arguments
It still works because... luck? The only thing that uses this is the
Crew Monitor which sends a Z-level as the argument... Which happens to
work because the Z-level is usually 1.
2015-12-03 09:35:23 -06:00
Bjorn Neergaard
6ec257c360 Hotfix for SStimer lag
SStimer can now check dupes
Also fix ghosts not being inquisitive with objects...
2015-12-02 21:23:45 -05:00
Bjorn Neergaard
aadfa979e6 Blame MSO
@MrStonedOne
2015-11-30 21:23:57 -05:00
Bjorn Neergaard
47e9a7771a Fix up SStimer, make Crew Console use SStimer
Remove crappy proc queue as well...
2015-11-30 20:56:45 -05:00
duncathan
51c09f16bf makes all Destroy()'s return properly 2015-08-31 00:21:01 -06:00
Firecage
4688c2c969 Fixes proc arguments 2015-07-15 23:52:35 +02:00
MrStonedOne
40c2ca5966 Tweaks adminhelp rejections and adds changelog 2015-06-21 13:23:42 -07:00
MrStonedOne
9583b1213b Adds new timer subsystem
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.
2015-06-21 11:55:38 -07:00