add spirit signs + unique init func (#6458)

This commit is contained in:
A Green Spoon 2026-04-04 13:37:24 +09:00 committed by GitHub
parent 50aed798a1
commit 4e1e180d21
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 20 additions and 3 deletions

View file

@ -1342,6 +1342,10 @@ void StaticData::HintTable_Init_Exclude_Dungeon() {
/*german*/ "Man erzählt sich, daß eine #Kiste im Geistertempel# #[[1]]# enthielte.", /*german*/ "Man erzählt sich, daß eine #Kiste im Geistertempel# #[[1]]# enthielte.",
/*french*/ "Selon moi, une #caisse dans le Temple de l'Esprit# contient #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, une #caisse dans le Temple de l'Esprit# contient #[[1]]#.", {QM_RED, QM_GREEN}));
hintTextTable[RHT_SIGN_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that #reading a statue in Spirit Temple# reveals #[[1]]#.",
/*german*/ "Man erzählt sich, daß das #Lesen einer Statue im Geistertempel# #[[1]]# enthülle.",
/*french*/ "Selon moi, #lire une statue dans le Temple de l'Esprit# révèle #[[1]]#.", {QM_RED, QM_GREEN}));
hintTextTable[RHT_WONDER_ITEM_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that a #wonder item in Spirit Temple# hides #[[1]]#.", hintTextTable[RHT_WONDER_ITEM_SPIRIT_TEMPLE] = HintText(CustomMessage("They say that a #wonder item in Spirit Temple# hides #[[1]]#.",
/*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand im Geistertempel# #[[1]]# verstecke.", /*german*/ "Man erzählt sich, daß sich ein #Wunder-Gegenstand im Geistertempel# #[[1]]# verstecke.",
/*french*/ "Selon moi, un #objet merveilleux dans le Temple de l'Esprit# cache #[[1]]#.", {QM_RED, QM_GREEN})); /*french*/ "Selon moi, un #objet merveilleux dans le Temple de l'Esprit# cache #[[1]]#.", {QM_RED, QM_GREEN}));

View file

@ -253,11 +253,13 @@ locationTable[RC_HW_POE_ALTAR] = Locati
locationTable[RC_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL] = Location::Sign(RC_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL, RCQUEST_BOTH, RCAREA_DODONGOS_CAVERN, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(578, -929), "Top Floor Pedestal", RHT_SIGN_DODONGOS_CAVERN, ACTOR_EN_WONDER_TALK2, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL)); locationTable[RC_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL] = Location::Sign(RC_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL, RCQUEST_BOTH, RCAREA_DODONGOS_CAVERN, SCENE_DODONGOS_CAVERN, TWO_ACTOR_PARAMS(578, -929), "Top Floor Pedestal", RHT_SIGN_DODONGOS_CAVERN, ACTOR_EN_WONDER_TALK2, SpoilerCollectionCheck::RandomizerInf(RAND_INF_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL));
locationTable[RC_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN] = Location::Sign(RC_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN, RCQUEST_VANILLA, RCAREA_SHADOW_TEMPLE, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(910, -192), "Truthspinner Rectangle Sign", RHT_SIGN_SHADOW_TEMPLE, ACTOR_EN_KANBAN, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN)); locationTable[RC_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN] = Location::Sign(RC_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN, RCQUEST_VANILLA, RCAREA_SHADOW_TEMPLE, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(910, -192), "Truthspinner Rectangle Sign", RHT_SIGN_SHADOW_TEMPLE, ACTOR_EN_KANBAN, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN));
locationTable[RC_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN] = Location::Sign(RC_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN, RCQUEST_BOTH, RCAREA_SHADOW_TEMPLE, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(1132, 4103), "Falling Spikes Rectangle Sign", RHT_SIGN_SHADOW_TEMPLE, ACTOR_EN_KANBAN, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN)); locationTable[RC_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN] = Location::Sign(RC_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN, RCQUEST_BOTH, RCAREA_SHADOW_TEMPLE, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(1132, 4103), "Falling Spikes Rectangle Sign", RHT_SIGN_SHADOW_TEMPLE, ACTOR_EN_KANBAN, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN));
locationTable[RC_SPIRIT_TEMPLE_LEFT_SNAKE_STATUE] = Location::Sign(RC_SPIRIT_TEMPLE_LEFT_SNAKE_STATUE, RCQUEST_BOTH, RCAREA_SPIRIT_TEMPLE, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(-282, 312), "Left Snake Statue", RHT_SIGN_SPIRIT_TEMPLE, ACTOR_EN_WONDER_TALK2, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_LEFT_SNAKE_STATUE));
locationTable[RC_SPIRIT_TEMPLE_RIGHT_SNAKE_STATUE] = Location::Sign(RC_SPIRIT_TEMPLE_RIGHT_SNAKE_STATUE, RCQUEST_BOTH, RCAREA_SPIRIT_TEMPLE, SCENE_SPIRIT_TEMPLE, TWO_ACTOR_PARAMS(302, 310), "Right Snake Statue", RHT_SIGN_SPIRIT_TEMPLE, ACTOR_EN_WONDER_TALK2, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SPIRIT_TEMPLE_RIGHT_SNAKE_STATUE));
// MQ Dungeon Signs // MQ Dungeon Signs
locationTable[RC_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN] = Location::Sign(RC_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN, RCQUEST_MQ, RCAREA_SHADOW_TEMPLE, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(2893, 2705), "Lower Pit Rectangle Sign", RHT_SIGN_SHADOW_TEMPLE, ACTOR_EN_KANBAN, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN)); locationTable[RC_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN] = Location::Sign(RC_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN, RCQUEST_MQ, RCAREA_SHADOW_TEMPLE, SCENE_SHADOW_TEMPLE, TWO_ACTOR_PARAMS(2893, 2705), "Lower Pit Rectangle Sign", RHT_SIGN_SHADOW_TEMPLE, ACTOR_EN_KANBAN, SpoilerCollectionCheck::RandomizerInf(RAND_INF_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN));
// clang-format on // clang-format on
} }
static RegisterShipInitFunc initFunc(RegisterShuffleSigns, { "IS_RANDO" }); static RegisterShipInitFunc initFunc_ShuffleSigns(RegisterShuffleSigns, { "IS_RANDO" });
static RegisterShipInitFunc registerSignLocations(Rando::StaticData::RegisterSignLocations); static RegisterShipInitFunc registerSignLocations(Rando::StaticData::RegisterSignLocations);

View file

@ -23,8 +23,10 @@ void RegionTable_Init_SpiritTemple() {
EVENT_ACCESS(LOGIC_FORWARDS_SPIRIT_ADULT, logic->IsAdult), EVENT_ACCESS(LOGIC_FORWARDS_SPIRIT_ADULT, logic->IsAdult),
}, { }, {
//Locations //Locations
LOCATION(RC_SPIRIT_TEMPLE_LOBBY_POT_1, logic->CanBreakPots()), LOCATION(RC_SPIRIT_TEMPLE_LOBBY_POT_1, logic->CanBreakPots()),
LOCATION(RC_SPIRIT_TEMPLE_LOBBY_POT_2, logic->CanBreakPots()), LOCATION(RC_SPIRIT_TEMPLE_LOBBY_POT_2, logic->CanBreakPots()),
LOCATION(RC_SPIRIT_TEMPLE_LEFT_SNAKE_STATUE, logic->CanRead()),
LOCATION(RC_SPIRIT_TEMPLE_RIGHT_SNAKE_STATUE, logic->CanRead()),
}, { }, {
//Exits //Exits
ENTRANCE(RR_SPIRIT_TEMPLE_ENTRYWAY, true), ENTRANCE(RR_SPIRIT_TEMPLE_ENTRYWAY, true),
@ -564,6 +566,8 @@ void RegionTable_Init_SpiritTemple() {
LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2, logic->CanBreakPots()), LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_2, logic->CanBreakPots()),
LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3, logic->CanBreakPots()), LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_3, logic->CanBreakPots()),
LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4, logic->CanBreakPots()), LOCATION(RC_SPIRIT_TEMPLE_MQ_ENTRANCE_POT_4, logic->CanBreakPots()),
LOCATION(RC_SPIRIT_TEMPLE_LEFT_SNAKE_STATUE, logic->CanRead()),
LOCATION(RC_SPIRIT_TEMPLE_RIGHT_SNAKE_STATUE, logic->CanRead()),
}, { }, {
//Exits //Exits
ENTRANCE(RR_SPIRIT_TEMPLE_ENTRYWAY, true), ENTRANCE(RR_SPIRIT_TEMPLE_ENTRYWAY, true),

View file

@ -3055,6 +3055,8 @@ std::map<RandomizerCheck, RandomizerInf> rcToRandomizerInf = {
{ RC_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL, RAND_INF_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL }, { RC_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL, RAND_INF_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL },
{ RC_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN, RAND_INF_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN }, { RC_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN, RAND_INF_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN },
{ RC_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN, RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN }, { RC_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN, RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN },
{ RC_SPIRIT_TEMPLE_LEFT_SNAKE_STATUE, RAND_INF_SPIRIT_TEMPLE_LEFT_SNAKE_STATUE },
{ RC_SPIRIT_TEMPLE_RIGHT_SNAKE_STATUE, RAND_INF_SPIRIT_TEMPLE_RIGHT_SNAKE_STATUE },
{ RC_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN, RAND_INF_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN }, { RC_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN, RAND_INF_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN },
// Wonder Items // Wonder Items
{ RC_KF_WONDER_TRAINING_1, RAND_INF_KF_WONDER_TRAINING_1 }, { RC_KF_WONDER_TRAINING_1, RAND_INF_KF_WONDER_TRAINING_1 },

View file

@ -2857,6 +2857,8 @@ RANDO_ENUM_ITEM(RC_HW_POE_ALTAR)
RANDO_ENUM_ITEM(RC_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL) RANDO_ENUM_ITEM(RC_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL)
RANDO_ENUM_ITEM(RC_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN) RANDO_ENUM_ITEM(RC_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN)
RANDO_ENUM_ITEM(RC_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN) RANDO_ENUM_ITEM(RC_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN)
RANDO_ENUM_ITEM(RC_SPIRIT_TEMPLE_LEFT_SNAKE_STATUE)
RANDO_ENUM_ITEM(RC_SPIRIT_TEMPLE_RIGHT_SNAKE_STATUE)
// MQ Dungeon Signs // MQ Dungeon Signs
RANDO_ENUM_ITEM(RC_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN) RANDO_ENUM_ITEM(RC_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN)
// Beggar // Beggar

View file

@ -1605,6 +1605,7 @@ RANDO_ENUM_ITEM(RHT_SIGN_GERUDO_FORTRESS)
RANDO_ENUM_ITEM(RHT_SIGN_HAUNTED_WASTELAND) RANDO_ENUM_ITEM(RHT_SIGN_HAUNTED_WASTELAND)
RANDO_ENUM_ITEM(RHT_SIGN_DODONGOS_CAVERN) RANDO_ENUM_ITEM(RHT_SIGN_DODONGOS_CAVERN)
RANDO_ENUM_ITEM(RHT_SIGN_SHADOW_TEMPLE) RANDO_ENUM_ITEM(RHT_SIGN_SHADOW_TEMPLE)
RANDO_ENUM_ITEM(RHT_SIGN_SPIRIT_TEMPLE)
// BEGGAR // BEGGAR
RANDO_ENUM_ITEM(RHT_BEGGAR_MARKET) RANDO_ENUM_ITEM(RHT_BEGGAR_MARKET)
RANDO_ENUM_ITEM(RHT_BEGGAR_KAKARIKO_VILLAGE) RANDO_ENUM_ITEM(RHT_BEGGAR_KAKARIKO_VILLAGE)

View file

@ -2424,6 +2424,8 @@ RANDO_ENUM_ITEM(RAND_INF_HW_POE_ALTAR)
RANDO_ENUM_ITEM(RAND_INF_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL) RANDO_ENUM_ITEM(RAND_INF_DODONGOS_CAVERN_TOP_FLOOR_PEDESTAL)
RANDO_ENUM_ITEM(RAND_INF_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN) RANDO_ENUM_ITEM(RAND_INF_SHADOW_TEMPLE_TRUTHSPINNER_RECTANGLE_SIGN)
RANDO_ENUM_ITEM(RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN) RANDO_ENUM_ITEM(RAND_INF_SHADOW_TEMPLE_FALLING_SPIKES_RECTANGLE_SIGN)
RANDO_ENUM_ITEM(RAND_INF_SPIRIT_TEMPLE_LEFT_SNAKE_STATUE)
RANDO_ENUM_ITEM(RAND_INF_SPIRIT_TEMPLE_RIGHT_SNAKE_STATUE)
// MQ Dungeon Signs // MQ Dungeon Signs
RANDO_ENUM_ITEM(RAND_INF_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN) RANDO_ENUM_ITEM(RAND_INF_SHADOW_TEMPLE_MQ_LOWER_PIT_RECTANGLE_SIGN)
// Beggar // Beggar