refactoring of project folder and some little bugfixes

This commit is contained in:
Sylvain PILLOT 2023-09-10 21:54:06 +02:00
parent fcc7a81d2d
commit 58e0ff3c2e
14 changed files with 183 additions and 28 deletions

View File

@ -14,11 +14,11 @@ find_package(LibProf 2.4 REQUIRED)
set(SOURCES
src/main.cpp
src/circle.cpp
src/poly.cpp
src/filledcircle.cpp
src/filledpoly.cpp
src/line.cpp
src/Shaders/circle.cpp
src/Shaders/poly.cpp
src/Shaders/filledcircle.cpp
src/Shaders/filledpoly.cpp
src/Shaders/line.cpp
# ...
)
# Shared assets, fx-9860G-only assets and fx-CG-50-only assets

View File

@ -4,8 +4,8 @@
#include "gint/defs/types.h"
#include "gint/display-cg.h"
#include "stdint-gcc.h"
#include "utilities.h"
#include "vector2D.h"
#include "../Utilities/utilities.h"
#include "../Utilities/vector2D.h"
#include <num/num.h>
#include <vector>

View File

@ -1,7 +1,7 @@
#ifndef SIMULATIONS_H
#define SIMULATIONS_H
#include "vector2D.h"
#include "../Utilities/vector2D.h"
#include <num/num.h>
#include "pinball_entities.h"

View File

