diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-26 08:17:30 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-26 08:17:30 +0800 |
commit | 18a1d757023e1ae9129147a5474c7cad055e9e83 (patch) | |
tree | 45eb6991eeb056a9eddcbf05c960c645f345e393 /src | |
parent | 30ce36c7b08d01f6bb792d01d927bb28c35cd867 (diff) | |
parent | b5ebf7074daac6b9aed33d07cda992dc6da06ebe (diff) |
Merge branch 'small_files' into misc
Diffstat (limited to 'src')
-rw-r--r-- | src/play_time.c | 67 |
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; +} |