mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-20 13:23:45 -07:00
with shuffle speak on, don't skip nabooru in spirit temple as child. also don't prevent asking to be thrown in jail
This commit is contained in:
parent
ed135d635e
commit
bca2ba769a
5 changed files with 11 additions and 5 deletions
|
@ -20,8 +20,9 @@ void RegisterShuffleSpeak() {
|
||||||
inf = RAND_INF_CAN_SPEAK_DEKU;
|
inf = RAND_INF_CAN_SPEAK_DEKU;
|
||||||
break;
|
break;
|
||||||
case ACTOR_EN_GE1:
|
case ACTOR_EN_GE1:
|
||||||
case ACTOR_EN_GE2:
|
|
||||||
case ACTOR_EN_GE3:
|
case ACTOR_EN_GE3:
|
||||||
|
case ACTOR_EN_NB:
|
||||||
|
// skip ACTOR_EN_GE2 to always be able to ask to be thrown in jail
|
||||||
inf = RAND_INF_CAN_SPEAK_GERUDO;
|
inf = RAND_INF_CAN_SPEAK_GERUDO;
|
||||||
break;
|
break;
|
||||||
case ACTOR_EN_GO:
|
case ACTOR_EN_GO:
|
||||||
|
|
|
@ -31,6 +31,7 @@ extern "C" {
|
||||||
#include "src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.h"
|
#include "src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.h"
|
||||||
#include "src/overlays/actors/ovl_En_Ko/z_en_ko.h"
|
#include "src/overlays/actors/ovl_En_Ko/z_en_ko.h"
|
||||||
#include "src/overlays/actors/ovl_En_Mk/z_en_mk.h"
|
#include "src/overlays/actors/ovl_En_Mk/z_en_mk.h"
|
||||||
|
#include "src/overlays/actors/ovl_En_Nb/z_en_nb.h"
|
||||||
#include "src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.h"
|
#include "src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.h"
|
||||||
#include "src/overlays/actors/ovl_En_Kz/z_en_kz.h"
|
#include "src/overlays/actors/ovl_En_Kz/z_en_kz.h"
|
||||||
#include "src/overlays/actors/ovl_En_Go2/z_en_go2.h"
|
#include "src/overlays/actors/ovl_En_Go2/z_en_go2.h"
|
||||||
|
@ -2114,6 +2115,10 @@ void RandomizerOnActorInitHandler(void* actorRef) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (actor->id == ACTOR_EN_NB && (actor->params & 0xFF) == NB_TYPE_CRAWLSPACE && !RAND_GET_OPTION(RSK_SHUFFLE_SPEAK)) {
|
||||||
|
Actor_Kill(actor);
|
||||||
|
}
|
||||||
|
|
||||||
// In ER, once Link has spawned we know the scene has loaded, so we can sanitize the last known entrance type
|
// In ER, once Link has spawned we know the scene has loaded, so we can sanitize the last known entrance type
|
||||||
if (actor->id == ACTOR_PLAYER && RAND_GET_OPTION(RSK_SHUFFLE_ENTRANCES)) {
|
if (actor->id == ACTOR_PLAYER && RAND_GET_OPTION(RSK_SHUFFLE_ENTRANCES)) {
|
||||||
Grotto_SanitizeEntranceType();
|
Grotto_SanitizeEntranceType();
|
||||||
|
|
|
@ -23,7 +23,7 @@ void RegionTable_Init_SpiritTemple() {
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_SPIRIT_TEMPLE_ENTRYWAY, []{return true;}),
|
Entrance(RR_SPIRIT_TEMPLE_ENTRYWAY, []{return true;}),
|
||||||
Entrance(RR_SPIRIT_TEMPLE_CHILD, []{return logic->IsChild;}),
|
Entrance(RR_SPIRIT_TEMPLE_CHILD, []{return logic->IsChild && logic->HasItem(RG_SPEAK_GERUDO);}),
|
||||||
Entrance(RR_SPIRIT_TEMPLE_EARLY_ADULT, []{return logic->CanUse(RG_SILVER_GAUNTLETS);}),
|
Entrance(RR_SPIRIT_TEMPLE_EARLY_ADULT, []{return logic->CanUse(RG_SILVER_GAUNTLETS);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ void RegionTable_Init_SpiritTemple() {
|
||||||
}, {
|
}, {
|
||||||
//Exits
|
//Exits
|
||||||
Entrance(RR_SPIRIT_TEMPLE_ENTRYWAY, []{return true;}),
|
Entrance(RR_SPIRIT_TEMPLE_ENTRYWAY, []{return true;}),
|
||||||
Entrance(RR_SPIRIT_TEMPLE_MQ_1F_WEST, []{return logic->IsChild;}),
|
Entrance(RR_SPIRIT_TEMPLE_MQ_1F_WEST, []{return logic->IsChild && logic->HasItem(RG_SPEAK_GERUDO);}),
|
||||||
Entrance(RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_SOUTH, []{return logic->CanUse(RG_LONGSHOT) && logic->CanUse(RG_BOMBCHU_5);}),
|
Entrance(RR_SPIRIT_TEMPLE_MQ_BIG_BLOCK_ROOM_SOUTH, []{return logic->CanUse(RG_LONGSHOT) && logic->CanUse(RG_BOMBCHU_5);}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -241,7 +241,6 @@ extern "C" void Randomizer_InitSaveFile() {
|
||||||
Flags_SetEventChkInf(EVENTCHKINF_RENTED_HORSE_FROM_INGO);
|
Flags_SetEventChkInf(EVENTCHKINF_RENTED_HORSE_FROM_INGO);
|
||||||
Flags_SetInfTable(INFTABLE_SPOKE_TO_POE_COLLECTOR_IN_RUINED_MARKET);
|
Flags_SetInfTable(INFTABLE_SPOKE_TO_POE_COLLECTOR_IN_RUINED_MARKET);
|
||||||
Flags_SetEventChkInf(EVENTCHKINF_WATCHED_GANONS_CASTLE_COLLAPSE_CAUGHT_BY_GERUDO);
|
Flags_SetEventChkInf(EVENTCHKINF_WATCHED_GANONS_CASTLE_COLLAPSE_CAUGHT_BY_GERUDO);
|
||||||
Flags_SetEventChkInf(EVENTCHKINF_SPOKE_TO_NABOORU_IN_SPIRIT_TEMPLE);
|
|
||||||
|
|
||||||
// Go away Ruto (Water Temple first cutscene).
|
// Go away Ruto (Water Temple first cutscene).
|
||||||
gSaveContext.sceneFlags[SCENE_WATER_TEMPLE].swch |= (1 << 0x10);
|
gSaveContext.sceneFlags[SCENE_WATER_TEMPLE].swch |= (1 << 0x10);
|
||||||
|
@ -259,6 +258,7 @@ extern "C" void Randomizer_InitSaveFile() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Randomizer_GetSettingValue(RSK_SHUFFLE_SPEAK) == RO_GENERIC_OFF) {
|
if (Randomizer_GetSettingValue(RSK_SHUFFLE_SPEAK) == RO_GENERIC_OFF) {
|
||||||
|
Flags_SetEventChkInf(EVENTCHKINF_SPOKE_TO_NABOORU_IN_SPIRIT_TEMPLE);
|
||||||
Flags_SetRandomizerInf(RAND_INF_CAN_SPEAK_DEKU);
|
Flags_SetRandomizerInf(RAND_INF_CAN_SPEAK_DEKU);
|
||||||
Flags_SetRandomizerInf(RAND_INF_CAN_SPEAK_GERUDO);
|
Flags_SetRandomizerInf(RAND_INF_CAN_SPEAK_GERUDO);
|
||||||
Flags_SetRandomizerInf(RAND_INF_CAN_SPEAK_GORON);
|
Flags_SetRandomizerInf(RAND_INF_CAN_SPEAK_GORON);
|
||||||
|
|
|
@ -1104,7 +1104,7 @@ void EnNb_LookUp(EnNb* this, PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void EnNb_CrawlspaceSpawnCheck(EnNb* this, PlayState* play) {
|
void EnNb_CrawlspaceSpawnCheck(EnNb* this, PlayState* play) {
|
||||||
if (!IS_RANDO && !Flags_GetEventChkInf(EVENTCHKINF_NABOORU_CAPTURED_BY_TWINROVA) && LINK_IS_CHILD) {
|
if (!Flags_GetEventChkInf(EVENTCHKINF_NABOORU_CAPTURED_BY_TWINROVA) && LINK_IS_CHILD) {
|
||||||
EnNb_UpdatePath(this, play);
|
EnNb_UpdatePath(this, play);
|
||||||
|
|
||||||
// looking into crawlspace
|
// looking into crawlspace
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue