* Optimize /atom/movable/Initialize with faster check for blocks_emissive [140ms on init] (#74453)
Quoting the comment:
This one is incredible.
`if (x) else { /* code */ }` is surprisingly fast, and it's faster than
a switch, which is seemingly not a jump table.
From what I can tell, a switch case checks every single branch
individually, although sane, is slow in a hot proc like this.
So, we make the most common `blocks_emissive` value,
EMISSIVE_BLOCK_GENERIC, 0, getting to the fast else branch quickly.
If it fails, then we can check over every value it can be (here,
EMISSIVE_BLOCK_UNIQUE is the only one that matters).
This saves several hundred milliseconds of init time.
* Optimize /atom/movable/Initialize with faster check for blocks_emissive [140ms on init]
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
* Adds Neon Carpet (#59140)
Adds a couple varieties of neon carpet.
Makes decals care about their plane in addition to their layer.
* 0
* A
* a
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* wip
* wip2
* makes code actually compile on 511 + fixes
* versioning
* s
* adds python conversion script, schema change and removes 'force ' from item_used_for_combat
* fix to compile
* forgot to actually commit this
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!