* Enforce preserving parent proc return values across ui_act call stacks (#53964)
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
* Enforce preserving parent proc return values across ui_act call stacks
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#52981)
* Process procs now properly use deltatime when implementing rates, timers and probabilities
* Review fixes
* Geiger counters cleanup
Made hardsuit geiger code more similar to geiger counter code
Geiger counters are more responsive now
* Moved SS*_DT defines to subsystems.dm
* Rebase fix
* Redefined the SS*_DT defines to use the subsystem wait vars
* Implemented suggested changes by @AnturK
* Commented /datum/proc/process about the deltatime stuff
* Send delta_time as a process parameter instead of the defines
Also DTfied acid_processing
* Dtfied new acid component
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities
Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
* Refactors machine_stat and is_processing() to process on demand (#53150)
* Refactors machine_stat and is_processing() to process on demand
* Fixes master (#53193)
* fixes master, damn it me/mothblocks
* fuck again
* ANOTHER ONE
* Fixes master
Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
About The Pull Request
/area/proc/usage() attempts to give list-like access to a bunch of vars. Why not make it a list instead and avoid all the proc calls? Might be room for followup here, to do something to powered(), use_power() etc.
Some legacy machinery was ignoring the default machinery use_power pulling from the machine's power channel by default
Total power usage was unused, APCs ignored it in favor of calculating it themselves :)
I also renamed the defines because they were in the danger zone of being very common words.
Changelog
cl Naksu
code: optimized area power usage calculations.
/cl
About The Pull Request
Extools maptick stuff is in the game. Stolen from BeeStation/BeeStation-Hornet#1119, improves performance. Requires ex-tools on the server, though.
Explosions have been refactored to do the actual exploding in a subsystem.
Credit to goon.
Here's some videos!
Why It's Good For The Game
Basically instant max-caps now.
We can now give more of a tick over to the sending of map updates
Changelog
cl Goonstation Coders, Beestation, Extools devs
refactor: Explosions have been heavily optimized.
/cl
Living and machine stat vars are pretty different, one uses flags and other number-defines.
This should make some other mass-replacements and searches a bit easier.
About The Pull Request
Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls
This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE
I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game
Code usability
About The Pull Request
Adds 'notice' span class to all visible_messages which had no span class, making all those black messages blue.
Why It's Good For The Game
This should help differentiate action-messages from talking-messages in the chat. More actions will be blue, thus black talking-messages should pop out more.
* Tones down values for a lot of different hotspot_expose calls
* Update LINDA_fire.dm (#38217)
* Automatic changelog compile, [ci skip]
* Slight changes to camera network code (#38223)
* Removes a useless var and corrects two cameras to use the automatic naming system to reduce dv usage.
* Damn github didnt notice this was here....
* Fixes datediff not returning (#38215)
* Fixes pocket items being deleted when monkeyizing (#38220)
* Automatic changelog generation for PR #38220 [ci skip]
* readds atmos heating from hotspot_expose(), as requested by naksu
* Tones down hotspot_expose values for sparks moving and destroying
* tones down item heat by a lot. no more burning your face off after smoking a cigarette
The component is initialized with any combination of three flags, EMP_PROTECT_SELF protects against effects that target the object itself, EMP_PROTECT_WIRES protects against wires being messed with similar to the NO_EMP_WIRES_1 flag which this PR removes, EMP_PROTECT_CONTENTS protects against things that are inside the object like organs, internal "non-virtual" power cells and the like
This enables (but doesn't introduce) new mechanics such as adding EMP shielding at runtime to any atom, or taking it away.
* It works, but is it worth it?
* bitfield helpers take 1
* Would this work?
* remove dangling debug code
* rebase & fixes
* vv bitfield stuff, reading
* DNM oceans of shitcode DNM
* honk
* honk2
* plonk
* rebase & fix
Shouldn't break anything, stops warning spam, logs errors qdel style at the end of the game.
Initialize now expects a hint to be returned, one of:
INITIALIZE_HINT_NORMAL - Does nothing, returned by the root proc
INITIALIZE_HINT_LATELOAD - Call atom/proc/LateInitialize
INITIALIZE_HINT_QDEL - Calls qdel on the atom
LateInitialize currently defaults to the old re-calling behavior so there should be no issues with that.
Things that didn't return a hint or fucked up somehow will be logged less loudly than they were before
No more world start warnings!
* Ports paradise error handler, with in game runtime viewer!
* Changes to the old runtime error and removes inerror reference
* Oops
* Adds a wrapper for world.log so it displays both in the runtime diary and in DD window
* Moves turf New calls to Initialize
* Much faster
* Fixed
* Makes add_to_active queue up before SSair is initialized
* Remove active queuing
* And the proc
* Move the check
* Fix some shit
* F U C K T U R F S
* Necessary
* Unnecessary
* SHUT THE FUCK UP
* Panic mode hurts the code
* Such a
* Simple answer
* A well thought out plan
* /turf/open optimization
* Undo the warning suppression now that it's fixed
* Fixes lava typecaching badly
* Added late initialization
* Make the atmos offenders late initialize
* Add extra logging
* GLABALS
* Better solution for trying to activate w/o air
* Further base calling copypasta
* Gates, guards, gorans
* Small doc fix
* Do the faster
* T U R F V A R P E R S I S T E N C E
* The solution is always so simple
* The (hopefully) final nail in the coffin
* 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
* a very calming act
when the world is too much, too fast
* i'm tired
but i have to be efficient, infinite
* lick your lips at the sight of me
a fantasy made reality
Adds a large ash and large molten item decal (for future use)
simplifies decal/cleanable/replace_decal() code a bit.
Changes construction() proc to on_construction() for consistency, same for deconstruction().
Made a deconstruct() proc for machinery and computer (also for future use).