Available Checks Prices (#5446)

* Improved the item location price availability.

* Moved the available checks price logic into location_access.cpp.

* Fixed typo and clarified check status identified.
This commit is contained in:
xxAtrain223 2025-05-17 20:05:20 -05:00 committed by GitHub
commit e0d5fbec42
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 67 additions and 17 deletions

View file

@ -1967,7 +1967,7 @@ void RecalculateAvailableChecks() {
StartPerformanceTimer(PT_RECALCULATE_AVAILABLE_CHECKS);
std::vector<RandomizerCheck> targetLocations;
targetLocations.reserve(RR_MAX);
targetLocations.reserve(RC_MAX);
for (auto& location : Rando::StaticData::GetLocationTable()) {
RandomizerCheck rc = location.GetRandomizerCheck();
Rando::ItemLocation* itemLocation = OTRGlobals::Instance->gRandoContext->GetItemLocation(rc);
@ -1979,15 +1979,8 @@ void RecalculateAvailableChecks() {
std::vector<RandomizerCheck> availableChecks = ReachabilitySearch(targetLocations, RG_NONE, true);
for (auto& rc : availableChecks) {
const auto& location = Rando::StaticData::GetLocation(rc);
const auto& itemLocation = OTRGlobals::Instance->gRandoContext->GetItemLocation(rc);
if (location->GetRCType() == RCTYPE_SHOP && itemLocation->GetCheckStatus() == RCSHOW_IDENTIFIED) {
if (CanBuyAnother(rc)) {
itemLocation->SetAvailable(true);
}
} else {
itemLocation->SetAvailable(true);
}
itemLocation->SetAvailable(true);
}
totalChecksAvailable = 0;