diff --git a/data/uking_functions.csv b/data/uking_functions.csv index 92167986..c1a519f9 100644 --- a/data/uking_functions.csv +++ b/data/uking_functions.csv @@ -84392,7 +84392,7 @@ Address,Quality,Size,Name 0x0000007100fd1cc8,O,000380,_ZN4ksys15ProductReporter4initEPN4sead4HeapE 0x0000007100fd1e44,O,000060,_ZN4ksys15ProductReporter9terminateEv 0x0000007100fd1e80,O,000280,_ZN4ksys15ProductReporter12updateTimersEv -0x0000007100fd1f98,m,001672,_ZN4ksys15ProductReporter28incrementSceneAndRomWorkTimeEv +0x0000007100fd1f98,O,001672,_ZN4ksys15ProductReporter28incrementSceneAndRomWorkTimeEv 0x0000007100fd2620,U,000076, 0x0000007100fd266c,U,000620,playReportEmergencyHeapUse 0x0000007100fd28d8,U,001436,PlayReport::Report::addRomVersions diff --git a/src/KingSystem/System/ProductReporter.cpp b/src/KingSystem/System/ProductReporter.cpp index c6589b8b..24ddb8c8 100644 --- a/src/KingSystem/System/ProductReporter.cpp +++ b/src/KingSystem/System/ProductReporter.cpp @@ -110,8 +110,20 @@ bool ProductReporter::saveReport(PlayReport* playReport) const { return false; } -// NON_MATCHING: minor reordering & deduplication bool ProductReporter::incrementSceneAndRomWorkTime() { + const auto get_flag = [this](auto key, s32* value) { + gdt::Manager::instance()->getS32(mGameDataHandles[key], value); + }; + + const auto set_flag = [this](auto key, s32 value) { + gdt::Manager::instance()->setS32(value, mGameDataHandles[key]); + }; + + const auto increment = [this, &get_flag, &set_flag](auto key, s32* value) { + get_flag(key, value); + set_flag(key, *value + 1); + }; + if (map::PlacementMgr::instance() == nullptr) return false; diff --git a/src/KingSystem/System/ProductReporter.h b/src/KingSystem/System/ProductReporter.h index 3bd27c3a..1ee42f6d 100644 --- a/src/KingSystem/System/ProductReporter.h +++ b/src/KingSystem/System/ProductReporter.h @@ -65,19 +65,6 @@ public: s32 getCtrlModePlayTimeHandheld() const; s32 getPlayTimeConsole() const; - void getFlag(u32 key, s32* value) { - gdt::Manager::instance()->getS32(mGameDataHandles[key], value); - } - - void setFlag(u32 key, s32 value) { - gdt::Manager::instance()->setS32(value, mGameDataHandles[key]); - } - - void increment(u32 key, s32* value) { - getFlag(key, value); - setFlag(key, *value + 1); - } - class Container { public: void init(sead::Heap* heap, u64 capacity, u64 itemSize) {