This commit is contained in:
Pepe20129 2025-08-19 02:25:21 +08:00 committed by GitHub
commit c96f754878
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -176,6 +176,7 @@ bool hideSeen = false;
bool hideSkipped = false;
bool hideSaved = false;
bool hideCollected = false;
bool hideJunk = false;
bool showHidden = true;
bool mystery = false;
bool showLogicTooltip = false;
@ -283,6 +284,10 @@ uint16_t GetTotalChecksGotten() {
}
bool IsCheckHidden(RandomizerCheck rc) {
if (showHidden) {
return false;
}
Rando::ItemLocation* itemLocation = OTRGlobals::Instance->gRandoContext->GetItemLocation(rc);
RandomizerCheckStatus status = itemLocation->GetCheckStatus();
bool available = itemLocation->IsAvailable();
@ -291,9 +296,11 @@ bool IsCheckHidden(RandomizerCheck rc) {
bool seen = status == RCSHOW_SEEN || status == RCSHOW_IDENTIFIED;
bool scummed = status == RCSHOW_SCUMMED;
bool unchecked = status == RCSHOW_UNCHECKED;
bool isJunk = itemLocation->GetPlacedItem().GetGIEntry()->getItemCategory == ITEM_CATEGORY_JUNK;
bool knownJunk = (seen || scummed) && isJunk;
return !showHidden &&
((skipped && hideSkipped) || (seen && hideSeen) || (scummed && hideScummed) || (unchecked && hideUnchecked));
return (skipped && hideSkipped) || (seen && hideSeen) || (scummed && hideScummed) || (unchecked && hideUnchecked) ||
(knownJunk && hideJunk);
}
void RecalculateAreaTotals(RandomizerCheckArea rcArea) {
@ -965,6 +972,7 @@ void CheckTrackerWindow::DrawElement() {
hideSkipped = CVarGetInteger(CVAR_TRACKER_CHECK("Skipped.Hide"), 0);
hideSaved = CVarGetInteger(CVAR_TRACKER_CHECK("Saved.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);
mystery = CVarGetInteger(CVAR_RANDOMIZER_ENHANCEMENT("MysteriousShuffle"), 0);
showLogicTooltip = CVarGetInteger(CVAR_TRACKER_CHECK("ShowLogic"), 0);
@ -1246,7 +1254,14 @@ bool UpdateFilters() {
}
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() + " " +
Rando::StaticData::GetLocation(check)->GetName() + " " +
RandomizerCheckObjects::GetRCAreaName(Rando::StaticData::GetLocation(check)->GetArea()));
@ -1609,7 +1624,15 @@ bool IsCheckShuffled(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) {
return !Rando::Context::GetInstance()->GetItemLocation(rc)->IsExcluded() &&
(IsCheckShuffled(rc) ||
@ -1728,6 +1751,11 @@ void DrawLocation(RandomizerCheck rc) {
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 (!showHidden && hideCollected) {
return;
@ -2154,6 +2182,10 @@ void CheckTrackerSettingsWindow::DrawElement() {
UIWidgets::CheckboxOptions()
.Tooltip("If enabled, will show a check's logic when hovering over it.")
.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));
if (UIWidgets::CVarCheckbox("Enable Available Checks", CVAR_TRACKER_CHECK("EnableAvailableChecks"),
UIWidgets::CheckboxOptions()