summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2022-06-20 22:17:51 +0200
committerGitHub <noreply@github.com>2022-06-20 22:17:51 +0200
commit83ae6b5d522e669c4f543223e4e4921a252bcd06 (patch)
tree7b371b7ea2b0049d87e4eb472c560d1b37c055c4
parente1c1cfe79e025e108715923ec01af06c27ddb067 (diff)
parent4424bcfb510fe23c1199d11cf6456658ee7b78db (diff)
Merge pull request #94 from ConorBobbleHat/master
Switch ProductReporter::incrementSceneAndRomWorkTime to using lambdas
-rw-r--r--data/uking_functions.csv2
-rw-r--r--src/KingSystem/System/ProductReporter.cpp14
-rw-r--r--src/KingSystem/System/ProductReporter.h13
3 files changed, 14 insertions, 15 deletions
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) {