summaryrefslogtreecommitdiff
path: root/src/engine/play_time.c
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-09-30 19:23:55 -0700
committerGitHub <noreply@github.com>2017-09-30 19:23:55 -0700
commit83efcc9c3d1e81b78c2cd9ceab3ac6420a5f4070 (patch)
tree19bbb03916702b468956e82ed2bbe6d259b77a85 /src/engine/play_time.c
parent5fb9b9052276243d54ecfc27d0514e9c35825e8c (diff)
parent70c45eb2616195eb47b8bc67d03a1589cd6c56e6 (diff)
Merge pull request #411 from ProjectRevoTPP/refactor_src
split out src/ directory into categorized subdirectories.
Diffstat (limited to 'src/engine/play_time.c')
-rw-r--r--src/engine/play_time.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/engine/play_time.c b/src/engine/play_time.c
new file mode 100644
index 000000000..9882c9c4b
--- /dev/null
+++ b/src/engine/play_time.c
@@ -0,0 +1,73 @@
+#include "global.h"
+#include "play_time.h"
+
+enum
+{
+ STOPPED,
+ RUNNING,
+ MAXED_OUT
+};
+
+static u8 sPlayTimeCounterState;
+
+void PlayTimeCounter_Reset()
+{
+ sPlayTimeCounterState = STOPPED;
+
+ gSaveBlock2.playTimeHours = 0;
+ gSaveBlock2.playTimeMinutes = 0;
+ gSaveBlock2.playTimeSeconds = 0;
+ gSaveBlock2.playTimeVBlanks = 0;
+}
+
+void PlayTimeCounter_Start()
+{
+ sPlayTimeCounterState = RUNNING;
+
+ if (gSaveBlock2.playTimeHours > 999)
+ PlayTimeCounter_SetToMax();
+}
+
+void PlayTimeCounter_Stop()
+{
+ sPlayTimeCounterState = STOPPED;
+}
+
+void PlayTimeCounter_Update()
+{
+ if (sPlayTimeCounterState == RUNNING)
+ {
+ gSaveBlock2.playTimeVBlanks++;
+
+ if (gSaveBlock2.playTimeVBlanks > 59)
+ {
+ gSaveBlock2.playTimeVBlanks = 0;
+ gSaveBlock2.playTimeSeconds++;
+
+ if (gSaveBlock2.playTimeSeconds > 59)
+ {
+ gSaveBlock2.playTimeSeconds = 0;
+ gSaveBlock2.playTimeMinutes++;
+
+ if (gSaveBlock2.playTimeMinutes > 59)
+ {
+ gSaveBlock2.playTimeMinutes = 0;
+ gSaveBlock2.playTimeHours++;
+
+ if (gSaveBlock2.playTimeHours > 999)
+ PlayTimeCounter_SetToMax();
+ }
+ }
+ }
+ }
+}
+
+void PlayTimeCounter_SetToMax()
+{
+ sPlayTimeCounterState = MAXED_OUT;
+
+ gSaveBlock2.playTimeHours = 999;
+ gSaveBlock2.playTimeMinutes = 59;
+ gSaveBlock2.playTimeSeconds = 59;
+ gSaveBlock2.playTimeVBlanks = 59;
+}