mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-02-07 02:40:30 -05:00
Move adult trade to flags
This commit is contained in:
parent
668e266ecc
commit
24699f8ce3
@ -160,7 +160,6 @@ typedef struct {
|
||||
#pragma region SoH
|
||||
|
||||
typedef struct ShipRandomizerSaveContextData {
|
||||
u16 adultTradeItems;
|
||||
u8 triforcePiecesCollected;
|
||||
} ShipRandomizerSaveContextData;
|
||||
|
||||
|
@ -414,6 +414,7 @@ void DrawInfoTab() {
|
||||
void DrawBGSItemFlag(uint8_t itemID) {
|
||||
const ItemMapEntry& slotEntry = itemMapping[itemID];
|
||||
ImGui::Image(Ship::Context::GetInstance()->GetWindow()->GetGui()->GetTextureByName(slotEntry.name), ImVec2(32.0f, 32.0f), ImVec2(0, 0), ImVec2(1, 1));
|
||||
/*
|
||||
ImGui::SameLine();
|
||||
int tradeIndex = itemID - ITEM_POCKET_EGG;
|
||||
bool hasItem = (gSaveContext.ship.quest.data.randomizer.adultTradeItems & (1 << tradeIndex)) != 0;
|
||||
@ -430,6 +431,7 @@ void DrawBGSItemFlag(uint8_t itemID) {
|
||||
Inventory_ReplaceItem(gPlayState, itemID, Randomizer_GetNextAdultTradeItem());
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void DrawInventoryTab() {
|
||||
@ -476,9 +478,11 @@ void DrawInventoryTab() {
|
||||
if (ImGui::BeginPopup(itemPopupPicker)) {
|
||||
if (ImGui::Button("##itemNonePicker", ImVec2(32.0f, 32.0f))) {
|
||||
gSaveContext.inventory.items[selectedIndex] = ITEM_NONE;
|
||||
/*
|
||||
if (selectedIndex == SLOT_TRADE_ADULT) {
|
||||
gSaveContext.ship.quest.data.randomizer.adultTradeItems = 0;
|
||||
}
|
||||
*/
|
||||
ImGui::CloseCurrentPopup();
|
||||
}
|
||||
UIWidgets::SetLastItemHoverText("None");
|
||||
@ -512,13 +516,15 @@ void DrawInventoryTab() {
|
||||
ImGui::PopStyleVar();
|
||||
if (ret) {
|
||||
gSaveContext.inventory.items[selectedIndex] = slotEntry.id;
|
||||
// Set adult trade item flag if you're playing adult trade shuffle in rando
|
||||
/*
|
||||
// Set adult trade item flag if you're playing adult trade shuffle in rando
|
||||
if (IS_RANDO &&
|
||||
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_SHUFFLE_ADULT_TRADE) &&
|
||||
selectedIndex == SLOT_TRADE_ADULT &&
|
||||
slotEntry.id >= ITEM_POCKET_EGG && slotEntry.id <= ITEM_CLAIM_CHECK) {
|
||||
gSaveContext.ship.quest.data.randomizer.adultTradeItems |= ADULT_TRADE_FLAG(slotEntry.id);
|
||||
}
|
||||
*/
|
||||
ImGui::CloseCurrentPopup();
|
||||
}
|
||||
UIWidgets::SetLastItemHoverText(SohUtils::GetItemName(slotEntry.id));
|
||||
|
@ -1,19 +1,13 @@
|
||||
#include "soh/Enhancements/randomizer/adult_trade_shuffle.h"
|
||||
#include "functions.h"
|
||||
#include "variables.h"
|
||||
#include "macros.h"
|
||||
|
||||
void Randomizer_ConsumeAdultTradeItem(PlayState* play, u8 itemId) {
|
||||
gSaveContext.ship.quest.data.randomizer.adultTradeItems &= ~ADULT_TRADE_FLAG(itemId);
|
||||
Inventory_ReplaceItem(play, itemId, Randomizer_GetNextAdultTradeItem());
|
||||
}
|
||||
|
||||
u8 Randomizer_GetNextAdultTradeItem() {
|
||||
const u8 numTradeItems = ITEM_CLAIM_CHECK - ITEM_POCKET_EGG + 1;
|
||||
u8 currentTradeItemIndex = INV_CONTENT(ITEM_TRADE_ADULT) - ITEM_POCKET_EGG;
|
||||
for (int i = 0; i < numTradeItems; i++) {
|
||||
u8 tradeIndex = (currentTradeItemIndex + i + 1) % numTradeItems;
|
||||
if (gSaveContext.ship.quest.data.randomizer.adultTradeItems & (1 << tradeIndex)) {
|
||||
if (Flags_GetRandomizerInf(tradeIndex + RAND_INF_ADULT_TRADES_HAS_POCKET_EGG)) {
|
||||
return ITEM_POCKET_EGG + tradeIndex;
|
||||
}
|
||||
}
|
||||
@ -25,7 +19,7 @@ u8 Randomizer_GetPrevAdultTradeItem() {
|
||||
u8 currentTradeItemIndex = INV_CONTENT(ITEM_TRADE_ADULT) - ITEM_POCKET_EGG;
|
||||
for (int i = 0; i < numTradeItems; i++) {
|
||||
u8 tradeIndex = (currentTradeItemIndex - i - 1 + numTradeItems) % numTradeItems;
|
||||
if (gSaveContext.ship.quest.data.randomizer.adultTradeItems & (1 << tradeIndex)) {
|
||||
if (Flags_GetRandomizerInf(tradeIndex + RAND_INF_ADULT_TRADES_HAS_POCKET_EGG)) {
|
||||
return ITEM_POCKET_EGG + tradeIndex;
|
||||
}
|
||||
}
|
||||
|
@ -1,13 +1,9 @@
|
||||
#ifndef Z_ADULT_TRADE_SHUFFLE_H
|
||||
#define Z_ADULT_TRADE_SHUFFLE_H
|
||||
|
||||
#include <z64.h>
|
||||
#include <libultraship/libultra/types.h>
|
||||
|
||||
#define ADULT_TRADE_FLAG(itemId) (1 << (itemId - ITEM_POCKET_EGG))
|
||||
#define PLAYER_HAS_SHUFFLED_ADULT_TRADE_ITEM(itemID) (IS_RANDO && gSaveContext.ship.quest.data.randomizer.adultTradeItems & ADULT_TRADE_FLAG(itemID))
|
||||
|
||||
void Randomizer_ConsumeAdultTradeItem(PlayState* play, u8 itemId);
|
||||
u8 Randomizer_GetNextAdultTradeItem();
|
||||
u8 Randomizer_GetPrevAdultTradeItem();
|
||||
|
||||
#endif
|
||||
#endif
|
@ -220,10 +220,12 @@ void RandomizerOnFlagSetHandler(int16_t flagType, int16_t flag) {
|
||||
if (RAND_GET_OPTION(RSK_SHUFFLE_ADULT_TRADE) && flagType == FLAG_RANDOMIZER_INF) {
|
||||
switch (flag) {
|
||||
case RAND_INF_ADULT_TRADES_DMT_TRADE_BROKEN_SWORD:
|
||||
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_SWORD_BROKEN);
|
||||
Flags_UnsetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_SWORD_BROKEN);
|
||||
Inventory_ReplaceItem(play, ITEM_SWORD_BROKEN, Randomizer_GetNextAdultTradeItem());
|
||||
break;
|
||||
case RAND_INF_ADULT_TRADES_DMT_TRADE_EYEDROPS:
|
||||
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_EYEDROPS);
|
||||
Flags_UnsetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_EYEDROPS);
|
||||
Inventory_ReplaceItem(play, ITEM_EYEDROPS, Randomizer_GetNextAdultTradeItem());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1170,7 +1172,7 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
||||
EnFr* enFr = va_arg(args, EnFr*);
|
||||
|
||||
if (
|
||||
(enFr->songIndex >= FROG_STORMS && enFr->reward == GI_HEART_PIECE) ||
|
||||
(enFr->songIndex >= FROG_STORMS && enFr->reward == GI_HEART_PIECE) ||
|
||||
(enFr->songIndex < FROG_STORMS && enFr->reward == GI_RUPEE_PURPLE)
|
||||
) {
|
||||
*should = true;
|
||||
@ -1179,7 +1181,8 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
||||
}
|
||||
case VB_TRADE_POCKET_CUCCO: {
|
||||
EnNiwLady* enNiwLady = va_arg(args, EnNiwLady*);
|
||||
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_POCKET_CUCCO);
|
||||
Flags_UnsetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_POCKET_CUCCO);
|
||||
Inventory_ReplaceItem(play, ITEM_POCKET_CUCCO, Randomizer_GetNextAdultTradeItem());
|
||||
// Trigger the reward now
|
||||
Flags_SetItemGetInf(ITEMGETINF_2E);
|
||||
enNiwLady->actionFunc = func_80ABA778;
|
||||
@ -1188,13 +1191,15 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
||||
break;
|
||||
}
|
||||
case VB_TRADE_COJIRO: {
|
||||
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_COJIRO);
|
||||
Flags_UnsetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_COJIRO);
|
||||
Inventory_ReplaceItem(play, ITEM_COJIRO, Randomizer_GetNextAdultTradeItem());
|
||||
*should = false;
|
||||
break;
|
||||
}
|
||||
case VB_TRADE_ODD_MUSHROOM: {
|
||||
EnDs* granny = va_arg(args, EnDs*);
|
||||
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_ODD_MUSHROOM);
|
||||
Flags_UnsetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_ODD_MUSHROOM);
|
||||
Inventory_ReplaceItem(play, ITEM_ODD_MUSHROOM, Randomizer_GetNextAdultTradeItem());
|
||||
// Trigger the reward now
|
||||
Flags_SetItemGetInf(ITEMGETINF_30);
|
||||
granny->actor.textId = 0x504F;
|
||||
@ -1205,14 +1210,16 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
||||
}
|
||||
case VB_TRADE_ODD_POTION: {
|
||||
EnKo* enKo = va_arg(args, EnKo*);
|
||||
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_ODD_POTION);
|
||||
Flags_UnsetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_ODD_POTION);
|
||||
Inventory_ReplaceItem(play, ITEM_ODD_POTION, Randomizer_GetNextAdultTradeItem());
|
||||
// Trigger the reward now
|
||||
Flags_SetItemGetInf(ITEMGETINF_31);
|
||||
*should = false;
|
||||
break;
|
||||
}
|
||||
case VB_TRADE_SAW: {
|
||||
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_SAW);
|
||||
Flags_UnsetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_SAW);
|
||||
Inventory_ReplaceItem(play, ITEM_SAW, Randomizer_GetNextAdultTradeItem());
|
||||
*should = false;
|
||||
break;
|
||||
}
|
||||
@ -1229,14 +1236,16 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
||||
if (func_8002F368(gPlayState) == EXCH_ITEM_PRESCRIPTION ||
|
||||
(hasShieldHoldingR && INV_CONTENT(ITEM_TRADE_ADULT) < ITEM_FROG)) {
|
||||
Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_ZD_TRADE_PRESCRIPTION);
|
||||
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_PRESCRIPTION);
|
||||
Flags_UnsetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_PRESCRIPTION);
|
||||
Inventory_ReplaceItem(play, ITEM_PRESCRIPTION, Randomizer_GetNextAdultTradeItem());
|
||||
} else {
|
||||
Flags_SetRandomizerInf(RAND_INF_KING_ZORA_THAWED);
|
||||
}
|
||||
} else {
|
||||
if (enKz->isTrading){
|
||||
if (enKz->isTrading) {
|
||||
Flags_SetRandomizerInf(RAND_INF_ADULT_TRADES_ZD_TRADE_PRESCRIPTION);
|
||||
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_PRESCRIPTION);
|
||||
Flags_UnsetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_PRESCRIPTION);
|
||||
Inventory_ReplaceItem(play, ITEM_PRESCRIPTION, Randomizer_GetNextAdultTradeItem());
|
||||
} else {
|
||||
Flags_SetRandomizerInf(RAND_INF_KING_ZORA_THAWED);
|
||||
}
|
||||
@ -1245,7 +1254,8 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
||||
break;
|
||||
}
|
||||
case VB_TRADE_FROG: {
|
||||
Randomizer_ConsumeAdultTradeItem(gPlayState, ITEM_FROG);
|
||||
Flags_UnsetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_FROG);
|
||||
Inventory_ReplaceItem(play, ITEM_FROG, Randomizer_GetNextAdultTradeItem());
|
||||
*should = false;
|
||||
break;
|
||||
}
|
||||
@ -1282,9 +1292,9 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
||||
if (!RAND_GET_OPTION(RSK_SHUFFLE_ADULT_TRADE)) {
|
||||
break;
|
||||
}
|
||||
if (PLAYER_HAS_SHUFFLED_ADULT_TRADE_ITEM(ITEM_COJIRO)) {
|
||||
if (Flags_GetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_COJIRO)) {
|
||||
*should = false;
|
||||
} else if (PLAYER_HAS_SHUFFLED_ADULT_TRADE_ITEM(ITEM_ODD_POTION)) {
|
||||
} else if (Flags_GetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_ODD_POTION)) {
|
||||
*should = true;
|
||||
} else {
|
||||
*should = Flags_GetItemGetInf(ITEMGETINF_30); // Traded odd mushroom
|
||||
@ -1296,10 +1306,10 @@ void RandomizerOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_l
|
||||
break;
|
||||
}
|
||||
|
||||
if (PLAYER_HAS_SHUFFLED_ADULT_TRADE_ITEM(ITEM_COJIRO)) {
|
||||
if (Flags_GetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_COJIRO)) {
|
||||
*should = false;
|
||||
} else {
|
||||
*should = PLAYER_HAS_SHUFFLED_ADULT_TRADE_ITEM(ITEM_ODD_POTION);
|
||||
*should = Flags_GetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_ODD_POTION);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -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:
|
||||
@ -1481,7 +1481,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:
|
||||
{
|
||||
@ -2048,26 +2048,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);
|
||||
}
|
||||
}
|
||||
@ -2087,8 +2071,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];
|
||||
}
|
||||
}
|
||||
@ -2100,8 +2083,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));
|
||||
}
|
||||
}
|
||||
@ -2113,8 +2095,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));
|
||||
}
|
||||
}
|
||||
|
@ -261,8 +261,6 @@ class Logic {
|
||||
bool CheckEquipment(uint32_t item);
|
||||
bool CheckQuestItem(uint32_t item);
|
||||
void SetQuestItem(uint32_t item, bool state);
|
||||
bool HasAdultTrade(uint32_t item);
|
||||
void SetAdultTrade(uint32_t item, bool state);
|
||||
uint8_t GetSmallKeyCount(uint32_t dungeonIndex);
|
||||
void SetSmallKeyCount(uint32_t dungeonIndex, uint8_t count);
|
||||
bool CheckDungeonItem(uint32_t item, uint32_t dungeonIndex);
|
||||
|
@ -1325,6 +1325,18 @@ typedef enum {
|
||||
RAND_INF_FISHING_HOLE_UNLOCKED,
|
||||
RAND_INF_FISHING_HOLE_KEY_OBTAINED,
|
||||
|
||||
RAND_INF_ADULT_TRADES_HAS_POCKET_EGG,
|
||||
RAND_INF_ADULT_TRADES_HAS_POCKET_CUCCO,
|
||||
RAND_INF_ADULT_TRADES_HAS_COJIRO,
|
||||
RAND_INF_ADULT_TRADES_HAS_ODD_MUSHROOM,
|
||||
RAND_INF_ADULT_TRADES_HAS_ODD_POTION,
|
||||
RAND_INF_ADULT_TRADES_HAS_SAW,
|
||||
RAND_INF_ADULT_TRADES_HAS_SWORD_BROKEN,
|
||||
RAND_INF_ADULT_TRADES_HAS_PRESCRIPTION,
|
||||
RAND_INF_ADULT_TRADES_HAS_FROG,
|
||||
RAND_INF_ADULT_TRADES_HAS_EYEDROPS,
|
||||
RAND_INF_ADULT_TRADES_HAS_CLAIM_CHECK,
|
||||
|
||||
// If you add anything to this list, you need to update the size of randomizerInf in z64save.h to be ceil(RAND_INF_MAX / 16)
|
||||
|
||||
RAND_INF_MAX,
|
||||
|
@ -260,11 +260,6 @@ extern "C" void Randomizer_InitSaveFile() {
|
||||
// Give Link's pocket item
|
||||
GiveLinksPocketItem();
|
||||
|
||||
// shuffle adult trade quest
|
||||
if (Randomizer_GetSettingValue(RSK_SHUFFLE_ADULT_TRADE)) {
|
||||
gSaveContext.ship.quest.data.randomizer.adultTradeItems = 0;
|
||||
}
|
||||
|
||||
// remove One Time scrubs with scrubsanity off
|
||||
if (Randomizer_GetSettingValue(RSK_SHUFFLE_SCRUBS) == RO_SCRUBS_OFF) {
|
||||
Flags_SetRandomizerInf(RAND_INF_SCRUBS_PURCHASED_LW_DEKU_SCRUB_NEAR_BRIDGE);
|
||||
|
@ -218,8 +218,6 @@ void SaveManager::LoadRandomizerVersion1() {
|
||||
}
|
||||
randoContext->AddHint(RH_GANONDORF_JOKE, Rando::Hint(RH_GANONDORF_JOKE, {CustomMessage(ganonText)}));
|
||||
|
||||
SaveManager::Instance->LoadData("adultTradeItems", gSaveContext.ship.quest.data.randomizer.adultTradeItems);
|
||||
|
||||
SaveManager::Instance->LoadData("triforcePiecesCollected", gSaveContext.ship.quest.data.randomizer.triforcePiecesCollected);
|
||||
|
||||
SaveManager::Instance->LoadData("pendingIceTrapCount", gSaveContext.ship.pendingIceTrapCount);
|
||||
@ -348,8 +346,6 @@ void SaveManager::LoadRandomizerVersion2() {
|
||||
SaveManager::Instance->LoadData("warpPreludeText", warpPreludeText);
|
||||
randoContext->AddHint(RH_PRELUDE_WARP_LOC, Rando::Hint(RH_PRELUDE_WARP_LOC, {CustomMessage(warpPreludeText)}));
|
||||
|
||||
SaveManager::Instance->LoadData("adultTradeItems", gSaveContext.ship.quest.data.randomizer.adultTradeItems);
|
||||
|
||||
SaveManager::Instance->LoadData("triforcePiecesCollected", gSaveContext.ship.quest.data.randomizer.triforcePiecesCollected);
|
||||
|
||||
SaveManager::Instance->LoadData("pendingIceTrapCount", gSaveContext.ship.pendingIceTrapCount);
|
||||
@ -445,8 +441,6 @@ void SaveManager::LoadRandomizerVersion3() {
|
||||
randoContext->AddHint(hint, Rando::Hint(hint, json));
|
||||
});
|
||||
|
||||
SaveManager::Instance->LoadData("adultTradeItems", gSaveContext.ship.quest.data.randomizer.adultTradeItems);
|
||||
|
||||
SaveManager::Instance->LoadData("triforcePiecesCollected", gSaveContext.ship.quest.data.randomizer.triforcePiecesCollected);
|
||||
|
||||
SaveManager::Instance->LoadData("pendingIceTrapCount", gSaveContext.ship.pendingIceTrapCount);
|
||||
@ -582,8 +576,6 @@ void SaveManager::SaveRandomizer(SaveContext* saveContext, int sectionID, bool f
|
||||
});
|
||||
});
|
||||
|
||||
SaveManager::Instance->SaveData("adultTradeItems", saveContext->ship.quest.data.randomizer.adultTradeItems);
|
||||
|
||||
SaveManager::Instance->SaveData("triforcePiecesCollected", saveContext->ship.quest.data.randomizer.triforcePiecesCollected);
|
||||
|
||||
SaveManager::Instance->SaveData("pendingIceTrapCount", saveContext->ship.pendingIceTrapCount);
|
||||
|
@ -2446,8 +2446,8 @@ 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 (item >= ITEM_POCKET_EGG && IS_RANDO) {
|
||||
Flags_SetRandomizerInf(item - ITEM_POCKET_EGG + RAND_INF_ADULT_TRADES_HAS_POCKET_EGG);
|
||||
}
|
||||
|
||||
temp = INV_CONTENT(item);
|
||||
@ -2759,12 +2759,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)) {
|
||||
return 0;
|
||||
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;
|
||||
}
|
||||
|
@ -1300,7 +1300,7 @@ void func_8009EE44(PlayState* play) {
|
||||
|
||||
bool playerHasCojiro = INV_CONTENT(ITEM_COJIRO) == ITEM_COJIRO;
|
||||
if (IS_RANDO && Randomizer_GetSettingValue(RSK_SHUFFLE_ADULT_TRADE)) {
|
||||
playerHasCojiro = PLAYER_HAS_SHUFFLED_ADULT_TRADE_ITEM(ITEM_COJIRO);
|
||||
playerHasCojiro = Flags_GetRandomizerInf(RAND_INF_ADULT_TRADES_HAS_COJIRO);
|
||||
}
|
||||
if ((play->roomCtx.unk_74[0] == 0) && playerHasCojiro) {
|
||||
if (play->roomCtx.unk_74[1] == 50) {
|
||||
|
@ -386,7 +386,7 @@ void KaleidoScope_DrawItemCycles(PlayState* play) {
|
||||
ITEM_MASK_KEATON :
|
||||
INV_CONTENT(ITEM_TRADE_CHILD) + 1
|
||||
);
|
||||
|
||||
|
||||
//draw the adult trade select
|
||||
KaleidoScope_DrawItemCycleExtras(
|
||||
play,
|
||||
|
Loading…
Reference in New Issue
Block a user