@ -2,8 +2,9 @@
#define TABLES_H
#include "pinball_entities.h"
#include "utilities.h"
#include "vector2D.h"
#include "../Utilities/utilities.h"
#include "../Utilities/vector2D.h"
#include "stdint-gcc.h"
#include <num/num.h>
#include <vector>
@ -16,8 +17,12 @@ libnum::num32 simWidth;
libnum::num32 simHeight;
extern bopti_image_t img_abyss;
extern uint8_t CurrentSequence;
void Setup_Table_0(void) {
CurrentSequence = 0;
libnum::num32 offset = libnum::num32(0.02);
flipperHeight = libnum::num32(1.7);
@ -105,6 +110,7 @@ void Setup_Table_0(void) {
}
void Setup_Table_1(void) {
CurrentSequence = 1;
libnum::num32 offset = libnum::num32(0.02);
flipperHeight = libnum::num32(1.7);
@ -202,6 +208,7 @@ void Setup_Table_1(void) {
}
void Setup_Table_2(void) {
CurrentSequence = 2;
libnum::num32 offset = libnum::num32(0.02);
flipperHeight = libnum::num32(1.7);
@ -313,6 +320,7 @@ void Setup_Table_2(void) {
}
void Setup_Table_3(void) {
CurrentSequence = 3;
libnum::num32 offset = libnum::num32(0.02);
flipperHeight = libnum::num32(1.7);
@ -436,6 +444,7 @@ void Setup_Table_3(void) {
}
void Setup_Table_4(void) {
CurrentSequence = 4;
libnum::num32 offset = libnum::num32(0.02);
flipperHeight = libnum::num32(1.7);
@ -503,10 +512,12 @@ void Setup_Table_4(void) {
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.obstacles.clear();
MyPinball.obstacles.reserve(16);
@ -565,4 +576,147 @@ void Setup_Table_4(void) {
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_5(void) {
CurrentSequence = 5;
libnum::num32 offset = libnum::num32(0.02);
flipperHeight = libnum::num32(1.7);
cScale = libnum::num32(azrp_height) / flipperHeight;
simWidth = libnum::num32(azrp_width) / cScale;
simHeight = libnum::num32(azrp_height) / cScale;
MyPinball.has_locker = true;
MyPinball.score = 0;
MyPinball.gravity.Set(Vector2D(libnum::num32(0.0), libnum::num32(-1.0)));
MyPinball.sideimage = nullptr;
MyPinball.borders.clear();
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.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.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.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_pos = Vector2D(libnum::num32(0.50), libnum::num32(1.64));
MyPinball.Lock_color = RGB565_LEMONYELLOW;
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(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));
/*
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.obstacles.clear();
MyPinball.obstacles.reserve(16);
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 < MyPinball.islands.size(); i++)
MyPinball.islands[i].clear();
MyPinball.islands.clear();
std::vector<Vector2D> 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) );
MyPinball.islands.push_back(island1);
std::vector<Vector2D> 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<Vector2D> 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<Vector2D> 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);
MyPinball.flippers.clear();
libnum::num32 flip_radius = libnum::num32(0.03);
libnum::num32 flip_length = libnum::num32(0.2);
libnum::num32 flip_length_short = libnum::num32(0.12);
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 );
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 );
/*
Vector2D flip_pos3(libnum::num32(0.02), libnum::num32(1));
MyPinball.flippers.emplace_back( flip_radius, flip_pos3, flip_length_short, -flip_restAngle, flip_maxRotation, flip_angularVelocity, flip_restitution, LEFT, RGB565_OCEANBLUE );
Vector2D flip_pos4(libnum::num32(0.98), libnum::num32(1));
MyPinball.flippers.emplace_back( flip_radius, flip_pos4, flip_length_short, libnum::num32(PI) + flip_restAngle, -flip_maxRotation, flip_angularVelocity, flip_restitution, RIGHT, RGB565_OCEANBLUE );
*/
}
#endif

View File

@ -5,7 +5,7 @@
#include <azur/azur.h>
#include <azur/gint/render.h>
#include "AzurShaders.h"
#include "./Shaders/AzurShaders.h"
#include <gint/drivers/r61524.h>
#include <gint/rtc.h>
@ -29,17 +29,17 @@
#include <num/num.h>
#include "extrakeyboard.h"
#include "pinball_entities.h"
#include "simulations.h"
#include "./Utilities/extrakeyboard.h"
#include "./Pinball/pinball_entities.h"
#include "./Pinball/simulations.h"
#include "stdint-gcc.h"
#include "tables.h"
#include "utilities.h"
#include "vector2D.h"
#include "./Pinball/tables.h"
#include "./Utilities/utilities.h"
#include "./Utilities/vector2D.h"
#include <vector>
#include "tables.h"
#include "./Pinball/tables.h"
#include <math.h>
#if (DEBUG_MODE)
@ -80,8 +80,8 @@ void SetupScene(int which_table) {
Setup_Table_3();
else if (which_table == 4)
Setup_Table_4();
else
Setup_Table_0();
else if (which_table == 5)
Setup_Table_5();
cumulatedTime = 0.0f;
}
@ -227,7 +227,7 @@ static void get_inputs(float dt) {
}
/* LEFT FLIPPER */
if (MyKeyboard.IsKeyPressed(MYKEY_F1)) {
if (MyKeyboard.IsKeyPressed(MYKEY_F1) || MyKeyboard.IsKeyPressed(MYKEY_LEFT) ) {
for (int i = 0; i < MyPinball.flippers.size(); i++)
if (MyPinball.flippers[i].side == LEFT)
MyPinball.flippers[i].touchIdentifier = libnum::num32(0);
@ -238,7 +238,7 @@ static void get_inputs(float dt) {
}
/* RIGHT FLIPPER */
if (MyKeyboard.IsKeyPressed(MYKEY_F6)) {
if (MyKeyboard.IsKeyPressed(MYKEY_F6) || MyKeyboard.IsKeyPressed(MYKEY_RIGHT) ) {
for (int i = 0; i < MyPinball.flippers.size(); i++)
if (MyPinball.flippers[i].side == RIGHT)
MyPinball.flippers[i].touchIdentifier = libnum::num32(0);
@ -252,28 +252,29 @@ static void get_inputs(float dt) {
if (MyKeyboard.IsKeyPressed(MYKEY_OPTN) &&
MyKeyboard.IsKeyHoldPressed(MYKEY_F1)) {
SetupScene(0);
CurrentSequence = 0;
}
if (MyKeyboard.IsKeyPressed(MYKEY_OPTN) &&
MyKeyboard.IsKeyHoldPressed(MYKEY_F2)) {
SetupScene(1);
CurrentSequence = 1;
}
if (MyKeyboard.IsKeyPressed(MYKEY_OPTN) &&
MyKeyboard.IsKeyHoldPressed(MYKEY_F3)) {
SetupScene(2);
CurrentSequence = 2;
}
if (MyKeyboard.IsKeyPressed(MYKEY_OPTN) &&
MyKeyboard.IsKeyHoldPressed(MYKEY_F4)) {
SetupScene(3);
CurrentSequence = 3;
}
if (MyKeyboard.IsKeyPressed(MYKEY_OPTN) &&
MyKeyboard.IsKeyHoldPressed(MYKEY_F5)) {
SetupScene(4);
CurrentSequence = 4;
}
if (MyKeyboard.IsKeyPressed(MYKEY_OPTN) &&
MyKeyboard.IsKeyHoldPressed(MYKEY_F6)) {
SetupScene(5);
}
if (MyKeyboard.IsKeyHoldPressed(MYKEY_EXE)) {
SetupScene(CurrentSequence);
@ -322,7 +323,7 @@ int main(void) {
// 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);
SetupScene(5);
prof_init();