diff options
author | Marcus Huderle <huderlem@gmail.com> | 2017-09-30 19:23:55 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-30 19:23:55 -0700 |
commit | 83efcc9c3d1e81b78c2cd9ceab3ac6420a5f4070 (patch) | |
tree | 19bbb03916702b468956e82ed2bbe6d259b77a85 /src/engine/play_time.c | |
parent | 5fb9b9052276243d54ecfc27d0514e9c35825e8c (diff) | |
parent | 70c45eb2616195eb47b8bc67d03a1589cd6c56e6 (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.c | 73 |
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; +} |