Trade cleanup (#4971)

* Move adult trade to flags

* Move child trade to flags

* Fix vanilla

* Address review

* Rename `trade_shuffle` to `ShuffleTradeItems`

* Fix mac build

* Update GIVanillaBehavior.h

* Update z_kankyo.c

* Update z_en_heishi2.c
This commit is contained in:
Pepe20129 2025-02-25 12:09:01 +01:00 committed by GitHub
parent db41c6513b
commit 06387060d6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 246 additions and 165 deletions

View file

@ -226,7 +226,7 @@ namespace Rando {
case RG_EYEBALL_FROG:
case RG_EYEDROPS:
case RG_CLAIM_CHECK:
return HasAdultTrade(StaticData::RetrieveItem(itemName).GetGIEntry()->itemId);
return CheckRandoInf(itemName - RG_POCKET_EGG + RAND_INF_ADULT_TRADES_HAS_POCKET_EGG);
case RG_BOTTLE_WITH_BIG_POE:
case RG_BOTTLE_WITH_BLUE_FIRE:
case RG_BOTTLE_WITH_BLUE_POTION:
@ -1509,7 +1509,7 @@ namespace Rando {
case RG_EYEBALL_FROG:
case RG_EYEDROPS:
case RG_CLAIM_CHECK:
SetAdultTrade(item.GetGIEntry()->itemId, state);
SetRandoInf(randoGet - RG_POCKET_EGG + RAND_INF_ADULT_TRADES_HAS_POCKET_EGG, state);
break;
case RG_PROGRESSIVE_HOOKSHOT:
{
@ -2079,26 +2079,10 @@ namespace Rando {
return ((1 << item) & mSaveContext->inventory.questItems);
}
bool Logic::HasAdultTrade(uint32_t itemID) {
int tradeIndex = itemID - ITEM_POCKET_EGG;
return mSaveContext->ship.quest.data.randomizer.adultTradeItems & (1 << tradeIndex);
}
void Logic::SetAdultTrade(uint32_t itemID, bool state) {
int tradeIndex = itemID - ITEM_POCKET_EGG;
if (!state) {
mSaveContext->ship.quest.data.randomizer.adultTradeItems &= ~(1 << tradeIndex);
}
else {
mSaveContext->ship.quest.data.randomizer.adultTradeItems |= (1 << tradeIndex);
}
}
void Logic::SetQuestItem(uint32_t item, bool state) {
if (!state) {
mSaveContext->inventory.questItems &= ~(1 << item);
}
else {
} else {
mSaveContext->inventory.questItems |= (1 << item);
}
}
@ -2118,8 +2102,7 @@ namespace Rando {
void Logic::SetDungeonItem(uint32_t item, uint32_t dungeonIndex, bool state) {
if (!state) {
mSaveContext->inventory.dungeonItems[dungeonIndex] &= ~gBitFlags[item];
}
else {
} else {
mSaveContext->inventory.dungeonItems[dungeonIndex] |= gBitFlags[item];
}
}
@ -2131,8 +2114,7 @@ namespace Rando {
void Logic::SetRandoInf(uint32_t flag, bool state) {
if (!state) {
mSaveContext->ship.randomizerInf[flag >> 4] &= ~(1 << (flag & 0xF));
}
else {
} else {
mSaveContext->ship.randomizerInf[flag >> 4] |= (1 << (flag & 0xF));
}
}
@ -2144,8 +2126,7 @@ namespace Rando {
void Logic::SetEventChkInf(int32_t flag, bool state) {
if (!state) {
mSaveContext->eventChkInf[flag >> 4] &= ~(1 << (flag & 0xF));
}
else {
} else {
mSaveContext->eventChkInf[flag >> 4] |= (1 << (flag & 0xF));
}
}