summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoco875 <pereira.jannin@gmail.com>2025-01-07 22:34:14 +0100
committercoco875 <pereira.jannin@gmail.com>2025-01-07 22:34:14 +0100
commitddfd5f05d438412110e752b9fc924569c8ed913e (patch)
treeb1cc9cca608b40db856ea920209871ba9ce94513
parentc88a56b615609be8e8415cf3d1a923c76c1ebe03 (diff)
fix compilation issue
-rw-r--r--src/code_80005FD0.h17
-rw-r--r--src/enhancements/freecam/freecam.cpp79
-rw-r--r--src/enhancements/freecam/freecam_engine.c3
3 files changed, 46 insertions, 53 deletions
diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h
index 8fcf443b9..f675556a8 100644
--- a/src/code_80005FD0.h
+++ b/src/code_80005FD0.h
@@ -154,7 +154,8 @@ void func_80011EC0(s32, Player*, s32, u16);
void generate_train_waypoints(void);
void generate_ferry_waypoints(void);
-void spawn_vehicle_on_road(Vec3f position, Vec3s rotation, Vec3f velocity, s32 waypointIndex, s32 someMultiplierTheSequel, f32 speed);
+void spawn_vehicle_on_road(Vec3f position, Vec3s rotation, Vec3f velocity, s32 waypointIndex,
+ s32 someMultiplierTheSequel, f32 speed);
void spawn_course_vehicles(void);
void set_vehicle_pos_waypoint(TrainCarStuff*, Path2D*, u16);
void init_vehicles_trains(size_t, size_t, f32);
@@ -271,7 +272,6 @@ extern s16 D_80162FF8[];
extern s16 D_80163010[];
extern f32 D_80163028[];
extern s16 D_80163050[];
-extern f32 D_80163068[];
extern f32 D_80163090[];
extern s32 D_801630B8[];
extern u16 D_801630E0;
@@ -285,9 +285,6 @@ extern f32 D_80163178[];
extern f32 D_801631A0[];
extern s16 D_801631C8;
extern s32 D_801631CC;
-extern TrackWaypoint* D_801631D0;
-extern TrackWaypoint* D_801631D4;
-extern s16* D_801631D8;
extern u16 D_801631E0[];
extern u16 D_801631F8[];
extern f32 D_8016320C;
@@ -305,7 +302,6 @@ extern u16 gKartAIBehaviourState[];
enum { KART_AI_BEHAVIOUR_STATE_NONE, KART_AI_BEHAVIOUR_STATE_START, KART_AI_BEHAVIOUR_STATE_RUNNING };
extern s16 D_80163300[];
-extern u16 D_80163318[];
extern u16 D_80163330[];
extern u16 D_80163344[];
extern u16 D_80163348[];
@@ -319,7 +315,6 @@ enum {
SPEED_KART_AI_BEHAVIOUR_MAX
};
-extern s32 D_80163368[];
extern s32 D_80163378;
extern s32 D_8016337C;
extern s16 D_80163380[];
@@ -332,8 +327,6 @@ extern s16 D_80163410[];
extern f32 D_80163418[];
extern f32 D_80163428[];
extern f32 D_80163438[];
-extern s32 D_80163448;
-extern f32 D_8016344C;
extern f32 D_80163450[];
extern s16 D_80163478;
// 0 or 1, only 1 when when in extra (mirror) mode
@@ -344,8 +337,6 @@ extern s32 D_80163480;
extern s32 D_80163484;
extern s32 D_80163488;
extern s16 D_8016348C;
-extern s16 D_80163490[];
-extern s16 D_801634A8[];
extern s16 D_801634C0[];
extern s16 bStopAICrossing[];
extern s16 D_801634EC;
@@ -368,15 +359,11 @@ extern s32 gLapCountByPlayerId[]; // D_80164390
extern s32 gGPCurrentRaceRankByPlayerId[]; // D_801643B8
extern s32 D_801643E0[];
extern s32 D_80164408[];
-extern u16 D_80164430;
-extern u16 gNearestWaypointByPlayerId[];
-extern s32 D_80164450[];
extern s16 D_80164478[];
extern s32 D_8016448C;
extern f32 D_80164498[];
extern f32 gLapCompletionPercentByPlayerId[]; // D_801644A8
extern f32 gCourseCompletionPercentByPlayerId[]; // D_801644D0
-extern s16 D_801644F8[];
extern f32 D_80164510[];
extern s16 D_80164538[];
extern s32 D_801645D0[];
diff --git a/src/enhancements/freecam/freecam.cpp b/src/enhancements/freecam/freecam.cpp
index 0602f9d27..5e0930419 100644
--- a/src/enhancements/freecam/freecam.cpp
+++ b/src/enhancements/freecam/freecam.cpp
@@ -90,7 +90,7 @@ void freecam(Camera* camera, Player* player, s8 index) {
// Calculate forward direction
freecam_calculate_forward_vector_allow_rotation(camera, freeCam.forwardVector);
-
+
// Adjust camera rotation
if (fTargetPlayer) {
freecam_target_player(camera, freeCam.forwardVector);
@@ -103,7 +103,6 @@ void freecam(Camera* camera, Player* player, s8 index) {
// Apply final position, velocity, and lookAt
freecam_tick(camera, freeCam.forwardVector);
-
}
f32 gFreecamRotateSmoothingFactor = 0.85f;
@@ -113,9 +112,9 @@ void freecam_mouse_manager(Camera* camera, Vec3f forwardVector) {
auto wnd = GameEngine::Instance->context->GetWindow();
Ship::Coords mouse = wnd->GetMouseDelta();
- //Uint32 mouseState = SDL_GetRelativeMouseState(&mouse.x, &mouse.y);
+ // Uint32 mouseState = SDL_GetRelativeMouseState(&mouse.x, &mouse.y);
- //printf("MOUSE %d %d\n", mouse.x, mouse.y);
+ // printf("MOUSE %d %d\n", mouse.x, mouse.y);
mouse.x = (mouse.x + prevMouseX) / 2;
mouse.y = (mouse.y + prevMouseY) / 2;
@@ -167,11 +166,14 @@ bool FreecamKeyDown(int virtualKey) {
// Use SDL to check key states
const uint8_t* keystate = SDL_GetKeyboardState(NULL);
isDownNow = keystate[virtualKey] != 0;
- } else if (wnd->GetWindowBackend() == Ship::WindowBackend::FAST3D_DXGI_DX11) {
+ }
+#ifdef _WIN32
+ else if (wnd->GetWindowBackend() == Ship::WindowBackend::FAST3D_DXGI_DX11) {
// Use Windows GetKeyState for DirectX
SHORT keyState = GetKeyState(virtualKey);
isDownNow = (keyState & 0x8000) != 0;
}
+#endif
// Determine if this is a new key press
bool isKeyDownEvent = isDownNow && !prevKeyState[virtualKey];
@@ -182,7 +184,6 @@ bool FreecamKeyDown(int virtualKey) {
return isKeyDownEvent;
}
-
void freecam_keyboard_manager(Camera* camera, Vec3f forwardVector) {
auto wnd = GameEngine::Instance->context->GetWindow();
float moveSpeed = gFreecamSpeed;
@@ -199,7 +200,8 @@ void freecam_keyboard_manager(Camera* camera, Vec3f forwardVector) {
// if (keystate[SDL_SCANCODE_G]) {
// fTargetPlayer = false;
// }
- bool TargetNextPlayer = false, TargetPreviousPlayer = false; bool prevNext;
+ bool TargetNextPlayer = false, TargetPreviousPlayer = false;
+ bool prevNext;
bool Forward = false, PanLeft = false, Backward = false, PanRight = false;
bool Up = false, Down = false;
bool FastMove = false;
@@ -213,7 +215,7 @@ void freecam_keyboard_manager(Camera* camera, Vec3f forwardVector) {
// }
// Target a player
if (controller->buttonPressed & R_TRIG) {
- fTargetPlayer = !fTargetPlayer;
+ fTargetPlayer = !fTargetPlayer;
}
if (controller->buttonPressed & L_CBUTTONS) {
TargetPreviousPlayer = true;
@@ -242,10 +244,12 @@ void freecam_keyboard_manager(Camera* camera, Vec3f forwardVector) {
// if (controller->button ??) {
// FastMove = true;
// }
- // Keyboard and mouse DX
- } else if (wnd->GetWindowBackend() == Ship::WindowBackend::FAST3D_DXGI_DX11) {
+ // Keyboard and mouse DX
+ }
+#ifdef _WIN32
+ else if (wnd->GetWindowBackend() == Ship::WindowBackend::FAST3D_DXGI_DX11) {
if (FreecamKeyDown('F')) {
- fTargetPlayer = !fTargetPlayer;
+ fTargetPlayer = !fTargetPlayer;
}
if (FreecamKeyDown('N')) {
TargetPreviousPlayer = true;
@@ -273,10 +277,12 @@ void freecam_keyboard_manager(Camera* camera, Vec3f forwardVector) {
}
// Fast movement with Ctrl
if (GetKeyState(VK_LCONTROL) || GetKeyState(VK_RCONTROL)) {
- FastMove = true;
+ FastMove = true;
}
- // Keyboard/mouse OpenGL/SDL
- } else if (wnd->GetWindowBackend() == Ship::WindowBackend::FAST3D_SDL_OPENGL) {
+ // Keyboard/mouse OpenGL/SDL
+ }
+#endif
+ else if (wnd->GetWindowBackend() == Ship::WindowBackend::FAST3D_SDL_OPENGL) {
const uint8_t* keystate = SDL_GetKeyboardState(NULL);
if (FreecamKeyDown(SDL_SCANCODE_F)) {
fTargetPlayer = !fTargetPlayer;
@@ -306,26 +312,26 @@ void freecam_keyboard_manager(Camera* camera, Vec3f forwardVector) {
Down = true;
}
if (keystate[SDL_SCANCODE_LCTRL] || keystate[SDL_SCANCODE_RCTRL]) {
- FastMove = true;
+ FastMove = true;
}
}
// Target previous player
if (TargetPreviousPlayer) {
- if (fRankIndex > 0) {
- fRankIndex--;
- camera->playerId = fRankIndex;
- D_800DC5EC->player = &gPlayers[fRankIndex];
- }
+ if (fRankIndex > 0) {
+ fRankIndex--;
+ camera->playerId = fRankIndex;
+ D_800DC5EC->player = &gPlayers[fRankIndex];
+ }
}
// Target next player
if (TargetNextPlayer) {
- if (fRankIndex < 7) {
- fRankIndex++;
- camera->playerId = fRankIndex;
- D_800DC5EC->player = &gPlayers[fRankIndex];
- }
+ if (fRankIndex < 7) {
+ fRankIndex++;
+ camera->playerId = fRankIndex;
+ D_800DC5EC->player = &gPlayers[fRankIndex];
+ }
}
if (FastMove) {
@@ -333,26 +339,26 @@ void freecam_keyboard_manager(Camera* camera, Vec3f forwardVector) {
}
if (Forward) {
- totalMove[0] += forwardVector[0] * moveSpeed;
- totalMove[2] += forwardVector[2] * moveSpeed;
+ totalMove[0] += forwardVector[0] * moveSpeed;
+ totalMove[2] += forwardVector[2] * moveSpeed;
}
if (Backward) {
- totalMove[0] -= forwardVector[0] * moveSpeed;
- totalMove[2] -= forwardVector[2] * moveSpeed;
+ totalMove[0] -= forwardVector[0] * moveSpeed;
+ totalMove[2] -= forwardVector[2] * moveSpeed;
}
if (PanRight) {
- totalMove[0] -= forwardVector[2] * moveSpeed; // Pan right
- totalMove[2] += forwardVector[0] * moveSpeed;
+ totalMove[0] -= forwardVector[2] * moveSpeed; // Pan right
+ totalMove[2] += forwardVector[0] * moveSpeed;
}
if (PanLeft) {
- totalMove[0] += forwardVector[2] * moveSpeed; // Pan left
- totalMove[2] -= forwardVector[0] * moveSpeed;
+ totalMove[0] += forwardVector[2] * moveSpeed; // Pan left
+ totalMove[2] -= forwardVector[0] * moveSpeed;
}
if (Up) {
- totalMove[1] += moveSpeed; // Move up
+ totalMove[1] += moveSpeed; // Move up
}
if (Down) {
- totalMove[1] -= moveSpeed; // Move down
+ totalMove[1] -= moveSpeed; // Move down
}
freeCam.velocity[0] += totalMove[0];
freeCam.velocity[1] += totalMove[1];
@@ -368,7 +374,8 @@ void freecam_render_setup(void) {
func_80057FC4(0);
gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH);
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK | G_CULL_BOTH | G_CULL_FRONT);
- guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, gCameraZoom[0], gScreenAspect, CourseManager_GetProps()->NearPersp, CourseManager_GetProps()->FarPersp, 1.0f);
+ guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, gCameraZoom[0], gScreenAspect,
+ CourseManager_GetProps()->NearPersp, CourseManager_GetProps()->FarPersp, 1.0f);
gSPPerspNormalize(gDisplayListHead++, perspNorm);
gSPMatrix(gDisplayListHead++, (&gGfxPool->mtxPersp[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
guLookAt(&gGfxPool->mtxLookAt[0], camera1->pos[0], camera1->pos[1], camera1->pos[2], camera1->lookAt[0],
diff --git a/src/enhancements/freecam/freecam_engine.c b/src/enhancements/freecam/freecam_engine.c
index 1116de60f..398d0f566 100644
--- a/src/enhancements/freecam/freecam_engine.c
+++ b/src/enhancements/freecam/freecam_engine.c
@@ -78,8 +78,7 @@ void freecam_target_player(Camera* camera, Vec3f forwardVector) {
forwardVector[2] = camera->lookAt[2] - camera->pos[2];
// Normalize the forward vector
- f32 forwardLength = sqrtf(forwardVector[0] * forwardVector[0] +
- forwardVector[1] * forwardVector[1] +
+ f32 forwardLength = sqrtf(forwardVector[0] * forwardVector[0] + forwardVector[1] * forwardVector[1] +
forwardVector[2] * forwardVector[2]);
if (forwardLength > 0.0f) {
forwardVector[0] /= forwardLength;