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:
@@ -4,7 +4,6 @@
|
||||
#include "textures/do_action_static/do_action_static.h"
|
||||
#include "textures/icon_item_static/icon_item_static.h"
|
||||
#include "soh_assets.h"
|
||||
#include "soh/Enhancements/randomizer/adult_trade_shuffle.h"
|
||||
#include "soh/Enhancements/randomizer/randomizer_entrance.h"
|
||||
|
||||
#include "libultraship/bridge.h"
|
||||
@@ -2446,8 +2445,17 @@ u8 Item_Give(PlayState* play, u8 item) {
|
||||
Flags_SetItemGetInf(ITEMGETINF_OBTAINED_NUT_UPGRADE_FROM_STAGE);
|
||||
}
|
||||
|
||||
if (item >= ITEM_POCKET_EGG) {
|
||||
gSaveContext.ship.quest.data.randomizer.adultTradeItems |= ADULT_TRADE_FLAG(item);
|
||||
if (IS_RANDO) {
|
||||
if (item >= ITEM_POCKET_EGG) {
|
||||
Flags_SetRandomizerInf(item - ITEM_POCKET_EGG + RAND_INF_ADULT_TRADES_HAS_POCKET_EGG);
|
||||
} else if (item == ITEM_LETTER_ZELDA) {
|
||||
//don't care about zelda's letter if it's already been shown to the guard
|
||||
if (!Flags_GetInfTable(INFTABLE_SHOWED_ZELDAS_LETTER_TO_GATE_GUARD)) {
|
||||
Flags_SetRandomizerInf(RAND_INF_CHILD_TRADES_HAS_LETTER_ZELDA);
|
||||
}
|
||||
} else {
|
||||
Flags_SetRandomizerInf(item - ITEM_WEIRD_EGG + RAND_INF_CHILD_TRADES_HAS_WEIRD_EGG);
|
||||
}
|
||||
}
|
||||
|
||||
temp = INV_CONTENT(item);
|
||||
@@ -2759,12 +2767,12 @@ bool Inventory_HatchPocketCucco(PlayState* play) {
|
||||
return Inventory_ReplaceItem(play, ITEM_POCKET_EGG, ITEM_POCKET_CUCCO);
|
||||
}
|
||||
|
||||
if (!PLAYER_HAS_SHUFFLED_ADULT_TRADE_ITEM(ITEM_POCKET_EGG)) {
|
||||
if (!Flags_GetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_POCKET_EGG)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
gSaveContext.ship.quest.data.randomizer.adultTradeItems &= ~ADULT_TRADE_FLAG(ITEM_POCKET_EGG);
|
||||
gSaveContext.ship.quest.data.randomizer.adultTradeItems |= ADULT_TRADE_FLAG(ITEM_POCKET_CUCCO);
|
||||
Flags_UnsetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_POCKET_EGG);
|
||||
Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_POCKET_CUCCO);
|
||||
Inventory_ReplaceItem(play, ITEM_POCKET_EGG, ITEM_POCKET_CUCCO);
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user