changes:
Atom types can now define custom adjacency code for the smoothing system.
Walls now draw using the generic icon smoothing system.
Walls now pre-bake colors into their icons instead of doing it client-side with the color var.
Walls can now use the SSoverlay appearance cache; wall icon updates should be faster.
The "rusty" wall type now actually works.
Smoothing now uses mutable_appearance instead of image in some places.
Should be a bit easier on clients, though I haven't done profiling.
This PR breaks 510 compatibility.
Adds an unique type of meat to the cavern dweller, with hyperzine, giving people a reason to hunt them down like carp. Also, replaces the old sculping block sprite with one that shares the same color of our mineral walls.
Adds wielded sprites for the assault rifle, bullup carbine and the AM rifle. Empty sprites for some pistols and also fixes the decloner dealing no damage at all.
Hoists now release hoistees if they wriggle out somehow. Shouldn't happen anyway, but consistency_check should handle any odd shenanigans.
Silicons should be able to be hoisted. Buckling wasn't anchoring them, for some strange reason.
Fixed a bad message, where [user] was used instead of [usr].
You can't directly unbuckle people from hoist hooks.
Fixes an issue where the crew monitoring map would say it was unable to connect to TCOMs when there was no one with suit sensors on but it could still connect to TCOMs.
Ports a new type of reference from bay: weakrefs.
They validate type like hard-refs, but don't block GC like soft-refs. Performance-wise are worse than both, but generally more convenient than softrefs.
Reduces the damage taken from shocks, so people won't be husked by bumping into any airlock. Also adds the features of human/electrocute_act to the human proc, so, there is no need to call the carbon proc.
Fixes#3015,
fixes#2993,
fixes#2989,
fixes#2987,
fixes#2982,
fixes#2964,
fixes#2828.
Fixes the SMES of the Derelict showing up in the station's list.
PS: I'm aware of the issues with the PAPs, but it will have to wait a
bit.
Adds hoists! Traverse Z-levels in style!
Use a hoist kit to deploy it on the same tile as you, in the direction you're facing.
Drag an object or mob to the hoist clamp in order to attach them to it.
Left click on a hoist to move up or down, depending on its current direction. This will also pull anything attached to the clamp along with it.
When the clamp is blocked and can't move up or down further, it will automatically switch direction.
To disconnect someone (or something) from a clamp, drag the clamp to the tile you want to put them on. It must be within one tile of both you and whatever is attached to the clamp.
When you're done using a hoist, you can collapse it back into a hoist kit with the Collapse Hoist verb, for easy transportation.
Hoist kits are not available on the map, so they have to be spawned in.
It is preferred to use hoist kits instead of directly spawning a hoist, where possible, when testing.
changes:
Body marking icons are now cached in SSicon_cache.
Renamed the body-hair cache (used only by Resomi) to make it more clear what it is.
Humans now use SSoverlay for applying overlays, though they force-compile instead of waiting for it to tick.
Fixed a bug where getFlatIcon() did not work properly with SSoverlay overlays.
Canes and concealed canes have the same size, also fixes and re-adds their old update icon proc. And also, probably fixes beepsky attacking the hos dog.
changes:
Parallax now actually moves properly on Move().
Parallax movement can now be toggled as a preference.
Merged all movable/Move() overrides for performance reasons.
Turns connecting_turfs into an associated list. From testing a few years ago, assoc lists performed quite well when it came to key-access at runtime. This then allows us to make the loop at ConnectionGroup.dm:112 into a stable one, complexity wise. Only O(world.view^2) instead of O(connecting_turfs.len * world.view^2).
All references to connecting_turfs were edited to match this.
changes:
Replaces a lot of in-world loops with more specific lists.
Recipes are now copied in SSmachinery/Recover()
Fixed bad sorting on all_areas list.
Added skeleton Destroy() to SMESes as they did not have one and are failing to GC.
Seems to shorten SSatoms init a bit, maybe from removal of in-world in MULEs?
changes:
Fixed a bug where non-clothing custom loadout items would not spawn.
Fixed a bug where latejoining AIs would spawn at CC / Cryo instead of the core.
Added more SSjob debug statements.
Fixes#2942.
changes:
Openturf now uses ~200 MB less memory when sunlight is enabled.
Openturf now handles recursive OO copy better.
Lighting objects now update their existing color list if they can instead of creating a new one each time.
The sun can no longer fall out of the sky.
Openturfs should be a little gentler on clients.
Openturf darkening factor can be more easily changed.
Reset-Openturfs no longer hangs SSgarbage.
changes:
Lists are no longer created every time a movable moves (!)
Lists are no longer created every time a datum is destroyed (!)
Observation events now properly clean up references.
Removed the unused task_triggered event.
changes:
Holomaps now use an area flag instead of a proc to determine which areas do not draw on the holomap.
The supply shuttle once more has a roof.
The supply shuttle's landing zone is now dynamically lit.
Turfs only generate visibility updates on Initialize() after mapload - visualnet is not initialized by then anyways.
Merged /datum/gas_mixture/(init) into /datum/gas_mixture/New().
Converted a ZAS proc into a macro.
Made ZAS attempt to remove a turf from a zone instead of always rebuilding it in a certain case.
Macroized two misc procs.
Fixes#2947.
changes:
The station's holodeck is now dynamically lit.
Improved quick-pickup's tick checking & converted to assoc lists instead of if (thing in list).
Fixed an edge case where openspace overlays would not properly cleanup on forceMove to a non-turf.
Fixes#2941.
Fixes several reported bugs. Among them: #2910, #2838,#2664, #2610 (Alb), #2520, #2345. These were tested and seemed to be solved. If the issue still persist during test, please re-open as required.
Minor edits to several systems and rooms.
Fix the most common RTs from Sunday's testing.
Also works on orebags. Limits their capacity to 200, as anything higher than that breaks the fancy inventory system something awful. Maybe I should write a UT to test and confirm this. Expanding: I don't think TICK_CHECK in inventory procs is a good idea, without fully implementing a non-fancy storage subclass. Non-fancy would just be speedy without all of the fancy inventory orientation bullshit. But CBA to do that now and I'm not sure if it's worth it for the edgecase of drone satchels atm.