* fixes a typo during window construction (#70087)
replaces 'from the floor' to 'to the floor' since you're building the window, not deconstructing it.
* fixes a typo during window construction
Co-authored-by: coldud13 <coldud13@users.noreply.github.com>
* Adds the installed message phrase for voice analyzers to logging (bonus runtime fix) (#70066)
* Adds the installed message phrase for voice analyzers to logging
Hey there,
Sometimes, it's CBT to figure out what exactly made a bomb go off, especially when a voice analyzer is involved. Now, when a voice analyzer is involved in TTV Bomb/Grenade explosions (already logged), it will also output the recorded phrase when present.
To do this, I just span up a quick `isvoice()` macro define to ensure that we would get the variable, and it would just append the message that we were already spitting out into logs. I rewrote how grenade logs currently operate a bit, let me know if I accidentally omitted something critical.
* Adds the installed message phrase for voice analyzers to logging (bonus runtime fix)
Co-authored-by: san7890 <the@san7890.com>
* Fixes junkmail important documents being invisible (#70054)
* Fixes junkmail important documents being invisible
Co-authored-by: pizzie11 <arandom11111@gmail.com>
* Demoralization fixes (#69924)
* Demoralization fixes
Blind mobs will no longer be demoralized by posters and graffiti.
Illiterate mobs will no longer be demoralized by the words on posters.
Mobs will no longer be demoralized by posters & graffiti if it's too dark to see them.
Also makes can_read use reading check flags, one for literacy and one for light.
* Demoralization fixes
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Planks create barricades on doors/windows and can be crowbarred (#69676)
* Wooden planks can be used on doors/windows to barricade it, using a can_barricade Element.
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* Planks create barricades on doors/windows and can be crowbarred
Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@ users.noreply.github.com>
* fixes firedoors trying to do stuff while being qdel'd (#69891)
* Firedoors now unregister adjacent turfs when qdel'd.
* fixes firedoors trying to do stuff while being qdel'd
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* fixes ant runtime (#69890)
* Checks for caltrop component's existence before seeing what it does.
* fixes ant runtime
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* The Tastening (makes multiple adjustments to taste text, not very exciting) (#69900)
* The Tastening (makes multiple adjustments to taste text, not very exciting)
Co-authored-by: dopamiin0 <112458553+dopamiin0@users.noreply.github.com>
* Fixes debug omnitool set to screwdriver mode not stabbing eyes. (#69918)
* Fixes debug omnitool set to screwdriver mode not stabbing eyes.
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Adds more gulag logging (#69934)
Hey there,
One thing that's been frustrating me over the last few months is that we have absolutely no data on how long it might take the average person to complete any given gulag sentence. This tends to matter a bit for administrative matters, and especially when there's a disconnect between policy and players in regards to how long any given point-sentence might take a player to complete. This should hopefully allow us to collect more good data in these affairs.
admin: Prisoners returning from the gulag as well as reclaiming their items from the gulag item reclaimer are now both logged.
* Adds more gulag logging
Co-authored-by: san7890 <the@san7890.com>
* 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>
* sanity check for ai_tracking after tgui input (#69885)
* Adds a ? to check for a weakref, a minor sanity check for AIs who keep their TGUI tracking panel open.
* sanity check for ai_tracking after tgui input
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Fixes Bread Smite Causing Some Fucked Up Shit (#69853)
* Fixes Bread Smite Causing Some Fucked Up Shit
Hey there,
So basically, when you had the bread smite done on you, you were _just_ added to the contents of the bread. Nothing more. That means that you could pick it up. You couldn't add it to your bag (it would always return back into your hand(?)), but it would create some weird oddities that was just cursed in general. Let's make it so you can't hold the container that you are contained within by giving you HANDS_BLOCKED.
* actually we don't need the named arg
lets get rid of the cursed thing entirely
* removes sanity check
* we do a bit of component trolling
THIS TOOK ME TWO HOURS FUCK YOU
* removes cruft comment
* cleans up code a teeny bit, upgrades to incapacitated
* wait that named arg is still there wtf
* Review Time
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* wrong operator and wrong order of operations
* null out the container
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* checks to see if container is qdeld
* weakref time
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Fixes Bread Smite Causing Some Fucked Up Shit
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Add Alt RMB and Ctrl RMB screentips (used for Simple Rotation) (#69726)
* Add Alt RMB and Ctrl RMB to screentips
* Add Ctrl and Alt RMB screentips to defines
* Add Alt RMB and Ctrl RMB screentips (used for Simple Rotation)
Co-authored-by: Tim <timothymtorres@gmail.com>
* Fixes runtime when removing beakers from a chem grenade (#69878)
* Fixes runtime when removing beakers from a chem grenade
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Fixes RD Suit Storage Oversight (#69847)
* The RD's suit storage unit now has an oxygen tank like every other one does.
* Fixes RD Suit Storage Oversight
Co-authored-by: Jackraxxus <60418544+Jackraxxus@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>
* Fixes inconsistencies in engine thrust (#69826)
current_engines and initial_engines were actually their thrust power, which I was unaware of because of undocumented vars.
I renamed the, documented them, and fixed them.
* Fixes inconsistencies in engine thrust
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Readds shoe stealing shortcut (#69792)
* Readds shoe stealing shortcut
Readds the shoe stealing shortcut! Everything is the same, you must have
legs selected, the target must be lying down, and now you must have the
slap emote enabled.
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Readds shoe stealing shortcut
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
* Captain 2.0: Midnight Blue Edition! (#69842)
imageadd: Resprites all of the captain's clothes!
* Captain 2.0: Midnight Blue Edition!
Co-authored-by: Imaginos16 <77556824+Imaginos16@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>
* Fixes some internal spelling of "auxillary" (#69789)
Today I tried searching for the code related to the auxillary base location remote.
Today I learned that I didn't know how to spell "auxiliary".
Fortunately, I learned that two other people made this same mistake, so I don't feel stupid.
Searching for other common mispellings of the word didn't show anything, and there are only so many ways to spell it wrong.
* Fixes some internal spelling of "auxillary"
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fixes a couple simple issues with interactability (#69762)
first things first, back when LemonInTheDark changed the interact_range code he did a slight modification that broke the AI cards, namely, he did this (not saying its a bad change, it is actually a good change, just mentioning what change caused the issue im fixing now):
now, his change does make sense, since he changed the range default to 0 instead of 1, however "null" is also used as a range, specifically for AIs, now this normally isnt an issue for the AI itself, as the AI generally gets a TRUE in its interaction checks before it gets down this deep (machines have a bypass specifically for AI), but there is one situation in which it does go this deep: AI Cards, when in an AI card the AIs interaction range is set to 0 and their interaction is disabled, thereby making it impossible for them to interact with anything, now when a player opens the card UI and enables the AIs ability to interact, this sets their range back to null, aka unlimited, the issue now however, is that since "null" is treated the same as "0", and AIs in cards dont hit the same bypasses an AI core does, Lemons change to submit a false return for 0, is also submitting false for null, meaning the AI card cannot interact with anything except the tile its on, despite having null/unlimited range....
fixed by changing the null value to infinity where it is used
additionally my fix of can_interact() code apparently had the unintended side effect of not allowing rotations of machines if theres no power, i missed this entirely because thats such a specific situation, since you try rotating with APC power in most cases, it also didnt affect most machines, that said the fix was simple, just changed the proc being called to only check distance, not power. fixes#61852
and last but not least, fixes some code with the syndie bombs interactability, namely removes a redudant section, and adds a check for range, turns out there were no checks for range so you could in theory open the UI and walk away and then activate it from another location, so added a quick check to ensure you actually CAN interact with it before letting you push buttons in the UI
* Fixes a couple simple issues with interactability
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
* Improves sleeper code and makes syndie sleepers deconstructable (#69457)
* Improves sleeper code and makes syndie sleepers deconstructable
* Improves regular Sleeper code by a lot considering last time they were touched was years ago, removes the entirely unused sleep_console, and lets Syndicate sleepers get deconstructed regardless of mapload.
* Also finally lowercases the dm file.
* watch this swag
* no clue if this will work but I'm gonna try before renaming
* rename, and removal of syndie sleepers
Removes syndicate sleepers from non-syndicate maps. Now they only exist in the infiltrator, battlecruiser, and syndicate lavaland base.
* small mistake on snowdin
* re-replaces sleepers with proper ones
* review comments
* i mixed it up with chem_buttons
* Update code/game/machinery/sleepers.dm
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* Update code/game/machinery/sleepers.dm
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* Improves sleeper code and makes syndie sleepers deconstructable
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* ADDITIONS
* Additions with icons now
* obsolete removal and replacement
* moves next step items, leaves myself notes on the last few cleanup stuff
* dress additions
* pants fixing
* skirtfixes
* yet more fixe
* Add flag reminder
* easier to locate comments
* rename files and add new digi greyscales
* jsonery
* gags shortdress
* god ddanit sitsfuc
* colore
* strapless fixe
* conflict fix and adding new stufs
* Better Cableknit
* pentatata
* these go into the pants PR
* add ADDITION to comments
* consistent spacing in comments
* lame useless comments goodbye! goodbye!
* Greyscale file as Defines
* i love snake_case :) (This isnt ironic I do I just forgot it earlier)
* oops ctrl-f doesnt change filenames
* damn you blueshift damn you!!
* fix that pesky runtime
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* Mimes can now hold a baguette like a sword by right clicking it (#69592)
* hon hon on your guard hon hon
* Update bread.dm
* yaey
* didn't annotate lints....
* Mimes can now hold a baguette like a sword by right clicking it
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>