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

CV64: Fix the first Waterway 3HB ledge setting the flag of one of the Nitro room item locations. #4277

Merged
merged 1 commit into from
Nov 29, 2024

Conversation

LiquidCat64
Copy link
Contributor

@LiquidCat64 LiquidCat64 commented Nov 28, 2024

What is this fixing or adding?

Breaking the "First poison parkour ledge" 3-hit breakable (3HB) in Underground Waterway when the option to randomize the 3HB items was turned off would cause the flag for the item location known as "Castle Center: Magical Nitro shelf - Heinrich side" to be set, both causing the location check to send out when it wasn't supposed to and the item later not spawning when it should be. When I added the two extra item actors in the Nitro room and put flags on them, I evidently chose to put one of them on a flag that I didn't realize at the time was already being used by something else (for whatever reason I didn't record it on my big list of the game's flags). And because I don't ever bother breaking the 3HBs when they are turned off, it wasn't until someone else recently brought it to my attention that I found out.

This fixes the issue by just always applying the 3HB flag hacks regardless of whether the 3HBs are randomized or not, meaning none of them will set flags upon being broken and each item that drops from them are tracked by their own individual flags. I could change what flag the Nitro room item sets, but that would require changing the AP location ID as well due to how the item flags and location IDs correlate to each other, and changing IDs tends to muck things up when it comes to backwards compatibility, so I didn't think it'd be worth opening that can of worms over this.

How was this tested?

Generated a game with the 3HBs not randomized, broke the "First poison parkour ledge" 3HB and picked up its items to make sure the Nitro shelf location did not send, and then checked on that location to make sure the item spawned correctly.

@github-actions github-actions bot added the waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. label Nov 28, 2024
@Exempt-Medic Exempt-Medic added the is: bug/fix Issues that are reporting bugs or pull requests that are fixing bugs. label Nov 28, 2024
Copy link
Member

@Exempt-Medic Exempt-Medic left a comment

Choose a reason for hiding this comment

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

Tbh, just trusting the world dev here. The explanation of the change makes sense and it's removing a single if clause.

Copy link
Collaborator

@Silvris Silvris left a comment

Choose a reason for hiding this comment

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

Trusting the world dev on the particulars, logically the fix makes sense and the code change is simple.

@NewSoupVi NewSoupVi merged commit 3ba0576 into ArchipelagoMW:main Nov 29, 2024
16 checks passed
@LiquidCat64 LiquidCat64 deleted the CV64_3hb_flag_fix branch November 29, 2024 00:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is: bug/fix Issues that are reporting bugs or pull requests that are fixing bugs. waiting-on: peer-review Issue/PR has not been reviewed by enough people yet.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants