mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-19 21:03:42 -07:00
Update randomizer_check_tracker.cpp
This commit is contained in:
parent
74560a360d
commit
df0439fd3c
1 changed files with 45 additions and 4 deletions
|
@ -176,6 +176,7 @@ bool hideSeen = false;
|
||||||
bool hideSkipped = false;
|
bool hideSkipped = false;
|
||||||
bool hideSaved = false;
|
bool hideSaved = false;
|
||||||
bool hideCollected = false;
|
bool hideCollected = false;
|
||||||
|
bool hideJunk = false;
|
||||||
bool showHidden = true;
|
bool showHidden = true;
|
||||||
bool mystery = false;
|
bool mystery = false;
|
||||||
bool showLogicTooltip = false;
|
bool showLogicTooltip = false;
|
||||||
|
@ -283,6 +284,10 @@ uint16_t GetTotalChecksGotten() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsCheckHidden(RandomizerCheck rc) {
|
bool IsCheckHidden(RandomizerCheck rc) {
|
||||||
|
if (showHidden) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
Rando::ItemLocation* itemLocation = OTRGlobals::Instance->gRandoContext->GetItemLocation(rc);
|
Rando::ItemLocation* itemLocation = OTRGlobals::Instance->gRandoContext->GetItemLocation(rc);
|
||||||
RandomizerCheckStatus status = itemLocation->GetCheckStatus();
|
RandomizerCheckStatus status = itemLocation->GetCheckStatus();
|
||||||
bool available = itemLocation->IsAvailable();
|
bool available = itemLocation->IsAvailable();
|
||||||
|
@ -291,9 +296,10 @@ bool IsCheckHidden(RandomizerCheck rc) {
|
||||||
bool seen = status == RCSHOW_SEEN || status == RCSHOW_IDENTIFIED;
|
bool seen = status == RCSHOW_SEEN || status == RCSHOW_IDENTIFIED;
|
||||||
bool scummed = status == RCSHOW_SCUMMED;
|
bool scummed = status == RCSHOW_SCUMMED;
|
||||||
bool unchecked = status == RCSHOW_UNCHECKED;
|
bool unchecked = status == RCSHOW_UNCHECKED;
|
||||||
|
bool isJunk = itemLocation->GetPlacedItem().GetGIEntry()->getItemCategory == ITEM_CATEGORY_JUNK;
|
||||||
|
bool knownJunk = (seen || scummed) && isJunk;
|
||||||
|
|
||||||
return !showHidden &&
|
return (skipped && hideSkipped) || (seen && hideSeen) || (scummed && hideScummed) || (unchecked && hideUnchecked) || (knownJunk && hideJunk);
|
||||||
((skipped && hideSkipped) || (seen && hideSeen) || (scummed && hideScummed) || (unchecked && hideUnchecked));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RecalculateAreaTotals(RandomizerCheckArea rcArea) {
|
void RecalculateAreaTotals(RandomizerCheckArea rcArea) {
|
||||||
|
@ -962,6 +968,7 @@ void CheckTrackerWindow::DrawElement() {
|
||||||
hideSkipped = CVarGetInteger(CVAR_TRACKER_CHECK("Skipped.Hide"), 0);
|
hideSkipped = CVarGetInteger(CVAR_TRACKER_CHECK("Skipped.Hide"), 0);
|
||||||
hideSaved = CVarGetInteger(CVAR_TRACKER_CHECK("Saved.Hide"), 0);
|
hideSaved = CVarGetInteger(CVAR_TRACKER_CHECK("Saved.Hide"), 0);
|
||||||
hideCollected = CVarGetInteger(CVAR_TRACKER_CHECK("Collected.Hide"), 0);
|
hideCollected = CVarGetInteger(CVAR_TRACKER_CHECK("Collected.Hide"), 0);
|
||||||
|
hideJunk = CVarGetInteger(CVAR_TRACKER_CHECK("Junk.Hide"), 0);
|
||||||
showHidden = CVarGetInteger(CVAR_TRACKER_CHECK("ShowHidden"), 0);
|
showHidden = CVarGetInteger(CVAR_TRACKER_CHECK("ShowHidden"), 0);
|
||||||
mystery = CVarGetInteger(CVAR_RANDOMIZER_ENHANCEMENT("MysteriousShuffle"), 0);
|
mystery = CVarGetInteger(CVAR_RANDOMIZER_ENHANCEMENT("MysteriousShuffle"), 0);
|
||||||
showLogicTooltip = CVarGetInteger(CVAR_TRACKER_CHECK("ShowLogic"), 0);
|
showLogicTooltip = CVarGetInteger(CVAR_TRACKER_CHECK("ShowLogic"), 0);
|
||||||
|
@ -1238,7 +1245,17 @@ bool UpdateFilters() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ShouldShowCheck(RandomizerCheck check) {
|
bool ShouldShowCheck(RandomizerCheck check) {
|
||||||
auto itemLoc = Rando::Context::GetInstance()->GetItemLocation(check);
|
Rando::ItemLocation* itemLoc = Rando::Context::GetInstance()->GetItemLocation(check);
|
||||||
|
RandomizerCheckStatus status = itemLoc->GetCheckStatus();
|
||||||
|
|
||||||
|
if (
|
||||||
|
hideJunk &&
|
||||||
|
(status == RCSHOW_SEEN || status == RCSHOW_IDENTIFIED || status == RCSHOW_SCUMMED) &&
|
||||||
|
itemLoc->GetPlacedItem().GetGIEntry()->getItemCategory == ITEM_CATEGORY_JUNK
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
std::string search = (Rando::StaticData::GetLocation(check)->GetShortName() + " " +
|
std::string search = (Rando::StaticData::GetLocation(check)->GetShortName() + " " +
|
||||||
Rando::StaticData::GetLocation(check)->GetName() + " " +
|
Rando::StaticData::GetLocation(check)->GetName() + " " +
|
||||||
RandomizerCheckObjects::GetRCAreaName(Rando::StaticData::GetLocation(check)->GetArea()));
|
RandomizerCheckObjects::GetRCAreaName(Rando::StaticData::GetLocation(check)->GetArea()));
|
||||||
|
@ -1601,7 +1618,18 @@ bool IsCheckShuffled(RandomizerCheck rc) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsVisibleInCheckTracker(RandomizerCheck rc) {
|
bool IsVisibleInCheckTracker(RandomizerCheck rc) {
|
||||||
auto loc = Rando::StaticData::GetLocation(rc);
|
Rando::Location* loc = Rando::StaticData::GetLocation(rc);
|
||||||
|
Rando::ItemLocation* itemLoc = Rando::Context::GetInstance()->GetItemLocation(rc);
|
||||||
|
RandomizerCheckStatus status = itemLoc->GetCheckStatus();
|
||||||
|
|
||||||
|
if (
|
||||||
|
hideJunk &&
|
||||||
|
(status == RCSHOW_SEEN || status == RCSHOW_IDENTIFIED || status == RCSHOW_SCUMMED) &&
|
||||||
|
itemLoc->GetPlacedItem().GetGIEntry()->getItemCategory == ITEM_CATEGORY_JUNK
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (IS_RANDO) {
|
if (IS_RANDO) {
|
||||||
return IsCheckShuffled(rc) ||
|
return IsCheckShuffled(rc) ||
|
||||||
(alwaysShowGS && loc->GetRCType() == RCTYPE_SKULL_TOKEN &&
|
(alwaysShowGS && loc->GetRCType() == RCTYPE_SKULL_TOKEN &&
|
||||||
|
@ -1719,6 +1747,15 @@ void DrawLocation(RandomizerCheck rc) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
!showHidden &&
|
||||||
|
hideJunk &&
|
||||||
|
(status == RCSHOW_SEEN || status == RCSHOW_IDENTIFIED || status == RCSHOW_SCUMMED) &&
|
||||||
|
itemLoc->GetPlacedItem().GetGIEntry()->getItemCategory == ITEM_CATEGORY_JUNK
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (status == RCSHOW_COLLECTED) {
|
if (status == RCSHOW_COLLECTED) {
|
||||||
if (!showHidden && hideCollected) {
|
if (!showHidden && hideCollected) {
|
||||||
return;
|
return;
|
||||||
|
@ -2149,6 +2186,10 @@ void CheckTrackerSettingsWindow::DrawElement() {
|
||||||
UIWidgets::CheckboxOptions()
|
UIWidgets::CheckboxOptions()
|
||||||
.Tooltip("If enabled, will show a check's logic when hovering over it.")
|
.Tooltip("If enabled, will show a check's logic when hovering over it.")
|
||||||
.Color(THEME_COLOR));
|
.Color(THEME_COLOR));
|
||||||
|
UIWidgets::CVarCheckbox("Hide Junk", CVAR_TRACKER_CHECK("Junk.Hide"),
|
||||||
|
UIWidgets::CheckboxOptions()
|
||||||
|
.Tooltip("If enabled, checks that are known to be junk will be hidden.")
|
||||||
|
.Color(THEME_COLOR));
|
||||||
ImGui::BeginDisabled(CVarGetInteger(CVAR_SETTING("DisableChanges"), 0));
|
ImGui::BeginDisabled(CVarGetInteger(CVAR_SETTING("DisableChanges"), 0));
|
||||||
if (UIWidgets::CVarCheckbox("Enable Available Checks", CVAR_TRACKER_CHECK("EnableAvailableChecks"),
|
if (UIWidgets::CVarCheckbox("Enable Available Checks", CVAR_TRACKER_CHECK("EnableAvailableChecks"),
|
||||||
UIWidgets::CheckboxOptions()
|
UIWidgets::CheckboxOptions()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue