mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-06-05 11:19:27 -04:00
44db9bab77
* initial work
* more work
* progress
* Fixed slow fps
* Add Lywx changes
* Interp Works
* Test default tick/logic update
* Added missing include (#202)
* Added missing include
* More missing includes
---------
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
* test
* Revert "test"
This reverts commit 1a810d74cc.
* Interp Item box
* Actually interpolate item box
* fix clouds
* interp player?
* Test 2
* Fix mistake
* tag and fix item boxes
* tag fake item box and whatever func_800696CC is
* these aren't needed
* tag karts
* Slightly better falling rocks(still needs work)
* Tag Smoke and Dust
* Removed unneeded code from falling_rock
* tag whatever func_80051ABC is
* add missing rotate x coord
* GrandPrixBallon/kart shadow
* Green shells tag, and added comments I neglected to add before.
* doesn't compile on win
* Fixes
* Disabled camera interpolation
* Balloons fixes
* progress
* set_transform_matrix compiles
* Compile setTransformMatrix
* More transforms interp
* Add more interps
* matrix
* Matrix multi interp
* Fix interpolation camera bug
* Missing includes needed for Linux.
* Excluded access to HM64 Labs on Switch.
* interpolation tags for various objects
* Bowser castle statue flame interpolated.
* tag hedgehogs
* cloud interpolation
* Interpolated smoke particles from shells
* cloud interpolation refactor
* Interpolated snowflakes
* Interpolated penguins, also added comment tags to places I missed.
* tag Snowman interpolation
* Interpolated player reflection(sherbet land)
* Forgot to uncomment stuff while testing
* better tag
* tag leaves
* Set the default FPS to 30
* tag hud
* Fixed "Match Refresh Rate" option
* adjust draw distance
* remove innecessary rock tag
* rag rocks
* better tag
* Tagged player rank placement in HUD
* Tagged Bat, Boos, and TrashBin(Banshee Boardwalk objects)
* Refactor render_screens and fix editor raycast
* better object interpolation
* shift is not needed here
* fix tag
* fix tags
* mole comments
* comment
* Changed how shell flames are interpolated.
* interpolated ended scene fireworks.
* Tagged star particles in the ending scene
* Shell flames handled better.
* this isn't needed
* Fix multiplayer cameras
* Fixed loading battle maps.
* Tagged battle balloons
* Some fixes for battle mode
* No longer needed changes toAFinishline with the changes mega made.
* Tag finishline
* fix to make it compile with cmake 3.31
* changed mtxf_multiplication() to fix vert explosion in Desert & DK parkway.(provided by Coco.)
* fix memory leaks, avoid invalidate texture (#207)
* Fixed macos
* More stupid fixes
* update with main and update torch and lus and enable action on this branch
* Update FrameInterpolation.h
* Update FrameInterpolation.cpp
* fix some memory leak
* Update torch
* Update torch
* update torch and lus
* reduce texture import
* don't use fork of torch and lus
* Update torch
* Update torch
---------
Co-authored-by: Lywx <kiritodev01@gmail.com>
* Refactor World::Courses to unique_ptr (#211)
* wip course unique ptr
* Track unique_ptr : This probably compiles
* Finish impl Courses as unique_ptr
* Fix error
* Fixes
* More fixes
* Cleanup
* Remove old vars
---------
Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
* particle boat and train
* fix player particle interpolation
* add modify interpolation target fps in menu
* fix windows
* Update libultraship
* Fix logo interp
* Interp SetTextMatrix
* Fix freecam camera
* Clarify comment
* Clarify func
* fix linux compilation
* Update Thwomp.cpp
* Update Thwomp.h
* Update render.inc.c
* Update render.inc.c
* Update gbiMacro.c
* interp falling rock shadow
* Revert change that has no explanation
* Update code_80057C60.c
* Update code_80057C60.c
* Update GrandPrixBalloons.cpp
* Update Lakitu.cpp
* Update framebuffer_effects.c
* Update render_courses.c
---------
Co-authored-by: Sonic Dreamcaster <alejandro.asenjo88@gmail.com>
Co-authored-by: KiritoDv <kiritodev01@gmail.com>
Co-authored-by: sitton76 <58642183+sitton76@users.noreply.github.com>
Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
Co-authored-by: coco875 <59367621+coco875@users.noreply.github.com>
Co-authored-by: coco875 <pereira.jannin@gmail.com>
82 lines
2.5 KiB
C
82 lines
2.5 KiB
C
/**************************************************************************
|
|
* *
|
|
* Copyright (C) 1994, Silicon Graphics, Inc. *
|
|
* *
|
|
* These coded instructions, statements, and computer programs contain *
|
|
* unpublished proprietary information of Silicon Graphics, Inc., and *
|
|
* are protected by Federal copyright law. They may not be disclosed *
|
|
* to third parties or copied or duplicated in any form, in whole or *
|
|
* in part, without the prior written consent of Silicon Graphics, Inc. *
|
|
* *
|
|
**************************************************************************/
|
|
|
|
#include "libultra_internal.h"
|
|
#include "port/interpolation/FrameInterpolation.h"
|
|
|
|
void guLookAtF(float mf[4][4], float xEye, float yEye, float zEye, float xAt, float yAt, float zAt, float xUp,
|
|
float yUp, float zUp) {
|
|
float len, xLook, yLook, zLook, xRight, yRight, zRight;
|
|
|
|
guMtxIdentF(mf);
|
|
|
|
xLook = xAt - xEye;
|
|
yLook = yAt - yEye;
|
|
zLook = zAt - zEye;
|
|
|
|
/* Negate because positive Z is behind us: */
|
|
len = -1.0 / sqrtf(xLook * xLook + yLook * yLook + zLook * zLook);
|
|
xLook *= len;
|
|
yLook *= len;
|
|
zLook *= len;
|
|
|
|
/* Right = Up x Look */
|
|
|
|
xRight = yUp * zLook - zUp * yLook;
|
|
yRight = zUp * xLook - xUp * zLook;
|
|
zRight = xUp * yLook - yUp * xLook;
|
|
len = 1.0 / sqrtf(xRight * xRight + yRight * yRight + zRight * zRight);
|
|
xRight *= len;
|
|
yRight *= len;
|
|
zRight *= len;
|
|
|
|
/* Up = Look x Right */
|
|
|
|
xUp = yLook * zRight - zLook * yRight;
|
|
yUp = zLook * xRight - xLook * zRight;
|
|
zUp = xLook * yRight - yLook * xRight;
|
|
len = 1.0 / sqrtf(xUp * xUp + yUp * yUp + zUp * zUp);
|
|
xUp *= len;
|
|
yUp *= len;
|
|
zUp *= len;
|
|
|
|
mf[0][0] = xRight;
|
|
mf[1][0] = yRight;
|
|
mf[2][0] = zRight;
|
|
mf[3][0] = -(xEye * xRight + yEye * yRight + zEye * zRight);
|
|
|
|
mf[0][1] = xUp;
|
|
mf[1][1] = yUp;
|
|
mf[2][1] = zUp;
|
|
mf[3][1] = -(xEye * xUp + yEye * yUp + zEye * zUp);
|
|
|
|
mf[0][2] = xLook;
|
|
mf[1][2] = yLook;
|
|
mf[2][2] = zLook;
|
|
mf[3][2] = -(xEye * xLook + yEye * yLook + zEye * zLook);
|
|
|
|
mf[0][3] = 0;
|
|
mf[1][3] = 0;
|
|
mf[2][3] = 0;
|
|
mf[3][3] = 1;
|
|
}
|
|
|
|
void guLookAt(Mtx* m, float xEye, float yEye, float zEye, float xAt, float yAt, float zAt, float xUp, float yUp,
|
|
float zUp) {
|
|
float mf[4][4];
|
|
|
|
guLookAtF(mf, xEye, yEye, zEye, xAt, yAt, zAt, xUp, yUp, zUp);
|
|
|
|
FrameInterpolation_RecordMatrixMtxFToMtx((MtxF*)mf, m);
|
|
guMtxF2L(mf, m);
|
|
}
|