Adds option for shorter biggoron quest

This commit is contained in:
Ada 2022-05-16 15:03:56 +01:00
parent 076887e71f
commit 9f82457830
3 changed files with 39 additions and 11 deletions

View File

@ -679,6 +679,8 @@ namespace SohImGui {
Tooltip("Allows equiping the tunic and boots to c-buttons"); Tooltip("Allows equiping the tunic and boots to c-buttons");
EnhancementCheckbox("MM Bunny Hood", "gMMBunnyHood"); EnhancementCheckbox("MM Bunny Hood", "gMMBunnyHood");
Tooltip("Wearing the Bunny Hood grants a speed increase like in Majora's Mask"); Tooltip("Wearing the Bunny Hood grants a speed increase like in Majora's Mask");
EnhancementCheckbox("2 Day Biggoron Quest", "gBiggoronShortQuest");
Tooltip("Makes you wait 2 days instead of 3 to forge the Biggoron Sword");
ImGui::EndMenu(); ImGui::EndMenu();
} }

View File

@ -96,11 +96,19 @@ u16 EnGo_GetTextID(GlobalContext* globalCtx, Actor* thisx) {
if (gSaveContext.bgsFlag) { if (gSaveContext.bgsFlag) {
return 0x305E; return 0x305E;
} else if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_CLAIM_CHECK) { } else if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_CLAIM_CHECK) {
if (CVar_GetS32("gBiggoronShortQuest", 0) != 0) {
if (Environment_GetBgsDayCount() >= 2) {
return 0x305E;
} else {
return 0x305D;
}
} else {
if (Environment_GetBgsDayCount() >= 3) { if (Environment_GetBgsDayCount() >= 3) {
return 0x305E; return 0x305E;
} else { } else {
return 0x305D; return 0x305D;
} }
}
} else if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_EYEDROPS) { } else if (INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_EYEDROPS) {
player->exchangeItemId = EXCH_ITEM_EYEDROPS; player->exchangeItemId = EXCH_ITEM_EYEDROPS;
return 0x3059; return 0x3059;

View File

@ -1021,12 +1021,29 @@ void EnGo2_BiggoronSetTextId(EnGo2* this, GlobalContext* globalCtx, Player* play
} else if (!gSaveContext.bgsFlag && (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_CLAIM_CHECK)) { } else if (!gSaveContext.bgsFlag && (INV_CONTENT(ITEM_TRADE_ADULT) == ITEM_CLAIM_CHECK)) {
if (func_8002F368(globalCtx) == EXCH_ITEM_CLAIM_CHECK) { if (func_8002F368(globalCtx) == EXCH_ITEM_CLAIM_CHECK) {
if (CVar_GetS32("gBiggoronShortQuest", 0) != 0) {
if (Environment_GetBgsDayCount() >= 2) {
textId = 0x305E;
} else {
textId = 0x305D;
}
this->actor.textId = textId;
} else {
if (Environment_GetBgsDayCount() >= 3) { if (Environment_GetBgsDayCount() >= 3) {
textId = 0x305E; textId = 0x305E;
} else { } else {
textId = 0x305D; textId = 0x305D;
} }
this->actor.textId = textId; this->actor.textId = textId;
}
} else {
if (CVar_GetS32("gBiggoronShortQuest", 0) != 0) {
if (Environment_GetBgsDayCount() >= 2) {
textId = 0x3002;
} else {
textId = 0x305D;
}
this->actor.textId = textId;
} else { } else {
if (Environment_GetBgsDayCount() >= 3) { if (Environment_GetBgsDayCount() >= 3) {
textId = 0x3002; textId = 0x3002;
@ -1035,6 +1052,7 @@ void EnGo2_BiggoronSetTextId(EnGo2* this, GlobalContext* globalCtx, Player* play
} }
this->actor.textId = textId; this->actor.textId = textId;
} }
}
player->actor.textId = this->actor.textId; player->actor.textId = this->actor.textId;
} else if ((INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_PRESCRIPTION) && } else if ((INV_CONTENT(ITEM_TRADE_ADULT) >= ITEM_PRESCRIPTION) &&