summaryrefslogtreecommitdiff
path: root/src/racing/math_util.c
diff options
context:
space:
mode:
authorMegaMech <MegaMech@users.noreply.github.com>2025-05-14 18:30:32 -0600
committerGitHub <noreply@github.com>2025-05-14 18:30:32 -0600
commit32632cacdb316d7f2d3b6ecdb634f0ef9aebadf0 (patch)
treed374a84675fc0f49100c275aa34828bc9db538f8 /src/racing/math_util.c
parent70f049cb6c326dede27e0ba7e88ac0d67b7651a4 (diff)
Impl new intro (#193)
* Update menus * Update CMakeLists.txt * Add Ship * Impl hm ship actors * Update HM course * Impl new intro * Finish intro scene * Rename * Start Editor Work * raycast works * Fix ScreenRayTrace in widescreen * Basic Actor Picking * wip * Editor use vtx collision * gizmo work * otr works for object picking * Impl objects for editor * actor init * Update * Add all axis move (freemove) * Docking Windows works here * Setup imgui layout for editor * Editor Snap to Ground works * Basic Scene Explorer Works * Editor get actor names * Impl editor object names * impl Editor Play and Pause buttons * Editor translate works while paused * Fix freecam lighting * Added adjustable track properties to editor * Editor matrix, icons, rotation, impl light * Setup Track Properties 1 * Editor tooling wip * Load modded o2rs * Don't enable hud if editor is enabled * Updates * SceneManager nearly working * Fix mario kart 64 intro logo sizing * Fix Rotator * Finish new matrix translation code * Cleanup headers * Cleanup * Cleanup 2 * Cleanup 3 * Prevent divize by zero crash * Add visible circle for translate in all axis * Editor scaling/rot works properly now * Scale All_Axis evenly * Fixes to includes to work on Linux. * Removed overfilled arguments in gfx_create_framebuffer() * Added missing function definitions to Game.h * Editor sun face the camera * Add rotation model to gizmo * Add new handles * Failed attempt at transforming collision * Impl water volume * Import fast64 paths * water surface * Scene Setup 1 * Custom Track O2R almost working needs testing * Custom Track Load path O2r * Render custom track. Wip collision * Add missing function * Debug Spawning Custom O2R Track * Import courses working now * Fix memory leak * Remove New Track Button * Engine.cpp more consistent with sf64 * Fix Editor Enable Button * Editor Accurate mouse click drag objects * Editor selects closest object and cleanup * Gizmo rot and scale collision working * Remove constexpr from IRotator * Impl properties for location/rot/scale * Better Properties display, swap rot handles * Fix content browser dock and editor now disabled by default * Remove GameInfoWindow, Multiplayer Button, and FPS Slider * Disable Editor when its disabled * Add new logo to hm intro * Fix pause menu item box cursor * Remove minimap from Course::from_json and to_json * Impl Import Minimap * Fix custom minimap rendering * minimap uses extension .png * Refactor minimap * Freecam only for player 1 * GrandPrix Balloons work in custom track * Track Id is now std::string and outside of Props * Moved editor assets to be included in ship.o2r * Fixed GenerateO2R to package the correct folder and save to the correct filename * Linux specific changes. * Added "#include <stdio.h>" that required them * Changed how the "ship.o2r" file is loaded to allow it to load the file from within appimages. * Changed the Linuxdeploy version to avoid errors later when the Github Actions creates appimages(same fix applied to other ports.) * Revert "Moved editor assets to be included in ship.o2r" This reverts commit 05704c01f761baa67a83e357d9765f5c6b5e3fdb. * Added back files(this time without LUS changes) * Changed workflow file to use correct filename for assets file. * Missed a few spots in the workflow file. * Added .desktop file and made corrections to the main workflow. * Added the rest of upstream CMakeLists.txt * disabled USE_NETWORKING * New InverseMatrix * Renamed both .o2r files to be more accurate to its contents. * Reverted CmakeList.txt --------- Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com> Co-authored-by: sitton76 <58642183+sitton76@users.noreply.github.com>
Diffstat (limited to 'src/racing/math_util.c')
-rw-r--r--src/racing/math_util.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/racing/math_util.c b/src/racing/math_util.c
index 1e9241528..ac34ceda7 100644
--- a/src/racing/math_util.c
+++ b/src/racing/math_util.c
@@ -8,6 +8,7 @@
#include "math.h"
#include "memory.h"
#include "engine/Matrix.h"
+#include "port/Game.h"
#pragma intrinsic(sqrtf, fabs)
@@ -428,10 +429,10 @@ void func_802B5CAC(s16 arg0, s16 arg1, Vec3f arg2) {
}
void func_802B5D30(s16 arg0, s16 arg1, s32 arg2) {
- func_802B5D64((Lights1*) 0x9000000, arg0, arg1, arg2);
+ set_track_light_direction((Lights1*) 0x9000000, arg0, arg1, arg2);
}
-void func_802B5D64(Lights1* addr, s16 arg1, s16 arg2, s32 arg3) {
+void set_track_light_direction(Lights1* addr, s16 pitch, s16 yaw, s32 numLights) {
UNUSED s32 pad;
f32 sp48;
f32 sp44;
@@ -443,14 +444,14 @@ void func_802B5D64(Lights1* addr, s16 arg1, s16 arg2, s32 arg3) {
Lights1* var_s0;
var_s0 = (Lights1*) addr;
- sp48 = sins(arg2);
- sp44 = coss(arg2);
- sp40 = sins(arg1);
- temp_f10 = coss(arg1);
+ sp48 = sins(yaw);
+ sp44 = coss(yaw);
+ sp40 = sins(pitch);
+ temp_f10 = coss(pitch);
sp2C[0] = sp44 * sp40 * 120.0f;
sp2C[1] = 120.0f * sp48;
sp2C[2] = sp44 * temp_f10 * -120.0f;
- for (var_v0 = 0; var_v0 < arg3; var_v0++, var_s0++) {
+ for (var_v0 = 0; var_v0 < numLights; var_v0++, var_s0++) {
var_s0->l[0].l.dir[0] = sp2C[0];
var_s0->l[0].l.dir[1] = sp2C[1];
var_s0->l[0].l.dir[2] = sp2C[2];
@@ -1181,7 +1182,7 @@ f32 is_within_render_distance(Vec3f cameraPos, Vec3f objectPos, u16 orientationY
}
// No idea if arg1 is actually a Mat4 or not, but since this function is unused
-// its impossible to know with certainty either way, very close of func_802B5D64
+// its impossible to know with certainty either way, very close of set_track_light_direction
UNUSED void func_802B8414(uintptr_t addr, Mat4 arg1, s16 arg2, s16 arg3, s32 arg4) {
UNUSED s32 pad;
Vec3f sp40;