I had a brief discussion about Goto statements, then on a whim checked
to see if we had any. We had some Gotos that are legally old enough to
apply for a learner's permit in my state. I was bored so I decided to
put them out of their misery.
This has zero reason to exist in our code base. We have no procs or
variables tied to this. I removed it to make future modifications
cleaner.
---------
Signed-off-by: Cody Brittain <1779662+Generalcamo@users.noreply.github.com>
For a robust crafting system, I need a new materials framework.
For a new materials framework, I need to clean up reagents.
To clean up reagents, I need to pare down foods from reagent holders.
To pare down foods from reagent holders, I need to port edibility
components.
To port edibility components, I need to port processing components.
To port processing components, I need to port tool behaviors.
This is all back-end code, no new features or functionality from this.
Medscans can now be attached to a rollerbed and viewed up to 2 tiles
away. Currently, it only allows for medscans specifically, so no records
or misc papers.
Due to the number of attachments, rollerbeds now use a radial menu to:
- Remove scans
- Remove vitals monitors
- Remove IVs
- Set IV transfer rate
This is to avoid the shuffle of sequentially removing each attachment
until you either collapse the bed or remove the attachment you want.
Additionally, if the rollerbed is collapsed with attachments still on,
it removes them to hand/ground.
Starting an IV on a patient remains the same (click drag onto patient).
Locking the wheels is still alt+click.
https://github.com/user-attachments/assets/496e310c-8d34-4031-88c1-ab0414f85d76
Progress on DMDocs. PRing progress so far so there's not one mega PR
later with 1500 affected files.
I want my goddamn highlight text on what all these goddamn procs goddamn
do goddamnit. >:(
No actual code change anywhere in this PR, only comments.
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Extends and reworks how various extended information text (desc_info,
desc_build, desc_upgrades) are handled to make object interactions and
mechanics A.) much more clearly documented in-game and B.) much easier
to support from the back-end.
Almost certainly a candidate for test merge.
Assembly/Disassembly instructions are noticeably sporadic, largely due
to our current lack of a unified framework. That's a future thing I'd
like to attack so that it can be handled programmatically, but for now I
only targeted the biggest culprits as I came across them.
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
## About PR
- Introduces a dropship-esque Intrepid, making it feel more like a
public transport in a overpopulous city, while trying to avoid
chokepoints.
- Ports the CM's double seats.
- Removes access restriction from Intrepid's side airlocks, to be in par
with the main airlock.
- Deletes some rogue pipes near hangar bay.
- Re-adds a small oven which was introduced in #16449. With slight
tweaks and different colour palette.
This is probably an awful way to port CM's vehicle seats, but in testing
only issue I've found is: when the chair occupant punches someone, their
own buckle off-set will get reset. I am not sure why.
The way the double seats work is, it'll let anyone pass through as long
as both of the seats aren't occupied at the same time.
## Images
<details><summary>Details</summary>
<p>

</p>
</details>
---------
Signed-off-by: Kano <89972582+kano-dot@users.noreply.github.com>
Co-authored-by: hazelrat <83198434+hazelrat@users.noreply.github.com>
Refactored (second passage) how movement works, now it's mostly in line
with TG handling and avoids calling 3 gazillion Cross() Uncross() etc.
on every atom in a turf.
Fixed EMP protection from species not actually protecting (this includes
the surge prevention for IPCs).
Fixed EMP 3D calculation runtiming because I forgot to make the value
absolute and it was doing the square root of a negative number.
It's now possible to queue the round to start with the Start Round verb
even while the system is initializing, for an even faster pain train to
enter the round and test things.
Refactored mousedrag procs, added signals, some safeguards, did some
cleanups around, renamed them to make a little more sense. Mostly put in
line with TG's code.
Fast clicking and releasing with a drag, depending on the grace period
and how fast it is done, can be counted as clicks, to aid in combat
scenarios where you spamclick.
This PR is mostly about fixing body/cryo bag layering issues.
Currently live and annoying to try and treat around:

Currently, bags are are below roller beds when first deployed. If
buckled and unbuckled, they are then above, because of the + 0.1 on
buckling.
If buckled on a roller bed, dragged, and then unbuckled, they are then
above player mobs, because of the `layer + 1` on roller bed `Move()`
proc, which also doesn't get reset. I removed this +1 on Move() because
it was older than the +0.1 and seems to serve the same purpose.
The +0.1 did not have a method of reverting to the original buckled
atom's layer, so I added a var and check to handle that.
I also changed bullet casing's layer to `BELOW_TABLE_LAYER` with the
intent of not having them on top of stasis bags and roller beds, because
it causes issues as someone trying to treat wounded after a firefight.
Changing bullet casing's layer does have a consequence of putting
bullets underneath, for example, the soil in the public garden. Putting
the soil on `BELOW_TABLE_LAYER` would fix this, but with the consequence
of having the bushes be on top, making clicking the soil difficult for
farming purposes. Adding bushes to that layer causes consequences with
side window layering (like on deck three outside the public lounge.)
For this PR I only adjusted the bullet casing layer. I'm sure it has
other unintended layering interactions. Let me know if it would be
better to leave them where they are or on some other layer.
Current changes in PR: Bullets under soil/roller beds/stasis bags.

(Example of why making bullets on top of soil is difficult) Screenshot
shows both bullets and the soil being `BELOW_TABLE_LAYER` with bushes on
top, as a reference. PR Currently has bullets underneath soil.

