From 89598f3cc88a9947c339cc439683b7df8922aba8 Mon Sep 17 00:00:00 2001 From: Benjamin Kraft Date: Fri, 27 Jan 2023 14:23:06 +0100 Subject: [PATCH] jump record tracker --- src/RecordTracker.cpp | 26 ++++++++++++++++++++++++++ src/RecordTracker.h | 11 +++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/RecordTracker.cpp create mode 100644 src/RecordTracker.h diff --git a/src/RecordTracker.cpp b/src/RecordTracker.cpp new file mode 100644 index 0000000..941d9fc --- /dev/null +++ b/src/RecordTracker.cpp @@ -0,0 +1,26 @@ +#include "RecordTracker.h" +#include "FileManager.h" + +void RecordTracker::OnWallJumped(WallJumpEvent *event) { + jumped++; +} + +void RecordTracker::OnWallCrashed(WallCrashEvent *event) { + checkJumpRecord(); + jumped = 0; +} + +void RecordTracker::checkJumpRecord() const { + const uint64_t newRecord = jumped; + FileManager::instance->readFile("record_jump.txt", [newRecord](const std::string& content){ + if (content.empty()){ + FileManager::instance->writeFile("record_jump.txt", std::to_string(newRecord)); + return; + } + uint64_t oldRecord = std::stoull(content); + if (newRecord > oldRecord){ + std::cout << "New jump record!" << std::endl; + FileManager::instance->writeFile("record_jump.txt", std::to_string(newRecord)); + } + }); +} diff --git a/src/RecordTracker.h b/src/RecordTracker.h new file mode 100644 index 0000000..f6259db --- /dev/null +++ b/src/RecordTracker.h @@ -0,0 +1,11 @@ +#pragma once + +#include "Listener.h" + +class RecordTracker : public GameListener { + uint64_t jumped = 0; + void checkJumpRecord() const; +protected: + void OnWallJumped(WallJumpEvent * event) override; + void OnWallCrashed(WallCrashEvent * event) override; +};