summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-06-26 08:16:33 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-06-26 08:16:51 +0800
commitb5ebf7074daac6b9aed33d07cda992dc6da06ebe (patch)
tree05a46e58fbbae7470d5ccd6e17366b03fa6b3830 /src
parentbf81005d44a64cd69002f48dabcfd1fc65cd2e7d (diff)
finished play_time
Diffstat (limited to 'src')
-rw-r--r--src/play_time.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/play_time.c b/src/play_time.c
new file mode 100644
index 000000000..cb70a57c4
--- /dev/null
+++ b/src/play_time.c
@@ -0,0 +1,67 @@
+#include "play_time.h"
+
+static IWRAM_DATA u8 sPlayTimeCounterState;
+
+enum
+{
+ STOPPED,
+ RUNNING,
+ MAXED_OUT,
+};
+
+void PlayTimeCounter_Reset(void)
+{
+ sPlayTimeCounterState = STOPPED;
+
+ gSaveBlock2Ptr->playTimeHours = 0;
+ gSaveBlock2Ptr->playTimeMinutes = 0;
+ gSaveBlock2Ptr->playTimeSeconds = 0;
+ gSaveBlock2Ptr->playTimeVBlanks = 0;
+}
+
+void PlayTimeCounter_Start(void)
+{
+ sPlayTimeCounterState = RUNNING;
+
+ if (gSaveBlock2Ptr->playTimeHours > 999)
+ PlayTimeCounter_SetToMax();
+}
+
+void PlayTimeCounter_Stop(void)
+{
+ sPlayTimeCounterState = STOPPED;
+}
+
+void PlayTimeCounter_Update(void)
+{
+ 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(void)
+{
+ sPlayTimeCounterState = MAXED_OUT;
+ gSaveBlock2Ptr->playTimeHours = 999;
+ gSaveBlock2Ptr->playTimeMinutes = 59;
+ gSaveBlock2Ptr->playTimeSeconds = 59;
+ gSaveBlock2Ptr->playTimeVBlanks = 59;
+}