* Fixes some bad addtimers
* Adds INVOKE
* Warning for addtimer
* Working syntax
* Another bad call
* Fixes the addtimer warning
* Add suppress_zero_warning to addtimer
Useful for addtimer that uses vars
* Add INVOKE_AGAIN for when the var is already defined
* Replace addtimer(...,0) with INVOKE((...))
* Much more sensible syntax
* Less overhead, less copypaste
* Rename INVOKE_ASYNC
* Use a macro
* Allman style
* Wait, why make it a datum in the first place?
* Revert the rename
* Rename again, keep line endings
* typo
* More typos
* Untouches Addtimer
* Update callbacks.dm
* Update timer.dm
* Revert allman style
* Revert "Revert allman style"
This reverts commit 47361da15bd04eca138be5f13acdc9dd5ba89331.
* Trying to match that whitespace diff
* Why is this missing?
* I'm not fucking dealing with this!
* Adds a topic limiter.
This appiles to all non-admins, the rate is configurable but defaults to 10 in any second and 100 in any minute.
Hitting the minute limit causes a notification to go to admins (once per minute)
The user is always notifed when a topic is ignored so they know whats going on. If they trigger a notification to admins they are told about this as well.
* This makes more sense
* BOOM
* Forgot this check
* Fix remaining objectives
* This is better
* MSO params
* >When you copy paste directly from the comment
* Merge fixes
* Revert "Fix remaining objectives"
This reverts commit b1d1bf40f615019bb57088c24fae8f89c5d2e834.
* Revert "Forgot this check"
This reverts commit cea6ad2381d44a44ef3a93064997454cf7b1ccf5.
* After all that work I did to make objectives work...
* Oh this is important
* The beginnings of soapstones
* Compilation
* Sprites!
* White text
* Persistence
* More tweaks
* Why isn't it working
* Removes author name
* Random names, more checking for nulls
* VARIABLE MESSAGES
* Fixes icon conflicts
* Limited soapstone uses, purchase more at cargo
* No carving if empty
* Adds SScommunications subsystem
🆑 coiax
add: Communication consoles now share cooldowns.
/🆑
Sharing cooldowns is good, having a central place to make announcements
is good. This moves some of the machinery for announcements out of the
consoles, which coincides with some plans I have for the communications
machinery of the station anyway.
* Oh yeah, AI's make vox announcements
* Removes priority for non-firing subsystem
* Moves the defines
* Removes dem defines
* Decoded input
* Refactors atom/Initialize
Captialized for compiling correctness and to be more inline with Destroy
Will now be called from atom/New if the world initialization loop in SSobj has already run. Should always call the base.
Now comes with the `roundstart` parameter indicating whether or not it was called by SSobj or atom/New
Other fixes/tweaks:
- Renamed a proc called Initialize in abduction consoles to Setup
- Removed /obj/item/device/radio/headset/headset_sec/department: Broken and referenced literally nowhere in the code
- Removed a spawn from the Initialize of turbine_computer which made literally zero sense
- Generalized the proc which fixes RND servers with no id set
Reasoning: It's better to check roundstart per function than to have to duplicate code in New and Initialize. Think of it as a safer New for atoms. If we move enough stuff to it, initial map load performance will increase due to less New calls
* Fixed a thing
* Actually, fuck the police
* >Expecting a merge without errors
* >Not calling ..() in New
* Sanic
* Fix the headset bug
* Makes sure the map loaders dew it right
* Fixes ruins being initialized twice
* Rename roundstart -> mapload
* Revert "Rename roundstart -> mapload"
This reverts commit 667c327fd2ccfa3ce4f4db52eac03f9e8b0f6812.
* Remove unrelated change
* A more direct solution to map loads
* And now we shouldnt need this warning
* Add the new var to SSobj recovery
* Revert "Revert "Rename roundstart -> mapload""
This reverts commit dee07dbd5e4696554ac43aae5b91cce743b9b9e0.
* Line endings
Making timers run thru qdel will be a cost a pretty fair chunk of resources, and will very likely flood the qdel controller, but it should do for now until i figure out why they randomly decide to stop qdeling.
Also, changes the only thing i think could be an issue causing references to not get cleaned up to be less lean and more forgiving.
I'll revisit this at some point and see if i can't figure this out.
* Fixes timers being left around, Makes addtimer() sanic fast.
This adds a new flag, TIMER_STOPPABLE. Most(80%) of the overhead for addtimer() was in adding the timer to the associated lookup list for deltimer() to use. Moving that functionality to a flag so it wouldn't slow down the 70% of things calling timers puts the final nail in the coffin of byond's sleep/spawn().
spawn: 324 seconds across 5,948,372 calls
addtimer: 67 seconds across 5,953,220 calls
The testing setup for profiling was included in this commit, it will be removed in a later commit. @Fox-McCloud
* Remove profiling procs.
* fix runtime
luckly when this happened, we were about to resume anyways.
🆑 coiax
bugfix: Blue circuit floors are now restored to their normal colour if
an AI doomsday device is disabled.
/🆑
Put a nuke tracker on SSmapping, because we need a tiny bit of state to
track this, in case you have two concurrent things running.