Update mod

This commit is contained in:
Miloslav Ciz 2025-07-07 08:05:32 +02:00
parent 5fe854373d
commit c049e2f536
2 changed files with 26 additions and 21 deletions

View file

@ -2,18 +2,6 @@ fuck issue trackers :D
=========== GENERAL ============== =========== 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 ================= =========== BUGS =================
- another TCC bug: tiny map 4 replay fails - another TCC bug: tiny map 4 replay fails
@ -85,6 +73,17 @@ fuck issue trackers :D
=========== HANDLED ============== =========== HANDLED ==============
- use other libs than glibc (musl, ...) - 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 - replay loading BUG! somehow map2 replay was saves with hash 05ef0ab1 instead
of correct 3c5ba5dd once, WTF, check where hash gets modified NEVER HAPPENED of correct 3c5ba5dd once, WTF, check where hash gets modified NEVER HAPPENED
AGAIN THO AGAIN THO

View file

@ -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). the console upon finishing (in normal run or replay).
diff --git a/frontend_helper.h b/frontend_helper.h diff --git a/frontend_helper.h b/frontend_helper.h
index f95b078..3b6bb44 100644 index f95b078..f006fe4 100644
--- a/frontend_helper.h --- a/frontend_helper.h
+++ b/frontend_helper.h +++ b/frontend_helper.h
@@ -128,3 +128,60 @@ void closeDataFile(void) @@ -128,3 +128,63 @@ void closeDataFile(void)
fclose(dataFile); fclose(dataFile);
#endif #endif
} }
@ -64,13 +64,16 @@ index f95b078..3b6bb44 100644
+ putchar(' '); + putchar(' ');
+ _printStatVal(stats[16],100); + _printStatVal(stats[16],100);
+ +
+ printf("; drift: ");
+ _printStatVal(stats[17],1);
+
+ putchar('\n'); + putchar('\n');
+} +}
diff --git a/game.h b/game.h diff --git a/game.h b/game.h
index 1ad5131..c20b103 100644 index 1ad5131..0ec623d 100644
--- a/game.h --- a/game.h
+++ b/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); 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_R 14
+#define LCR_STATS_KEY_FRAMES_L 15 +#define LCR_STATS_KEY_FRAMES_L 15
+#define LCR_STATS_KEYS_AVG_X100 16 +#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 + 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 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 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 renderFramesMeasured;
uint8_t physicsFramesMeasured; uint8_t physicsFramesMeasured;
#endif #endif
@ -113,7 +117,7 @@ index 1ad5131..c20b103 100644
} LCR_game; } LCR_game;
uint8_t LCR_gameMusicOn(void) 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_racingGetCarTransform(carTransform,carTransform + 3,0);
LCR_rendererSetCarTransform(carTransform,carTransform + 3); LCR_rendererSetCarTransform(carTransform,carTransform + 3);
@ -125,7 +129,7 @@ index 1ad5131..c20b103 100644
if (LCR_game.cameraMode != LCR_CAMERA_MODE_FREE) if (LCR_game.cameraMode != LCR_CAMERA_MODE_FREE)
{ {
LCR_rendererCameraReset(); 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); 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_SPEED_MH_AVG] += stat;
+ +
+ LCR_game.stats[LCR_STATS_DRIFT_FRAMES] += LCR_racing.carDrifting;
+
+ if ((LCR_racing.wheelCollisions & 0x0f) == 0) + if ((LCR_racing.wheelCollisions & 0x0f) == 0)
+ LCR_game.stats[LCR_STATS_SURF_PERC_AIR]++; + LCR_game.stats[LCR_STATS_SURF_PERC_AIR]++;
+ else if (LCR_racingCurrentGroundMaterial() == LCR_BLOCK_MATERIAL_GRASS) + else if (LCR_racingCurrentGroundMaterial() == LCR_BLOCK_MATERIAL_GRASS)
@ -187,7 +193,7 @@ index 1ad5131..c20b103 100644
#if LCR_SETTING_PARTICLES #if LCR_SETTING_PARTICLES
LCR_rendererSetParticles(0); 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("finished, time:");
LCR_LOG1_NUM(LCR_game.runTime); LCR_LOG1_NUM(LCR_game.runTime);