mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-19 21:03:42 -07:00
Merge b58f08f493
into 1d20000411
This commit is contained in:
commit
eaaf2c93de
2 changed files with 107 additions and 15 deletions
|
@ -259,16 +259,60 @@ void RandomizerOnFlagSetHandler(int16_t flagType, int16_t flag) {
|
|||
}
|
||||
|
||||
void RandomizerOnSceneFlagSetHandler(int16_t sceneNum, int16_t flagType, int16_t flag) {
|
||||
if (RAND_GET_OPTION(RSK_SHUFFLE_DUNGEON_ENTRANCES) != RO_DUNGEON_ENTRANCE_SHUFFLE_OFF &&
|
||||
sceneNum == SCENE_GERUDOS_FORTRESS && flagType == FLAG_SCENE_SWITCH && flag == 0x3A) {
|
||||
Flags_SetRandomizerInf(RAND_INF_GF_GTG_GATE_PERMANENTLY_OPEN);
|
||||
}
|
||||
if (flagType == FLAG_SCENE_SWITCH) {
|
||||
auto dungeonInfo = Rando::Context::GetInstance()->GetDungeons()->GetDungeonFromScene(sceneNum);
|
||||
bool isVanilla = dungeonInfo == nullptr || dungeonInfo->IsVanilla();
|
||||
|
||||
if (sceneNum == SCENE_SPIRIT_TEMPLE && flagType == FLAG_SCENE_SWITCH) {
|
||||
bool isVanilla =
|
||||
Rando::Context::GetInstance()->GetDungeons()->GetDungeonFromScene(SCENE_SPIRIT_TEMPLE)->IsVanilla();
|
||||
if (isVanilla && flag == 0x23) {
|
||||
Flags_SetRandomizerInf(RAND_INF_SPIRIT_SUN_ON_FLOOR_ON);
|
||||
switch (sceneNum) {
|
||||
case SCENE_GERUDOS_FORTRESS:
|
||||
if (RAND_GET_OPTION(RSK_SHUFFLE_DUNGEON_ENTRANCES) != RO_DUNGEON_ENTRANCE_SHUFFLE_OFF && flag == 0x3A) {
|
||||
Flags_SetRandomizerInf(RAND_INF_GF_GTG_GATE_PERMANENTLY_OPEN);
|
||||
}
|
||||
break;
|
||||
case SCENE_DEKU_TREE:
|
||||
if (!isVanilla && flag == 0x27) {
|
||||
Flags_SetRandomizerInf(RAND_INF_DEKU_TREE_MQ_TORCH_SWITCH);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCENE_DODONGOS_CAVERN:
|
||||
if (!isVanilla && flag == 0x25) {
|
||||
Flags_SetRandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEES);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCENE_JABU_JABU:
|
||||
if (isVanilla && flag == 0x3b) {
|
||||
Flags_SetRandomizerInf(RAND_INF_JABU_JABUS_BELLY_FIRST_SWITCH);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCENE_FOREST_TEMPLE:
|
||||
if (flag == 0x26) {
|
||||
Flags_SetRandomizerInf(RAND_INF_FOREST_DRAINED_WELL);
|
||||
} else if (isVanilla && flag == 0x25) {
|
||||
Flags_SetRandomizerInf(RAND_INF_FOREST_LOBBY_EYES);
|
||||
} else if (!isVanilla && flag == 0x21) {
|
||||
Flags_SetRandomizerInf(RAND_INF_FOREST_LOBBY_EYES);
|
||||
} else if (!isVanilla && flag == 0x25) {
|
||||
Flags_SetRandomizerInf(RAND_INF_FOREST_MQ_COURTYARD_WEB_BURNT);
|
||||
} else if (!isVanilla && flag == 0x2a) {
|
||||
Flags_SetRandomizerInf(RAND_INF_FOREST_LOBBY_EYES);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
if (!isVanilla && flag == 0x28) {
|
||||
Flags_SetRandomizerInf(RAND_INF_FIRE_MQ_LOBBY_TORCHES);
|
||||
}
|
||||
break;
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
if (isVanilla && flag == 0x23) {
|
||||
Flags_SetRandomizerInf(RAND_INF_SPIRIT_SUN_ON_FLOOR_ON);
|
||||
} else if (!isVanilla && flag == 0x37) {
|
||||
Flags_SetRandomizerInf(RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEES);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1865,12 +1909,52 @@ void RandomizerOnActorInitHandler(void* actorRef) {
|
|||
Actor* actor = static_cast<Actor*>(actorRef);
|
||||
|
||||
if (actor->id == ACTOR_PLAYER) {
|
||||
if (gPlayState->sceneNum == SCENE_SPIRIT_TEMPLE) {
|
||||
bool isVanilla =
|
||||
Rando::Context::GetInstance()->GetDungeons()->GetDungeonFromScene(SCENE_SPIRIT_TEMPLE)->IsVanilla();
|
||||
if (isVanilla && Flags_GetRandomizerInf(RAND_INF_SPIRIT_SUN_ON_FLOOR_ON)) {
|
||||
Flags_SetSwitch(gPlayState, 0x23);
|
||||
}
|
||||
auto dungeonInfo = Rando::Context::GetInstance()->GetDungeons()->GetDungeonFromScene(gPlayState->sceneNum);
|
||||
bool isVanilla = dungeonInfo == nullptr || dungeonInfo->IsVanilla();
|
||||
switch (gPlayState->sceneNum) {
|
||||
case SCENE_DEKU_TREE:
|
||||
if (!isVanilla && Flags_GetRandomizerInf(RAND_INF_DEKU_TREE_MQ_TORCH_SWITCH)) {
|
||||
Flags_SetSwitch(gPlayState, 0x27);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCENE_DODONGOS_CAVERN:
|
||||
if (!isVanilla && Flags_GetRandomizerInf(RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEES)) {
|
||||
Flags_SetSwitch(gPlayState, 0x25);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCENE_JABU_JABU:
|
||||
if (isVanilla && Flags_GetRandomizerInf(RAND_INF_JABU_JABUS_BELLY_FIRST_SWITCH)) {
|
||||
Flags_SetSwitch(gPlayState, 0x3b);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCENE_FOREST_TEMPLE:
|
||||
if (Flags_GetRandomizerInf(RAND_INF_FOREST_DRAINED_WELL)) {
|
||||
Flags_SetSwitch(gPlayState, 0x26);
|
||||
} else if (isVanilla && Flags_GetRandomizerInf(RAND_INF_FOREST_LOBBY_EYES)) {
|
||||
Flags_SetSwitch(gPlayState, 0x25);
|
||||
} else if (!isVanilla && Flags_GetRandomizerInf(RAND_INF_FOREST_LOBBY_EYES)) {
|
||||
Flags_SetSwitch(gPlayState, 0x21);
|
||||
Flags_SetSwitch(gPlayState, 0x2a);
|
||||
} else if (!isVanilla && Flags_GetRandomizerInf(RAND_INF_FOREST_MQ_COURTYARD_WEB_BURNT)) {
|
||||
Flags_SetSwitch(gPlayState, 0x25);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCENE_FIRE_TEMPLE:
|
||||
if (!isVanilla && Flags_GetRandomizerInf(RAND_INF_FIRE_MQ_LOBBY_TORCHES)) {
|
||||
Flags_SetSwitch(gPlayState, 0x28);
|
||||
}
|
||||
break;
|
||||
case SCENE_SPIRIT_TEMPLE:
|
||||
if (isVanilla && Flags_GetRandomizerInf(RAND_INF_SPIRIT_SUN_ON_FLOOR_ON)) {
|
||||
Flags_SetSwitch(gPlayState, 0x23);
|
||||
} else if (!isVanilla && Flags_GetRandomizerInf(RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEES)) {
|
||||
Flags_SetSwitch(gPlayState, 0x37);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1091,8 +1091,16 @@ DEFINE_RAND_INF(RAND_INF_MARKET_TREASURE_CHEST_GAME_KEY_5)
|
|||
|
||||
DEFINE_RAND_INF(RAND_INF_TH_ITEM_FROM_LEADER_OF_FORTRESS)
|
||||
DEFINE_RAND_INF(RAND_INF_GF_GTG_GATE_PERMANENTLY_OPEN)
|
||||
DEFINE_RAND_INF(RAND_INF_DEKU_TREE_MQ_TORCH_SWITCH)
|
||||
DEFINE_RAND_INF(RAND_INF_DODONGOS_CAVERN_MQ_SILVER_RUPEES)
|
||||
DEFINE_RAND_INF(RAND_INF_JABU_JABUS_BELLY_FIRST_SWITCH)
|
||||
DEFINE_RAND_INF(RAND_INF_FOREST_LOBBY_EYES)
|
||||
DEFINE_RAND_INF(RAND_INF_FOREST_DRAINED_WELL)
|
||||
DEFINE_RAND_INF(RAND_INF_FOREST_MQ_COURTYARD_WEB_BURNT)
|
||||
DEFINE_RAND_INF(RAND_INF_FIRE_MQ_LOBBY_TORCHES)
|
||||
DEFINE_RAND_INF(RAND_INF_SPIRIT_SUN_ON_FLOOR_ON)
|
||||
DEFINE_RAND_INF(RAND_INF_SPIRIT_BIG_MIRROR_STATUE_TURNED)
|
||||
DEFINE_RAND_INF(RAND_INF_SPIRIT_MQ_LOBBY_SILVER_RUPEES)
|
||||
|
||||
DEFINE_RAND_INF(RAND_INF_ZELDAS_LETTER)
|
||||
DEFINE_RAND_INF(RAND_INF_WEIRD_EGG)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue