From 7f907a8985b1e2193e210ecc7e18f60c7eea2094 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sun, 9 Mar 2025 13:02:17 -0400 Subject: Don't recalc from non-progression items --- src/ap_state.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'src/ap_state.cpp') diff --git a/src/ap_state.cpp b/src/ap_state.cpp index fd042b4..1e5621d 100644 --- a/src/ap_state.cpp +++ b/src/ap_state.cpp @@ -39,6 +39,18 @@ constexpr int CONNECTION_BACKOFF_INTERVAL = 100; namespace { +const std::set kNonProgressionItems = { + 444409, // :) + 444575, // The Feeling of Being Lost + 444576, // Wanderlust + 444577, // Empty White Hallways + 444410, // Slowness Trap + 444411, // Iceland Trap + 444412, // Atbash Trap + 444413, // Puzzle Skip + 444680, // Speed Boost +}; + struct APState { // Initialized on main thread bool initialized = false; @@ -394,6 +406,7 @@ struct APState { void OnItemsReceived(const std::list& items) { std::vector item_states; + bool progression_items = false; { std::lock_guard state_guard(state_mutex); @@ -405,6 +418,10 @@ struct APState { TrackerLog(fmt::format("Item: {}", item.item)); index_by_item[item.item] = item.index; + + if (!kNonProgressionItems.count(item.item)) { + progression_items = true; + } } for (const auto& [item_id, item_index] : index_by_item) { @@ -414,7 +431,8 @@ struct APState { } } - RefreshTracker(StateUpdate{.items = item_states}); + RefreshTracker(StateUpdate{.items = item_states, + .progression_items = progression_items}); } void OnRetrieved(const std::map& data) { @@ -639,7 +657,7 @@ struct APState { void RefreshTracker(std::optional state_update) { TrackerLog("Refreshing display..."); - if (!state_update || !state_update->items.empty() || + if (!state_update || state_update->progression_items || !state_update->paintings.empty()) { std::string prev_msg; { -- cgit 1.4.1