Commit Graph

87 Commits

Author SHA1 Message Date
bobbahbrown
28370750c1 better words 2020-07-22 00:57:58 -03:00
bobbahbrown
ca64e6fcd2 words 2020-07-22 00:49:33 -03:00
bobbahbrown
a86d9e6704 we did it 2020-07-22 00:43:07 -03:00
bobbahbrown
dd040656d4 almost there 2020-07-22 00:00:04 -03:00
bobbahbrown
9244e9b7f4 some documentation 2020-07-20 18:28:14 -03:00
bobbahbrown
5a282484ed less is better 2020-07-20 18:10:19 -03:00
bobbahbrown
c2af9e736d Revert "more"
This reverts commit 8707bfe75d.
2020-07-20 16:16:52 -03:00
bobbahbrown
8707bfe75d more 2020-07-20 01:10:47 -03:00
bobbahbrown
771afeba67 cleanup 2020-07-19 21:50:09 -03:00
bobbahbrown
2d96fb6c70 temp 2020-07-19 20:10:58 -03:00
Emmett Gaines
d86321a64c Updates BINARY_INSERT to be a bit more flexible (#48831)
Makes use of the do while(FALSE) trick to give it its own context and makes it possible for the inserted value to be different from the compared value so #48747 can use it.
2020-01-23 13:00:45 +13:00
spookydonut
48439a66dc makes these stacktraces 2019-12-10 19:01:48 +08:00
spookydonut
29ec9d0a81 timer proc autodocs (#46530) 2019-09-16 01:59:06 -04:00
spookydonut
e36f4f3c22 Fixes a bug with abductor implant (#46447) 2019-09-14 22:04:57 -07:00
Kyle Spier-Swenson
de5b7d4d93 Fix reset buckets being stupid
Why I never did see this I don't know, its a 5 million years old bug.
2019-03-03 22:33:44 -08:00
Kyle Spier-Swenson
ffd601a781 Fixes timer bug (again) (maybe) (blame byond) (this is why arrays should start at 0) (#40947)
* Fixes timer bug (again) (maybe) (blame byond) (this is why arrays should start at 0)

* missed a spot
2018-10-22 08:39:51 +13:00
ninjanomnom
38fa012b25 Fixes looping client time timers 2018-10-18 16:12:07 -04:00
Kyle Spier-Swenson
c3d08e4b64 Makes timer watchdog logic Fitter, Happier, More Productive 2018-09-22 11:35:39 -07:00
ninjanomnom
01a79dccb0 Fixes timer buckets going into negatives and adds a regression test 2018-08-16 14:50:09 -04:00
ninjanomnom
863cd2d57e Fixes TIMER_CLIENT_TIME looping timers not adding their wait 2018-07-12 20:23:56 -04:00
ninjanomnom
bb6b09d3e1 Fixes the active timer count getting out of sync when buckets reset while spent timers were awaiting qdeletion
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2018-07-12 20:23:56 -04:00
ninjanomnom
d32d2869c0 Adds looping timers
and a requested binary search insert macro
2018-07-12 20:23:56 -04:00
Kyle Spier-Swenson
ff77dac694 Fix timer bug (#38994) 2018-07-09 16:11:51 +03:00
Jordan Brown
8b16aaf87e Adds a warning for using TIMER_OVERRIDE without TIMER_UNIQUE 2018-06-28 14:37:28 -04:00
Jordan Brown
9549949eeb Merge pull request #38008 from MrStonedOne/ISawSSTimerFloatingInMyDreams
Fixes some edge cases in sstimer that could cause a timer to run before it was expecting to.
2018-05-25 11:51:03 -04:00
MrStonedOne
8b7694a9fc Timers on qdeleted objects is no longer supported.
Before we only warned if the wait was 1 or higher to solve issues with objects settings timers on themselves while getting qdeleted, a common enough usecase to support (even if it is annoying), but then I remembered we could check for qdestroying directly.

Also fixes it so such `destory()` time timers actually run consistantly. before they would only work if called after the `..()` in `destroy()`
2018-05-22 21:06:51 -07:00
MrStonedOne
01d816fa2e Fixes some edge cases in sstimer that could cause a timer to run before it was expecting to.
Because sstimer tracks timers internally in the terms of what "byond tick" they are suppose to run at; float wait values are now rounded *up* to the next Byond Tick rather then have byond round the resulting list index *down* at access time.

0 wait timers are now rounded *up* to `world.tick_lag` to avoid incompabilities with editing the current tick's bucket while it was being processed.
2018-05-22 20:27:39 -07:00
ShizCalev
3e32a82363 Corrects addtime stack_trace typo 2018-01-22 03:46:31 -05:00
Kyle Spier-Swenson
e31b2f749b Makes stoppable timers faster. (#34208)
* Makes stoppable timers faster.

* Missed a spot
2018-01-11 04:54:07 -05:00
kevinz000
02254279fb Adds jousting (#33531) 2017-12-18 20:55:09 -06:00
Kyle Spier-Swenson
fdcf747e18 [ready]Timer queuing tweaks: binary sorted inserts and rolling buckets. (#33098)
* Timer queuing tweaks: binary sorted inserts and rolling buckets.

Client time timers now uses a binary search algorithm for its sorted inserts.

Processing now uses a binary sorted insert, rather then sorting it with sortTim during bucket_shifts.

Buckets now automatically wrap around rather then get regenerated every minute. (Rolling queue)

* Fixes some queue management bugs.

* Fixes a Order of Operations goof up in the ticks<->ds macros.

@ninjanomnom your pain is my success

* Remove debug line

* Fixes some binary insert bugs, fixes client time timers, moved id over to GUID

* Fixes initialization-time timers fucking everything up
2017-12-08 22:02:34 +01:00
jammer312
bc998ffe1a Crash to timers and INFINITY check to beams. (#33219)
* beams

* timers

* >= instead of !=

* whooops
2017-12-03 13:44:58 -05:00
AnturK
c12a969c60 I shouldn't be doing this without performance report on below 300 elements because this shit is just ugly. 2017-11-14 19:39:01 +01:00
AnturK
d6f780613c Fixes client timers. 2017-11-13 20:54:58 +01:00
Emmett Gaines
825ab4def4 [512] The great \ref purge (#31824)
* The great \ref purge

* cleanup
2017-10-28 17:20:04 -04:00
Kyle Spier-Swenson
2b86b39747 More timer debugging for the debug gods. (#30436)
* More timer debugging for the debug gods.

* Its times like this I wish I could amend commit from the web interface

* git commit -a -amend&&git push --force
2017-09-07 10:58:22 -04:00
Jordan Brown
cd912faf59 Unifies datum definitions 2017-08-01 15:51:26 -04:00
pigeons
4e05dd63f9 Fixes timer id collision (#29437)
The list of active timers timer_id_dict identifies timers by their numerical id as a string. However this was done using embedded expressions inside the string, which calls num2text with a default of 6 significant figures. This means anything at or above 1 million is expressed in scientific notation.

"timer[1000000]" -> "timer1e+06"
"timer[1000001]" -> "timer1e+06"

Calling num2text manually with 8 significant figures kicks the collision problem down the road to 2^24 (16 million).

nextid is now selectively incremented and is looped back to 1 when reaching the 2^24 threshold.
Also now includes collision checking.
2017-07-26 11:48:21 +12:00
Kyle Spier-Swenson
eeab8f71bb Make timer debug info more robust (#29100)
* Make timer debug info more robust

* Update timer.dm

* Update timer.dm

* Update timer.dm

* Update timer.dm

* Update timer.dm

* Update timer.dm

* Update timer.dm
2017-07-07 22:18:44 -04:00
Jordan Brown
a8dffe5eb2 Adds warning for misuse of deltimer 2017-06-14 16:07:29 -04:00
Cyberboss
a0a27219b6 MC Runlevels 2017-05-10 16:05:37 -04:00
Jack Edge
a76d4374c1 Moves init_order to defines, moves SSevents above ticker. 2017-04-22 22:08:31 +01:00
Cyberboss
9c9673fe45 Adds a crash log and recovery for hanging SStimer 2017-04-03 19:47:42 -04:00
Cyberboss
fb596bcdb3 _DEF 2017-03-22 14:52:21 -04:00
Cyberboss
7e14ec75fc Normalizes subsystem definitions 2017-03-22 11:50:46 -04:00
kevinz000
51d3cd11f5 [READY]Refactors beams to use timers for recalculation, and new beam proc after drawing (#25252)
* now with timers!

* woops

* hmm this is better

* stoppable timers

* more timer stuff

* fix

* fix
2017-03-22 22:19:16 +13:00
Cyberboss
31ee152489 Repaths subsystem to controller/subsystem (#24624)
* Repaths subsystem to controller/subsystem

* Fix the shit
2017-03-08 22:05:45 +01:00
Cyberboss
4d78f4e3d4 Somehow missed timer 2017-03-02 16:24:10 -05:00
Cyberboss
ec8c42bbff Sorted client time timers 2017-02-21 09:46:50 -05:00
oranges
edebf05394 Merge pull request #24114 from Cyberboss/addtimerflag
Adds option of unique timers ignoring wait
2017-02-17 14:32:12 +13:00