Skip to content

Commit fb7e9ea

Browse files
committed
implement requiring multiple rupees & starting with silver rupees
1 parent 687a693 commit fb7e9ea

17 files changed

+391
-183
lines changed

soh/include/z64save.h

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,35 @@ typedef struct {
160160

161161
typedef struct ShipRandomizerSaveContextData {
162162
u8 triforcePiecesCollected;
163+
s8 silverShadowBlades;
164+
s8 silverShadowPit;
165+
s8 silverShadowSpikes;
166+
s8 silverSpiritChild;
167+
s8 silverSpiritSun;
168+
s8 silverSpiritBoulders;
169+
s8 silverBotw;
170+
s8 silverIceCavernBlades;
171+
s8 silverIceCavernBlock;
172+
s8 silverGtgSlope;
173+
s8 silverGtgLava;
174+
s8 silverGtgWater;
175+
s8 silverGanonLight;
176+
s8 silverGanonForest;
177+
s8 silverGanonFire;
178+
s8 silverGanonSpirit;
179+
s8 silverMqDodongosCavern;
180+
s8 silverMqShadowBlades;
181+
s8 silverMqShadowPit;
182+
s8 silverMqShadowInvisibleBlades;
183+
s8 silverMqShadowSpikes;
184+
s8 silverMqSpiritLobby;
185+
s8 silverMqSpiritBigWall;
186+
s8 silverMqGtgSlope;
187+
s8 silverMqGtgLava;
188+
s8 silverMqGtgWater;
189+
s8 silverMqGanonFire;
190+
s8 silverMqGanonWater;
191+
s8 silverMqGanonShadow;
163192
} ShipRandomizerSaveContextData;
164193

165194
typedef struct ShipBossRushSaveContextData {

soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_exclude_dungeon.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,15 @@ namespace Rando {
66
void StaticData::HintTable_Init_Exclude_Dungeon() {
77
// clang-format off
88

9+
// TODO move these to region specific sections when hint text stable
10+
hintTextTable[RHT_DODONGOS_CAVERN_SILVER] = HintText(CustomMessage("They say that silver in #Dodongo's Cavern# holds #[[1]]#.", TODO_TRANSLATE, TODO_TRANSLATE, {QM_RED, QM_GREEN}));
11+
hintTextTable[RHT_SHADOW_TEMPLE_SILVER] = HintText(CustomMessage("They say that silver in #Shadow Temple# holds #[[1]]#.", TODO_TRANSLATE, TODO_TRANSLATE, {QM_RED, QM_GREEN}));
12+
hintTextTable[RHT_SPIRIT_TEMPLE_SILVER] = HintText(CustomMessage("They say that silver in #Spirit Temple# holds #[[1]]#.", TODO_TRANSLATE, TODO_TRANSLATE, {QM_RED, QM_GREEN}));
13+
hintTextTable[RHT_BOTW_SILVER] = HintText(CustomMessage("They say that silver in #Bottom of the Well# holds #[[1]]#.", TODO_TRANSLATE, TODO_TRANSLATE, {QM_RED, QM_GREEN}));
14+
hintTextTable[RHT_ICE_CAVERN_SILVER] = HintText(CustomMessage("They say that silver in #Ice Cavern# holds #[[1]]#.", TODO_TRANSLATE, TODO_TRANSLATE, {QM_RED, QM_GREEN}));
15+
hintTextTable[RHT_GTG_SILVER] = HintText(CustomMessage("They say that silver in #Gerudo Training Ground# holds #[[1]]#.", TODO_TRANSLATE, TODO_TRANSLATE, {QM_RED, QM_GREEN}));
16+
hintTextTable[RHT_GANONS_CASTLE_SILVER] = HintText(CustomMessage("They say that silver in #Ganon's Castle# holds #[[1]]#.", TODO_TRANSLATE, TODO_TRANSLATE, {QM_RED, QM_GREEN}));
17+
918
/*--------------------------
1019
| DEKU TREE |
1120
---------------------------*/

soh/soh/Enhancements/randomizer/3drando/hint_list/hint_list_item.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2091,6 +2091,8 @@ void StaticData::HintTable_Init_Item() {
20912091
}, {
20922092
CustomMessage("sack of mice", /*german*/"ein Sack Mäuse", /*french*/"un Sac rempli de souris")});
20932093

2094+
hintTextTable[RHT_SILVER] = HintText(CustomMessage("a Silver Rupee", /*german*/ TODO_TRANSLATE, /*french*/ TODO_TRANSLATE));
2095+
20942096
hintTextTable[RHT_SKELETON_KEY] = HintText(CustomMessage("a Skeleton Key", /*german*/ "der Skelettschlüssel", /*french*/ "une Clé Squelette"),
20952097
// /*spanish*/una Llave Maestra
20962098
{

soh/soh/Enhancements/randomizer/3drando/item_pool.cpp

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,60 +1201,62 @@ void GenerateItemPool() {
12011201
AddItemToMainPool(RG_SHADOW_TEMPLE_BOSS_KEY);
12021202
}
12031203

1204-
if (ctx->GetOption(RSK_SHUFFLE_SILVER)) {
1204+
if (ctx->GetOption(RSK_SHUFFLE_SILVER).Is(RO_SHUFFLE_SILVER_ON) ||
1205+
ctx->GetOption(RSK_SHUFFLE_SILVER).Is(RO_SHUFFLE_SILVER_WALLET)) {
1206+
bool isWallet = ctx->GetOption(RSK_SHUFFLE_SILVER).Is(RO_SHUFFLE_SILVER_WALLET);
12051207
auto dungeons = ctx->GetDungeons();
12061208
if (dungeons->GetDungeonFromScene(SCENE_DODONGOS_CAVERN)->IsMQ()) {
1207-
AddItemToMainPool(RG_DODONGOS_CAVERN_MQ_SILVER);
1209+
AddItemToMainPool(RG_DODONGOS_CAVERN_MQ_SILVER, isWallet ? 1 : 5);
12081210
}
12091211

12101212
if (dungeons->GetDungeonFromScene(SCENE_SHADOW_TEMPLE)->IsVanilla()) {
1211-
AddItemToMainPool(RG_SHADOW_SILVER_BLADES);
1212-
AddItemToMainPool(RG_SHADOW_SILVER_PIT);
1213-
AddItemToMainPool(RG_SHADOW_SILVER_SPIKES);
1213+
AddItemToMainPool(RG_SHADOW_SILVER_BLADES, isWallet ? 1 : 5);
1214+
AddItemToMainPool(RG_SHADOW_SILVER_PIT, isWallet ? 1 : 5);
1215+
AddItemToMainPool(RG_SHADOW_SILVER_SPIKES, isWallet ? 1 : 5);
12141216
} else {
1215-
AddItemToMainPool(RG_SHADOW_MQ_SILVER_BLADES);
1216-
AddItemToMainPool(RG_SHADOW_MQ_SILVER_PIT);
1217-
AddItemToMainPool(RG_SHADOW_MQ_SILVER_INVISIBLE_BLADES);
1218-
AddItemToMainPool(RG_SHADOW_MQ_SILVER_SPIKES);
1217+
AddItemToMainPool(RG_SHADOW_MQ_SILVER_BLADES, isWallet ? 1 : 5);
1218+
AddItemToMainPool(RG_SHADOW_MQ_SILVER_PIT, isWallet ? 1 : 5);
1219+
AddItemToMainPool(RG_SHADOW_MQ_SILVER_INVISIBLE_BLADES, isWallet ? 1 : 10);
1220+
AddItemToMainPool(RG_SHADOW_MQ_SILVER_SPIKES, isWallet ? 1 : 10);
12191221
}
12201222

12211223
if (dungeons->GetDungeonFromScene(SCENE_SPIRIT_TEMPLE)->IsVanilla()) {
1222-
AddItemToMainPool(RG_SPIRIT_SILVER_CHILD);
1223-
AddItemToMainPool(RG_SPIRIT_SILVER_SUN);
1224-
AddItemToMainPool(RG_SPIRIT_SILVER_BOULDERS);
1224+
AddItemToMainPool(RG_SPIRIT_SILVER_CHILD, isWallet ? 1 : 5);
1225+
AddItemToMainPool(RG_SPIRIT_SILVER_SUN, isWallet ? 1 : 5);
1226+
AddItemToMainPool(RG_SPIRIT_SILVER_BOULDERS, isWallet ? 1 : 5);
12251227
} else {
1226-
AddItemToMainPool(RG_SPIRIT_MQ_SILVER_LOBBY);
1227-
AddItemToMainPool(RG_SPIRIT_MQ_SILVER_BIG_WALL);
1228+
AddItemToMainPool(RG_SPIRIT_MQ_SILVER_LOBBY, isWallet ? 1 : 5);
1229+
AddItemToMainPool(RG_SPIRIT_MQ_SILVER_BIG_WALL, isWallet ? 1 : 5);
12281230
}
12291231

12301232
if (dungeons->GetDungeonFromScene(SCENE_BOTTOM_OF_THE_WELL)->IsVanilla()) {
1231-
AddItemToMainPool(RG_BOTW_SILVER);
1233+
AddItemToMainPool(RG_BOTW_SILVER, isWallet ? 1 : 5);
12321234
}
12331235

12341236
if (dungeons->GetDungeonFromScene(SCENE_ICE_CAVERN)->IsVanilla()) {
1235-
AddItemToMainPool(RG_ICE_CAVERN_SILVER_BLADES);
1236-
AddItemToMainPool(RG_ICE_CAVERN_SILVER_BLOCK);
1237+
AddItemToMainPool(RG_ICE_CAVERN_SILVER_BLADES, isWallet ? 1 : 5);
1238+
AddItemToMainPool(RG_ICE_CAVERN_SILVER_BLOCK, isWallet ? 1 : 5);
12371239
}
12381240

12391241
if (dungeons->GetDungeonFromScene(SCENE_GERUDO_TRAINING_GROUND)->IsVanilla()) {
1240-
AddItemToMainPool(RG_GTG_SILVER_SLOPE);
1241-
AddItemToMainPool(RG_GTG_SILVER_LAVA);
1242-
AddItemToMainPool(RG_GTG_SILVER_WATER);
1242+
AddItemToMainPool(RG_GTG_SILVER_SLOPE, isWallet ? 1 : 5);
1243+
AddItemToMainPool(RG_GTG_SILVER_LAVA, isWallet ? 1 : 5);
1244+
AddItemToMainPool(RG_GTG_SILVER_WATER, isWallet ? 1 : 5);
12431245
} else {
1244-
AddItemToMainPool(RG_GTG_MQ_SILVER_SLOPE);
1245-
AddItemToMainPool(RG_GTG_MQ_SILVER_LAVA);
1246-
AddItemToMainPool(RG_GTG_MQ_SILVER_WATER);
1246+
AddItemToMainPool(RG_GTG_MQ_SILVER_SLOPE, isWallet ? 1 : 5);
1247+
AddItemToMainPool(RG_GTG_MQ_SILVER_LAVA, isWallet ? 1 : 6);
1248+
AddItemToMainPool(RG_GTG_MQ_SILVER_WATER, isWallet ? 1 : 3);
12471249
}
12481250

12491251
if (dungeons->GetDungeonFromScene(SCENE_INSIDE_GANONS_CASTLE)->IsVanilla()) {
1250-
AddItemToMainPool(RG_GANONS_CASTLE_SILVER_LIGHT);
1251-
AddItemToMainPool(RG_GANONS_CASTLE_SILVER_FOREST);
1252-
AddItemToMainPool(RG_GANONS_CASTLE_SILVER_FIRE);
1253-
AddItemToMainPool(RG_GANONS_CASTLE_SILVER_SPIRIT);
1252+
AddItemToMainPool(RG_GANONS_CASTLE_SILVER_LIGHT, isWallet ? 1 : 5);
1253+
AddItemToMainPool(RG_GANONS_CASTLE_SILVER_FOREST, isWallet ? 1 : 5);
1254+
AddItemToMainPool(RG_GANONS_CASTLE_SILVER_FIRE, isWallet ? 1 : 5);
1255+
AddItemToMainPool(RG_GANONS_CASTLE_SILVER_SPIRIT, isWallet ? 1 : 5);
12541256
} else {
1255-
AddItemToMainPool(RG_GANONS_CASTLE_MQ_SILVER_FIRE);
1256-
AddItemToMainPool(RG_GANONS_CASTLE_MQ_SILVER_WATER);
1257-
AddItemToMainPool(RG_GANONS_CASTLE_MQ_SILVER_SHADOW);
1257+
AddItemToMainPool(RG_GANONS_CASTLE_MQ_SILVER_FIRE, isWallet ? 1 : 5);
1258+
AddItemToMainPool(RG_GANONS_CASTLE_MQ_SILVER_WATER, isWallet ? 1 : 5);
1259+
AddItemToMainPool(RG_GANONS_CASTLE_MQ_SILVER_SHADOW, isWallet ? 1 : 5);
12581260
}
12591261
}
12601262

soh/soh/Enhancements/randomizer/3drando/starting_inventory.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ void GenerateStartingInventory() {
5454
AddItemToInventory(RG_SHADOW_TEMPLE_BOSS_KEY);
5555
}
5656

57+
if (ctx->GetOption(RSK_SHUFFLE_SILVER).Is(RO_SHUFFLE_SILVER_STARTWITH)) {
58+
for (int rg = (int)RG_SHADOW_SILVER_BLADES; rg <= (int)RG_GANONS_CASTLE_MQ_SILVER_SHADOW; rg++) {
59+
AddItemToInventory((RandomizerGet)rg);
60+
}
61+
}
62+
5763
// Add Ganon's Boss key with Triforce Hunt so the game thinks it's obtainable from the start.
5864
// During save init, the boss key isn't actually given and it's instead given when completing the triforce.
5965
if (ctx->GetOption(RSK_GANONS_BOSS_KEY).Is(RO_GANON_BOSS_KEY_STARTWITH) || ctx->GetOption(RSK_TRIFORCE_HUNT)) {

soh/soh/Enhancements/randomizer/ShuffleSilver.cpp

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -12,72 +12,75 @@ extern SaveContext gSaveContext;
1212
}
1313

1414
static bool IsSilverCleared(s16 switchFlag) {
15-
bool isMQ =
16-
Rando::Context::GetInstance()->GetDungeons()->GetDungeonFromScene(gPlayState->sceneNum)->IsMQ();
15+
bool isMQ = Rando::Context::GetInstance()->GetDungeons()->GetDungeonFromScene(gPlayState->sceneNum)->IsMQ();
1716
switch (gPlayState->sceneNum) {
1817
case SCENE_DODONGOS_CAVERN:
19-
return Flags_GetRandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_SILVER);
18+
return gSaveContext.ship.quest.data.randomizer.silverMqDodongosCavern >= 5;
2019
case SCENE_SHADOW_TEMPLE:
2120
switch (switchFlag) {
2221
case 1:
23-
return Flags_GetRandomizerInf(isMQ ? RAND_INF_SHADOW_MQ_SILVER_BLADES
24-
: RAND_INF_SHADOW_SILVER_BLADES);
22+
23+
return isMQ ? gSaveContext.ship.quest.data.randomizer.silverMqShadowBlades >= 5
24+
: gSaveContext.ship.quest.data.randomizer.silverShadowBlades >= 5;
2525
case 3:
26-
return Flags_GetRandomizerInf(RAND_INF_SHADOW_MQ_SILVER_INVISIBLE_BLADES);
26+
return gSaveContext.ship.quest.data.randomizer.silverMqShadowInvisibleBlades >= 10;
2727
case 8:
28-
return Flags_GetRandomizerInf(isMQ ? RAND_INF_SHADOW_MQ_SILVER_SPIKES
29-
: RAND_INF_SHADOW_SILVER_SPIKES);
28+
return isMQ ? gSaveContext.ship.quest.data.randomizer.silverMqShadowSpikes >= 10
29+
: gSaveContext.ship.quest.data.randomizer.silverShadowSpikes >= 5;
3030
case 9:
31-
return Flags_GetRandomizerInf(RAND_INF_SHADOW_SILVER_PIT);
31+
return gSaveContext.ship.quest.data.randomizer.silverShadowPit >= 5;
3232
case 17:
33-
return Flags_GetRandomizerInf(RAND_INF_SHADOW_MQ_SILVER_PIT);
33+
return gSaveContext.ship.quest.data.randomizer.silverMqShadowPit >= 5;
3434
}
3535
case SCENE_SPIRIT_TEMPLE:
3636
switch (switchFlag) {
3737
case 0:
38-
return Flags_GetRandomizerInf(RAND_INF_SPIRIT_MQ_SILVER_BIG_WALL);
38+
return gSaveContext.ship.quest.data.randomizer.silverMqSpiritBigWall;
3939
case 2:
40-
return Flags_GetRandomizerInf(RAND_INF_SPIRIT_SILVER_BOULDERS);
40+
return gSaveContext.ship.quest.data.randomizer.silverSpiritBoulders;
4141
case 5:
42-
return Flags_GetRandomizerInf(RAND_INF_SPIRIT_SILVER_CHILD);
42+
return gSaveContext.ship.quest.data.randomizer.silverSpiritChild;
4343
case 10:
44-
return Flags_GetRandomizerInf(RAND_INF_SPIRIT_SILVER_SUN);
44+
return gSaveContext.ship.quest.data.randomizer.silverSpiritSun;
4545
case 55:
46-
return Flags_GetRandomizerInf(RAND_INF_SPIRIT_MQ_SILVER_LOBBY);
46+
return gSaveContext.ship.quest.data.randomizer.silverMqSpiritLobby;
4747
}
4848
case SCENE_BOTTOM_OF_THE_WELL:
49-
return Flags_GetRandomizerInf(RAND_INF_BOTW_SILVER);
49+
return gSaveContext.ship.quest.data.randomizer.silverBotw >= 5;
5050
case SCENE_ICE_CAVERN:
5151
switch (switchFlag) {
5252
case 8:
53-
return Flags_GetRandomizerInf(RAND_INF_ICE_CAVERN_SILVER_BLOCK);
53+
return gSaveContext.ship.quest.data.randomizer.silverIceCavernBlock >= 5;
5454
case 31:
55-
return Flags_GetRandomizerInf(RAND_INF_ICE_CAVERN_SILVER_BLADES);
55+
return gSaveContext.ship.quest.data.randomizer.silverIceCavernBlades >= 5;
5656
}
5757
case SCENE_GERUDO_TRAINING_GROUND:
5858
switch (switchFlag) {
5959
case 12:
60-
return Flags_GetRandomizerInf(isMQ ? RAND_INF_GTG_MQ_SILVER_LAVA : RAND_INF_GTG_SILVER_LAVA);
60+
return isMQ ? gSaveContext.ship.quest.data.randomizer.silverMqGtgLava >= 6
61+
: gSaveContext.ship.quest.data.randomizer.silverGtgLava >= 5;
6162
case 27:
62-
return Flags_GetRandomizerInf(isMQ ? RAND_INF_GTG_MQ_SILVER_WATER : RAND_INF_GTG_SILVER_WATER);
63+
return isMQ ? gSaveContext.ship.quest.data.randomizer.silverMqGtgWater >= 3
64+
: gSaveContext.ship.quest.data.randomizer.silverGtgWater >= 5;
6365
case 28:
64-
return Flags_GetRandomizerInf(isMQ ? RAND_INF_GTG_MQ_SILVER_SLOPE : RAND_INF_GTG_SILVER_SLOPE);
66+
return isMQ ? gSaveContext.ship.quest.data.randomizer.silverMqGtgSlope >= 5
67+
: gSaveContext.ship.quest.data.randomizer.silverGtgSlope >= 5;
6568
}
6669
case SCENE_INSIDE_GANONS_CASTLE:
6770
switch (switchFlag) {
6871
case 1:
69-
return Flags_GetRandomizerInf(RAND_INF_GANONS_CASTLE_MQ_SILVER_FIRE);
72+
return gSaveContext.ship.quest.data.randomizer.silverMqGanonFire >= 5;
7073
case 2:
71-
return Flags_GetRandomizerInf(RAND_INF_GANONS_CASTLE_MQ_SILVER_WATER);
74+
return gSaveContext.ship.quest.data.randomizer.silverMqGanonWater >= 5;
7275
case 9:
73-
return Flags_GetRandomizerInf(RAND_INF_GANONS_CASTLE_SILVER_FIRE);
76+
return gSaveContext.ship.quest.data.randomizer.silverGanonFire >= 5;
7477
case 11:
75-
return Flags_GetRandomizerInf(isMQ ? RAND_INF_GANONS_CASTLE_MQ_SILVER_SHADOW
76-
: RAND_INF_GANONS_CASTLE_SILVER_SPIRIT);
78+
return isMQ ? gSaveContext.ship.quest.data.randomizer.silverMqGanonShadow >= 5
79+
: gSaveContext.ship.quest.data.randomizer.silverGanonSpirit >= 5;
7780
case 14:
78-
return Flags_GetRandomizerInf(RAND_INF_GANONS_CASTLE_SILVER_FOREST);
81+
return gSaveContext.ship.quest.data.randomizer.silverGanonForest >= 5;
7982
case 18:
80-
return Flags_GetRandomizerInf(RAND_INF_GANONS_CASTLE_SILVER_LIGHT);
83+
return gSaveContext.ship.quest.data.randomizer.silverGanonLight >= 5;
8184
}
8285
}
8386
return false;
@@ -89,24 +92,25 @@ void RegisterShuffleSilver() {
8992
COND_VB_SHOULD(VB_SILVER_DESPAWN, shouldRegister, {
9093
EnGSwitch* silver = va_arg(args, EnGSwitch*);
9194
if (silver->type == ENGSWITCH_SILVER_RUPEE) {
92-
auto silverIdentity = OTRGlobals::Instance->gRandomizer->IdentifySilver(gPlayState->sceneNum,
93-
(s16)silver->actor.world.pos.x, (s16)silver->actor.world.pos.z);
95+
auto silverIdentity = OTRGlobals::Instance->gRandomizer->IdentifySilver(
96+
gPlayState->sceneNum, (s16)silver->actor.world.pos.x, (s16)silver->actor.world.pos.z);
9497
*should = true;
95-
LUSLOG_WARN("!!%d %d %d %d", silver->type, silverIdentity.randomizerCheck,
96-
(s16)silver->actor.world.pos.x, (s16)silver->actor.world.pos.z);
98+
LUSLOG_WARN("!!%d %d %d %d", silver->type, silverIdentity.randomizerCheck, (s16)silver->actor.world.pos.x,
99+
(s16)silver->actor.world.pos.z);
97100
if (silverIdentity.randomizerCheck == RC_UNKNOWN_CHECK ||
98101
Flags_GetRandomizerInf(silverIdentity.randomizerInf)) {
99102
return;
100103
}
101104

102-
auto spawnedActor = (EnItem00*)Actor_Spawn(&gPlayState->actorCtx, gPlayState, ACTOR_EN_ITEM00,
103-
silver->actor.world.pos.x, silver->actor.world.pos.y, silver->actor.world.pos.z,
104-
0, 0, 0, ITEM00_SOH_GIVE_ITEM_ENTRY, false);
105+
auto spawnedActor = (EnItem00*)Actor_Spawn(
106+
&gPlayState->actorCtx, gPlayState, ACTOR_EN_ITEM00, silver->actor.world.pos.x,
107+
silver->actor.world.pos.y, silver->actor.world.pos.z, 0, 0, 0, ITEM00_SOH_GIVE_ITEM_ENTRY, false);
105108
LUSLOG_WARN("!!%p", spawnedActor);
106109
spawnedActor->randoCheck = silverIdentity.randomizerCheck;
107110
spawnedActor->randoInf = silverIdentity.randomizerInf;
108111
spawnedActor->itemEntry = Rando::Context::GetInstance()->GetFinalGIEntry(
109-
silverIdentity.randomizerCheck, true, (GetItemID)Rando::StaticData::GetLocation(silverIdentity.randomizerCheck)->GetVanillaItem());
112+
silverIdentity.randomizerCheck, true,
113+
(GetItemID)Rando::StaticData::GetLocation(silverIdentity.randomizerCheck)->GetVanillaItem());
110114
} else if (silver->type == ENGSWITCH_SILVER_TRACKER) {
111115
if (IsSilverCleared(silver->switchFlag)) {
112116
Flags_SetSwitch(gPlayState, silver->switchFlag);

soh/soh/Enhancements/randomizer/draw.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1119,15 +1119,15 @@ extern "C" void Randomizer_DrawSilverRupee(PlayState* play, GetItemEntry* getIte
11191119
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, (char*)__FILE__, __LINE__),
11201120
G_MTX_MODELVIEW | G_MTX_LOAD);
11211121

1122-
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0x80, 255, 255, 255, 255);
1123-
gDPSetEnvColor(POLY_OPA_DISP++, 255 / 5, 255 / 5, 255 / 5, 255);
1124-
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gGiRupeeInnerDL);
1122+
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0x80, 255, 255, 255, 255);
1123+
gDPSetEnvColor(POLY_OPA_DISP++, 255 / 5, 255 / 5, 255 / 5, 255);
1124+
gSPDisplayList(POLY_OPA_DISP++, (Gfx*)gGiRupeeInnerDL);
11251125

1126-
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
1127-
gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_MODELVIEW | G_MTX_LOAD);
1128-
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, 255);
1129-
gDPSetEnvColor(POLY_XLU_DISP++, 255 * 0.75f, 255 * 0.75f, 255 * 0.75f, 255);
1130-
gSPDisplayList(POLY_XLU_DISP++, (Gfx*)gGiRupeeOuterDL);
1126+
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
1127+
gSPMatrix(POLY_XLU_DISP++, MATRIX_NEWMTX(play->state.gfxCtx), G_MTX_MODELVIEW | G_MTX_LOAD);
1128+
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 255, 255, 255, 255);
1129+
gDPSetEnvColor(POLY_XLU_DISP++, 255 * 0.75f, 255 * 0.75f, 255 * 0.75f, 255);
1130+
gSPDisplayList(POLY_XLU_DISP++, (Gfx*)gGiRupeeOuterDL);
11311131

11321132
CLOSE_DISPS(play->state.gfxCtx);
11331133
}

0 commit comments

Comments
 (0)