Skip to content

Move Barren handling to before hint generation, Add RandomizerArea enum and other cleanups #3339

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

Merged
merged 10 commits into from
Dec 7, 2023

Conversation

Pepper0ni
Copy link
Contributor

@Pepper0ni Pepper0ni commented Oct 27, 2023

Full changelist

  • A new enum, RandomizerArea, which correspond to the different areas hints can say inside barren and woth hints. AreaHintTextKeys allows you to convert from a RandomizerArea to the appropriate hint key, or you can use a new overload to Hint()
  • HintSettings and related structs no longer have a fixed size, reducing clutter and redundency.
  • Dungeon WotH and Barren hints are now a generic setting in the distTable, making the check generic and applicable to any setting type that is desired.
  • Always hints, trial hints and junk hints no longer have a distTable entry, instead having the 1 relevant property as a var in HintSetting. This is temporary while other changes are done to make them more generalisable.
  • HintType has been changed to only be the structure of the hint is included, not the distrabution. Identifying the hints distrabution source is instead done with a string name property in the distTable. This change is to set up for custom hints.
  • ItemLocation has 3 new vars, indicating if the location is a possible WotH or Barren location, and what RandomizerArea the location is in. this replaces wothLocations and barrenLocations meaning all hint types can be obtained from a FilterFromPools of allLocations. Additionally hinted by is now a vector to account for an itemLocation being hinted from several locations.
  • Area now accepts an area instead of a hint key pointing to that area, making area deduction from a region simpler and reducing reliance on magic strings.
  • IsBombchus and IsBomchusIncludingShop added to allow for clean checking of if a RandomizerGet is one of the bombchu Enums
  • Removed a magic string used for GetAccessibleLocations ignore, replacing it with a RandomiserGet.
    • Because of this, different shop items giving the same item is identified using the items LogicVar instead.
  • IsBeatableWithout added to reduce repeated boilerplate for GetAccessableLocation's CheckBeatable mode, used in CalculateWoth and PareDownPlaythrough, which are cleaned up by the above changes
  • SetAreas added near PareDownPlaythrough, adding the area to each ItemLocation
  • CalculateBarren now exists, and runs after CalculateWoth
  • BuyBomchus20 and BuyBomchus10 are merged into BuyBombchus, BuyGPotion and BuyBPotion merged into BuyPotion
  • All incidences of BUY_DEKU_NUT made into BUY_DEKU_NUTS for consistency
  • indents fixed in LocationList

Build Artifacts

@Pepper0ni Pepper0ni force-pushed the MoveBarren branch 2 times, most recently from 026037b to cdf8cb6 Compare November 9, 2023 12:40
@Pepper0ni Pepper0ni marked this pull request as ready for review November 9, 2023 13:39
@leggettc18
Copy link
Contributor

Sorry I think I introduced some merge conflicts here. It shouldn't be anything too major. Mostly just some semantic correctness stuff rather than any functionality changes.

Copy link
Contributor

@leggettc18 leggettc18 left a comment

Choose a reason for hiding this comment

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

Looks good! I see a few things here that should be changed but nothing major.

@leggettc18 leggettc18 merged commit c5790d9 into HarbourMasters:develop-rando Dec 7, 2023
@Pepper0ni Pepper0ni deleted the MoveBarren branch March 13, 2025 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants