Skip to content

Commit

Permalink
Temp remove Erase Event, fix Voting Timer for Test
Browse files Browse the repository at this point in the history
  • Loading branch information
Caladius committed Sep 27, 2024
1 parent ed5b137 commit 38d103e
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 44 deletions.
87 changes: 44 additions & 43 deletions soh/soh/Enhancements/chaos-mode/ChaosWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -147,8 +147,8 @@ std::vector<eventObject> eventList = {
"Mido abruptly reminds you why they suck so much." },
{ EVENT_THROWN_IN_THE_PAST, "Spawn Royal Guard", "gEnhancements.RoyalGuard", eventGuardTimer,
"Hyrules finest Royal Guard comes to show you the business." },
{ EVENT_ERASURE, "Erase Dungeon Reward", "gEnhancements.Erasure", eventErasureTimer,
"Erases a Dungeon Reward and respective Dungeon Boss." },
//{ EVENT_ERASURE, "Erase Dungeon Reward", "gEnhancements.Erasure", eventErasureTimer,
// "Erases a Dungeon Reward and respective Dungeon Boss." },
{ EVENT_FALLING_CEILING, "Unstable Ceiling", "gEnhancements.FallingCeiling", eventCeilingTimer,
"Watch your head, whoever built this forgot to use supports..." },
{ EVENT_FORCE_STOP_HEARTS, "Force Stop Heart", "gEnhancements.StopHeart", eventStopHeartTimer,
Expand Down Expand Up @@ -186,15 +186,15 @@ std::vector<uint32_t> actorCatList = {
ACTORCAT_MISC,
};

std::vector<std::tuple<uint32_t, uint32_t, uint32_t>> dungeonClears = {
{ RC_QUEEN_GOHMA, SCENE_DEKU_TREE_BOSS, RAND_INF_DUNGEONS_DONE_DEKU_TREE },
{ RC_KING_DODONGO, SCENE_DODONGOS_CAVERN_BOSS, RAND_INF_DUNGEONS_DONE_DODONGOS_CAVERN },
{ RC_BARINADE, SCENE_JABU_JABU_BOSS, RAND_INF_DUNGEONS_DONE_JABU_JABUS_BELLY },
{ RC_PHANTOM_GANON, SCENE_FOREST_TEMPLE_BOSS, RAND_INF_DUNGEONS_DONE_FOREST_TEMPLE },
{ RC_VOLVAGIA, SCENE_FIRE_TEMPLE_BOSS, RAND_INF_DUNGEONS_DONE_FIRE_TEMPLE },
{ RC_MORPHA, SCENE_WATER_TEMPLE_BOSS, RAND_INF_DUNGEONS_DONE_WATER_TEMPLE },
{ RC_TWINROVA, SCENE_SPIRIT_TEMPLE_BOSS, RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE },
{ RC_BONGO_BONGO, SCENE_SHADOW_TEMPLE_BOSS, RAND_INF_DUNGEONS_DONE_SHADOW_TEMPLE },
std::vector<std::tuple<uint32_t, uint32_t, uint32_t, int>> dungeonClears = {
{ RC_QUEEN_GOHMA, SCENE_DEKU_TREE_BOSS, RAND_INF_DUNGEONS_DONE_DEKU_TREE, EVENTCHKINF_USED_DEKU_TREE_BLUE_WARP },
{ RC_KING_DODONGO, SCENE_DODONGOS_CAVERN_BOSS, RAND_INF_DUNGEONS_DONE_DODONGOS_CAVERN, EVENTCHKINF_USED_DODONGOS_CAVERN_BLUE_WARP },
{ RC_BARINADE, SCENE_JABU_JABU_BOSS, RAND_INF_DUNGEONS_DONE_JABU_JABUS_BELLY, EVENTCHKINF_USED_JABU_JABUS_BELLY_BLUE_WARP },
{ RC_PHANTOM_GANON, SCENE_FOREST_TEMPLE_BOSS, RAND_INF_DUNGEONS_DONE_FOREST_TEMPLE, EVENTCHKINF_USED_FOREST_TEMPLE_BLUE_WARP },
{ RC_VOLVAGIA, SCENE_FIRE_TEMPLE_BOSS, RAND_INF_DUNGEONS_DONE_FIRE_TEMPLE, EVENTCHKINF_USED_FIRE_TEMPLE_BLUE_WARP },
{ RC_MORPHA, SCENE_WATER_TEMPLE_BOSS, RAND_INF_DUNGEONS_DONE_WATER_TEMPLE, EVENTCHKINF_USED_WATER_TEMPLE_BLUE_WARP },
{ RC_TWINROVA, SCENE_SPIRIT_TEMPLE_BOSS, RAND_INF_DUNGEONS_DONE_SPIRIT_TEMPLE, EVENTCHKINF_USED_DEKU_TREE_BLUE_WARP },
{ RC_BONGO_BONGO, SCENE_SHADOW_TEMPLE_BOSS, RAND_INF_DUNGEONS_DONE_SHADOW_TEMPLE, EVENTCHKINF_USED_DEKU_TREE_BLUE_WARP },
};

std::unordered_map<uint32_t, uint32_t> itemToQuestList = {
Expand Down Expand Up @@ -273,8 +273,8 @@ void ChaosUpdateInterval() {
}

void ChaosUpdateVotingInterval() {
//votingInterval = (CVarGetInteger(CVAR_ENHANCEMENT("VotingInterval"), 0) * 20);
votingInterval = 999999;
votingInterval = (CVarGetInteger(CVAR_ENHANCEMENT("VotingInterval"), 0) * 20);
//votingInterval = 999999;
}

void ChaosUpdateEventTimers() {
Expand Down Expand Up @@ -687,11 +687,11 @@ void ChaosEventsRepeater() {
}
}

if (isEventIdPresent(EVENT_ERASURE) == true) {
if (erasureTimer > 0) {
erasureTimer--;
}
}
//if (isEventIdPresent(EVENT_ERASURE) == true) {
// if (erasureTimer > 0) {
// erasureTimer--;
// }
//}

if (isEventIdPresent(EVENT_FALLING_CEILING) == true) {
if (ceilingTimer > 0) {
Expand Down Expand Up @@ -963,31 +963,32 @@ void ChaosEventsActivator(uint32_t eventId, bool isActive) {
}
}
break;
case EVENT_ERASURE:
if (isActive) {
erasureTimer = eventList[EVENT_ERASURE].eventTimer;
std::vector<uint32_t> questItems = {};
for (int i = ITEM_MEDALLION_FOREST; i <= ITEM_ZORA_SAPPHIRE; i++) {
if (CHECK_QUEST_ITEM(itemToQuestList[i])) {
questItems.push_back(i);
}
}
if (!questItems.empty()) {
uint32_t roll = rand() % questItems.size();
for (int i = 0; i < dungeonClears.size(); i++) {
auto itemEntry = OTRGlobals::Instance->gRandomizer->GetItemFromKnownCheck(
(RandomizerCheck)std::get<0>(dungeonClears[i]), GI_NONE, false);
if (itemEntry.itemId == questItems[roll]) {
uint32_t bitMask = 1 << itemToQuestList[questItems[roll]];
gSaveContext.sceneFlags[std::get<1>(dungeonClears[i])].clear = 0;
Flags_UnsetRandomizerInf((RandomizerInf)std::get<2>(dungeonClears[i]));
gSaveContext.inventory.questItems &= ~bitMask;
break;
}
}
}
}
break;
//case EVENT_ERASURE:
// if (isActive) {
// erasureTimer = eventList[EVENT_ERASURE].eventTimer;
// std::vector<uint32_t> questItems = {};
// for (int i = ITEM_MEDALLION_FOREST; i <= ITEM_ZORA_SAPPHIRE; i++) {
// if (CHECK_QUEST_ITEM(itemToQuestList[i])) {
// questItems.push_back(i);
// }
// }
// if (!questItems.empty()) {
// uint32_t roll = rand() % questItems.size();
// for (int i = 0; i < dungeonClears.size(); i++) {
// auto itemEntry = OTRGlobals::Instance->gRandomizer->GetItemFromKnownCheck(
// (RandomizerCheck)std::get<0>(dungeonClears[i]), GI_NONE, false);
// if (itemEntry.itemId == questItems[roll]) {
// uint32_t bitMask = 1 << itemToQuestList[questItems[roll]];
// gSaveContext.sceneFlags[std::get<1>(dungeonClears[i])].clear = 0;
// Flags_UnsetRandomizerInf((RandomizerInf)std::get<2>(dungeonClears[i]));
// Flags_UnsetEventChkInf(std::get<3>(dungeonClears[i]));
// gSaveContext.inventory.questItems &= ~bitMask;
// break;
// }
// }
// }
// }
// break;
case EVENT_FALLING_CEILING:
if (isActive) {
fallingCeilingHook = GameInteractor::Instance->RegisterGameHook<GameInteractor::OnSceneSpawnActors>([]() {
Expand Down
2 changes: 1 addition & 1 deletion soh/soh/Enhancements/chaos-mode/ChaosWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ typedef enum {
EVENT_KNUCKLE_RING,
EVENT_MIDO_SUCKS,
EVENT_THROWN_IN_THE_PAST,
EVENT_ERASURE,
//EVENT_ERASURE,
EVENT_FALLING_CEILING,
EVENT_FORCE_STOP_HEARTS,
EVENT_SPIKE_TRAP,
Expand Down

0 comments on commit 38d103e

Please sign in to comment.