* Save 2.2s minimum (with zero ruins, likely a good bit more in production) of atom init time (#69564)
Pre-sort smoothing_groups and canSmoothWith
Without any ruins, these sorts were taking more than 0.6s, and the bulk of the runtime cost of sortTim during init time.
This only happens on init and they are never changed apart from that, so pre-sorts everything and adds a unit test (in the form of #ifdef UNIT_TESTS, because you can't initial a list) to ensure that they are proper.
Keep visibilityChanged() to mapload only for turf/Initialize
Saves about 0.4s worst case scenario (e.g. with no ruins). Very expensive code (175k loop iterations) for 0 side effects.
Space areas now have the fullbright overlay, not the space turfs
Saves about 0.8s worst case scenario. Seems to work fine with starlight.
Remove is_station_level check for window spawners assigning RCD memory.
Saves about 0.3s worst case scenario. The logic for this isn't consistent since neither walls nor floors check this (for performance), plus some minor micro-opts to spawners.
Optimize is_station_level
Doubles in speed, used heavily in /turf/open/floor and in other initialization procs. Bit hard to tell exactly how much is saved, though.
* Save 2.2s minimum (with zero ruins, likely a good bit more in production) of atom init time
* Hopefully fixes the broken CI
* Okay now it shouldn't be failing CI anymore (hopefully)
* Fixes even more issues with smoothing_groups, this time hopefully for good
* Okay NOW it's going to pass CI, surely...
* Okay haha what if it passes this time? :)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Fix Body Container bug (#69824)
* Fix Body Container bug
Fixed bug where body containers could not be closed when standing diagonally from them in some cases.
* Update morgue.dm
* Containers get PASSSTRUCTURE, trays get PASSTABLE
* Update code/game/objects/structures/morgue.dm
* Update code/game/objects/structures/morgue.dm
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Fix Body Container bug
Co-authored-by: Marina <50789504+KirbyDaMaster@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
* Corporate sofa corners no longer swallow your sprite when oriented North (#69756)
* Corporate sofa corners no longer swallow your sprite when oriented North
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Makes custom built table descriptions more accurate (#69768)
* table memes
* better yet
* Update code/game/objects/structures/tables_racks.dm
* Update code/game/objects/structures/tables_racks.dm
* Makes custom built table descriptions more accurate
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Shadowpeople's healing is from their brain, splits up surgery.dmi (#69543)
About The Pull Request
Shadowpeople
brain now holds their healing properties.
while possible to extract the brain and put them in another species, the burn-in-light downside really makes it a lot more worth it to just stay a shadowperson and enjoy their other benefits than to swap.
Now use burning eyes from nightmares instead of an unsprited nightvision granting eyeball.
surgery.dmi split up
surgery_ui.dmi holds zone selection ui things for research
surgery_tools.dmi holds surgical tools
/organs folder holds organs.dmi, and species specific organ files for flies and shadowpeople
flies don't put in their random organs because of dmi memes, all their UNIQUE organs will be in the .dmi
Why It's Good For The Game
moving behavior onto the organ moves us closer to species as a blueprint, not species as something that magically grants immutable bonuses.
surgery.dmi is poorly described, holds many different things, and conflicts often because of it.
Changelog
cl
add: Shadowpeople now heal from their brains! Their brain-tumor-thingy!
code: split up surgery.dmi
/cl
* Shadowpeople's healing is from their brain, splits up surgery.dmi
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* medical/security modsuit updates and modules (#69194)
tweaks the colors on the security modsuit to be lighter, i think i did that on the original pr but it got reverted due to merge conflicts
makes the standard quick carry module have nitrile level carrying instead of latex level
environmental bodybags are now always pressurized
adds medical and security hardlight bags, which are environmental bags you can use to move people through space, security ones can be sinched to prevent escape
adds a medical version of the prisoner capture module, for patient transport, prisoner capture and patient transport now use the medical/security holobags, medical one deploying them faster. when you move too far out of range the holobag dissipates
adds a defibrillator module, extends shock paddles
adds a thread ripper module, this module temporarily rips away the matter of clothing, to allow stuff like injections, surgery, defibrillation etc through it
adds a surgery processor module, essentially a portable surgery computer like borgs have
fixes a bug where you can unwield defibrillator paddles just after starting the do_after to defib onehanded
fixes a bug where the modsuit gps would have a broken name when renamed
* medical/security modsuit updates and modules
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* bodybags / crates will now be explicit about what is ontop of them if you can't close them due to other bodybags / crates being in the same tile. (#69545)
bodybags / crates will no longer yell about closets being in the way when trying to close them ontop of other bodybags / crates
* bodybags / crates will now be explicit about what is ontop of them if you can't close them due to other bodybags / crates being in the same tile.
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Fixes storage mass transfer being generally broken, adds mass transferring onto griddles (#69084)
* - Fixes storage mass transfer
- Brings some sanity to storage procs
- Implements a griddle feature that never was
* Uncomment this
* Right-click attack fix
* Scoop fix
* Smartfridges use silent
* Restores some lost checks
* Fixes storage implants
* Fixes storage mass transfer being generally broken, adds mass transferring onto griddles
* update modular
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Buff regular windows more and place them on Metastation (#69246)
The feedback on the previous version of this PR made me realize that the windows weren't buffed enough to be seen as actual companions to regular walls. This PR buffs the windows to the level that the old reinforced windows were. They have 50 melee armor, take 14 hits to destroy and deconstruction consists of screwdriver -> crowbar -> screwdriver
This pull request changes all reinforced windows in low security areas on Metasation with regular windows.
Areas with normal walls that still have reinforced windows:
Arrivals
Departures
Security stations
Because the regular windows are buffed so much in this PR they are arguably stronger than the regular walls (its easier to smash the windows, but the walls take less tool time) so I don't really see any reason to not place this on almost every place with regular walls
* Buff regular windows more and place them on Metastation
Co-authored-by: Vincent <CPTANT@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
* [s] Fixes bluespace bodybags allowing you to delete them when you're inside of them (#69529)
Fixes bluespace bodybags allowing you to delete them in the round
* [s] Fixes bluespace bodybags allowing you to delete them when you're inside of them
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Fix lockers giving no feedback when trying to close them with another locker inside (#69172)
Fix lockers giving no feedback when trying to close them with another locker inside
You also no longer try to toggle the lock status when you fail to close an open locker. I think this was a bit weird behaviour because changing the lock status of an open locker doesn't really make sense and only resulted in confusing messages.
* Fix lockers giving no feedback when trying to close them with another locker inside
Co-authored-by: Vincent <CPTANT@users.noreply.github.com>
* Necropolis Tendrils now need to be interacted with to drop their loot, and multiple people can receive multiple chests. (#69193)
Tendrils no longer immediately drop their chests, they will drop it once you have used an empty hand on the collapsing tendril. You can only spawn a chest once, but every unique mob that interacts can spawn one chest.
* Necropolis Tendrils now need to be interacted with to drop their loot, and multiple people can receive multiple chests.
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Refactors operating tables to be event driven + QoL + Unit Test (#69015)
* Event driven table
* Operating computer fix + loosening of check
* Unit testing
* IT NEEDS TO BE FORCE MOVE YOU GOTTA CLIMB TABLES AAAAH
* Migrated patient to carbon instead of human
Has no real bearing on the experiments tbh
* DNAs can be null apparently
* Simplify replacement code
* Move comments
* Refactors operating tables to be event driven + QoL + Unit Test
* Refactors operating tables to be event driven + QoL + Unit Test
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Removes ComponentInitialize()
* Fixes a leftover merge conflict marker
* Fixes the oversight that came from the upstream merge skew
* Fixes all of the instances where we used ComponentInitialize() when we shouldn't've been
* Fixes CI being broken because of the HEV suits
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Replaces the mood component with a mood datum
* Fixes merge conflicts and updates all of our mood events to use the new mood datums
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Fixes 118(give or take) cases of mapload not being passed to initilaize (#69107)
fixes 114 cases of mapload not being passed to initilaize
* Fixes 118(give or take) cases of mapload not being passed to initilaize
* Fixes a lot (give or take) cases of mapload not being passed to initilaize
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* [GBP No Update] Perish, individual logging runtime (#69024)
missed 2 or 3(lol it was more when I look back at the files), LOG_GAME tags on the log_message line, and did some cleaning up since i was looking through every log_message again
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
* [GBP No Update] Perish, individual logging runtime
Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
* Moves sinks' layer to above the object layer (#68964)
This PR moves sinks to layer 3.2 as opposed to 3, the object layer.
Sinks are coded in with a pixel displacement and kitchen sinks are large enough for the collision check to fail if the sink is against a solid structure on an above layer, such as a window or an airlock.
Another big issue is that it looks bad
This is at the cost of 3 pixels appearing on top of a window if placed facing south against one, so this isn't a complete fix to the aesthetic of it, the primary focus of the PR is to make the sink interactable, and even then I believe it's a better trade-off:
* Moves sinks' layer to above the object layer
Co-authored-by: Pepsilawn <reisenrui@gmail.com>
* Adds QM to authority & conspiracy phobias, QM's bedsheets will now make you dream of authority and SILVERY IDs (#69037)
Adds QM to authority & conspiracy phobias
* Adds QM to authority & conspiracy phobias, QM's bedsheets will now make you dream of authority and SILVERY IDs
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Allows non-human bodies to spawn in the morgue at roundstart (#68867)
Adds a configurable probability for the cadavers in the morgue to spawn as nonhuman species.
* Allows non-human bodies to spawn in the morgue at roundstart
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Concentrated barbers aid can give hairless species hair + fixes hair updating once and for all (probably)
* Update code/modules/antagonists/thief/thief.dm
* Update code/modules/mob/living/carbon/human/species_types/felinid.dm
* Concentrated barbers aid can give hairless species hair + fixes hair updating once and for all (probably)
* yes
* Update _compile_options.dm
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Fixes temporary_pollution_emission runtime from null turfs
* Space can no longer have smoke on it!
* Updates many pollution procs to use snake_case
* Converts more pollution procs to snake_case
* [MDB Ignore][Bounty][Complete Refactor] Papercode Redux: Too Many Damn Files <Map Conflict Edition>
* Fixes merge conflicts and compilation errors, alongside fixing the joker card to make it fully functional again
* Fixed a bunch of info variables in map files
* Alright this is why I wanted this merged yesterday
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Hotspots no longer emit pollution
* Liquid hotspots shouldn't create pollution either
* Bonfires shouldn't create smoke on CentCom, because it likely is in a place where atmos won't be processed anyway.
* Removes Single-Bedsheets Spawning In For Double Bedsheets (#68777)
Hey there,
Apparently, one line of this was lying around in the randomizer for the double sheet spawner, which shouldn't be the case. I replaced it with what I believed was the original intent (a normal white double bedsheet), as well as some formatting.
* Removes Single-Bedsheets Spawning In For Double Bedsheets
Co-authored-by: san7890 <the@san7890.com>
* Buffs regular windows so they can start replacing reinfoced windows in low security areas (#68817)
Buffs windows to 100 health with 30 melee armor so toolbox takes 10 hits
* Buffs regular windows so they can start replacing reinfoced windows in low security areas
Co-authored-by: Vincent <CPTANT@users.noreply.github.com>