Просмотр исходного кода

Count claimed chapters again: the live bar moves on claim, not collect

Checked against the live game. Counting collected entries as well was a
reasoned change, not a measured one, and it is wrong.

This has a consequence worth stating. Ten books read their visibility gate
from the same slot their bar counts into, so on claimed-only counting a
book whose entries are all collected but unclaimed reads zero and hides
itself. That is not what live does either, which means the gate for those
ten is not really their bar and a separate gate slot is still unfound --
the same shape as the per-chapter block, one slot per book somewhere in the
free space above the bars. reveal_all_lore_books covers them until it is.
Millie 2 недель назад
Родитель
Сommit
a1210c2725
1 измененных файлов с 5 добавлено и 7 удалено
  1. 5 7
      Sunrise/src/state/record_claims/record_claims.cpp

+ 5 - 7
Sunrise/src/state/record_claims/record_claims.cpp

@@ -598,13 +598,11 @@ std::size_t apply_node_progress(std::span<std::int32_t> objectiveValues) noexcep
                     haveParent = true;
                     continue;
                 }
-                // Completed, not claimed. A lore record completes when the entry is collected;
-                // claiming it afterwards only pays the score. Counting claims alone left a book
-                // reading zero for entries the player had already found, and since the category's
-                // visibility gate reads this very slot and tests it above zero, a book whose
-                // entries were all collected but unclaimed disappeared outright.
-                if (claimed_locked(record.completionFlagIndex)
-                    || claimable_locked(record.completionFlagIndex)) {
+                // Claimed only. Verified against the live game: a lore book's bar moves when the
+                // chapter's triumph is claimed, not when the entry is collected. Counting
+                // collected entries as well was tried on the reasoning that a record completes on
+                // collection, and it is simply not what the bar does.
+                if (claimed_locked(record.completionFlagIndex)) {
                     ++chapters;
                 }
             }