diff --git a/soh/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/soh/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c index 50df2657a..ef6f7cbaa 100644 --- a/soh/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c +++ b/soh/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c @@ -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 {