diff --git a/mods/randomizer/src/randomizer_context.cpp b/mods/randomizer/src/randomizer_context.cpp index 5b236ba1c7..7d5e435b04 100644 --- a/mods/randomizer/src/randomizer_context.cpp +++ b/mods/randomizer/src/randomizer_context.cpp @@ -408,12 +408,8 @@ RandomizerState g_randomizerState; int RandomizerState::_create() { mInitialized = true; - mEventItemStatus = QUEUE_EMPTY; mHasPendingToDChange = false; // g_customMenuRing._initialize(); - for (int i = 0; i < EVENT_ITEM_QUEUE_SIZE; i++) { - mEventItemQueue[i] = 0; - } return 1; } @@ -629,8 +625,6 @@ int RandomizerState::execute() { // Any custom functionality that relies on Link's actor being on a stage if (daAlink_getAlinkActorClass()) { currentReloadingState = daAlink_getAlinkActorClass()->checkRestartRoom(); - // Handle giving item to the player at any time. - //initGiveItemToPlayer(); } else { currentReloadingState = true; @@ -655,105 +649,6 @@ int RandomizerState::draw() { return 1; } -void RandomizerState::handlePoeItem(u8 bitSw) -{ - u16 key = getStageID() << 8 | bitSw; - u8 item = randomizer_GetContext().mPoeOverrides[key]; - addItemToEventQueue(item); - daAlink_getAlinkActorClass()->procWolfAtnActorMoveInit(); -} - -void RandomizerState::addItemToEventQueue(u8 item) -{ - for (int i = 0; i < EVENT_ITEM_QUEUE_SIZE; i++) - { - if (mEventItemQueue[i] == 0) - { - mEventItemQueue[i] = item; - break; - } - } -} - -void RandomizerState::initGiveItemToPlayer() -{ - switch (daAlink_getAlinkActorClass()->mProcID) - { - case daAlink_c::PROC_WAIT: - case daAlink_c::PROC_TIRED_WAIT: - case daAlink_c::PROC_MOVE: - case daAlink_c::PROC_WOLF_WAIT: - case daAlink_c::PROC_WOLF_TIRED_WAIT: - case daAlink_c::PROC_WOLF_MOVE: - case daAlink_c::PROC_ATN_MOVE: - case daAlink_c::PROC_WOLF_ATN_AC_MOVE: - { - // Check if link is currently in a cutscene - if (daAlink_getAlinkActorClass()->checkEventRun()) - { - break; - } - - // Ensure that link is not currently in a message-based event. - int event_item_id = 0; - if (daAlink_getAlinkActorClass()->mMsgFlow.getEventId(&event_item_id) != 0) - { - break; - } - - u8 itemToGive = 0xFF; - - for (int i = 0; i < EVENT_ITEM_QUEUE_SIZE; i++) - { - const u8 storedItem = mEventItemQueue[i]; - - if (storedItem) - { - const u8 giveItemToPlayerStatus = getGiveItemToPlayerStatus(); - - // If we have the call to clear the queue, then we want to clear the item and break out. - if (giveItemToPlayerStatus == CLEAR_QUEUE) - { - mEventItemQueue[i] = 0; - setGiveItemToPlayerStatus(QUEUE_EMPTY); - break; - } - - // If the queue is empty and we have an item to give, update the queue state. - else if (giveItemToPlayerStatus == QUEUE_EMPTY) - { - setGiveItemToPlayerStatus(ITEM_IN_QUEUE); - } - - itemToGive = verifyProgressiveItem(storedItem); - break; - } - } - - // if there is no item to give, break out of the case. - if (itemToGive == 0xFF) - { - break; - } - - g_dComIfG_gameInfo.play.getEvent()->setGtItm(itemToGive); - - // Set the process value for getting an item to start the "get item" cutscene when next available. - daAlink_getAlinkActorClass()->mProcID = daAlink_c::PROC_GET_ITEM; - - // Get the event index for the "Get Item" event. - const s16 eventIdx = dComIfGp_getEventManager().getEventIdx((fopAc_ac_c*)daAlink_getAlinkActorClass(),"DEFAULT_GETITEM",0xFF); - - // Finally we want to modify the event stack to prioritize our custom event so that it happens next. - fopAcM_orderChangeEventId(daAlink_getAlinkActorClass(), eventIdx, 1, 0xFFFF); - } - default: - { - break; - } - } -} - void RandomizerState::handleTimeOfDayChange() { if (dComIfGp_roomControl_getTimePass()) diff --git a/mods/randomizer/src/randomizer_context.hpp b/mods/randomizer/src/randomizer_context.hpp index 3f129df0b5..3e5a239735 100644 --- a/mods/randomizer/src/randomizer_context.hpp +++ b/mods/randomizer/src/randomizer_context.hpp @@ -156,45 +156,29 @@ public: CHANGE_TO_DAY, }; - enum EventItemStatus { - QUEUE_EMPTY, - ITEM_IN_QUEUE, - CLEAR_QUEUE, - }; - - static constexpr u8 EVENT_ITEM_QUEUE_SIZE = 10; - RandomizerState() { mInitialized = false; } int _create(); int _delete(); int execute(); int draw(); - void addItemToEventQueue(u8 item); - void initGiveItemToPlayer(); + // void handleBonkDamage(); void handleTimeOfDayChange(); void handleTimeSpeed(); void offLoad(); - void handlePoeItem(u8 bitSw); - - u8 getGiveItemToPlayerStatus() const { return mEventItemStatus; } u8 getTimeChange() const { return mTimeChange; } bool getRoomReloadingState() const { return mRoomReloadingState; } bool getHasPendingToDChange() const { return mHasPendingToDChange; } - void setGiveItemToPlayerStatus(u8 status) { mEventItemStatus = status; } void setHasPendingToDChange(bool hasPending) { mHasPendingToDChange = hasPending; } void setTimeChange(u8 newTimeChange) { mTimeChange = newTimeChange; } void setRoomReloadingState(bool newState) { mRoomReloadingState = newState; } bool mInitialized{false}; - int mFileNum{-1}; - u8 mEventItemStatus{}; bool mHasPendingToDChange{false}; u8 mTimeChange{}; - u8 mEventItemQueue[EVENT_ITEM_QUEUE_SIZE]; bool mRoomReloadingState{false}; // Used to store an item id for a flow message override so that we can give the item diff --git a/mods/randomizer/src/ui/rando_config.cpp b/mods/randomizer/src/ui/rando_config.cpp index 0958f5aa9d..3138d2de71 100644 --- a/mods/randomizer/src/ui/rando_config.cpp +++ b/mods/randomizer/src/ui/rando_config.cpp @@ -441,8 +441,8 @@ ModResult buildSeedManagementTab(ModContext* ctx, UiWindowHandle, UiElementHandl session::svc_mng.ui->push_toast(session::svc_mng.mod_ctx, &desc); }); - add_section(leftPane, "Presets"); - + // TODO: need some ui service updates to properly support this. disabling for now + /* add_section(leftPane, "Presets"); add_button(leftPane, "Save Current Settings as Preset", "Save the current settings to your list of presets.", @@ -455,7 +455,7 @@ ModResult buildSeedManagementTab(ModContext* ctx, UiWindowHandle, UiElementHandl "Choose an existing preset to load from.", [](ModContext*, void*) { // TODO - }); + }); */ return MOD_OK; }