Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Walls 2: Electric Boogaloo #8482

Merged
merged 8 commits into from
Jun 14, 2024

Conversation

SirRichardFrancis
Copy link
Contributor

@SirRichardFrancis SirRichardFrancis commented May 3, 2024

About The Pull Request

This is 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 was not fun, to put it mildly, 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:
image
(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:
image

image

image

image

image

Visualisation of internal logic:
image

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.

UPD:

image
This is only one girder now, is worth 5 steel and will create a regular wall with 5 more steel.
Or a low wall, if it's pried first.
Alternatively it could be reinforced with 2 steel rods and turned into a reinforced wall with 5 plasteel.

image
Wrenching the girder will (un)anchor it, but reinforced girder can't be moved.

Disassembling the reinforced wall now requires fewer steps:
Bolt turning, prying, wire cutting, hammering and welding.

image
Hammering tool must be of quality 15 at least.

image
Wire cutting step depends on tool quality much more.

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

Lots.

Changelog

馃啈
tweak: Changed reinforced wall deconstruction steps.
refactor: Refactored part of turf code, including wall.
code: Changed how wall sprites are generated.
/:cl:

@SirRichardFrancis
Copy link
Contributor Author

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.

@MLGTASTICa
Copy link
Contributor

this should be a massive increase in explosion performance if it fixes the underlying shitcode of turfs and walls that cause massive tick usage.

@github-actions github-actions bot added the Merge Conflict Merge Conflict label May 6, 2024
@SirRichardFrancis SirRichardFrancis marked this pull request as ready for review June 13, 2024 15:23
@TheShown911
Copy link
Contributor

Test merging this.

@TheShown911 TheShown911 merged commit bbaa70f into discordia-space:master Jun 14, 2024
6 checks passed
github-actions bot pushed a commit that referenced this pull request Jun 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Merge Conflict Merge Conflict
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants