diff --git a/apcpp-glue.cpp b/apcpp-glue.cpp index a264018..4fb2210 100644 --- a/apcpp-glue.cpp +++ b/apcpp-glue.cpp @@ -248,6 +248,22 @@ extern "C" AP_RemoveQueuedLocationScout(state, location_id); } } + + if (AP_GetSlotDataInt(state, "shuffle_great_fairy_rewards") == 0) + { + for (int i = 0x00; i <= 0x04; ++i) + { + int64_t location_id = 0x3469420030000 | i; + AP_RemoveQueuedLocationScout(state, location_id); + } + AP_RemoveQueuedLocationScout(state, 0x3469420000086); + } + + if (AP_GetSlotDataInt(state, "shuffle_spiderhouse_reward") == 0) + { + AP_RemoveQueuedLocationScout(state, 0x346942000008A); + AP_RemoveQueuedLocationScout(state, 0x3469420000009); + } for (int64_t i = AP_GetSlotDataInt(state, "starting_heart_locations"); i < 8; ++i) { @@ -319,6 +335,21 @@ extern "C" AP_RemoveQueuedLocationScout(state, 0x346942007C405); AP_RemoveQueuedLocationScout(state, 0x346942007C407); } + + if (AP_GetSlotDataInt(state, "shuffle_treasure_chest_game") == 0) + { + AP_RemoveQueuedLocationScout(state, 0x3469420061705); // Human + AP_RemoveQueuedLocationScout(state, 0x346942006172A); // Deku + AP_RemoveQueuedLocationScout(state, 0x346942006170C); // Goron + AP_RemoveQueuedLocationScout(state, 0x3469420061704); // Zora + } + else if (AP_GetSlotDataInt(state, "shuffle_treasure_chest_game") == 1) + { + AP_RemoveQueuedLocationScout(state, 0x3469420061705); // Human + AP_RemoveQueuedLocationScout(state, 0x346942006172A); // Deku + AP_RemoveQueuedLocationScout(state, 0x3469420061704); // Zora + } + if (AP_GetSlotDataInt(state, "intro_checks") == 0) {