From 8a65dad4bb13e2ae419ec707d8c86104135062d3 Mon Sep 17 00:00:00 2001 From: SlyVTT Date: Wed, 7 Jun 2023 09:02:10 +0200 Subject: [PATCH] big session of house cleaning --- Pinball.g3a | Bin 250696 -> 0 bytes build | 4 +- buildpush | 3 +- src/main.cpp | 176 +++++--------- src/parameters.h | 9 +- src/tables.h | 601 +++++++++++++++++++++++++++-------------------- src/utilities.h | 144 ++++++------ src/vector2D.h | 1 + 8 files changed, 479 insertions(+), 459 deletions(-) delete mode 100644 Pinball.g3a diff --git a/Pinball.g3a b/Pinball.g3a deleted file mode 100644 index e33edf5bb34c9cd24be6148dfd87c47d2c46f85a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250696 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 z 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

    #(Vkhm?o4GCJ`IOgFe%s8L+gwxlu{yfU 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 b3GQ6_$4?`?3*oejM=5w7;{6C)J;nb3d>Mpv diff --git a/build b/build index d3b1d35..6f48891 100755 --- a/build +++ b/build @@ -1 +1,3 @@ -fxsdk build-cg VERBOSE=1 +rm -r build-cg +rm -r build-cg-push +fxsdk build-cg -B VERBOSE=1 diff --git a/buildpush b/buildpush index 9be693f..cde2707 100755 --- a/buildpush +++ b/buildpush @@ -1,3 +1,4 @@ rm -r build-cg +rm -r build-cg-push rm *.g3a -fxsdk build-cg-push -s VERBOSE=1 +fxsdk build-cg-push -B -s VERBOSE=1 diff --git a/src/main.cpp b/src/main.cpp index 2b178ec..cd6a5e2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -8,10 +8,12 @@ #include #include -#include -#include -#include +#if (DEBUG_MODE) + #include + #include +#endif + #include #include @@ -35,16 +37,16 @@ #include "tables.h" #include -bool screenshot = false; -bool record = false; -bool textoutput = false; +#if (DEBUG_MODE) + bool screenshot = false; + bool record = false; + bool textoutput = false; +#endif + bool exitToOS = false; uint8_t texttodraw = 1; -#define SCALE_PIXEL 1 -#define X_RESOL (DWIDTH / SCALE_PIXEL) -#define Y_RESOL (DHEIGHT / SCALE_PIXEL) float elapsedTime = 0.0f; float realDeltaTime = 0.0f; @@ -52,26 +54,14 @@ float cumulatedTime = 0.0f; uint32_t time_update = 0, time_render = 0; prof_t perf_update, perf_render; -static kmalloc_arena_t extended_ram = {0}; -static kmalloc_arena_t *_uram; -kmalloc_gint_stats_t *_uram_stats; -kmalloc_gint_stats_t *extram_stats; - KeyboardExtra MyKeyboard; Scene MyPinball; -libnum::num32 flipperHeight; -libnum::num32 cScale; -libnum::num32 simWidth; -libnum::num32 simHeight; - - -/* TODO : this is for debugging purpose */ +/* TODO : this is for debugging purpose only to be removed when fixed */ bool targetline = true; - /* create the pinball board */ void SetupScene(int which_table) { @@ -174,45 +164,50 @@ static void render(void) { /* Clear Screen */ azrp_clear(RGB565_BLACK); + /* render the side image if available */ if (MyPinball.sideimage != nullptr) azrp_image_p8(azrp_width - MyPinball.sideimage->width - 25, 5, MyPinball.sideimage, DIMAGE_NONE); - + + /* Render the border of the pinball table */ CollectionRender( MyPinball.borders, RGB565_WHITE ); if (MyPinball.has_locker) { + /* draw the locker : red if inactive and white if active and considered as a border*/ CollectionRender( MyPinball.locker, MyPinball.locker_is_enabled ? RGB565_WHITE : RGB565_BLOODYRED); /* TODO this is for debugging */ + /* Something is buggy when azrp_filled_circle is used !!! */ + /* wile it is working when lines are drawn - strange bug, need to be fixed */ if (targetline) { azrp_line(CX(MyPinball.Lock_pos)-5, CY(MyPinball.Lock_pos),CX(MyPinball.Lock_pos)+5, CY(MyPinball.Lock_pos), MyPinball.Lock_color); azrp_line(CX(MyPinball.Lock_pos), CY(MyPinball.Lock_pos)-5,CX(MyPinball.Lock_pos), CY(MyPinball.Lock_pos)+5, MyPinball.Lock_color); } - else { - azrp_filledcircle(CX(MyPinball.Lock_pos), CY(MyPinball.Lock_pos), CR(MyPinball.Lock_radius), MyPinball.Lock_color); - } + else azrp_filledcircle(CX(MyPinball.Lock_pos), CY(MyPinball.Lock_pos), CR(MyPinball.Lock_radius), MyPinball.Lock_color); } - - + /* Render the circular bumpers that gives score points and push the ball away */ for (int i = 0; i < MyPinball.obstacles.size(); i++) MyPinball.obstacles[i].Render(); - + /* render the non circular obstacles that just block the path of the ball */ for (int i = 0; i < MyPinball.islands.size(); i++) CollectionRender( MyPinball.islands[i] , RGB565_WHITE); + /* render the balls */ for (int i = 0; i < MyPinball.balls.size(); i++) MyPinball.balls[i].Render(); - + /* render de flippers */ for (int i = 0; i < MyPinball.flippers.size(); i++) MyPinball.flippers[i].Render(); - azrp_draw_text(150, 0, "FPS = %.0f - Mem Free = %d - Time = %.2 f" , - (float)(1.0f / realDeltaTime), - _uram_stats->free_memory + extram_stats->free_memory, cumulatedTime); - +#if (DEBUG_MODE) + /* debug info (FPS and current game duration )*/ + azrp_draw_text(150, 0, "FPS = %.0f - Time = %.2 f" , + (float)(1.0f / realDeltaTime)); +#endif + /* score */ azrp_draw_pinball(250, 200, RGB565_DEEPPURPLE, "Score:%d", MyPinball.score); } @@ -222,7 +217,7 @@ static void get_inputs(float dt) { if (MyKeyboard.IsKeyPressed(MYKEY_SHIFT) && MyKeyboard.IsKeyHoldPressed(MYKEY_EXIT)) { exitToOS = true; - }; + } /* LEFT FLIPPER */ if (MyKeyboard.IsKeyPressed(MYKEY_F1)) { @@ -246,7 +241,7 @@ static void get_inputs(float dt) { MyPinball.flippers[i].touchIdentifier = libnum::num32(-1); } - /* RESET THE GAME */ + /* RESET THE GAME AND CHANGE THE CURRENT TABLE ( [OPTN] + [Fx] loads Table #x )*/ if (MyKeyboard.IsKeyPressed(MYKEY_OPTN) && MyKeyboard.IsKeyHoldPressed(MYKEY_F1)) { SetupScene(0); @@ -286,73 +281,13 @@ static void get_inputs(float dt) { MyKeyboard.IsKeyPressedEvent(MYKEY_9) && usb_is_open()) { record = false; }; - #endif - - /* we can have either LEFT or RIGHT or NONE OF THEM pressed for the direction - */ } -bool AddMoreRAM(void) { - /* allow more RAM */ - char const *osv = (char *)0x80020020; - - if ((!strncmp(osv, "03.", 3) && osv[3] <= '8') && - gint[HWCALC] == HWCALC_FXCG50) // CG-50 - { - extended_ram.name = "extram"; - extended_ram.is_default = true; - extended_ram.start = (void *)0x8c200000; - extended_ram.end = (void *)0x8c4e0000; - - kmalloc_init_arena(&extended_ram, true); - kmalloc_add_arena(&extended_ram); - return true; - } else if (gint[HWCALC] == HWCALC_PRIZM) // CG-10/20 - { - - extended_ram.name = "extram"; - extended_ram.is_default = true; - - uint16_t *vram1, *vram2; - dgetvram(&vram1, &vram2); - dsetvram(vram1, vram1); - - extended_ram.start = vram2; - extended_ram.end = (char *)vram2 + 396 * 224 * 2; - - kmalloc_init_arena(&extended_ram, true); - kmalloc_add_arena(&extended_ram); - return true; - - } else if (gint[HWCALC] == HWCALC_FXCG_MANAGER) // CG-50 EMULATOR - { - - extended_ram.name = "extram"; - extended_ram.is_default = true; - extended_ram.start = (void *)0x88200000; - extended_ram.end = (void *)0x884e0000; - - kmalloc_init_arena(&extended_ram, true); - kmalloc_add_arena(&extended_ram); - return true; - } else { - return false; - } -} - -void FreeMoreRAM(void) { - memset(extended_ram.start, 0, - (char *)extended_ram.end - (char *)extended_ram.start); -} int main(void) { exitToOS = false; - _uram = kmalloc_get_arena("_uram"); - - bool canWeAllocate3Mb = AddMoreRAM(); - __printf_enable_fp(); __printf_enable_fixed(); @@ -367,59 +302,56 @@ int main(void) { azrp_hook_set_prefrag(hook_prefrag); +#if (DEBUG_MODE) usb_interface_t const *interfaces[] = {&usb_ff_bulk, NULL}; usb_open(interfaces, GINT_CALL_NULL); +#endif + // TODO : Currently Loads Table #4 that is the most complete one + // To be adjusted by a menu and based on user input in final version SetupScene(4); prof_init(); do { + perf_update = prof_make(); prof_enter(perf_update); + { + // all the stuff to be update should be put here + MyKeyboard.Update(); + get_inputs(elapsedTime); - { - // all the stuff to be update should be put here - MyKeyboard.Update(); - get_inputs(elapsedTime); - - update(elapsedTime); - - // update the RAM consumption status - _uram_stats = kmalloc_get_gint_stats(_uram); - extram_stats = kmalloc_get_gint_stats(&extended_ram); - } - + update(elapsedTime); + } prof_leave(perf_update); time_update = prof_time(perf_update); + perf_render = prof_make(); prof_enter(perf_render); + { + // all the stuff to be rendered should be put here + render(); - { - // all the stuff to be rendered should be put here - render(); - - azrp_update(); - } - + azrp_update(); + } prof_leave(perf_render); time_render = prof_time(perf_render); /* elapsedTime expressed in microseconds when coming from the libprof high * accuracy time measurement */ - realDeltaTime = ((float)(time_update + time_render)) / 1000000.0f; - - elapsedTime = ((float)1.0f / 60.0f); - cumulatedTime += elapsedTime; + realDeltaTime = ((float)(time_update + time_render)) / 1000000.0f; /* this is actual real time */ + elapsedTime = ((float)1.0f / 60.0f); /* TODO : when shaders will be optimized and quick enough, elapsedTime will be set to actual realDeltaTime */ + cumulatedTime += elapsedTime; /* TODO : this is a ugly trick to mitigate the problem with the locker - for now it closes after a certain time*/ } while (exitToOS == false); prof_quit(); - usb_close(); - if (canWeAllocate3Mb) - FreeMoreRAM(); +#if (DEBUG_MODE) + usb_close(); +#endif return 1; } diff --git a/src/parameters.h b/src/parameters.h index d7588c2..80409a5 100644 --- a/src/parameters.h +++ b/src/parameters.h @@ -1,9 +1,12 @@ #ifndef PARAMETERS_H #define PARAMETERS_H + /* define main macros and usefull parameters */ -#define DEBUG_MODE 1 -#define BIAS 1 -#define NOBIAS (1-BIAS) + #define DEBUG_MODE 1 + #define BIAS 1 + #define NOBIAS (1-BIAS) + + #define SCALE_PIXEL 1 #endif \ No newline at end of file diff --git a/src/tables.h b/src/tables.h index 0460677..1eb7f86 100644 --- a/src/tables.h +++ b/src/tables.h @@ -8,14 +8,15 @@ #include extern Scene MyPinball; -extern libnum::num32 flipperHeight; -extern libnum::num32 cScale; -extern libnum::num32 simWidth; -extern libnum::num32 simHeight; + + +libnum::num32 flipperHeight; +libnum::num32 cScale; +libnum::num32 simWidth; +libnum::num32 simHeight; extern bopti_image_t img_abyss; - void Setup_Table_0(void) { libnum::num32 offset = libnum::num32(0.02); @@ -25,39 +26,52 @@ void Setup_Table_0(void) { simHeight = libnum::num32(azrp_height) / cScale; MyPinball.has_locker = false; - + MyPinball.score = 0; MyPinball.gravity.Set(Vector2D(libnum::num32(0.0), libnum::num32(-1.0))); MyPinball.sideimage = nullptr; MyPinball.borders.clear(); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.25))); - MyPinball.borders.push_back( Vector2D(libnum::num32(1.0) - offset, libnum::num32(0.4))); - MyPinball.borders.push_back( Vector2D(libnum::num32(1.0) - offset, flipperHeight - offset)); - MyPinball.borders.push_back( Vector2D(offset, flipperHeight - offset)); - MyPinball.borders.push_back( Vector2D(offset, libnum::num32(0.4))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.26), libnum::num32(0.25))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.26), libnum::num32(offset))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.74), libnum::num32(offset))); + MyPinball.borders.emplace_back(libnum::num32(0.74), libnum::num32(0.25)); + MyPinball.borders.emplace_back(libnum::num32(1.0) - offset, + libnum::num32(0.4)); + MyPinball.borders.emplace_back(libnum::num32(1.0) - offset, + flipperHeight - offset); + MyPinball.borders.emplace_back(offset, flipperHeight - offset); + MyPinball.borders.emplace_back(offset, libnum::num32(0.4)); + MyPinball.borders.emplace_back(libnum::num32(0.26), libnum::num32(0.25)); + MyPinball.borders.emplace_back(libnum::num32(0.26), libnum::num32(offset)); + MyPinball.borders.emplace_back(libnum::num32(0.74), libnum::num32(offset)); MyPinball.balls.clear(); libnum::num32 ball_radius = libnum::num32(0.03); libnum::num32 ball_mass = libnum::num32(PI) * ball_radius * ball_radius; Vector2D ball_pos1(libnum::num32(0.92), libnum::num32(0.5)); Vector2D ball_vel1(libnum::num32(0.2), libnum::num32(3.5)); - MyPinball.balls.push_back( Ball(ball_radius, ball_mass, ball_pos1, ball_vel1, 0.2, RGB565_BLOODYRED)); + MyPinball.balls.push_back(Ball(ball_radius, ball_mass, ball_pos1, ball_vel1, + 0.2, RGB565_BLOODYRED)); Vector2D ball_pos2(libnum::num32(0.08), libnum::num32(0.5)); Vector2D ball_vel2(libnum::num32(0.2), libnum::num32(3.5)); - MyPinball.balls.push_back( Ball(ball_radius, ball_mass, ball_pos2, ball_vel2, 0.2, RGB565_BLOODYRED )); + MyPinball.balls.push_back(Ball(ball_radius, ball_mass, ball_pos2, ball_vel2, + 0.2, RGB565_BLOODYRED)); MyPinball.obstacles.clear(); - MyPinball.obstacles.push_back( Obstacle(0.10, Vector2D(libnum::num32(0.25), libnum::num32(0.6)), 2.0, RGB565_OCEANBLUE, 25)); - MyPinball.obstacles.push_back( Obstacle(0.10, Vector2D(libnum::num32(0.75), libnum::num32(0.5)), 2.0, RGB565_OCEANBLUE, 25)); - MyPinball.obstacles.push_back( Obstacle(0.12, Vector2D(libnum::num32(0.70), libnum::num32(1.0)), 2.0, RGB565_OCEANBLUE, 25)); - MyPinball.obstacles.push_back( Obstacle(0.10, Vector2D(libnum::num32(0.20), libnum::num32(1.2)), 2.0, RGB565_OCEANBLUE, 25)); + MyPinball.obstacles.emplace_back( + 0.10, Vector2D(libnum::num32(0.25), libnum::num32(0.6)), 2.0, + RGB565_OCEANBLUE, 25); + MyPinball.obstacles.emplace_back( + 0.10, Vector2D(libnum::num32(0.75), libnum::num32(0.5)), 2.0, + RGB565_OCEANBLUE, 25); + MyPinball.obstacles.emplace_back( + 0.12, Vector2D(libnum::num32(0.70), libnum::num32(1.0)), 2.0, + RGB565_OCEANBLUE, 25); + MyPinball.obstacles.emplace_back( + 0.10, Vector2D(libnum::num32(0.20), libnum::num32(1.2)), 2.0, + RGB565_OCEANBLUE, 25); - for(int i=0; i island1; - island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.10)) ); - island1.push_back( Vector2D(libnum::num32(0.40), libnum::num32(1.20)) ); - island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.30)) ); - island1.push_back( Vector2D(libnum::num32(0.60), libnum::num32(1.20)) ); - MyPinball.islands.push_back( island1 ); + island1.emplace_back(libnum::num32(0.50), libnum::num32(1.10)); + island1.emplace_back(libnum::num32(0.40), libnum::num32(1.20)); + island1.emplace_back(libnum::num32(0.50), libnum::num32(1.30)); + island1.emplace_back(libnum::num32(0.60), libnum::num32(1.20)); + MyPinball.islands.push_back(island1); std::vector island2; - island2.push_back( Vector2D(libnum::num32(0.50), libnum::num32(0.50)) ); - island2.push_back( Vector2D(libnum::num32(0.40), libnum::num32(0.70)) ); - island2.push_back( Vector2D(libnum::num32(0.50), libnum::num32(0.72)) ); - island2.push_back( Vector2D(libnum::num32(0.60), libnum::num32(0.70)) ); - MyPinball.islands.push_back( island2 ); - + island2.emplace_back(libnum::num32(0.50), libnum::num32(0.50)); + island2.emplace_back(libnum::num32(0.40), libnum::num32(0.70)); + island2.emplace_back(libnum::num32(0.50), libnum::num32(0.72)); + island2.emplace_back(libnum::num32(0.60), libnum::num32(0.70)); + MyPinball.islands.push_back(island2); MyPinball.flippers.clear(); libnum::num32 flip_radius = libnum::num32(0.03); @@ -240,10 +301,15 @@ void Setup_Table_2(void) { libnum::num32 flip_restitution = libnum::num32(0.0); Vector2D flip_pos1(libnum::num32(0.26), libnum::num32(0.22)); - MyPinball.flippers.push_back(Flipper(flip_radius, flip_pos1, flip_length, -flip_restAngle, flip_maxRotation, flip_angularVelocity, flip_restitution, LEFT, RGB565_OCEANBLUE)); + MyPinball.flippers.emplace_back( + flip_radius, flip_pos1, flip_length, -flip_restAngle, flip_maxRotation, + flip_angularVelocity, flip_restitution, LEFT, RGB565_OCEANBLUE); Vector2D flip_pos2(libnum::num32(0.74), libnum::num32(0.22)); - MyPinball.flippers.push_back(Flipper( flip_radius, flip_pos2, flip_length, libnum::num32(PI) + flip_restAngle, -flip_maxRotation, flip_angularVelocity, flip_restitution, RIGHT, RGB565_OCEANBLUE)); + MyPinball.flippers.emplace_back(flip_radius, flip_pos2, flip_length, + libnum::num32(PI) + flip_restAngle, + -flip_maxRotation, flip_angularVelocity, + flip_restitution, RIGHT, RGB565_OCEANBLUE); } void Setup_Table_3(void) { @@ -262,96 +328,113 @@ void Setup_Table_3(void) { MyPinball.sideimage = &img_abyss; MyPinball.borders.clear(); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.25))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.98), libnum::num32(0.40))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.98), libnum::num32(1.20))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.96), libnum::num32(1.34))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.90), libnum::num32(1.46))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.81), libnum::num32(1.56))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.70), libnum::num32(1.64))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.57), libnum::num32(1.68))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.43), libnum::num32(1.68))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.30), libnum::num32(1.64))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.19), libnum::num32(1.56))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.10), libnum::num32(1.46))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.04), libnum::num32(1.34))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.02), libnum::num32(1.20))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.02), libnum::num32(0.40))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.26), libnum::num32(0.25))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.26), libnum::num32(0.02))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.02))); - + MyPinball.borders.emplace_back(libnum::num32(0.74), libnum::num32(0.25)); + MyPinball.borders.emplace_back(libnum::num32(0.98), libnum::num32(0.40)); + MyPinball.borders.emplace_back(libnum::num32(0.98), libnum::num32(1.20)); + MyPinball.borders.emplace_back(libnum::num32(0.96), libnum::num32(1.34)); + MyPinball.borders.emplace_back(libnum::num32(0.90), libnum::num32(1.46)); + MyPinball.borders.emplace_back(libnum::num32(0.81), libnum::num32(1.56)); + MyPinball.borders.emplace_back(libnum::num32(0.70), libnum::num32(1.64)); + MyPinball.borders.emplace_back(libnum::num32(0.57), libnum::num32(1.68)); + MyPinball.borders.emplace_back(libnum::num32(0.43), libnum::num32(1.68)); + MyPinball.borders.emplace_back(libnum::num32(0.30), libnum::num32(1.64)); + MyPinball.borders.emplace_back(libnum::num32(0.19), libnum::num32(1.56)); + MyPinball.borders.emplace_back(libnum::num32(0.10), libnum::num32(1.46)); + MyPinball.borders.emplace_back(libnum::num32(0.04), libnum::num32(1.34)); + MyPinball.borders.emplace_back(libnum::num32(0.02), libnum::num32(1.20)); + MyPinball.borders.emplace_back(libnum::num32(0.02), libnum::num32(0.40)); + MyPinball.borders.emplace_back(libnum::num32(0.26), libnum::num32(0.25)); + MyPinball.borders.emplace_back(libnum::num32(0.26), libnum::num32(0.02)); + MyPinball.borders.emplace_back(libnum::num32(0.74), libnum::num32(0.02)); MyPinball.balls.clear(); libnum::num32 ball_radius = libnum::num32(0.03); libnum::num32 ball_mass = libnum::num32(PI) * ball_radius * ball_radius; Vector2D ball_pos1(libnum::num32(0.70), libnum::num32(0.70)); Vector2D ball_vel1(libnum::num32(0.2), libnum::num32(3.5)); - MyPinball.balls.push_back( Ball(ball_radius, ball_mass, ball_pos1, ball_vel1, 0.2, RGB565_LEMONYELLOW)); + MyPinball.balls.push_back(Ball(ball_radius, ball_mass, ball_pos1, ball_vel1, + 0.2, RGB565_LEMONYELLOW)); Vector2D ball_pos2(libnum::num32(0.30), libnum::num32(0.70)); Vector2D ball_vel2(libnum::num32(-0.2), libnum::num32(3.5)); - MyPinball.balls.push_back( Ball(ball_radius, ball_mass, ball_pos2, ball_vel2, 0.2, RGB565_LEMONYELLOW )); - + MyPinball.balls.push_back(Ball(ball_radius, ball_mass, ball_pos2, ball_vel2, + 0.2, RGB565_LEMONYELLOW)); MyPinball.obstacles.clear(); - MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.50), libnum::num32(1.45)), 1.5, RGB565_RED, 100)); - MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.74), libnum::num32(1.20)), 1.5, RGB565_RED, 100)); - MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.26), libnum::num32(1.20)), 1.5, RGB565_RED, 100)); - MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.50), libnum::num32(0.95)), 1.5, RGB565_RED, 100)); - MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.15), libnum::num32(0.80)), 1.5, RGB565_LEMONYELLOW, 25)); - MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.85), libnum::num32(0.80)), 1.5, RGB565_LEMONYELLOW, 25)); - MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.30), libnum::num32(0.60)), 1.5, RGB565_GREEN, 10)); - MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.70), libnum::num32(0.60)), 1.5, RGB565_GREEN, 10)); + MyPinball.obstacles.emplace_back( + 0.06, Vector2D(libnum::num32(0.50), libnum::num32(1.45)), 1.5, RGB565_RED, + 100); + MyPinball.obstacles.emplace_back( + 0.06, Vector2D(libnum::num32(0.74), libnum::num32(1.20)), 1.5, RGB565_RED, + 100); + MyPinball.obstacles.emplace_back( + 0.06, Vector2D(libnum::num32(0.26), libnum::num32(1.20)), 1.5, RGB565_RED, + 100); + MyPinball.obstacles.emplace_back( + 0.06, Vector2D(libnum::num32(0.50), libnum::num32(0.95)), 1.5, RGB565_RED, + 100); + MyPinball.obstacles.emplace_back( + 0.04, Vector2D(libnum::num32(0.15), libnum::num32(0.80)), 1.5, + RGB565_LEMONYELLOW, 25); + MyPinball.obstacles.emplace_back( + 0.04, Vector2D(libnum::num32(0.85), libnum::num32(0.80)), 1.5, + RGB565_LEMONYELLOW, 25); + MyPinball.obstacles.emplace_back( + 0.04, Vector2D(libnum::num32(0.30), libnum::num32(0.60)), 1.5, + RGB565_GREEN, 10); + MyPinball.obstacles.emplace_back( + 0.04, Vector2D(libnum::num32(0.70), libnum::num32(0.60)), 1.5, + RGB565_GREEN, 10); - - - for( int i=0; i island1; - island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.10)) ); - island1.push_back( Vector2D(libnum::num32(0.40), libnum::num32(1.20)) ); - island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.30)) ); - island1.push_back( Vector2D(libnum::num32(0.60), libnum::num32(1.20)) ); - MyPinball.islands.push_back( island1 ); + island1.emplace_back( libnum::num32(0.50), libnum::num32(1.10) ); + island1.emplace_back( libnum::num32(0.40), libnum::num32(1.20) ); + island1.emplace_back( libnum::num32(0.50), libnum::num32(1.30) ); + island1.emplace_back( libnum::num32(0.60), libnum::num32(1.20) ); + MyPinball.islands.push_back(island1); - std::vector island2; - island2.push_back( Vector2D(libnum::num32(0.50), libnum::num32(0.60)) ); - island2.push_back( Vector2D(libnum::num32(0.40), libnum::num32(0.80)) ); - island2.push_back( Vector2D(libnum::num32(0.50), libnum::num32(0.82)) ); - island2.push_back( Vector2D(libnum::num32(0.60), libnum::num32(0.80)) ); - MyPinball.islands.push_back( island2 ); + std::vector island2; + island2.emplace_back( libnum::num32(0.50), libnum::num32(0.60) ); + island2.emplace_back( libnum::num32(0.40), libnum::num32(0.80) ); + island2.emplace_back( libnum::num32(0.50), libnum::num32(0.82) ); + island2.emplace_back( libnum::num32(0.60), libnum::num32(0.80) ); + MyPinball.islands.push_back(island2); + std::vector island3; + island3.emplace_back( libnum::num32(0.12), libnum::num32(0.45) ); + island3.emplace_back( libnum::num32(0.12), libnum::num32(0.65) ); + island3.emplace_back( libnum::num32(0.26), libnum::num32(0.37) ); + MyPinball.islands.push_back(island3); - std::vector island3; - island3.push_back( Vector2D(libnum::num32(0.12), libnum::num32(0.45)) ); - island3.push_back( Vector2D(libnum::num32(0.12), libnum::num32(0.65)) ); - island3.push_back( Vector2D(libnum::num32(0.26), libnum::num32(0.37)) ); - MyPinball.islands.push_back( island3 ); + std::vector island4; + island4.emplace_back( libnum::num32(0.88), libnum::num32(0.65) ); + island4.emplace_back( libnum::num32(0.88), libnum::num32(0.45) ); + island4.emplace_back( libnum::num32(0.74), libnum::num32(0.37) ); + MyPinball.islands.push_back(island4); - std::vector island4; - island4.push_back( Vector2D(libnum::num32(0.88), libnum::num32(0.65)) ); - island4.push_back( Vector2D(libnum::num32(0.88), libnum::num32(0.45)) ); - island4.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.37)) ); - MyPinball.islands.push_back( island4 ); + MyPinball.flippers.clear(); + libnum::num32 flip_radius = libnum::num32(0.03); + libnum::num32 flip_length = libnum::num32(0.2); + libnum::num32 flip_maxRotation = libnum::num32(1.0); + libnum::num32 flip_restAngle = libnum::num32(0.5); + libnum::num32 flip_angularVelocity = libnum::num32(10.0); + libnum::num32 flip_restitution = libnum::num32(0.0); + Vector2D flip_pos1(libnum::num32(0.26), libnum::num32(0.22)); + MyPinball.flippers.emplace_back( + flip_radius, flip_pos1, flip_length, -flip_restAngle, flip_maxRotation, + flip_angularVelocity, flip_restitution, LEFT, RGB565_OCEANBLUE); - MyPinball.flippers.clear(); - libnum::num32 flip_radius = libnum::num32(0.03); - libnum::num32 flip_length = libnum::num32(0.2); - libnum::num32 flip_maxRotation = libnum::num32(1.0); - libnum::num32 flip_restAngle = libnum::num32(0.5); - libnum::num32 flip_angularVelocity = libnum::num32(10.0); - libnum::num32 flip_restitution = libnum::num32(0.0); - - Vector2D flip_pos1(libnum::num32(0.26), libnum::num32(0.22)); - MyPinball.flippers.push_back(Flipper(flip_radius, flip_pos1, flip_length, -flip_restAngle, flip_maxRotation, flip_angularVelocity, flip_restitution, LEFT, RGB565_OCEANBLUE)); - - Vector2D flip_pos2(libnum::num32(0.74), libnum::num32(0.22)); - MyPinball.flippers.push_back(Flipper( flip_radius, flip_pos2, flip_length, libnum::num32(PI) + flip_restAngle, -flip_maxRotation, flip_angularVelocity, flip_restitution, RIGHT, RGB565_OCEANBLUE)); + Vector2D flip_pos2(libnum::num32(0.74), libnum::num32(0.22)); + MyPinball.flippers.emplace_back(flip_radius, flip_pos2, flip_length, + libnum::num32(PI) + flip_restAngle, + -flip_maxRotation, flip_angularVelocity, + flip_restitution, RIGHT, RGB565_OCEANBLUE); } - void Setup_Table_4(void) { libnum::num32 offset = libnum::num32(0.02); @@ -368,51 +451,51 @@ void Setup_Table_4(void) { MyPinball.sideimage = &img_abyss; MyPinball.borders.clear(); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.25))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.98), libnum::num32(0.40))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.98), libnum::num32(1.10))); + MyPinball.borders.emplace_back( libnum::num32(0.74), libnum::num32(0.25) ); + MyPinball.borders.emplace_back( libnum::num32(0.98), libnum::num32(0.40) ); + MyPinball.borders.emplace_back( libnum::num32(0.98), libnum::num32(1.10) ); -// MyPinball.borders.push_back( Vector2D(libnum::num32(0.96), libnum::num32(1.34))); + // MyPinball.borders.emplace_back( libnum::num32(0.96), + // libnum::num32(1.34))); - MyPinball.borders.push_back( Vector2D(libnum::num32(1.04), libnum::num32(1.10))); - MyPinball.borders.push_back( Vector2D(libnum::num32(1.04), libnum::num32(0.10))); - MyPinball.borders.push_back( Vector2D(libnum::num32(1.11), libnum::num32(0.10))); - MyPinball.borders.push_back( Vector2D(libnum::num32(1.11), libnum::num32(1.20))); + MyPinball.borders.emplace_back( libnum::num32(1.04), libnum::num32(1.10) ); + MyPinball.borders.emplace_back( libnum::num32(1.04), libnum::num32(0.10) ); + MyPinball.borders.emplace_back( libnum::num32(1.11), libnum::num32(0.10) ); + MyPinball.borders.emplace_back( libnum::num32(1.11), libnum::num32(1.20) ); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.90), libnum::num32(1.46))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.81), libnum::num32(1.56))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.70), libnum::num32(1.64))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.57), libnum::num32(1.68))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.43), libnum::num32(1.68))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.30), libnum::num32(1.64))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.19), libnum::num32(1.56))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.10), libnum::num32(1.46))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.04), libnum::num32(1.34))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.02), libnum::num32(1.20))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.02), libnum::num32(0.40))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.26), libnum::num32(0.25))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.26), libnum::num32(0.02))); - MyPinball.borders.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.02))); + MyPinball.borders.emplace_back( libnum::num32(0.90), libnum::num32(1.46) ); + MyPinball.borders.emplace_back( libnum::num32(0.81), libnum::num32(1.56) ); + MyPinball.borders.emplace_back( libnum::num32(0.70), libnum::num32(1.64) ); + MyPinball.borders.emplace_back( libnum::num32(0.57), libnum::num32(1.68) ); + MyPinball.borders.emplace_back( libnum::num32(0.43), libnum::num32(1.68) ); + MyPinball.borders.emplace_back( libnum::num32(0.30), libnum::num32(1.64) ); + MyPinball.borders.emplace_back( libnum::num32(0.19), libnum::num32(1.56) ); + MyPinball.borders.emplace_back( libnum::num32(0.10), libnum::num32(1.46) ); + MyPinball.borders.emplace_back( libnum::num32(0.04), libnum::num32(1.34) ); + MyPinball.borders.emplace_back( libnum::num32(0.02), libnum::num32(1.20) ); + MyPinball.borders.emplace_back( libnum::num32(0.02), libnum::num32(0.40) ); + MyPinball.borders.emplace_back( libnum::num32(0.26), libnum::num32(0.25) ); + MyPinball.borders.emplace_back( libnum::num32(0.26), libnum::num32(0.02) ); + MyPinball.borders.emplace_back( libnum::num32(0.74), libnum::num32(0.02) ); MyPinball.has_locker = true; MyPinball.locker.clear(); - MyPinball.locker.push_back( Vector2D(libnum::num32(0.90), libnum::num32(1.46))); - MyPinball.locker.push_back( Vector2D(libnum::num32(1.11), libnum::num32(1.20))); - MyPinball.locker.push_back( Vector2D(libnum::num32(1.11), libnum::num32(1.10))); - MyPinball.locker.push_back( Vector2D(libnum::num32(1.04), libnum::num32(1.10))); - MyPinball.locker.push_back( Vector2D(libnum::num32(0.98), libnum::num32(1.10))); - MyPinball.locker.push_back( Vector2D(libnum::num32(0.98), libnum::num32(1.20))); - MyPinball.locker.push_back( Vector2D(libnum::num32(0.96), libnum::num32(1.34))); + MyPinball.locker.emplace_back( libnum::num32(0.90), libnum::num32(1.46) ); + MyPinball.locker.emplace_back( libnum::num32(1.11), libnum::num32(1.20) ); + MyPinball.locker.emplace_back( libnum::num32(1.11), libnum::num32(1.10) ); + MyPinball.locker.emplace_back( libnum::num32(1.04), libnum::num32(1.10) ); + MyPinball.locker.emplace_back( libnum::num32(0.98), libnum::num32(1.10) ); + MyPinball.locker.emplace_back( libnum::num32(0.98), libnum::num32(1.20) ); + MyPinball.locker.emplace_back( libnum::num32(0.96), libnum::num32(1.34) ); MyPinball.locker_is_enabled = false; - MyPinball.Lock_radius = libnum::num( 0.03 ); + MyPinball.Lock_radius = libnum::num(0.03); MyPinball.Lock_pos = Vector2D(libnum::num32(0.50), libnum::num32(1.64)); MyPinball.Lock_color = RGB565_LEMONYELLOW; - -// MyPinball.Locker_enabler.push_back( Target( libnum::num32(0.06), Vector2D(libnum::num32(0.83), libnum::num32(1.39)), RGB565_APPLEGREEN, 0 ) ); - - + // MyPinball.Locker_enabler.push_back( Target( libnum::num32(0.06), + // Vector2D(libnum::num32(0.83), libnum::num32(1.39)), RGB565_APPLEGREEN, 0 ) + // ); MyPinball.balls.clear(); libnum::num32 ball_radius = libnum::num32(0.03); @@ -420,75 +503,73 @@ void Setup_Table_4(void) { Vector2D ball_pos1(libnum::num32(1.075), libnum::num32(0.15)); Vector2D ball_vel1(libnum::num32(0.0), libnum::num32(3.5)); - MyPinball.balls.push_back( Ball(ball_radius, ball_mass, ball_pos1, ball_vel1, 0.2, RGB565_LEMONYELLOW)); - + MyPinball.balls.push_back(Ball(ball_radius, ball_mass, ball_pos1, ball_vel1, + 0.2, RGB565_LEMONYELLOW)); + Vector2D ball_pos2(libnum::num32(1.075), libnum::num32(0.45)); Vector2D ball_vel2(libnum::num32(0.0), libnum::num32(3.5)); - MyPinball.balls.push_back( Ball(ball_radius, ball_mass, ball_pos2, ball_vel2, 0.2, RGB565_LEMONYELLOW )); - + MyPinball.balls.push_back(Ball(ball_radius, ball_mass, ball_pos2, ball_vel2, + 0.2, RGB565_LEMONYELLOW)); MyPinball.obstacles.clear(); - MyPinball.obstacles.reserve( 16 ); + MyPinball.obstacles.reserve(16); - MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.50), libnum::num32(1.45)), 1.5, RGB565_RED, 100)); - MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.74), libnum::num32(1.20)), 1.5, RGB565_RED, 100)); - MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.26), libnum::num32(1.20)), 1.5, RGB565_RED, 100)); - MyPinball.obstacles.push_back( Obstacle(0.06, Vector2D(libnum::num32(0.50), libnum::num32(0.95)), 1.5, RGB565_RED, 100)); - MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.15), libnum::num32(0.80)), 1.5, RGB565_LEMONYELLOW, 25)); - MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.85), libnum::num32(0.80)), 1.5, RGB565_LEMONYELLOW, 25)); - MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.30), libnum::num32(0.60)), 1.5, RGB565_GREEN, 10)); - MyPinball.obstacles.push_back( Obstacle(0.04, Vector2D(libnum::num32(0.70), libnum::num32(0.60)), 1.5, RGB565_GREEN, 10)); + MyPinball.obstacles.emplace_back( 0.06, Vector2D(libnum::num32(0.50), libnum::num32(1.45)), 1.5, RGB565_RED, 100 ); + MyPinball.obstacles.emplace_back( 0.06, Vector2D(libnum::num32(0.74), libnum::num32(1.20)), 1.5, RGB565_RED, 100 ); + MyPinball.obstacles.emplace_back( 0.06, Vector2D(libnum::num32(0.26), libnum::num32(1.20)), 1.5, RGB565_RED, 100 ); + MyPinball.obstacles.emplace_back( 0.06, Vector2D(libnum::num32(0.50), libnum::num32(0.95)), 1.5, RGB565_RED, 100 ); + MyPinball.obstacles.emplace_back( 0.04, Vector2D(libnum::num32(0.15), libnum::num32(0.80)), 1.5, RGB565_LEMONYELLOW, 25 ); + MyPinball.obstacles.emplace_back( 0.04, Vector2D(libnum::num32(0.85), libnum::num32(0.80)), 1.5, RGB565_LEMONYELLOW, 25 ); + MyPinball.obstacles.emplace_back( 0.04, Vector2D(libnum::num32(0.30), libnum::num32(0.60)), 1.5, RGB565_GREEN, 10 ); + MyPinball.obstacles.emplace_back( 0.04, Vector2D(libnum::num32(0.70), libnum::num32(0.60)), 1.5, RGB565_GREEN, 10 ); - - - for( int i=0; i island1; - island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.15)) ); - island1.push_back( Vector2D(libnum::num32(0.45), libnum::num32(1.20)) ); - island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.25)) ); - island1.push_back( Vector2D(libnum::num32(0.55), libnum::num32(1.20)) ); - //island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.10)) ); - //island1.push_back( Vector2D(libnum::num32(0.40), libnum::num32(1.20)) ); - //island1.push_back( Vector2D(libnum::num32(0.50), libnum::num32(1.30)) ); - //island1.push_back( Vector2D(libnum::num32(0.60), libnum::num32(1.20)) ); - MyPinball.islands.push_back( island1 ); + island1.emplace_back( libnum::num32(0.50), libnum::num32(1.15) ); + island1.emplace_back( libnum::num32(0.45), libnum::num32(1.20) ); + island1.emplace_back( libnum::num32(0.50), libnum::num32(1.25) ); + island1.emplace_back( libnum::num32(0.55), libnum::num32(1.20) ); + // island1.emplace_back( libnum::num32(0.50), libnum::num32(1.10) ); + // island1.emplace_back( libnum::num32(0.40), libnum::num32(1.20) ); + // island1.emplace_back( libnum::num32(0.50), libnum::num32(1.30) ); + // island1.emplace_back( libnum::num32(0.60), libnum::num32(1.20) ); + MyPinball.islands.push_back(island1); - std::vector island2; - island2.push_back( Vector2D(libnum::num32(0.50), libnum::num32(0.60)) ); - island2.push_back( Vector2D(libnum::num32(0.40), libnum::num32(0.80)) ); - island2.push_back( Vector2D(libnum::num32(0.50), libnum::num32(0.82)) ); - island2.push_back( Vector2D(libnum::num32(0.60), libnum::num32(0.80)) ); - MyPinball.islands.push_back( island2 ); + std::vector island2; + island2.emplace_back( libnum::num32(0.50), libnum::num32(0.60) ); + island2.emplace_back( libnum::num32(0.40), libnum::num32(0.80) ); + island2.emplace_back( libnum::num32(0.50), libnum::num32(0.82) ); + island2.emplace_back( libnum::num32(0.60), libnum::num32(0.80) ); + MyPinball.islands.push_back(island2); + std::vector island3; + island3.emplace_back( libnum::num32(0.12), libnum::num32(0.45) ); + island3.emplace_back( libnum::num32(0.12), libnum::num32(0.65) ); + island3.emplace_back( libnum::num32(0.26), libnum::num32(0.37) ); + MyPinball.islands.push_back(island3); - std::vector island3; - island3.push_back( Vector2D(libnum::num32(0.12), libnum::num32(0.45)) ); - island3.push_back( Vector2D(libnum::num32(0.12), libnum::num32(0.65)) ); - island3.push_back( Vector2D(libnum::num32(0.26), libnum::num32(0.37)) ); - MyPinball.islands.push_back( island3 ); + std::vector island4; + island4.emplace_back( libnum::num32(0.88), libnum::num32(0.65) ); + island4.emplace_back( libnum::num32(0.88), libnum::num32(0.45) ); + island4.emplace_back( libnum::num32(0.74), libnum::num32(0.37) ); + MyPinball.islands.push_back(island4); - std::vector island4; - island4.push_back( Vector2D(libnum::num32(0.88), libnum::num32(0.65)) ); - island4.push_back( Vector2D(libnum::num32(0.88), libnum::num32(0.45)) ); - island4.push_back( Vector2D(libnum::num32(0.74), libnum::num32(0.37)) ); - MyPinball.islands.push_back( island4 ); + MyPinball.flippers.clear(); + libnum::num32 flip_radius = libnum::num32(0.03); + libnum::num32 flip_length = libnum::num32(0.2); + libnum::num32 flip_maxRotation = libnum::num32(1.0); + libnum::num32 flip_restAngle = libnum::num32(0.5); + libnum::num32 flip_angularVelocity = libnum::num32(10.0); + libnum::num32 flip_restitution = libnum::num32(0.0); - - MyPinball.flippers.clear(); - libnum::num32 flip_radius = libnum::num32(0.03); - libnum::num32 flip_length = libnum::num32(0.2); - libnum::num32 flip_maxRotation = libnum::num32(1.0); - libnum::num32 flip_restAngle = libnum::num32(0.5); - libnum::num32 flip_angularVelocity = libnum::num32(10.0); - libnum::num32 flip_restitution = libnum::num32(0.0); - - Vector2D flip_pos1(libnum::num32(0.26), libnum::num32(0.22)); - MyPinball.flippers.push_back(Flipper(flip_radius, flip_pos1, flip_length, -flip_restAngle, flip_maxRotation, flip_angularVelocity, flip_restitution, LEFT, RGB565_OCEANBLUE)); + Vector2D flip_pos1(libnum::num32(0.26), libnum::num32(0.22)); + MyPinball.flippers.emplace_back( flip_radius, flip_pos1, flip_length, -flip_restAngle, flip_maxRotation, flip_angularVelocity, flip_restitution, LEFT, RGB565_OCEANBLUE ); Vector2D flip_pos2(libnum::num32(0.74), libnum::num32(0.22)); - MyPinball.flippers.push_back(Flipper( flip_radius, flip_pos2, flip_length, libnum::num32(PI) + flip_restAngle, -flip_maxRotation, flip_angularVelocity, flip_restitution, RIGHT, RGB565_OCEANBLUE)); + MyPinball.flippers.emplace_back( flip_radius, flip_pos2, flip_length, libnum::num32(PI) + flip_restAngle, -flip_maxRotation, flip_angularVelocity, flip_restitution, RIGHT, RGB565_OCEANBLUE ); } #endif \ No newline at end of file diff --git a/src/utilities.h b/src/utilities.h index 22f1e0e..94112bf 100644 --- a/src/utilities.h +++ b/src/utilities.h @@ -6,66 +6,64 @@ #include #include -void azrp_draw_text(int x, int y, char const *fmt, ...) -{ - char str[128]; - va_list args; - va_start(args, fmt); - vsnprintf(str, 128, fmt, args); - va_end(args); +void azrp_draw_text(int x, int y, char const *fmt, ...) { + char str[128]; + va_list args; + va_start(args, fmt); + vsnprintf(str, 128, fmt, args); + va_end(args); - extern bopti_image_t img_font; + extern bopti_image_t img_font; - for(int i = 0; str[i]; i++) { - if(str[i] < 32 || str[i] >= 0x7f) continue; + for (int i = 0; str[i]; i++) { + if (str[i] < 32 || str[i] >= 0x7f) + continue; - int row = (str[i] - 32) >> 4; - int col = (str[i] - 32) & 15; - azrp_subimage(x + 5 * i, y, &img_font, 7 * col + 1, 9 * row + 1, 6, 8, DIMAGE_NONE); - } + int row = (str[i] - 32) >> 4; + int col = (str[i] - 32) & 15; + azrp_subimage(x + 5 * i, y, &img_font, 7 * col + 1, 9 * row + 1, 6, 8, + DIMAGE_NONE); + } } -void azrp_draw_pinball(int x, int y, uint16_t color, char const *fmt, ...) -{ - char str[128]; - va_list args; - va_start(args, fmt); - vsnprintf(str, 128, fmt, args); - va_end(args); +void azrp_draw_pinball(int x, int y, uint16_t color, char const *fmt, ...) { + char str[128]; + va_list args; + va_start(args, fmt); + vsnprintf(str, 128, fmt, args); + va_end(args); - extern bopti_image_t img_font_pinball; + extern bopti_image_t img_font_pinball; - for(int i = 0; str[i]; i++) { - if(str[i] < 32 || str[i] >= 0x7f) continue; + for (int i = 0; str[i]; i++) { + if (str[i] < 32 || str[i] >= 0x7f) + continue; - int row = (str[i] - 32) >> 4; - int col = (str[i] - 32) & 15; - azrp_subimage_p8_dye(x + 11 * i, y, &img_font_pinball, 14 * col + 1, 20 * row + 2, 11, 14, IMAGE_DYE, color); - } + int row = (str[i] - 32) >> 4; + int col = (str[i] - 32) & 15; + azrp_subimage_p8_dye(x + 11 * i, y, &img_font_pinball, 14 * col + 1, + 20 * row + 2, 11, 14, IMAGE_DYE, color); + } } +libnum::num32 COS(libnum::num32 angle) { -libnum::num32 COS( libnum::num32 angle ) -{ + float a = (float)angle; + float c = cos(a); + return libnum::num32(c); - float a = (float) angle; - float c = cos( a ); - return libnum::num32(c); - - //return cos_num32( angle ); + // return cos_num32( angle ); } -libnum::num32 SIN( libnum::num32 angle ) -{ +libnum::num32 SIN(libnum::num32 angle) { - float a = (float) angle; - float s = sin( a ); - return libnum::num32(s); + float a = (float)angle; + float s = sin(a); + return libnum::num32(s); - //return sin_num32( angle ); + // return sin_num32( angle ); } - extern libnum::num32 flipperHeight; extern libnum::num32 cScale; extern libnum::num32 simWidth; @@ -79,44 +77,46 @@ uint16_t CY(Vector2D pos) { return (int)(libnum::num32(azrp_height) - pos.y * cScale); } -/* return the scaled disctance given in argument (typically for circles radii) */ -uint16_t CR(libnum::num distance ) { - return (int)(distance * cScale); -} +/* return the scaled disctance given in argument (typically for circles radii) + */ +uint16_t CR(libnum::num distance) { return (int)(distance * cScale); } -#define MIN(a,b) ( ((a)>=(b)) ? (b) : (a) ) -#define MAX(a,b) ( ((a)<=(b)) ? (b) : (a) ) -#define ABS(a) ( ((a)>=0) ? (a) : -(a) ) -#define SIGN(a) ( (a)<0 ? -1 : (a>0) ? +1 : 0 ) -#define PI 3.14159265 +/* Some usefull macros */ +#define MIN(a, b) (((a) >= (b)) ? (b) : (a)) +#define MAX(a, b) (((a) <= (b)) ? (b) : (a)) +#define ABS(a) (((a) >= 0) ? (a) : -(a)) +#define SIGN(a) ((a) < 0 ? -1 : (a > 0) ? +1 : 0) + + +/* Some constants */ +#define PI 3.14159265 /* usual colors*/ -#define RGB565_BLACK 0x0000 -#define RGB565_RED 0xF800 -#define RGB565_GREEN 0x07E0 -#define RGB565_BLUE 0x001F -#define RGB565_YELLOW 0xFFE0 -#define RGB565_PURPLE 0xF81F -#define RGB565_CYAN 0x07FF -#define RGB565_WHITE 0xFFFF - +#define RGB565_BLACK 0x0000 +#define RGB565_RED 0xF800 +#define RGB565_GREEN 0x07E0 +#define RGB565_BLUE 0x001F +#define RGB565_YELLOW 0xFFE0 +#define RGB565_PURPLE 0xF81F +#define RGB565_CYAN 0x07FF +#define RGB565_WHITE 0xFFFF /* advanced palette */ -#define RGB565_DARKORANGE 0xF280 -#define RGB565_ORANGE 0xF4A0 -#define RGB565_LIGHORANGE 0xF5C0 +#define RGB565_DARKORANGE 0xF280 +#define RGB565_ORANGE 0xF4A0 +#define RGB565_LIGHORANGE 0xF5C0 -#define RGB565_LEMONYELLOW 0xF7C6 -#define RGB565_APPLEGREEN 0xCF25 -#define RGB565_LEAFGREEN 0x6566 +#define RGB565_LEMONYELLOW 0xF7C6 +#define RGB565_APPLEGREEN 0xCF25 +#define RGB565_LEAFGREEN 0x6566 -#define RGB565_OCEANBLUE 0x0479 -#define RGB565_AZURBLUE 0x023E -#define RGB565_DEEPBLUE 0x3813 +#define RGB565_OCEANBLUE 0x0479 +#define RGB565_AZURBLUE 0x023E +#define RGB565_DEEPBLUE 0x3813 -#define RGB565_DEEPPURPLE 0x8015 -#define RGB565_CHERRYRED 0xA0C9 -#define RGB565_BLOODYRED 0xF122 +#define RGB565_DEEPPURPLE 0x8015 +#define RGB565_CHERRYRED 0xA0C9 +#define RGB565_BLOODYRED 0xF122 #endif \ No newline at end of file diff --git a/src/vector2D.h b/src/vector2D.h index 65eb1c8..52b77ea 100644 --- a/src/vector2D.h +++ b/src/vector2D.h @@ -253,6 +253,7 @@ public: libnum::num32 y; }; + Vector2D ClosestPointOnSegment(Vector2D P, Vector2D A, Vector2D B) { Vector2D AB = B - A;