diff --git a/src/dusk/time/time.c b/src/dusk/time/time.c index 2b672a3..ef70fb5 100644 --- a/src/dusk/time/time.c +++ b/src/dusk/time/time.c @@ -33,6 +33,8 @@ void timeUpdate(void) { TIME.dynamicTime += TIME.dynamicDelta; TIME.dynamicUpdate = true; + printf("Time delta: %f\n", TIME.dynamicDelta); + assertTrue(TIME.dynamicDelta >= 0.0f, "Time delta is negative"); // Is within 1ms of a full step? diff --git a/src/dusksdl2/time/timesdl2.c b/src/dusksdl2/time/timesdl2.c index 688672f..e9addc3 100644 --- a/src/dusksdl2/time/timesdl2.c +++ b/src/dusksdl2/time/timesdl2.c @@ -6,6 +6,7 @@ */ #include "timesdl2.h" +#include "assert/assert.h" void timeTickSDL2(void) { TIME_TICKS_LAST_SDL2 = TIME_TICKS_SDL2; @@ -13,5 +14,6 @@ void timeTickSDL2(void) { } float_t timeGetDeltaSDL2(void) { + assertTrue(TIME_TICKS_SDL2 >= TIME_TICKS_LAST_SDL2, "Ticks went backwards?"); return (float_t)(TIME_TICKS_SDL2 - TIME_TICKS_LAST_SDL2) / 1000.0f; } \ No newline at end of file diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2499604..3acf07a 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -6,6 +6,6 @@ add_subdirectory(assert) add_subdirectory(display) # add_subdirectory(rpg) -add_subdirectory(item) +# add_subdirectory(item) add_subdirectory(time) add_subdirectory(util) \ No newline at end of file diff --git a/test/time/test_time.c b/test/time/test_time.c index 746f249..2e17481 100644 --- a/test/time/test_time.c +++ b/test/time/test_time.c @@ -32,10 +32,10 @@ static void test_timeInit(void **state) { timeInit(); // Inital struct is set. - assert_float_equal(TIME.time, TIME_STEP, 0.0001f); - assert_float_equal(TIME.delta, TIME_STEP, 0.0001f); - assert_float_equal(TIME.dynamicTime, TIME_STEP, 0.0001f); - assert_float_equal(TIME.dynamicDelta, TIME_STEP, 0.0001f); + assert_float_equal(TIME.time, DUSK_TIME_STEP, 0.0001f); + assert_float_equal(TIME.delta, DUSK_TIME_STEP, 0.0001f); + assert_float_equal(TIME.dynamicTime, DUSK_TIME_STEP, 0.0001f); + assert_float_equal(TIME.dynamicDelta, DUSK_TIME_STEP, 0.0001f); assert_false(TIME.dynamicUpdate); } @@ -52,9 +52,11 @@ static void test_timeUpdate(void **state) { assert_true(SDL_GETTICKS_CALLED); assert_true(TIME.dynamicUpdate); assert_float_equal(TIME.dynamicDelta, 0.014f, 0.0001f); - assert_float_equal(TIME.dynamicTime, TIME_STEP + TIME.dynamicDelta, 0.0001f); - assert_float_equal(TIME.delta, TIME_STEP, 0.0001f); // Not changed - assert_float_equal(TIME.time, TIME_STEP, 0.0001f); // Not changed + assert_float_equal( + TIME.dynamicTime, DUSK_TIME_STEP + TIME.dynamicDelta, 0.0001f + ); + assert_float_equal(TIME.delta, DUSK_TIME_STEP, 0.0001f); // Not changed + assert_float_equal(TIME.time, DUSK_TIME_STEP, 0.0001f); // Not changed // Simulate total 16ms elapsed (2ms more) SDL_GETTICKS_TICKS = 16; @@ -63,9 +65,9 @@ static void test_timeUpdate(void **state) { assert_true(SDL_GETTICKS_CALLED); assert_false(TIME.dynamicUpdate); assert_float_equal(TIME.dynamicDelta, 0.002f, 0.0001f); - assert_float_equal(TIME.dynamicTime, TIME_STEP * 2, 0.0001f); - assert_float_equal(TIME.delta, TIME_STEP, 0.0001f); - assert_float_equal(TIME.time, TIME_STEP * 2, 0.0001f); // Stepped once + assert_float_equal(TIME.dynamicTime, DUSK_TIME_STEP * 2, 0.0001f); + assert_float_equal(TIME.delta, DUSK_TIME_STEP, 0.0001f); + assert_float_equal(TIME.time, DUSK_TIME_STEP * 2, 0.0001f); // Stepped once // Second test, half step (16 + 8) SDL_GETTICKS_TICKS = 24; @@ -74,9 +76,9 @@ static void test_timeUpdate(void **state) { assert_true(SDL_GETTICKS_CALLED); assert_true(TIME.dynamicUpdate); assert_float_equal(TIME.dynamicDelta, 0.008f, 0.0001f); - assert_float_equal(TIME.dynamicTime, TIME_STEP + 0.024f, 0.0001f); - assert_float_equal(TIME.delta, TIME_STEP, 0.0001f); - assert_float_equal(TIME.time, TIME_STEP * 2, 0.0001f);// Unchanged. + assert_float_equal(TIME.dynamicTime, DUSK_TIME_STEP + 0.024f, 0.0001f); + assert_float_equal(TIME.delta, DUSK_TIME_STEP, 0.0001f); + assert_float_equal(TIME.time, DUSK_TIME_STEP * 2, 0.0001f);// Unchanged. // Third test, another half step, leading to non dynamic update SDL_GETTICKS_TICKS = 32; @@ -85,9 +87,9 @@ static void test_timeUpdate(void **state) { assert_true(SDL_GETTICKS_CALLED); assert_false(TIME.dynamicUpdate); assert_float_equal(TIME.dynamicDelta, 0.008f, 0.0001f); - assert_float_equal(TIME.dynamicTime, TIME_STEP + 0.032f, 0.0001f); - assert_float_equal(TIME.delta, TIME_STEP, 0.0001f); - assert_float_equal(TIME.time, TIME_STEP * 3, 0.0001f); + assert_float_equal(TIME.dynamicTime, DUSK_TIME_STEP + 0.032f, 0.0001f); + assert_float_equal(TIME.delta, DUSK_TIME_STEP, 0.0001f); + assert_float_equal(TIME.time, DUSK_TIME_STEP * 3, 0.0001f); // Fourth test, large jump, should only step once SDL_GETTICKS_TICKS = 100; // Simulate 100ms elapsed @@ -96,9 +98,9 @@ static void test_timeUpdate(void **state) { assert_true(SDL_GETTICKS_CALLED); assert_false(TIME.dynamicUpdate); assert_float_equal(TIME.dynamicDelta, 0.068f, 0.0001f); - assert_float_equal(TIME.dynamicTime, TIME_STEP + 0.100f, 0.0001f); - assert_float_equal(TIME.delta, TIME_STEP, 0.0001f); - assert_float_equal(TIME.time, TIME_STEP * 4, 0.0001f); + assert_float_equal(TIME.dynamicTime, DUSK_TIME_STEP + 0.100f, 0.0001f); + assert_float_equal(TIME.delta, DUSK_TIME_STEP, 0.0001f); + assert_float_equal(TIME.time, DUSK_TIME_STEP * 4, 0.0001f); // Fifth test, despite a small time passing the game should not start // trying to run ahead @@ -108,9 +110,9 @@ static void test_timeUpdate(void **state) { assert_true(SDL_GETTICKS_CALLED); assert_true(TIME.dynamicUpdate); assert_float_equal(TIME.dynamicDelta, 0.004f, 0.0001f); - assert_float_equal(TIME.dynamicTime, TIME_STEP + 0.104f, 0.0001f); - assert_float_equal(TIME.delta, TIME_STEP, 0.0001f); - assert_float_equal(TIME.time, TIME_STEP * 4, 0.0001f); + assert_float_equal(TIME.dynamicTime, DUSK_TIME_STEP + 0.104f, 0.0001f); + assert_float_equal(TIME.delta, DUSK_TIME_STEP, 0.0001f); + assert_float_equal(TIME.time, DUSK_TIME_STEP * 4, 0.0001f); // Time can stand still if needed SDL_GETTICKS_CALLED = false; diff --git a/tools/display/color/csv/__main__.py b/tools/display/color/csv/__main__.py index 7a97686..81017be 100644 --- a/tools/display/color/csv/__main__.py +++ b/tools/display/color/csv/__main__.py @@ -60,6 +60,8 @@ outHeader += "#define color3f(r, g, b) ((color3f_t){ r, g, b })\n" outHeader += "#define color4f(r, g, b, a) ((color4f_t){ r, g, b, a })\n" outHeader += "#define color3b(r, g, b) ((color3b_t){ r, g, b })\n" outHeader += "#define color4b(r, g, b, a) ((color4b_t){ r, g, b, a })\n\n" +outHeader += "#define color(r, g, b, a) color4b(r, g, b, a)\n\n" # Preferred format. +outHeader += "#define colorHex(hex) color4b(((hex >> 24) & 0xFF), ((hex >> 16) & 0xFF), ((hex >> 8) & 0xFF), (hex & 0xFF))\n\n" luaScript = ""