fix anju rando item gives when performing an action (#3107)

This commit is contained in:
Adam Bird 2023-08-11 23:05:54 -04:00 committed by GitHub
parent 325c7fe365
commit b2e9d547ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -401,8 +401,8 @@ void func_80ABA9B8(EnNiwLady* this, PlayState* play) {
if (!gSaveContext.n64ddFlag) { if (!gSaveContext.n64ddFlag) {
func_8002F434(&this->actor, play, GI_POCKET_EGG, 200.0f, 100.0f); func_8002F434(&this->actor, play, GI_POCKET_EGG, 200.0f, 100.0f);
} else { } else {
// TODO: get-item-rework Adult trade sequence
this->getItemEntry = Randomizer_GetItemFromKnownCheck(RC_KAK_ANJU_AS_ADULT, GI_POCKET_EGG); this->getItemEntry = Randomizer_GetItemFromKnownCheck(RC_KAK_ANJU_AS_ADULT, GI_POCKET_EGG);
GiveItemEntryFromActor(&this->actor, play, this->getItemEntry, 200.0f, 100.0f);
gSaveContext.itemGetInf[2] |= 0x1000; gSaveContext.itemGetInf[2] |= 0x1000;
} }
@ -436,9 +436,9 @@ void func_80ABAB08(EnNiwLady* this, PlayState* play) {
if (!gSaveContext.n64ddFlag) { if (!gSaveContext.n64ddFlag) {
func_8002F434(&this->actor, play, GI_COJIRO, 200.0f, 100.0f); func_8002F434(&this->actor, play, GI_COJIRO, 200.0f, 100.0f);
} else { } else {
// TODO: get-item-rework Adult trade sequence
this->getItemEntry = Randomizer_GetItemFromKnownCheck(RC_KAK_TRADE_POCKET_CUCCO, GI_COJIRO); this->getItemEntry = Randomizer_GetItemFromKnownCheck(RC_KAK_TRADE_POCKET_CUCCO, GI_COJIRO);
Randomizer_ConsumeAdultTradeItem(play, ITEM_POCKET_CUCCO); Randomizer_ConsumeAdultTradeItem(play, ITEM_POCKET_CUCCO);
GiveItemEntryFromActor(&this->actor, play, this->getItemEntry, 200.0f, 100.0f);
gSaveContext.itemGetInf[2] |= 0x4000; gSaveContext.itemGetInf[2] |= 0x4000;
} }
this->actionFunc = func_80ABAC00; this->actionFunc = func_80ABAC00;
@ -462,21 +462,17 @@ void func_80ABAC00(EnNiwLady* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play)) { if (Actor_HasParent(&this->actor, play)) {
this->actionFunc = func_80ABAC84; this->actionFunc = func_80ABAC84;
} else { } else {
if (gSaveContext.n64ddFlag) {
getItemId = this->getItemEntry.getItemId;
GiveItemEntryFromActor(&this->actor, play, this->getItemEntry, 200.0f, 100.0f);
return;
}
getItemId = this->getItemId; getItemId = this->getItemId;
if (LINK_IS_ADULT) { if (LINK_IS_ADULT) {
if (!gSaveContext.n64ddFlag) { getItemId = !(gSaveContext.itemGetInf[2] & 0x1000) ? GI_POCKET_EGG : GI_COJIRO;
getItemId = !(gSaveContext.itemGetInf[2] & 0x1000) ? GI_POCKET_EGG : GI_COJIRO;
} else {
// TODO: get-item-rework Adult trade sequence
getItemId = this->getItemEntry.getItemId;
GiveItemEntryFromActor(&this->actor, play, this->getItemEntry, 200.0f, 100.0f);
// Skip setting item flags because that was done earlier
this->actionFunc = func_80ABA778;
}
}
if (this->getItemEntry.getItemId == GI_NONE) {
func_8002F434(&this->actor, play, getItemId, 200.0f, 100.0f);
} }
func_8002F434(&this->actor, play, getItemId, 200.0f, 100.0f);
} }
} }
@ -486,10 +482,13 @@ void func_80ABAC84(EnNiwLady* this, PlayState* play) {
} }
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST); osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 正常終了 ☆☆☆☆☆ \n" VT_RST);
if (LINK_IS_ADULT) { if (LINK_IS_ADULT) {
if (!(gSaveContext.itemGetInf[2] & 0x1000)) { // Flags for randomizer gives are set in the original message prompt choice handling
gSaveContext.itemGetInf[2] |= 0x1000; if (!gSaveContext.n64ddFlag) {
} else { if (!(gSaveContext.itemGetInf[2] & 0x1000)) {
gSaveContext.itemGetInf[2] |= 0x4000; gSaveContext.itemGetInf[2] |= 0x1000;
} else {
gSaveContext.itemGetInf[2] |= 0x4000;
}
} }
this->actionFunc = func_80ABA778; this->actionFunc = func_80ABA778;
} else { } else {