diff options
| author | robojumper <robojumper@gmail.com> | 2025-03-14 03:13:15 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-13 22:13:15 -0400 |
| commit | 32cbf96184ac828310c53b8000d28111082a887e (patch) | |
| tree | 5cd2d8d37194ff5579e8699e632970ff579d1a66 /src/toBeSorted/dowsing_target.cpp | |
| parent | 01b964c8318b17c42c6cd62d244f11a67ae74263 (diff) | |
Link dowsing_target, eggException, d_lyt_meter_drink (#128)
* Link dowsing_target, eggException
* d_lyt_meter_drink OK (thanks Zeldex!)
* More sensible DowsingTarget flag code
* Attempt explaining TList inline
Diffstat (limited to 'src/toBeSorted/dowsing_target.cpp')
| -rw-r--r-- | src/toBeSorted/dowsing_target.cpp | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/toBeSorted/dowsing_target.cpp b/src/toBeSorted/dowsing_target.cpp index 6b2d40ad..879447c3 100644 --- a/src/toBeSorted/dowsing_target.cpp +++ b/src/toBeSorted/dowsing_target.cpp @@ -136,9 +136,12 @@ bool DowsingTarget::hasDowsingInSlot(int slot) { } else if (slot == 2) { return hasCrystalBallDowsing() || hasPumpkinDowsing() || hasNewPlantSpeciesDowsing() || hasKikwiDowsing() || hasKeyPieceDowsing() || hasDesertNodeDowsing() || hasPartyWheelDowsing(); - } else if (StoryflagManager::sInstance->getCounterOrFlag(DOWSING_TARGET_STORY_FLAGS[slot])) { - // TODO small instruction shuffle - return true; + } else { + u16 flag = DOWSING_TARGET_STORY_FLAGS[slot]; + flag = StoryflagManager::sInstance->getCounterOrFlag(flag); + if (flag != 0) { + return true; + } } return false; @@ -199,22 +202,13 @@ void DowsingTarget::init() {} void DowsingTarget::execute() {} -// Not sure what this is -inline static TListNode<DowsingTarget> *getNode(u8 slot, DowsingTarget *t) { - if (t->mLink.mpNext == nullptr || t->mLink.mpPrev == nullptr) { - return &DOWSING_LISTS[slot].mStartEnd; - } else { - return &t->mLink; - } -} - static bool insertDowsingTarget(DowsingTarget *target) { u8 slot = target->getSlot(); if (slot == DowsingTarget::SLOT_NONE) { return false; } - if (getNode(slot, target) != &DOWSING_LISTS[slot].mStartEnd) { + if (DOWSING_LISTS[slot].GetPosition(target) != DOWSING_LISTS[slot].GetEndIter()) { return false; } DOWSING_LISTS[slot].insert(target); @@ -227,7 +221,7 @@ static bool removeDowsingTarget(DowsingTarget *target) { return false; } - if (getNode(slot, target) != &DOWSING_LISTS[slot].mStartEnd) { + if (DOWSING_LISTS[slot].GetPosition(target) != DOWSING_LISTS[slot].GetEndIter()) { DOWSING_LISTS[slot].remove(target); return true; } |
