diff --git a/TODO.txt b/TODO.txt index 1849400..134153a 100644 --- a/TODO.txt +++ b/TODO.txt @@ -2,18 +2,6 @@ fuck issue trackers :D =========== GENERAL ============== -- TAS mod: - - rename "view replay" to "load replay" - - add option to main menu to manipulate time speed (step let's say by 20%) - - maybe also the rewind step? - - more stuff in HUD: - - with time also show exact physics ticks - - acceleration - - percentage of triggering a drift - - min/max (or average?) speed during recent N frames? - - exact game coords and rot.? - - wheels touching the ground - =========== BUGS ================= - another TCC bug: tiny map 4 replay fails @@ -85,6 +73,17 @@ fuck issue trackers :D =========== HANDLED ============== - use other libs than glibc (musl, ...) +- TAS mod: + - rename "view replay" to "load replay" + - add option to main menu to manipulate time speed (step let's say by 20%) + - maybe also the rewind step? + - more stuff in HUD: + - with time also show exact physics ticks + - acceleration + - percentage of triggering a drift + - min/max (or average?) speed during recent N frames? + - exact game coords and rot.? + - wheels touching the ground - replay loading BUG! somehow map2 replay was saves with hash 05ef0ab1 instead of correct 3c5ba5dd once, WTF, check where hash gets modified NEVER HAPPENED AGAIN THO diff --git a/mods/stats.diff b/mods/stats.diff index ab0daa5..e357c89 100644 --- a/mods/stats.diff +++ b/mods/stats.diff @@ -2,10 +2,10 @@ Simple mod that will print run stats (such as maximum speed or acceleration) to the console upon finishing (in normal run or replay). diff --git a/frontend_helper.h b/frontend_helper.h -index f95b078..3b6bb44 100644 +index f95b078..f006fe4 100644 --- a/frontend_helper.h +++ b/frontend_helper.h -@@ -128,3 +128,60 @@ void closeDataFile(void) +@@ -128,3 +128,63 @@ void closeDataFile(void) fclose(dataFile); #endif } @@ -64,13 +64,16 @@ index f95b078..3b6bb44 100644 + putchar(' '); + _printStatVal(stats[16],100); + ++ printf("; drift: "); ++ _printStatVal(stats[17],1); ++ + putchar('\n'); +} diff --git a/game.h b/game.h -index 1ad5131..c20b103 100644 +index 1ad5131..0ec623d 100644 --- a/game.h +++ b/game.h -@@ -167,6 +167,32 @@ uint8_t LCR_gameMusicOn(void); +@@ -167,6 +167,33 @@ uint8_t LCR_gameMusicOn(void); */ uint8_t LCR_gameGetNextAudioSample(void); @@ -91,7 +94,8 @@ index 1ad5131..c20b103 100644 +#define LCR_STATS_KEY_FRAMES_R 14 +#define LCR_STATS_KEY_FRAMES_L 15 +#define LCR_STATS_KEYS_AVG_X100 16 -+#define _LCR_STATS_TOTAL 17 ++#define LCR_STATS_DRIFT_FRAMES 17 ++#define _LCR_STATS_TOTAL 18 + +/** + Will be called to present run stats, implement the presentation however you @@ -103,7 +107,7 @@ index 1ad5131..c20b103 100644 /** This macro may be redefined by frontend to a command that will be periodically performed during map loading. This exists to prevent making the program seem -@@ -386,6 +412,9 @@ struct +@@ -386,6 +413,9 @@ struct uint8_t renderFramesMeasured; uint8_t physicsFramesMeasured; #endif @@ -113,7 +117,7 @@ index 1ad5131..c20b103 100644 } LCR_game; uint8_t LCR_gameMusicOn(void) -@@ -494,6 +523,11 @@ void LCR_gameResetRun(uint8_t replay, uint8_t ghost) +@@ -494,6 +524,11 @@ void LCR_gameResetRun(uint8_t replay, uint8_t ghost) LCR_racingGetCarTransform(carTransform,carTransform + 3,0); LCR_rendererSetCarTransform(carTransform,carTransform + 3); @@ -125,7 +129,7 @@ index 1ad5131..c20b103 100644 if (LCR_game.cameraMode != LCR_CAMERA_MODE_FREE) { LCR_rendererCameraReset(); -@@ -1776,6 +1810,61 @@ uint8_t LCR_gameStep(uint32_t time) +@@ -1776,6 +1811,63 @@ uint8_t LCR_gameStep(uint32_t time) uint32_t events = paused ? 0 : LCR_racingStep(input); @@ -138,6 +142,8 @@ index 1ad5131..c20b103 100644 + + LCR_game.stats[LCR_STATS_SPEED_MH_AVG] += stat; + ++ LCR_game.stats[LCR_STATS_DRIFT_FRAMES] += LCR_racing.carDrifting; ++ + if ((LCR_racing.wheelCollisions & 0x0f) == 0) + LCR_game.stats[LCR_STATS_SURF_PERC_AIR]++; + else if (LCR_racingCurrentGroundMaterial() == LCR_BLOCK_MATERIAL_GRASS) @@ -187,7 +193,7 @@ index 1ad5131..c20b103 100644 #if LCR_SETTING_PARTICLES LCR_rendererSetParticles(0); -@@ -1816,6 +1905,46 @@ uint8_t LCR_gameStep(uint32_t time) +@@ -1816,6 +1908,46 @@ uint8_t LCR_gameStep(uint32_t time) LCR_LOG1("finished, time:"); LCR_LOG1_NUM(LCR_game.runTime);