Sets up Magic Bean Salesman to sell a rando check for 60 rupees.

This commit is contained in:
Christopher Leggett 2022-08-24 17:20:45 -04:00
parent fe7aedc80d
commit adf465c1a0
No known key found for this signature in database
GPG Key ID: 7093AE5FF7037D79
2 changed files with 19 additions and 5 deletions

View File

@ -1013,5 +1013,6 @@ typedef enum {
RSK_COMPLETE_MASK_QUEST, RSK_COMPLETE_MASK_QUEST,
RSK_ENABLE_GLITCH_CUTSCENES, RSK_ENABLE_GLITCH_CUTSCENES,
RSK_SKULLS_SUNS_SONG, RSK_SKULLS_SUNS_SONG,
RSK_SHUFFLE_ADULT_TRADE RSK_SHUFFLE_ADULT_TRADE,
RSK_SHUFFLE_MAGIC_BEANS
} RandomizerSettingKey; } RandomizerSettingKey;

View File

@ -125,11 +125,19 @@ void EnMs_Talk(EnMs* this, GlobalContext* globalCtx) {
} else if (Message_ShouldAdvance(globalCtx)) { } else if (Message_ShouldAdvance(globalCtx)) {
switch (globalCtx->msgCtx.choiceIndex) { switch (globalCtx->msgCtx.choiceIndex) {
case 0: // yes case 0: // yes
if (gSaveContext.rupees < sPrices[BEANS_BOUGHT]) { if (gSaveContext.rupees <
((gSaveContext.n64ddFlag && Randomizer_GetSettingValue(RSK_SHUFFLE_MAGIC_BEANS))
? 60
: sPrices[BEANS_BOUGHT])) {
Message_ContinueTextbox(globalCtx, 0x4069); // not enough rupees text Message_ContinueTextbox(globalCtx, 0x4069); // not enough rupees text
return; return;
} }
if (gSaveContext.n64ddFlag && Randomizer_GetSettingValue(RSK_SHUFFLE_MAGIC_BEANS)) {
GiveItemEntryFromActor(&this->actor, globalCtx,
Randomizer_GetItemFromKnownCheck(RC_ZR_MAGIC_BEAN_SALESMAN, GI_BEAN), 90.0f, 10.0f);
} else {
func_8002F434(&this->actor, globalCtx, GI_BEAN, 90.0f, 10.0f); func_8002F434(&this->actor, globalCtx, GI_BEAN, 90.0f, 10.0f);
}
this->actionFunc = EnMs_Sell; this->actionFunc = EnMs_Sell;
return; return;
case 1: // no case 1: // no
@ -142,13 +150,18 @@ void EnMs_Talk(EnMs* this, GlobalContext* globalCtx) {
void EnMs_Sell(EnMs* this, GlobalContext* globalCtx) { void EnMs_Sell(EnMs* this, GlobalContext* globalCtx) {
if (Actor_HasParent(&this->actor, globalCtx)) { if (Actor_HasParent(&this->actor, globalCtx)) {
Rupees_ChangeBy(-sPrices[BEANS_BOUGHT]); Rupees_ChangeBy((gSaveContext.n64ddFlag && Randomizer_GetSettingValue(RSK_SHUFFLE_MAGIC_BEANS)) ? 60 : -sPrices[BEANS_BOUGHT]);
this->actor.parent = NULL; this->actor.parent = NULL;
this->actionFunc = EnMs_TalkAfterPurchase; this->actionFunc = EnMs_TalkAfterPurchase;
} else {
if (gSaveContext.n64ddFlag && Randomizer_GetSettingValue(RSK_SHUFFLE_MAGIC_BEANS)) {
GiveItemEntryFromActor(&this->actor, globalCtx,
Randomizer_GetItemFromKnownCheck(RC_ZR_MAGIC_BEAN_SALESMAN, GI_BEAN), 90.0f, 10.0f);
} else { } else {
func_8002F434(&this->actor, globalCtx, GI_BEAN, 90.0f, 10.0f); func_8002F434(&this->actor, globalCtx, GI_BEAN, 90.0f, 10.0f);
} }
} }
}
void EnMs_TalkAfterPurchase(EnMs* this, GlobalContext* globalCtx) { void EnMs_TalkAfterPurchase(EnMs* this, GlobalContext* globalCtx) {
// if dialog state is 6 and player responded to textbox // if dialog state is 6 and player responded to textbox