Removed update_values(). RIP, shine on you CPU diamond.
Removed get_moles_by_id and get_archived_moles_by_id, all moles are now accessed directly to reduce call cost.
Added set_temperature and set_volume procs which recalc pressure when temperature or pressure change.
Heat_capacity is now a var updated when gases update.
Modified adjust_gas to use set_gas, modified set_gas to alter heat_capacity, total_moles, and pressure as needed.
Moved gas_mixture gas numbers to a list which is connected to a global gas_datum list, like with reagents.
Modified some maths procs to be more sane, added adjust_gas and set_gas to help with processing.
Added a modular system for gas flags - gases can now be marked as fuel and oxidiser with a flag, logged with a flag, scanned with a flag, etc.
Changed scrubbers to use a list of scrubbing gases rather than a set of vars.
Made miners and xenoarch effects more sensible - they now produce gas by ID, not manually.
Made turfs' starting gases into a list, removed turf gas number vars.
Major code improvement that has been long overdue. The changes have been
thoroughly tested and everything appears to be working fine
- Move catwalks from turf/[retarded path]/catwalk to
obj/structure/catwalk. A dm file has been added to that effect
- Remove iscatwalk() helper check (not needed for an obj/)
- Lattice code has been used -to great effect- to recode catwalks. No
more hardcored nonsense to "make it like there's a space tile
underneath", now there IS space underneath. This should also fix trace
gas problems often witnessed during Derelict plasma floods
- Use relativewall method. There should have been no functional changes.
Catwalks update when new catwalks are added (not when surrounding
catwalks are destroyed, but it still seems logical)
- Add a in-house ex_act system to boot (to compensate for the fact
catwalks no longer use floor's ex_act). The catwalk is either destroyed,
replaced with lattice (add lattice at location, delete catwalk) or
unscathed
- Remove a lot of spaghetti code that has creeped up into ZAS/Atmos
systems and even into tile painter code since catwalks no longer run ZAS
loops and aren't considered turfs anymore
- All maps have been updated to the new catwalk system (otherwise the
map doesn't load, duh)
- Bit of spaghetti code in cable.dm (both item and structure) since
until then cable was NEVER laid on "objects". Works as intended
- Space has been changed to intact = 0. There's no reason for space to
be "intact" because there is only one version of space tiles, and it
fucks with wire placement
Confirmed working :
- Space automatically appears under the tile, catwalks tiles thus act
100 % like space tiles without hardcoding
- Construction and deconstruction works flawlessly. You do need to
precisely click the catwalk grating to deconstruct since the obj/
catwalk uses transparency correctly, but lo and behold, it's a feature
- Explosions function as intended when targetting catwalks (lots of hole
at the center, pepperoni at a distance)
- Cable-related stuff working (laying cable on catwalk, having cable on
catwalks in general)
- Boxstation, Defficiency and Metaclub updated
- Include list updated
Everything should be functional and was tested, but please outline
anything that looks like it'd work badly