Commit Graph

78 Commits

Author SHA1 Message Date
briaguya
d03e876289
use enum for logic (#2098)
Co-authored-by: briaguya <briaguya@alice>
2022-12-06 00:37:07 -05:00
briaguya
1e0e80f580
use enum for hint distribution (#2093)
Co-authored-by: briaguya <briaguya@alice>
2022-12-06 00:36:28 -05:00
briaguya
8b96c023fb
use enum for gerudo keys (#2094)
* use enum for gerudo keys

* don't use cvar that doesn't exist

Co-authored-by: briaguya <briaguya@alice>
2022-12-06 00:36:13 -05:00
briaguya
52bf2d600b
use enum for gossip stone hints (#2091)
Co-authored-by: briaguya <briaguya@alice>
2022-12-06 00:35:59 -05:00
briaguya
306183aa1b
use enum for shuffle merchants (#2090)
* use enum for shuffle merchants

* remove comment that isn't needed anymore

Co-authored-by: briaguya <briaguya@alice>
2022-12-06 00:35:44 -05:00
briaguya
22c4b1afa3
use enum for shuffle songs (#2087)
Co-authored-by: briaguya <briaguya@alice>
2022-12-06 00:35:08 -05:00
briaguya
321e563c82
use enum for starting age (#2085)
Co-authored-by: briaguya <briaguya@alice>
2022-12-06 00:34:30 -05:00
briaguya
acd07f2a07
add/use enum values for rando mq dungeon options (#2056)
Co-authored-by: briaguya <briaguya@alice>
2022-12-06 00:32:53 -05:00
briaguya
8d398f7130
refactor: separate RandoOption enum, use max (#2055)
* refactor: separate RandoOption enum, use max

* missed a couple magic array sizes

* couple more

Co-authored-by: briaguya <briaguya@alice>
2022-11-30 01:40:55 -05:00
briaguya
d6c528d9d0
use shopsanity enum (#2054)
* enums for rainbow bridge

* reorder enum

* use enums for shopsanity

* remove space

Co-authored-by: briaguya <briaguya@alice>
2022-11-30 00:30:51 -05:00
briaguya
e193f0dc0e
enums for rainbow bridge (#2052)
* enums for rainbow bridge

* reorder enum

Co-authored-by: briaguya <briaguya@alice>
2022-11-29 23:41:46 -05:00
briaguya
00a862a252
use trial enum instead of magic numbers (#2039)
* use trial enum instead of magic numbers

* simplify trial count/random trial logic

* set default to set number

Co-authored-by: briaguya <briaguya@alice>
2022-11-29 22:43:05 -05:00
briaguya
06df45efc7
use forest enum values instead of magic numbers (#2038) 2022-11-30 02:32:22 +01:00
briaguya
17c6a3653c
use enum for keysanity (#2044) 2022-11-30 02:05:11 +01:00
briaguya
b976ef58fe
use enum for ganon's boss key (#2046) 2022-11-30 02:01:41 +01:00
briaguya
a15f89a3e4
Use enum values for ice trap setting (#2041)
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: David Chavez <david@dcvz.io>
2022-11-30 00:40:35 +01:00
briaguya
aba034ef53
Use enum for links pocket, dungeon reward shuffle (#2045)
Co-authored-by: briaguya <briaguya@alice>
2022-11-30 00:37:53 +01:00
briaguya
ec8ec8d322
Use enum for kak gate (#2043)
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: David Chavez <david@dcvz.io>
2022-11-30 00:33:38 +01:00
briaguya
bfc0ca5388
Use enum values for item pool (#2042)
* use enum values for item pool

* Update soh/soh/Enhancements/presets.h

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>

Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2022-11-30 00:31:59 +01:00
briaguya
7e9c5d428c
Use gerudo fortress enum (#2040)
Co-authored-by: briaguya <briaguya@alice>
2022-11-30 00:30:52 +01:00
Garrett Cox
d7c3522142
[docs] Upstream updates 1 (#1955)
* First round of upstream updates and commenting patternss

* Renames from z64player

* Renames from z64save

* Undo changes to legacy save struct

* Add missing reference from entrance rando

* Fixes from stat tracker

* More tweaks
2022-11-30 00:28:57 +01:00
PurpleHato
453eb7af88
Missing space (#2024) 2022-11-28 18:21:25 -05:00
briaguya
0424c5aaf3
fix: rando door of time enum usage (#2032) 2022-11-28 22:41:33 +01:00
Ralphie Morell
9cfe7bff47
Rando: Settings Enum (#1761)
* added rando option enum; added options to load from spoiler file

* whoops

* Moved to `randomizerTypes` header; fixed ammo drop enum

* Actually populated options with new enums

* Added add'l enums for ganon boss key
2022-11-22 17:11:05 -05:00
Garrett Cox
8461ea4abd
Add s6 and hellmode presets for rando (#1904)
* Refactor how presets are created and used, and add presets for rando

* Add new enhancements to clear

* Tweaks and feedback
2022-11-22 12:30:18 -05:00
aMannus
dcd9ca56e6
Keyrings count fix (#1975) 2022-11-18 13:03:26 -05:00
Garrett Cox
283854c854
Implement option to start with a specific number of skulltula tokens (#1967) 2022-11-16 01:39:53 -05:00
Adam Bird
15a9975200
Entrance Rando (#1760) 2022-11-14 12:13:21 +01:00
briaguya
3914781ebf
Import libultraship as a submodule (#1943)
Co-authored-by: briaguya <briaguya>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
Co-authored-by: David Chavez <davi@dcvz.io>
2022-11-14 11:22:34 +01:00
Ralphie Morell
341bc43daf
Rando: Shuffle Merchants (#1720) 2022-11-08 19:54:51 +01:00
Garrett Cox
92b1730237
[#1931] Fix issue with ZF Gossip stones (#1933) 2022-11-07 14:14:24 -05:00
briaguya
498769c990
Remove colons from shopsanity messages (#1881) (#1887)
Co-authored-by: lilDavid <1337lilDavid@gmail.com>
2022-11-06 05:36:07 -05:00
PurpleHato
710a768d76
TWEAK: Some forgotten colors + google translation rewrite (#1919) 2022-11-05 16:09:03 -04:00
Garrett Cox
763f3a5760
Tweaks to chest matches contents setting (#1902) 2022-11-03 18:07:11 -04:00
Garrett Cox
fab52d323b
Implement hint for dungeon type on Map get item messages (#1852)
* Implement hint for dungeon type on Map get item messages

* Color dungeon name in item tracker when MQ and map is found

* No hint when all dungeons are MQ or non MQ

* TWEAK: French hint

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
2022-11-02 12:03:26 -04:00
Christopher Leggett
fd8a2c9483
Adds in-game menu for selecting a dungeon quest/randomizer (#1863)
* Adds most visuals and interactions for quest select menu.

* "Scrolling" menu, adds remaining sub/title textures, language support

* Tweak: ENG, FRA, GER title to match the original style

* ADD: Randomizer tex

* TWEAK: Randomizer ZAPD extension format

* Adds control stick prompts to the "scrolling" menu.

* Adds third entry for Randomizer.

* Bold text on randomizer subtitle.

* Ensures the game won't allow selecting an unsupported quest.

* Makes save files be created from the quest menu selection.

* Removes the master quest and randomizer checkboxes (no longer needed).

* Removes lock on MQ-only rando.

* Skips quest select if only one quest is playable.

* Adds ability to back out of quest select menu

* Show seed icons while Randomizer is selected on Quest Select Menu.

* Fixes custom hud colors and d-pad navigation.

* Implements backing up from name entry to quest select.

Also implements backwards rotations on the file select screen.

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
2022-11-02 11:50:47 -04:00
Garrett Cox
dda4a13bc3
Implement keyrings (#1869)
* Implement keyrings

* ADD: French GIMessage

* Remove cvar include

* Rename maxKeys to numOfKeysOnKeyring

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
2022-11-02 11:36:02 -04:00
Adam Bird
57c1f4dce2
Fix rando save creation crash due to corrupted hint text (#1846) 2022-11-02 14:37:44 +01:00
Garrett Cox
0389c8084c
Cleanup some of our uses of custom messages (#1847)
* Cleanup some of our uses of custom messages

* Fix some string escape warnings
2022-10-25 21:24:48 -04:00
Christopher Leggett
e2a9461005
Fixes saving isMasterQuest and fixes default values for rando sliders. (#1833)
* Fixes saving `isMasterQuest` and fixes default values for rando sliders.

* Changed slider default values

* Fixes default dropdown values for Ganon Trials and MQ Dungeons.

* Ensure's consistent default values are used for all `CVar_GetS32`'s
2022-10-23 14:32:35 -04:00
Christopher Leggett
6fe7728bd1
Fixes a crash on Switch and cleans up some rando ui interactions. (#1832) 2022-10-22 12:31:20 -04:00
Garrett Cox
1db4e9303e
Enable MQ Dungeons in Randomizer (#1828)
* Refactor GetCheckFromActor, WIP currently broken

* Fixes build errors via forward declarations and emplace vs insert.

* Removes some unnecessary code.

* Fixes non-windows build errors.

* Fixes Deku Scrubs outside of grottos.

* Fixes DMC Deku Scrub Grotto Center

* Fixes Ruto Blue Warp

* Fix issue identifying blue warp rando checks

* Move identifyCow to randomizer.cpp

* Various updates to vanilla check objects

* Identify MQ checks in check object table

* Adjustments to how multimap is used and initialized

* Convert u16 in check object table to s16

* Fix a few issues with MQ checks

* Fix issue with TWO_ACTOR_PARAMS macro

* Fixes some scrubs and cows appearing as identical.

* Fixes known gossip stone issues (ToT, DC)

* Fixes Dampe's Gravedigging tour rcObject

* Fix crash on locations tab

* Enable master quest dungeons in rando

Co-authored-by: Christopher Leggett <chris@leggett.dev>
2022-10-21 21:43:37 -04:00
Ralphie Morell
262e036c22
Rando: Starting Age fixes (#1755)
* Updated starting age restrictions;
patched specific circumstances in 3d rando

* cleanup some testing stuff

* whoops

* become Sherlock Holmes; tooltip cleanup

* Explicit logic for forcing child age

* Apply bria's suggestion

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>

Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2022-10-20 23:22:58 -04:00
Garrett Cox
dbd5585e15
Implement LACS settings for ganons boss key (#1802)
* Implement LACS settings for ganons boss key

* Add description
2022-10-20 23:10:29 -04:00
Garrett Cox
e5cc09a96f
Chest size and texture matches contents (#1778)
* Implement most of chest size and texture matches contents, just need an item table

* Add GetItemCategory to getItem tables

* Revert changes that tie chest size and texture to randomizer

* Support chest size & texture as an enhancement that works on outside of rando

* Add gChestSizeAndTextureMatchesContents to rando preset

* Prevent gChestSizeAndTextureMatchesContents in chest minigame

* Fix for forest temple boss key chest

* Add options for texture or size only
2022-10-20 22:33:04 -04:00
Garrett Cox
f4ac37f54a
Use macros for max key count (#1818) 2022-10-20 22:01:54 -04:00
Christopher Leggett
7b08f98b8c
Dual OTR MQ and Vanilla Support (#1694)
* Changes OTR Extraction to have specific mq and nonmq paths.

Also updates the game to load resources according to whether or not
Master Quest or Vanilla is loaded.

* Removes unneeded code from the last commit.

* Fixes some weird formatting in ZRom.c

* Loads oot-mq.otr and patches oot.otr on top, if both are present.

If only one or the other are present, it becomes the only and main OTR.

* Adds ImGui Logic for whether or an MQ Checkbox.

Checkbox checked only specifies whether new saves should be MQ or not.
Checkbox is disabled or force-enabled according to which OTRs are loaded.
Also as a necessity includes tracking what game versions have been loaded
from the OTRs.

* Adds MQ settings logic for Randomizer's ImGui menu.

* Writes Master Quest dungeons to the spoiler log

* Loads MQ Dungeons from spoiler, persists in save, and loads when appropriate.

* Adds logic to prevent loading or creating incompatible rando saves.

* Fixdes some linux build issues and new rando save issues

* Makes appimage create both vanilla and mq otrs

If either rom is present, it makes the corresponding OTR. If both are present,
it will make both. If one OTR is present but both roms are present, it will
create the missing OTR.

* Makes it so a randomized save file will not be marked as MQ.

* Refactors to load all OTRs from MainPath or a specific list.

Also adds the ability to take a std::unordered_set of hashes to
validate each OTR's version file against.

* Fixes a syntax error

* Makes ExtractAssets output Vanilla and MQ OTRs if both roms are present

* Fixes asset generation bug.

* Partially working fix for dual OTR extract_assets

Currently the cmake ExtractAssets target will return with a 1 if you
only end up exporting one type of OTR isntead of both. Haven't found
a great way to only attempt to copy a file if it exists from within
cmake. It does actually correctly copy the OTR that is generated,
despite the error from copying the other one.

Pushing as is for now but will keep investigating.

* Adds oot-mq.otr to the gitignore.

* Makes ExtractAssets not fail on only one rom/OTR.

* Removes PatchesPath from the constructors requiring OTRFiles vector.

* Renames OOT_UNKNOWN to just UNKNOWN to remove OOT specific reference.

* Removes randomizing MQ Dungeons and re-disables MQ rando.

Doing this so the PR can get merged quicker with just the Dual OTR
support and won't need to wait on rando logic to be updated. That
will happen in another PR directly after the merge.

* Update mac startup script for dual otr

* Update soh/macosx/soh-macos.sh

* Update soh/macosx/soh-macos.sh

* Update soh/macosx/soh-macos.sh

* Implements new BinaryReader to fix Linux build issue.

BinaryReader itself comes from https://github.com/Moneyl/BinaryTools
I added a wrapper to adapt it to the ABI from ZAPD's Binary Reader and
add Endianness checking. I also had to copy a handful of other bits and
pieces from ZAPD to make it all function as expected.

* A few edits to the updatream BinaryReader to compile it on Linux.

* Adds the Endianness to the first byte of the version file.

* Fixes Jenkins

* Addresses some of Kenix's comments

* Renames `ReadNullTerminatedString` to `ReadCString`

* Refactors Archive::LoadFile into a private method with more arguments.

* Removes BitConverter and extends existing endianness.h instead.

* Fixes an endianness issue with the version file.

Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
2022-10-16 23:07:35 -04:00
Ralphie Morell
242757777c
Rando: Randomize Starting Age (#1685) 2022-10-09 08:37:22 +02:00
Christopher Leggett
0720c37656
Randomized Ice trap models (#1648) 2022-10-04 01:15:36 +02:00
Garrett Cox
75d0402525
Update randomizer save format (#1635)
* Update randomizer save format

* Move changes to LoadRandomizerVersion2
2022-10-02 06:11:12 -04:00