mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-07-16 10:02:59 -07:00
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:
parent
db41c6513b
commit
06387060d6
32 changed files with 246 additions and 165 deletions
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue