diff options
| author | Garrett Cox <garrettjcox@gmail.com> | 2022-11-02 10:36:02 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-02 11:36:02 -0400 |
| commit | dda4a13bc3cc6ac617b41c3ff07d1e42338a59c9 (patch) | |
| tree | 0363b7f2c88be884b6dab4fc2fe8377288cbde48 /soh/src/code | |
| parent | fb0b71ea54828e224d3141115a05cb5ba99a5921 (diff) | |
Implement keyrings (#1869)
* Implement keyrings
* ADD: French GIMessage
* Remove cvar include
* Rename maxKeys to numOfKeysOnKeyring
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
Diffstat (limited to 'soh/src/code')
| -rw-r--r-- | soh/src/code/z_parameter.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/soh/src/code/z_parameter.c b/soh/src/code/z_parameter.c index f81d97381..b19ba1631 100644 --- a/soh/src/code/z_parameter.c +++ b/soh/src/code/z_parameter.c @@ -2356,10 +2356,12 @@ u16 Randomizer_Item_Give(GlobalContext* globalCtx, GetItemEntry giEntry) { } } } else if ((item >= RG_FOREST_TEMPLE_SMALL_KEY && item <= RG_GANONS_CASTLE_SMALL_KEY) || + (item >= RG_FOREST_TEMPLE_KEY_RING && item <= RG_GANONS_CASTLE_KEY_RING) || (item >= RG_FOREST_TEMPLE_BOSS_KEY && item <= RG_GANONS_CASTLE_BOSS_KEY) || (item >= RG_DEKU_TREE_MAP && item <= RG_ICE_CAVERN_MAP) || (item >= RG_DEKU_TREE_COMPASS && item <= RG_ICE_CAVERN_COMPASS)) { int mapIndex = gSaveContext.mapIndex; + int numOfKeysOnKeyring = 0; switch (item) { case RG_DEKU_TREE_MAP: case RG_DEKU_TREE_COMPASS: @@ -2376,37 +2378,49 @@ u16 Randomizer_Item_Give(GlobalContext* globalCtx, GetItemEntry giEntry) { case RG_FOREST_TEMPLE_MAP: case RG_FOREST_TEMPLE_COMPASS: case RG_FOREST_TEMPLE_SMALL_KEY: + case RG_FOREST_TEMPLE_KEY_RING: case RG_FOREST_TEMPLE_BOSS_KEY: mapIndex = SCENE_BMORI1; + numOfKeysOnKeyring = FOREST_TEMPLE_SMALL_KEY_MAX; break; case RG_FIRE_TEMPLE_MAP: case RG_FIRE_TEMPLE_COMPASS: case RG_FIRE_TEMPLE_SMALL_KEY: + case RG_FIRE_TEMPLE_KEY_RING: case RG_FIRE_TEMPLE_BOSS_KEY: mapIndex = SCENE_HIDAN; + numOfKeysOnKeyring = FIRE_TEMPLE_SMALL_KEY_MAX; break; case RG_WATER_TEMPLE_MAP: case RG_WATER_TEMPLE_COMPASS: case RG_WATER_TEMPLE_SMALL_KEY: + case RG_WATER_TEMPLE_KEY_RING: case RG_WATER_TEMPLE_BOSS_KEY: mapIndex = SCENE_MIZUSIN; + numOfKeysOnKeyring = WATER_TEMPLE_SMALL_KEY_MAX; break; case RG_SPIRIT_TEMPLE_MAP: case RG_SPIRIT_TEMPLE_COMPASS: case RG_SPIRIT_TEMPLE_SMALL_KEY: + case RG_SPIRIT_TEMPLE_KEY_RING: case RG_SPIRIT_TEMPLE_BOSS_KEY: mapIndex = SCENE_JYASINZOU; + numOfKeysOnKeyring = SPIRIT_TEMPLE_SMALL_KEY_MAX; break; case RG_SHADOW_TEMPLE_MAP: case RG_SHADOW_TEMPLE_COMPASS: case RG_SHADOW_TEMPLE_SMALL_KEY: + case RG_SHADOW_TEMPLE_KEY_RING: case RG_SHADOW_TEMPLE_BOSS_KEY: mapIndex = SCENE_HAKADAN; + numOfKeysOnKeyring = SHADOW_TEMPLE_SMALL_KEY_MAX; break; case RG_BOTTOM_OF_THE_WELL_MAP: case RG_BOTTOM_OF_THE_WELL_COMPASS: case RG_BOTTOM_OF_THE_WELL_SMALL_KEY: + case RG_BOTTOM_OF_THE_WELL_KEY_RING: mapIndex = SCENE_HAKADANCH; + numOfKeysOnKeyring = BOTTOM_OF_THE_WELL_SMALL_KEY_MAX; break; case RG_ICE_CAVERN_MAP: case RG_ICE_CAVERN_COMPASS: @@ -2416,13 +2430,19 @@ u16 Randomizer_Item_Give(GlobalContext* globalCtx, GetItemEntry giEntry) { mapIndex = SCENE_GANON; break; case RG_GERUDO_TRAINING_GROUNDS_SMALL_KEY: + case RG_GERUDO_TRAINING_GROUNDS_KEY_RING: mapIndex = SCENE_MEN; + numOfKeysOnKeyring = GERUDO_TRAINING_GROUNDS_SMALL_KEY_MAX; break; case RG_GERUDO_FORTRESS_SMALL_KEY: + case RG_GERUDO_FORTRESS_KEY_RING: mapIndex = SCENE_GERUDOWAY; + numOfKeysOnKeyring = GERUDO_FORTRESS_SMALL_KEY_MAX; break; case RG_GANONS_CASTLE_SMALL_KEY: + case RG_GANONS_CASTLE_KEY_RING: mapIndex = SCENE_GANONTIKA; + numOfKeysOnKeyring = GERUDO_FORTRESS_SMALL_KEY_MAX; break; } @@ -2434,6 +2454,9 @@ u16 Randomizer_Item_Give(GlobalContext* globalCtx, GetItemEntry giEntry) { gSaveContext.inventory.dungeonKeys[mapIndex]++; return RG_NONE; } + } else if ((item >= RG_FOREST_TEMPLE_KEY_RING) && (item <= RG_GANONS_CASTLE_KEY_RING)) { + gSaveContext.inventory.dungeonKeys[mapIndex] = numOfKeysOnKeyring; + return RG_NONE; } else { int bitmask; if ((item >= RG_DEKU_TREE_MAP) && (item <= RG_ICE_CAVERN_MAP)) { |
