summaryrefslogtreecommitdiff
path: root/src/play_time.c
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2017-08-31 16:48:24 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2017-08-31 16:48:24 +0200
commit6f03356237fbfb60669cc3d80cb4c6cf8924957e (patch)
treee62657f00e7587ddaf8fcf49510ff97b42e46218 /src/play_time.c
parentcbe13acff18405e99827df7c4a772d20b851f33b (diff)
begin working on pokeemerald
Diffstat (limited to 'src/play_time.c')
-rw-r--r--src/play_time.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/play_time.c b/src/play_time.c
new file mode 100644
index 000000000..444c2c86c
--- /dev/null
+++ b/src/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;
+
+ gSaveBlock2Ptr->playTimeHours = 0;
+ gSaveBlock2Ptr->playTimeMinutes = 0;
+ gSaveBlock2Ptr->playTimeSeconds = 0;
+ gSaveBlock2Ptr->playTimeVBlanks = 0;
+}
+
+void PlayTimeCounter_Start()
+{
+ sPlayTimeCounterState = RUNNING;
+
+ if (gSaveBlock2Ptr->playTimeHours > 999)
+ PlayTimeCounter_SetToMax();
+}
+
+void PlayTimeCounter_Stop()
+{
+ sPlayTimeCounterState = STOPPED;
+}
+
+void PlayTimeCounter_Update()
+{
+ if (sPlayTimeCounterState == RUNNING)
+ {
+ gSaveBlock2Ptr->playTimeVBlanks++;
+
+ if (gSaveBlock2Ptr->playTimeVBlanks > 59)
+ {
+ gSaveBlock2Ptr->playTimeVBlanks = 0;
+ gSaveBlock2Ptr->playTimeSeconds++;
+
+ if (gSaveBlock2Ptr->playTimeSeconds > 59)
+ {
+ gSaveBlock2Ptr->playTimeSeconds = 0;
+ gSaveBlock2Ptr->playTimeMinutes++;
+
+ if (gSaveBlock2Ptr->playTimeMinutes > 59)
+ {
+ gSaveBlock2Ptr->playTimeMinutes = 0;
+ gSaveBlock2Ptr->playTimeHours++;
+
+ if (gSaveBlock2Ptr->playTimeHours > 999)
+ PlayTimeCounter_SetToMax();
+ }
+ }
+ }
+ }
+}
+
+void PlayTimeCounter_SetToMax()
+{
+ sPlayTimeCounterState = MAXED_OUT;
+
+ gSaveBlock2Ptr->playTimeHours = 999;
+ gSaveBlock2Ptr->playTimeMinutes = 59;
+ gSaveBlock2Ptr->playTimeSeconds = 59;
+ gSaveBlock2Ptr->playTimeVBlanks = 59;
+}