Set mLACSCondition when loading a Randomizer game.

This commit is contained in:
Anthony Stewart 2025-04-13 18:46:58 -05:00
commit 7d92dd20cc
3 changed files with 34 additions and 0 deletions

View file

@ -534,6 +534,10 @@ RandoOptionLACSCondition Context::LACSCondition() const {
return mLACSCondition; return mLACSCondition;
} }
void Context::LACSCondition(RandoOptionLACSCondition lacsCondition) {
mLACSCondition = lacsCondition;
}
std::shared_ptr<Kaleido> Context::GetKaleido() { std::shared_ptr<Kaleido> Context::GetKaleido() {
if (mKaleido == nullptr) { if (mKaleido == nullptr) {
mKaleido = std::make_shared<Kaleido>(); mKaleido = std::make_shared<Kaleido>();

View file

@ -104,6 +104,15 @@ class Context {
* @return RandoOptionLACSCondition * @return RandoOptionLACSCondition
*/ */
RandoOptionLACSCondition LACSCondition() const; RandoOptionLACSCondition LACSCondition() const;
/**
* @brief Sets the resolved Light Arrow CutScene check condition.
* There is no direct option for this, it is inferred based on the value of a few other options.
*
* @param lacsCondition
*/
void LACSCondition(RandoOptionLACSCondition lacsCondition);
GetItemEntry GetFinalGIEntry(RandomizerCheck rc, bool checkObtainability = true, GetItemID ogItemId = GI_NONE); GetItemEntry GetFinalGIEntry(RandomizerCheck rc, bool checkObtainability = true, GetItemID ogItemId = GI_NONE);
void ParseSpoiler(const char* spoilerFileName); void ParseSpoiler(const char* spoilerFileName);
void ParseHashIconIndexesJson(nlohmann::json spoilerFileJson); void ParseHashIconIndexesJson(nlohmann::json spoilerFileJson);

View file

@ -1488,6 +1488,27 @@ void LoadSettings() {
showOverworldFreestanding = false; showOverworldFreestanding = false;
showDungeonFreestanding = true; showDungeonFreestanding = true;
} }
switch (OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_GANONS_BOSS_KEY)) {
case RO_GANON_BOSS_KEY_LACS_STONES:
Rando::Context::GetInstance()->LACSCondition(RO_LACS_STONES);
break;
case RO_GANON_BOSS_KEY_LACS_MEDALLIONS:
Rando::Context::GetInstance()->LACSCondition(RO_LACS_MEDALLIONS);
break;
case RO_GANON_BOSS_KEY_LACS_REWARDS:
Rando::Context::GetInstance()->LACSCondition(RO_LACS_REWARDS);
break;
case RO_GANON_BOSS_KEY_LACS_DUNGEONS:
Rando::Context::GetInstance()->LACSCondition(RO_LACS_DUNGEONS);
break;
case RO_GANON_BOSS_KEY_LACS_TOKENS:
Rando::Context::GetInstance()->LACSCondition(RO_LACS_TOKENS);
break;
default:
Rando::Context::GetInstance()->LACSCondition(RO_LACS_VANILLA);
break;
}
} }
bool IsCheckShuffled(RandomizerCheck rc) { bool IsCheckShuffled(RandomizerCheck rc) {