mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-07-16 10:02:59 -07:00
Gameplay Stat Tracker V1 (#1986)
* First test of gathering some gameplay stats * timer changes and other stuff * Move code to new files + rename * Name change - gamePlayStats * Finish rename, remove n64ddFlag checks * Improve item get times * Better time tracking, more stats, * Put button under Enhancements * Fix merge conflict * Add pauseCount, fix bug with rando items * Adjust inits/declarations * step counter * Name change: "itemGetTime" to "timestamp" * Tidying + CI test * Set up array for stat counts * Macro #define GAMEPLAYSTAT_TOTAL_TIME (gSaveContext.gameplayStats.playTimer / 2 + gSaveContext.gameplayStats.pauseTimer / 3) * Add boss defeat timestamps * Add sword swings, pots broken, bushes cut * fix int type * Add counts for enemies defeated Broken down by enemy, with a total * Add ammo used * Hide breakdowns until count > 0 * Forgot Big Octo * Count chests opened * Update after LUS submodule * Enemy count spacing * Comments * Count 3 mini Floormasters as 1 Floormaster + some cleanup * Comments * Colour coding for timestamps on quest items i.e. medallions/stones/songs * Move stat into the sohStats struct + rearrange the counts enum for easier addition of future counts * Some documentation + count button presses * Stop counting button presses when Ganon defeated * Couple bugfixes Add count for Gerudo Thief, fix step counter counting in some situations where it shouldn't * Fix comment
This commit is contained in:
parent
9cfe7bff47
commit
9c162fc0ec
78 changed files with 950 additions and 0 deletions
|
@ -699,6 +699,24 @@ void Play_Update(PlayState* play) {
|
|||
play->transitionMode = 1;
|
||||
}
|
||||
|
||||
// Gameplay stats: Count button presses
|
||||
if (!gSaveContext.sohStats.gameComplete) {
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_A)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_A]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_B)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_B]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_CUP)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_CUP]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_CRIGHT)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_CLEFT]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_CLEFT)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_CDOWN]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_CDOWN)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_CRIGHT]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_DUP)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_DUP]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_DRIGHT)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_DRIGHT]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_DDOWN)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_DDOWN]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_DLEFT)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_DLEFT]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_L)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_L]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_R)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_R]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_Z)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_Z]++;}
|
||||
if (CHECK_BTN_ALL(input[0].press.button, BTN_START)) {gSaveContext.sohStats.count[COUNT_BUTTON_PRESSES_START]++;}
|
||||
}
|
||||
|
||||
if (gTrnsnUnkState != 0) {
|
||||
switch (gTrnsnUnkState) {
|
||||
case 2:
|
||||
|
@ -1066,6 +1084,10 @@ void Play_Update(PlayState* play) {
|
|||
}
|
||||
|
||||
play->gameplayFrames++;
|
||||
// Gameplay stat tracking
|
||||
if (!gSaveContext.sohStats.gameComplete) {
|
||||
gSaveContext.sohStats.playTimer++;
|
||||
}
|
||||
|
||||
func_800AA178(1);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue