randomizer: bring back item pool options (#6076)
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
|
#include "soh/Enhancements/game-interactor/GameInteractor_Hooks.h"
|
||||||
|
#include "soh/ResourceManagerHelpers.h"
|
||||||
#include "soh/ShipInit.hpp"
|
#include "soh/ShipInit.hpp"
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "align_asset_macro.h"
|
#include "align_asset_macro.h"
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
#include "variables.h"
|
#include "variables.h"
|
||||||
#include "soh/ResourceManagerHelpers.h"
|
|
||||||
extern PlayState* gPlayState;
|
extern PlayState* gPlayState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -574,7 +574,7 @@ void Region::ResetVariables() {
|
|||||||
* In the second universe, the player went in as adult, possibly out of logic, and started wasting the keys to lock
|
* In the second universe, the player went in as adult, possibly out of logic, and started wasting the keys to lock
|
||||||
child out.
|
child out.
|
||||||
* These Universes converge when the player has 7 keys (meaning adult can no longer lock child out) and adult is
|
* These Universes converge when the player has 7 keys (meaning adult can no longer lock child out) and adult is
|
||||||
known to be able to reach Statue room. This creates "Certain Access", which is tracked seperatly for each age.
|
known to be able to reach Statue room. This creates "Certain Access", which is tracked separatly for each age.
|
||||||
* Child Certain Access is simple, if we have 7 keys and child access, it's Certain Access.
|
* Child Certain Access is simple, if we have 7 keys and child access, it's Certain Access.
|
||||||
* Adult Certain Access is also simple, adult is not key locked, so if they make it to a location, it's Certain
|
* Adult Certain Access is also simple, adult is not key locked, so if they make it to a location, it's Certain
|
||||||
Access.
|
Access.
|
||||||
|
|||||||
@@ -926,7 +926,7 @@ ItemObtainability Randomizer::GetItemObtainabilityFromRandomizerGet(RandomizerGe
|
|||||||
return OTRGlobals::Instance->gRandoContext->GetOption(RSK_BOMBCHU_BAG).Is(RO_BOMBCHU_BAG_NONE)
|
return OTRGlobals::Instance->gRandoContext->GetOption(RSK_BOMBCHU_BAG).Is(RO_BOMBCHU_BAG_NONE)
|
||||||
? CAN_OBTAIN
|
? CAN_OBTAIN
|
||||||
: (INV_CONTENT(ITEM_BOMBCHU) != ITEM_NONE ? CAN_OBTAIN : CANT_OBTAIN_NEED_UPGRADE);
|
: (INV_CONTENT(ITEM_BOMBCHU) != ITEM_NONE ? CAN_OBTAIN : CANT_OBTAIN_NEED_UPGRADE);
|
||||||
case RG_PROGRESSIVE_BOMBCHU_BAG: // RANDOTODO Do we want bombchu refills to exist seperatly from bombchu bags?
|
case RG_PROGRESSIVE_BOMBCHU_BAG: // RANDOTODO Do we want bombchu refills to exist separatly from bombchu bags?
|
||||||
// If so, this needs changing.
|
// If so, this needs changing.
|
||||||
switch (OTRGlobals::Instance->gRandoContext->GetOption(RSK_BOMBCHU_BAG).Get()) {
|
switch (OTRGlobals::Instance->gRandoContext->GetOption(RSK_BOMBCHU_BAG).Get()) {
|
||||||
case RO_BOMBCHU_BAG_NONE:
|
case RO_BOMBCHU_BAG_NONE:
|
||||||
|
|||||||
@@ -2196,6 +2196,7 @@ void Settings::CreateOptions() {
|
|||||||
WidgetContainerType::SECTION);
|
WidgetContainerType::SECTION);
|
||||||
mOptionGroups[RSG_MENU_COLUMN_LOGIC_WINCON] = OptionGroup::SubGroup("",
|
mOptionGroups[RSG_MENU_COLUMN_LOGIC_WINCON] = OptionGroup::SubGroup("",
|
||||||
std::initializer_list<OptionGroup*>{
|
std::initializer_list<OptionGroup*>{
|
||||||
|
&mOptionGroups[RSG_ITEM_POOL],
|
||||||
&mOptionGroups[RSG_MENU_SECTION_LOGIC],
|
&mOptionGroups[RSG_MENU_SECTION_LOGIC],
|
||||||
&mOptionGroups[RSG_MENU_SECTION_WINCON],
|
&mOptionGroups[RSG_MENU_SECTION_WINCON],
|
||||||
},
|
},
|
||||||
@@ -2998,7 +2999,7 @@ void Context::FinalizeSettings(const std::set<RandomizerCheck>& excludedLocation
|
|||||||
mqSet += 1;
|
mqSet += 1;
|
||||||
break;
|
break;
|
||||||
case RO_MQ_SET_RANDOM:
|
case RO_MQ_SET_RANDOM:
|
||||||
// 50% per dungeon, rolled seperatly so people can either have a linear distribtuion
|
// 50% per dungeon, rolled separatly so people can either have a linear distribtuion
|
||||||
// or a bell curve for the number of MQ dungeons per seed.
|
// or a bell curve for the number of MQ dungeons per seed.
|
||||||
if (Random(0, 2)) {
|
if (Random(0, 2)) {
|
||||||
dungeon->SetMQ();
|
dungeon->SetMQ();
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ void Anchor::HandlePacket_AllClientState(nlohmann::json payload) {
|
|||||||
clientsToRemove.push_back(clientId);
|
clientsToRemove.push_back(clientId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// (seperate loop to avoid iterator invalidation)
|
// (separate loop to avoid iterator invalidation)
|
||||||
for (auto& clientId : clientsToRemove) {
|
for (auto& clientId : clientsToRemove) {
|
||||||
clients.erase(clientId);
|
clients.erase(clientId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -452,7 +452,7 @@ unordered_map<Mtx*, MtxF> FrameInterpolation_Interpolate(float step) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FrameInterpolation_StartRecord(void) {
|
void FrameInterpolation_StartRecord(void) {
|
||||||
previous_recording = move(current_recording);
|
previous_recording = std::move(current_recording);
|
||||||
current_recording = {};
|
current_recording = {};
|
||||||
current_path.clear();
|
current_path.clear();
|
||||||
current_path.push_back(¤t_recording.root_path);
|
current_path.push_back(¤t_recording.root_path);
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ void SkeletonPatcher::RegisterSkeleton(std::string& path, SkelAnime* skelAnime)
|
|||||||
void SkeletonPatcher::UnregisterSkeleton(SkelAnime* skelAnime) {
|
void SkeletonPatcher::UnregisterSkeleton(SkelAnime* skelAnime) {
|
||||||
|
|
||||||
// TODO: Should probably just use a dictionary here...
|
// TODO: Should probably just use a dictionary here...
|
||||||
for (int i = 0; i < skeletons.size(); i++) {
|
for (size_t i = 0; i < skeletons.size(); i++) {
|
||||||
auto skel = skeletons[i];
|
auto skel = skeletons[i];
|
||||||
|
|
||||||
if (skel.skelAnime == skelAnime) {
|
if (skel.skelAnime == skelAnime) {
|
||||||
|
|||||||
Reference in New Issue
Block a user