CEV-Eris
CEV-Eris copied to clipboard
Walls 2: Electric Boogaloo
About The Pull Request
This is very work-in-progress PR that initially came to be as an alternative way of drawing 3/4 wall sprites, Intended to make a fancy wall style that one of our downstreams came up with actually functional, and spriter experience with making new walls better. For one, time of making a wall style for cyberspace is not a happy memory for me, but changes in this PR should make such process a whole lot easier in the future.
This is how downstream church walls look on Eris:
(screenshot is somewhat outdated, window corner looks better now)
We won't be having these walls added anywhere with this PR, it just makes them possible, not replaces any textures.
Sprite sheets looks like this now:
Visualisation of internal logic:
While implementing and testing all that, however, I've been constantly reminded by runtime errors that we have infinite loops and some messed up recursion in turf code (unrelated to sprites) and it annoyed me one time too many,
So I've changed a bit of internal logic there, eliminating runtimes, unused variables, and marginally improving performance of the whole thing. After discussing this with Handyman, I've also went ahead and ~out of spite~ removed material walls, made low walls a subtype of regular walls with full-tile windows baked in (code-wise), and (de)construction process simplified.
This mostly works, but some parts of wall/turf code are yet to be rewritten (thermite melting and whatnot), new low walls need to work with atmos better and with 100% reliability, and there are some more optimisations to be made.
And as such, this PR is here as a draft, in case if someone wants to check on ~50k diffs here or offer an opinion.
Why It's Good For The Game
Not having a proc overwrite spaghetti with infinite loops in the code should be pretty good. Slight performance improvement. Merging low walls with floor and windows should cull 5000+ objects from the map. Not that big of a deal, but still nice. Making new walls is much more straightforward process. Not happens often, but still.
Moving on from bay12 procedurally colored material walls might be a tad controversial, even if this feature was used by literally no one, but ultimately for the best too.
Testing
Changelog
:cl: add: Added new things del: Removed old things tweak: tweaked a few things balance: rebalanced something fix: fixed a few things soundadd: added a new sound thingy sounddel: removed an old sound thingy imageadd: added some icons and images imagedel: deleted some icons and images spellcheck: fixed a few typos code: changed some code refactor: refactored some code config: changed some config setting admin: messed with admin stuff server: something server ops should know /:cl:
There are some unrelated fixes in snacks.dm, which should be in a separate PR (and they will be), I just needed this crap to stop runtiming every time I launch a local server.
this should be a massive increase in explosion performance if it fixes the underlying shitcode of turfs and walls that cause massive tick usage.
Test merging this.