From 17d4034a8b6567277ddb843a05d550e5d4825f26 Mon Sep 17 00:00:00 2001 From: dayfine Date: Sun, 25 Oct 2026 02:11:45 -0700 Subject: [PATCH 1/2] AutoStory: move AutoStoryStats to Pokemon/AutoStory Pure move, so BDSP and FRLG AutoStories can use the same stats; SV keeps the name through an alias. The stat keys are unchanged. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01AKYzhrMnPK61XHWEch4a6E --- .../AutoStory/Pokemon_AutoStoryStats.h | 36 +++++++++++++++++++ .../AutoStory/PokemonSV_AutoStoryTools.h | 16 ++------- SerialPrograms/cmake/SourceFiles.cmake | 1 + 3 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 SerialPrograms/Source/Pokemon/AutoStory/Pokemon_AutoStoryStats.h diff --git a/SerialPrograms/Source/Pokemon/AutoStory/Pokemon_AutoStoryStats.h b/SerialPrograms/Source/Pokemon/AutoStory/Pokemon_AutoStoryStats.h new file mode 100644 index 0000000000..b531e0bb3d --- /dev/null +++ b/SerialPrograms/Source/Pokemon/AutoStory/Pokemon_AutoStoryStats.h @@ -0,0 +1,36 @@ +/* AutoStory Stats + * + * From: https://github.com/PokemonAutomation/ + * + */ + +#ifndef PokemonAutomation_Pokemon_AutoStoryStats_H +#define PokemonAutomation_Pokemon_AutoStoryStats_H + +#include "CommonFramework/ProgramStats/StatsTracking.h" + +namespace PokemonAutomation{ +namespace Pokemon{ + + +// Saved checkpoints, segments started and game resets of an AutoStory run. +// The names are the keys of the saved stats; do not rename them. +struct AutoStoryStats : public StatsTracker{ + AutoStoryStats() + : m_checkpoint(m_stats["Checkpoint"]) + , m_segment(m_stats["Segment"]) + , m_reset(m_stats["Reset"]) + { + m_display_order.emplace_back("Checkpoint"); + m_display_order.emplace_back("Segment"); + m_display_order.emplace_back("Reset"); + } + std::atomic& m_checkpoint; + std::atomic& m_segment; + std::atomic& m_reset; +}; + + +} +} +#endif diff --git a/SerialPrograms/Source/VideoGames/PokemonSV/Programs/AutoStory/PokemonSV_AutoStoryTools.h b/SerialPrograms/Source/VideoGames/PokemonSV/Programs/AutoStory/PokemonSV_AutoStoryTools.h index 0fb5ad799f..dd395dfd5c 100644 --- a/SerialPrograms/Source/VideoGames/PokemonSV/Programs/AutoStory/PokemonSV_AutoStoryTools.h +++ b/SerialPrograms/Source/VideoGames/PokemonSV/Programs/AutoStory/PokemonSV_AutoStoryTools.h @@ -14,6 +14,7 @@ #include "CommonFramework/ImageTools/ImageBoxes.h" #include "CommonFramework/ProgramStats/StatsTracking.h" #include "NintendoSwitch/NintendoSwitch_SingleSwitchProgram.h" +#include "Pokemon/AutoStory/Pokemon_AutoStoryStats.h" #include "VideoGames/PokemonSV/Programs/PokemonSV_WorldNavigation.h" namespace PokemonAutomation{ @@ -24,20 +25,7 @@ using namespace ML; static constexpr bool ENABLE_TEST = false; -struct AutoStoryStats : public StatsTracker{ - AutoStoryStats() - : m_checkpoint(m_stats["Checkpoint"]) - , m_segment(m_stats["Segment"]) - , m_reset(m_stats["Reset"]) - { - m_display_order.emplace_back("Checkpoint"); - m_display_order.emplace_back("Segment"); - m_display_order.emplace_back("Reset"); - } - std::atomic& m_checkpoint; - std::atomic& m_segment; - std::atomic& m_reset; -}; +using AutoStoryStats = Pokemon::AutoStoryStats; diff --git a/SerialPrograms/cmake/SourceFiles.cmake b/SerialPrograms/cmake/SourceFiles.cmake index 3c444ef3c5..accb20e1c9 100644 --- a/SerialPrograms/cmake/SourceFiles.cmake +++ b/SerialPrograms/cmake/SourceFiles.cmake @@ -1436,6 +1436,7 @@ file(GLOB LIBRARY_SOURCES Source/Pokemon/Options/Pokemon_StatsHuntFilter.cpp Source/Pokemon/Options/Pokemon_StatsHuntFilter.h Source/Pokemon/AutoStory/Pokemon_AutoStorySelect.h + Source/Pokemon/AutoStory/Pokemon_AutoStoryStats.h Source/Pokemon/Pokemon_AdvRng.cpp Source/Pokemon/Pokemon_AdvRng.h Source/Pokemon/Pokemon_BdspRng.cpp From cc6599476e059388ac29bba6c66e457a30652411 Mon Sep 17 00:00:00 2001 From: dayfine Date: Sat, 7 Nov 2026 21:07:03 -0800 Subject: [PATCH 2/2] Document shared stats alias and namespace endings --- .../Source/Pokemon/AutoStory/Pokemon_AutoStoryStats.h | 4 ++-- .../PokemonSV/Programs/AutoStory/PokemonSV_AutoStoryTools.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/SerialPrograms/Source/Pokemon/AutoStory/Pokemon_AutoStoryStats.h b/SerialPrograms/Source/Pokemon/AutoStory/Pokemon_AutoStoryStats.h index b531e0bb3d..3b29a6ad34 100644 --- a/SerialPrograms/Source/Pokemon/AutoStory/Pokemon_AutoStoryStats.h +++ b/SerialPrograms/Source/Pokemon/AutoStory/Pokemon_AutoStoryStats.h @@ -31,6 +31,6 @@ struct AutoStoryStats : public StatsTracker{ }; -} -} +} // namespace Pokemon +} // namespace PokemonAutomation #endif diff --git a/SerialPrograms/Source/VideoGames/PokemonSV/Programs/AutoStory/PokemonSV_AutoStoryTools.h b/SerialPrograms/Source/VideoGames/PokemonSV/Programs/AutoStory/PokemonSV_AutoStoryTools.h index 9d0f9c678f..e39d8a47da 100644 --- a/SerialPrograms/Source/VideoGames/PokemonSV/Programs/AutoStory/PokemonSV_AutoStoryTools.h +++ b/SerialPrograms/Source/VideoGames/PokemonSV/Programs/AutoStory/PokemonSV_AutoStoryTools.h @@ -25,6 +25,7 @@ using namespace ML; static constexpr bool ENABLE_TEST = false; +// Shared checkpoint, segment and reset counters used by SV AutoStory. using AutoStoryStats = Pokemon::AutoStoryStats;