Refactored the projectile code, mostly in line with TG's now.
Refactored various procs that are used or depends on it.
Projectiles can now ricochet if enabled to.
Damage falloffs with distance.
Homing projectiles can now have accuracy falloff with distance.
Projectiles have a maximum range.
Muzzle flash is configurable per projectile.
Impact effect of the projectile is configurable per projectile.
Accuracy decreases with distance.
Projectiles work with signals and emits them, for easy hooking up from
other parts of the code.
Meatshielding is now less effective .
Impact sound is now configurable per projectile.
High risk.
Refactored hitby to be in line with TG's version.
Refactored item weight defines to a more clear naming scheme, also in
line with TG's version.
Refactored how the movement bumps are handled, ported signals to handle
them, in preparation for the movement update.
Fixed disposal hit bouncing the hitting atom on the wall.
Items do not push other items anymore if they are tiny.
Unfortunately most of the map is kind of unplayable or not mapped in
mind with stairs being untraversable for roller beds or wheelchairs.
Remapping every map to work with this mechanic is also not something I
am interested in.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Made relaymoves uniform in function header and non sleepable.
Improved IPC/borg recharger, made it time constant.
Tweaked client/Move() to avoid a range(), moved a relaymove around to
fix a bug, some minor tweaks.
Fixed IPC/borg recharge station not taking the IPC/Borg in on bump.
Ported SSThrowing from TG, to handle throwings.
Updated movement system to the latest iteration, made it a datum as per
latest iteration.
Updated pass/hit handling of atoms, introduced pass_flag_self to
determine what atoms allow to pass.
Moved procs and defines around to make them more organized.
Standard examination was in an examine box. This makes it so fluff
examines are also in a box.
Fixes#18438
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
Refactored fire_act() to be in line with TG version, removed useless
parameter, added signal, made non sleepable and forced to call parent.
Added atom_act.dm file for the various *_act procs.
Revival of #17075. Adds roller bed racks which can hold 4 collapsed beds
for organisation. Replaces the beds that spawn on the medical bay tables
with racks of the corresponding amounts.
Allows you to alt-click rotate bar stools. I'm tentatively calling this
a bugfix because they're *already* directional, but can only be rotated
my moving them.
Our SSOverlays system is outdated, and is likely the cause of many of
the issues seen in #18895. It has also been linked to a massive server
performance decrease.
This brings an updated system from Baystation, hopefully with speed
increases.
Should be testmerged, ideally with #18895.
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
Unified most of the procs into one definition, so there are no duplicate
around the codebase.
Marked some of the above as overridable if a good enough case can be
made for them (eg. external dependency or unlikely to be used).
This is part 1 of a project to, eventually, bring the render planes
system from /tg/ and bay into Aurora. This is a prerequisite and blocker
for many things the development team and community want to have, and
this was long overdue.
Many objects have been re-assigned layers, which are now thoroughly
defined. Maps have had their custom layer defines purged, as we should
be moving away from this in favor of saner definitions in the base
items.
This should be a test-merge due to the sheer amount of layers changed,
which will very likely create issues that I cannot possibly discover and
debug in a reasonable amount of time myself.
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>
* SDQL2 update
* fix that verb
* cl
* fix that
* toworld
* this is pointless
* update info
* siiiiick..
* vv edit update
* fix that
* fix editing vars
* fix VV
* Port the /TG/ globals controller.
* part 1
* part 2
* oops
* part 3
* Hollow Purple
* sadas
* bsbsdb
* muda na agaki ta
* ids 1-15
* 16-31
* 41-75
* bring me back to how things used to be before i lost it all
* the strength of mayhem
* final touches
* cl
* protect some vars
* update sdql2 to use glob
* stuff?
* forgot that is not defined there
* whoops
* observ
* but it never gets better
* a
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
* Refactored do_after to use a flag-based system for options
* More flags
* Ditto
* Use the HAS_FLAG macro
* do_after pass
* Fix burning paper code
* Resolve issues from Fluffy's code reviews
* .
* Initial implementation
* Commented code
* More work for directional handling
* Initial wielding accuracy integration
* Final touchups
* Changelog
* Linter plz
* Alright you prefer this?
* Update code/_onclick/hud/screen_objects.dm
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
* Update code/_onclick/hud/screen_objects.dm
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
* Small fix
* and this too
* Diona now have the icon back, but it's locked to walk and lay down
* Fix buckling direction
* Fucking merge conflicts resolution editor highlighter
---------
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
* after dark
* FIXES
* breakin
* butt
* Update code/game/objects/items/devices/floor_painter.dm
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
* Update code/game/objects/items/devices/floor_painter.dm
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
* Update code/game/objects/structures/lattice.dm
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
* testing 1
* a
* FUCK THIS PRESET!!!
* allah
* OTEMACHI
* tis' done
* Project Exorcism : Sneed's Snairs (Formerly Chuck's)
* Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm
* Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm
* Update stools.dm
* Update code/game/objects/structures/stool_bed_chair_nest/stools.dm
* Update code/game/objects/structures/stool_bed_chair_nest/stools.dm
* Update stools.dm
* Update chairs.dm
* Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm
* inhand fixes
* airlocks (matt has cooked)
fuck
* my cody plays the mamba
* fuck
* fixes layering issue
* airlocks and everything else Please fucking kill me
* underlays
* unfuck blending
* finished replacing old ass shit
* your ass is geass
* conflicts die now
* public fat'wa
* progress on walls and windows
* more mapping
* baltimore accents be like
* minor progress
* monitors
* fire alarms and apc adjustments
* apcs pixel adjustments, final airlock look
* also grilles
* shuttle wall start plus shuttle windows
* starting consoles
* table outlines
* I love broke ass sprites
* fixing the stupid ass exterior walls
* light fuckery
* terminal directionals, external airlocks, table fixes, blahblahblah
* fix 1
* fix 2
* some more fixes
* fix chairs
* basic untested railings and updating colors from atteria
* bridge and some fixes
* removing some artifacts on the new walls
* breaking wood tables and adding 4 wall materials
* fix
* compile & wood fixes
* make the horizon compile again
* railings, firedoors, ATMs, intercomms and tables again
* mapping begins also some tweaks to map view of icons
* full tile steel walls
* i sure hope nothing bad happens
* airlock updates (untested)
* reverts most wall machinery
* skull
* wall coloring
* makes the tg wood chill out
* work on airlocks
* hull consistency
* cause you live forever in the lights you make
* whoops can't show that in a christian manga
* terminals should be on walls and everything's hunky dory now
also i changed the wood stuff as per atteria's suggestion
* fixing airlocks
* fixes
* window resprite, coloring adjustments
* scc hull resprite
* new grilles, frame edits, and borosilicate
* greyscale wood palette improvement
* shuttle windows
* window frame fix
* apc update
* refit and reshaded fire alarms
* mapping icon fixes
* table fixes
* map fixes, platforms and stairs
* updates cutter, new walls and terminals
* mapping fixes
* fix preview
* preview fix stone
* stairs
* initial work for the map
* railing and windowpane fuckery
* new external airlocks
* a
* fix the maps in preparation
* wall object pixel offsets
* air alarms D1
* extinguisher cabinets
* APC DESTROYED MISSION ACCOMPLISHED GOOD WORK
* deck 3: floor decals, APCs, air alarms, fire extinguisher cabinets
* deck 3: fireaxe cabinet
* /shuttle_landmark/distress/blue, move base_turf from map to obj def
* intercom presets
* formatting
* deck 1: floor decals
* deck 2: named area fix (LMAO), signs to use single quotes
* deck 2: floor decals, APCs, air alarms, fire extinguisher cabinets, fireaxe cabinets
* Platforms and stairs!
* grates and bugfixes
* Angled ship walls + grate color fix
* corrects apc anim overlay
* deck 2 and away site fixes
# Conflicts:
# maps/sccv_horizon/sccv_horizon-2_deck_2.dmm
* deck 2 missing grate
* warning stripes
* railings and ledges
* windows and fixtures
* windoorsagain
* airlocks pt1
* windows de-seamed and transparent
* airlocks and pixel offsets
* fixes for airlocks
* more airlock fixes
* presets for ringer, request console and newscaster
* 132
* asfsaf
* kitchen tiling
* thicker freezer tile bevels
* More angled walls
* New shutters and blast doors
* directional corrections
* ops railing fixes
* updated window map things and shutters
* value changes and blast door changes
* Ledges and platforms galore (D2/D3)
* all decks: fix door dirs
* all decks: newscasters, intercoms, requests consoles, ringer consoles
* helm light blue decals to dark blue
* supermatter door dir fix
* fix directional presets (dirs/offsets): newscaster, intercom, requests console, ringer console
* firedoor changes
* deck 3: overlapping wall mountables fixes
* map changes
* airlock changes
* map tweaks
* airlock & stair icons
* various mapping modifications
* Double airlocks + fixing denied states + fixing airlocks on all levels
* Rebase
* directional terminals buttons and lights again, platform tweaks
terminal north facing sprites, atm/food terminal directionals
proper door control and lightswitch directionals (presets still need to be set up, mapping)
re-adds new light tube sprites, again
new sprites for floor lights and the other stuff that got added
adjusted platforms to be recolorable, added light and dark versions, fixed some shading
* missing ERT outfit thingy fix
* floor lights fixed
* deck 3: various small fixes
* deck 1: various small fixes
* deck 2: various small fixes
* fixes
* d2 fixes & multitile door fix
* d2 fixes, remove unused airlock files, button icon fixes, window icon fixes
* make it actually compile, oops!
* make it actually compile, pt2
* CE office camera
* pew pew pew
* pew pew pew 2
* fixes
* deck 3: buttons fixes
* deck 3: button and other fixes
* deck 3: fixes and stuff
* D1 fixes & skrell airlocks
* minor D2 tweaks
* a lot of airlock-related fixes, glass tables, paint sprayer fixes, decal fixes, changelog
* maintenance hatch sprites
* fixing double doors
* flips multi-tiles, fixes multi-tiles, adds desk windoors
* new plastic flaps
* deck 2: a few buttons
* side + middle doors
* created paths for 3-tiles doors
* apply to map the 3 tiles airlocks
* some fixes, windoor alpha
* remove this random ass potted plant
* more map fixes
* holodeck disposal pipe fix
* secure airlock sprites
no code or obj definitions yet
* vault airlock
* vault door fixes
* scc window alpha
* adjusts double door glass, firedoor open state
* adjusts construction states for doors
* remove some defunct icons and fix anims
* assembly stuff
* pharma fixes
* vault door dir
* firedoor smart generation moved to its own proc
* lift doors, d1 fixes
* firedoor smart generation: adjacent wall check
* firedoor smart generation: adjacent firedoor check
* all decks: missing firedoor and other fixes
* deck 2: weird maint stairs fix
* oops
* diona airlock fix
* the shuttle wall gigadeath
* fixes
* some fixes for leftover map item paths, and double lattices
* new diona walls
* more fixes
* and more
* deck 1: fix out of bounds keys
* deck 3: fix out of bounds keys
* runtime 3: duplicate APCs fix
* all decks: make all 3 tile wide doors glass
---------
Co-authored-by: Wezzy <wowzewow@gmail.com>
Co-authored-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
Co-authored-by: kyres1 <noodle.buster31@gmail.com>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: atteria <tarkona@protonmail.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Co-authored-by: DreamySkrell <107256943+DreamySkrell@users.noreply.github.com>
Co-authored-by: naut <nautilussplat@gmail.com>
Co-authored-by: naut <55491249+nauticall@users.noreply.github.com>