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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TM Probably] Sabre insanity, also known as one proc adjustment that might possibly fix stuff #2666

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

DeltaFire15
Copy link
Contributor

@DeltaFire15 DeltaFire15 commented May 26, 2024

About The Pull Request

There is some bug going on with miner sabres sometimes getting nullspaced and I spent hours without finding out why. The one part of the entire proc chain that is basically always questionable is the weird ships[] list so I passed some better values for now and we'll see if that fixes it.
TM this please. We'll see if someone gets nullspaced with this and if someone does I go back to the mines.

Attendum

Did some more diving. Found one very specific edge case where a ship with a reserved z that docks somewhere can potentially send other ships in system who-knows-where.
Rewrote some of the remove_ship() code to hopefully make those cases less unsafe and applied it to cases where remove_ship is used to remove a ship from the overmap entirely as opposed to FTL-related things mostly.
Also made deletion of ships remove them from the system after all else is done, which should only impact situations where a z carrier ship is deleted.

Might be a bit more volatile now. Please look over this PR before updating its testmerge & make sure I'm not doing something weird. (I've not seen anything weird in my tests but better safe than sorry)

Why It's Good For The Game

Fix man good.

Changelog

🆑
fix: Possibly fixes some weird Sabre behavior.
fix: Also makes one single gun check of the plasma caster slightly safer.
fix: Fixes a weird edge case with docking behavior.
fix: Fixes remove_ship() assuming all remove_ship() calls were FTL based.
fix: Overmap objects when deleting have remove_ship() called for them (this should mostly only affect z carriers which drop their z or pass it to another ship).
fix: Overmap objects that are deleted now drop their current_system var.
/:cl:

@DeltaFire15
Copy link
Contributor Author

Of course this PR has 666 in its number..

@Bokkiewokkie Bokkiewokkie added Fix Fighters Issues and pull requests related to fighters. Overmap This issue or PR is related to overmap interactions labels May 30, 2024
Copy link
Contributor

@Bokkiewokkie Bokkiewokkie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fine hotfix, but since we don't know the exact cause and regarding all of the comments you left, do you want to keep this testmerged until we find the issue? Otherwise I'd like for you to move your comments to a new issue instead so someone else can potentially look at it instead.

@DeltaFire15
Copy link
Contributor Author

do you want to keep this testmerged until we find the issue? Otherwise I'd like for you to move your comments to a new issue instead so someone else can potentially look at it instead.

Essentially, this might resolve it or it might not. It's the only place I found that looked potentially volatile, and I wasn't able to reproduce how to trigger the issue in the first place, despite someone managing to trigger it in the first system without having jumped. It also didn't cause a runtime during the time I helped someone out on the server.

If it doesn't happen again, this was probably it, if it does, I'll have to check vars again and question them aswell so I can have some different occurances to compare.

Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@DeltaFire15
Copy link
Contributor Author

DeltaFire15 commented Jul 13, 2024

Found another issue, did a bit of rewriting things that might resolve even more or might brick some edge case if I forgot something.
(Appears to work properly in testing but you know how it is)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Active Test Merge Fighters Issues and pull requests related to fighters. Fix Overmap This issue or PR is related to overmap interactions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants