mirror of
https://github.com/HarbourMasters/Shipwright
synced 2026-04-23 08:14:31 +00:00
parent
7899b6a048
commit
45449623bb
|
|
@ -155,7 +155,7 @@ void BuildMapMessage(uint16_t* textId, bool* loadFromMessageTable) {
|
|||
msg.Replace("[[name]]", name);
|
||||
if (ctx->GetOption(RSK_MQ_DUNGEON_RANDOM).Is(RO_MQ_DUNGEONS_NONE) ||
|
||||
(ctx->GetOption(RSK_MQ_DUNGEON_RANDOM).Is(RO_MQ_DUNGEONS_SET_NUMBER) &&
|
||||
ctx->GetOption(RSK_MQ_DUNGEON_COUNT).Is(12))) {
|
||||
ctx->GetOption(RSK_MQ_DUNGEON_COUNT).Is(MAX_MQ_DUNGEON_COUNT))) {
|
||||
msg.Replace("[[typeHint]]", "");
|
||||
} else if (ResourceMgr_IsSceneMasterQuest(sceneNum)) {
|
||||
msg.Replace("[[typeHint]]", Rando::StaticData::hintTextTable[RHT_DUNGEON_MASTERFUL].GetHintMessage());
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
#include "randomizerEnums.h"
|
||||
|
||||
#define MAX_TRICK_NAME_SIZE 50
|
||||
#define MAX_MQ_DUNGEON_COUNT 12
|
||||
|
||||
#define TWO_ACTOR_PARAMS(a, b) ((((a)&0xFFFF) << 16) | ((b)&0xFFFF))
|
||||
|
||||
|
|
|
|||
|
|
@ -115,7 +115,8 @@ void RandomizerCheckObjects::UpdateImGuiVisibility() {
|
|||
location.GetQuest() == RCQUEST_MQ &&
|
||||
((CVarGetInteger(CVAR_RANDOMIZER_SETTING("MQDungeons"), RO_MQ_DUNGEONS_NONE) ==
|
||||
RO_MQ_DUNGEONS_SET_NUMBER &&
|
||||
(CVarGetInteger(CVAR_RANDOMIZER_SETTING("MQDungeonCount"), 12) > 0) || // at least one MQ dungeon
|
||||
(CVarGetInteger(CVAR_RANDOMIZER_SETTING("MQDungeonCount"), MAX_MQ_DUNGEON_COUNT) >
|
||||
0) || // at least one MQ dungeon
|
||||
CVarGetInteger(CVAR_RANDOMIZER_SETTING("MQDungeons"), RO_MQ_DUNGEONS_NONE) ==
|
||||
RO_MQ_DUNGEONS_RANDOM_NUMBER ||
|
||||
CVarGetInteger(CVAR_RANDOMIZER_SETTING("MQDungeons"), RO_MQ_DUNGEONS_NONE) ==
|
||||
|
|
@ -123,7 +124,8 @@ void RandomizerCheckObjects::UpdateImGuiVisibility() {
|
|||
location.GetQuest() == RCQUEST_VANILLA &&
|
||||
(CVarGetInteger(CVAR_RANDOMIZER_SETTING("MQDungeons"), RO_MQ_DUNGEONS_NONE) !=
|
||||
RO_MQ_DUNGEONS_SET_NUMBER ||
|
||||
CVarGetInteger(CVAR_RANDOMIZER_SETTING("MQDungeonCount"), 12) < 12) // at least one vanilla dungeon
|
||||
CVarGetInteger(CVAR_RANDOMIZER_SETTING("MQDungeonCount"), MAX_MQ_DUNGEON_COUNT) <
|
||||
MAX_MQ_DUNGEON_COUNT) // at least one vanilla dungeon
|
||||
) &&
|
||||
(location.GetRCType() != RCTYPE_SHOP ||
|
||||
!(ctx->GetOption(RSK_SHOPSANITY).Is(RO_SHOPSANITY_OFF) ||
|
||||
|
|
|
|||
|
|
@ -566,7 +566,7 @@ void CheckTrackerLoadGame(int32_t fileNum) {
|
|||
static_cast<RandomizerSettingKey>(RSK_MQ_DEKU_TREE + (i - RCAREA_DEKU_TREE))) != RO_MQ_SET_RANDOM) ||
|
||||
(OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_MQ_DUNGEON_RANDOM) ==
|
||||
RO_MQ_DUNGEONS_SET_NUMBER &&
|
||||
(OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_MQ_DUNGEON_COUNT) == 12 ||
|
||||
(OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_MQ_DUNGEON_COUNT) == MAX_MQ_DUNGEON_COUNT ||
|
||||
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_MQ_DUNGEON_COUNT) == 0)))) {
|
||||
SetAreaSpoiled(static_cast<RandomizerCheckArea>(i));
|
||||
}
|
||||
|
|
@ -596,7 +596,7 @@ void CheckTrackerLoadGame(int32_t fileNum) {
|
|||
(OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_MQ_DUNGEON_RANDOM) ==
|
||||
RO_MQ_DUNGEONS_RANDOM_NUMBER ||
|
||||
(OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_MQ_DUNGEON_RANDOM) == RO_MQ_DUNGEONS_SET_NUMBER &&
|
||||
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_MQ_DUNGEON_COUNT) < 12));
|
||||
OTRGlobals::Instance->gRandomizer->GetRandoSettingValue(RSK_MQ_DUNGEON_COUNT) < MAX_MQ_DUNGEON_COUNT));
|
||||
initialized = true;
|
||||
UpdateAllOrdering();
|
||||
UpdateInventoryChecks();
|
||||
|
|
|
|||
|
|
@ -519,7 +519,7 @@ void Settings::CreateOptions() {
|
|||
mOptions[RSK_MQ_GANONS_CASTLE].Hide();
|
||||
}
|
||||
});
|
||||
OPT_U8(RSK_MQ_DUNGEON_COUNT, "MQ Dungeon Count", {NumOpts(0, 12)}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("MQDungeonCount"), "", WIDGET_CVAR_SLIDER_INT, 12, true, nullptr, IMFLAG_NONE);
|
||||
OPT_U8(RSK_MQ_DUNGEON_COUNT, "MQ Dungeon Count", {NumOpts(0, MAX_MQ_DUNGEON_COUNT)}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("MQDungeonCount"), "", WIDGET_CVAR_SLIDER_INT, MAX_MQ_DUNGEON_COUNT, true, nullptr, IMFLAG_NONE);
|
||||
OPT_BOOL(RSK_MQ_DUNGEON_SET, "Set Dungeon Quests", {"Off", "On"}, OptionCategory::Setting, CVAR_RANDOMIZER_SETTING("MQDungeonsSelection"), mOptionDescriptions[RSK_MQ_DUNGEON_SET], WIDGET_CVAR_CHECKBOX, false, false, nullptr, IMFLAG_NONE);
|
||||
OPT_CALLBACK(RSK_MQ_DUNGEON_SET, {
|
||||
// Controls whether or not to show the selectors for individual dungeons.
|
||||
|
|
@ -3063,7 +3063,7 @@ void Context::FinalizeSettings(const std::set<RandomizerCheck>& excludedLocation
|
|||
// If we only have MQ, set all dungeons to MQ
|
||||
if (OTRGlobals::Instance->HasMasterQuest() && !OTRGlobals::Instance->HasOriginal()) {
|
||||
mOptions[RSK_MQ_DUNGEON_RANDOM].Set(RO_MQ_DUNGEONS_SET_NUMBER);
|
||||
mOptions[RSK_MQ_DUNGEON_COUNT].Set(12);
|
||||
mOptions[RSK_MQ_DUNGEON_COUNT].Set(MAX_MQ_DUNGEON_COUNT);
|
||||
mOptions[RSK_MQ_DUNGEON_SET].Set(RO_GENERIC_OFF);
|
||||
}
|
||||
|
||||
|
|
@ -3204,9 +3204,12 @@ void Context::FinalizeSettings(const std::set<RandomizerCheck>& excludedLocation
|
|||
}
|
||||
// otherwise, every dungeon is possible
|
||||
} else {
|
||||
// if the count is fixed to 12, we know everything is MQ, so can skip some setps and do not set Known
|
||||
if (mOptions[RSK_MQ_DUNGEON_RANDOM].Is(RO_MQ_DUNGEONS_SET_NUMBER) && mqCount == 12) {
|
||||
randMQOption = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
|
||||
// if count is MAX_MQ_DUNGEON_COUNT, we know everything is MQ, so can skip some setps and not set Known
|
||||
if (mOptions[RSK_MQ_DUNGEON_RANDOM].Is(RO_MQ_DUNGEONS_SET_NUMBER) && mqCount == MAX_MQ_DUNGEON_COUNT) {
|
||||
randMQOption.resize(MAX_MQ_DUNGEON_COUNT);
|
||||
for (int i = 0; i < MAX_MQ_DUNGEON_COUNT; i++) {
|
||||
randMQOption[i] = i;
|
||||
}
|
||||
for (auto dungeon : dungeons) {
|
||||
mOptions[dungeon->GetMQSetting()].Set(RO_MQ_SET_MQ);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue