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
1 changed files with 17 additions and 18 deletions

View File

@ -401,8 +401,8 @@ void func_80ABA9B8(EnNiwLady* this, PlayState* play) {
if (!gSaveContext.n64ddFlag) {
func_8002F434(&this->actor, play, GI_POCKET_EGG, 200.0f, 100.0f);
} else {
// TODO: get-item-rework Adult trade sequence
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;
}
@ -436,9 +436,9 @@ void func_80ABAB08(EnNiwLady* this, PlayState* play) {
if (!gSaveContext.n64ddFlag) {
func_8002F434(&this->actor, play, GI_COJIRO, 200.0f, 100.0f);
} else {
// TODO: get-item-rework Adult trade sequence
this->getItemEntry = Randomizer_GetItemFromKnownCheck(RC_KAK_TRADE_POCKET_CUCCO, GI_COJIRO);
Randomizer_ConsumeAdultTradeItem(play, ITEM_POCKET_CUCCO);
GiveItemEntryFromActor(&this->actor, play, this->getItemEntry, 200.0f, 100.0f);
gSaveContext.itemGetInf[2] |= 0x4000;
}
this->actionFunc = func_80ABAC00;
@ -462,21 +462,17 @@ void func_80ABAC00(EnNiwLady* this, PlayState* play) {
if (Actor_HasParent(&this->actor, play)) {
this->actionFunc = func_80ABAC84;
} else {
if (gSaveContext.n64ddFlag) {
getItemId = this->getItemEntry.getItemId;
GiveItemEntryFromActor(&this->actor, play, this->getItemEntry, 200.0f, 100.0f);
return;
}
getItemId = this->getItemId;
if (LINK_IS_ADULT) {
if (!gSaveContext.n64ddFlag) {
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);
getItemId = !(gSaveContext.itemGetInf[2] & 0x1000) ? GI_POCKET_EGG : GI_COJIRO;
}
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);
if (LINK_IS_ADULT) {
if (!(gSaveContext.itemGetInf[2] & 0x1000)) {
gSaveContext.itemGetInf[2] |= 0x1000;
} else {
gSaveContext.itemGetInf[2] |= 0x4000;
// Flags for randomizer gives are set in the original message prompt choice handling
if (!gSaveContext.n64ddFlag) {
if (!(gSaveContext.itemGetInf[2] & 0x1000)) {
gSaveContext.itemGetInf[2] |= 0x1000;
} else {
gSaveContext.itemGetInf[2] |= 0x4000;
}
}
this->actionFunc = func_80ABA778;
} else {