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 05704c01f7.

* 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>
This commit is contained in:
MegaMech
2025-05-14 18:30:32 -06:00
committed by GitHub
parent 70f049cb6c
commit 32632cacdb
374 changed files with 43640 additions and 11666 deletions
+15
View File
@@ -133,6 +133,7 @@ struct Actor {
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
// Duplicate declare for simplicity when externing actors & packed files.
@@ -157,6 +158,7 @@ struct TrainCar {
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
struct RailroadCrossing {
@@ -170,6 +172,7 @@ struct RailroadCrossing {
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
// crossingTrigger might ruin struct size when compiled on 32 bit
@@ -187,6 +190,7 @@ struct FallingRock {
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
struct ActorSpawnData {
@@ -231,6 +235,7 @@ struct YoshiValleyEgg {
// pathCenter[0] and pathCenter[2] are the X,Z coordinates of the center of the path
/* 0x24 */ Vec3f pathCenter;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
struct KiwanoFruit {
@@ -249,6 +254,7 @@ struct KiwanoFruit {
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
struct PaddleWheelBoat {
@@ -263,6 +269,7 @@ struct PaddleWheelBoat {
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
struct PiranhaPlant {
@@ -275,6 +282,7 @@ struct PiranhaPlant {
/* 0x24 */ Vec4s timers; // A per-camera timer. Might be more appropriate to call this state
/* 0x2C */ f32 unk_02C;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
struct PalmTree {
@@ -289,6 +297,7 @@ struct PalmTree {
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
typedef struct {
@@ -305,6 +314,7 @@ typedef struct {
/* 0x18 */ Vec3f unk_18;
/* 0x24 */ Vec3f shellIndices; // Indices in gActorList for the shells "owned" by this parent
/* 0x30 */ Collision unk30;
const char* model;
} TripleShellParent; // size = 0x70
struct ShellActor {
@@ -332,6 +342,7 @@ struct ShellActor {
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity; // All 0 until the shell is fired
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
struct ItemBox {
@@ -350,6 +361,7 @@ struct ItemBox {
/* 0x28 */ f32 unk_028;
/* 0x2C */ f32 unk_02C;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
struct FakeItemBox {
@@ -366,6 +378,7 @@ struct FakeItemBox {
/* 0x28 */ f32 targetY;
/* 0x2C */ f32 unk_02C;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
struct BananaBunchParent {
@@ -381,6 +394,7 @@ struct BananaBunchParent {
/* 0x1E */ s16 unk_1E;
/* 0x20 */ f32 unk_20[4];
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
struct BananaActor {
@@ -403,6 +417,7 @@ struct BananaActor {
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ Collision unk30;
const char* model;
}; // size = 0x70
// #pragma GCC diagnostic pop
+10 -1
View File
@@ -183,6 +183,7 @@ enum { COURSE_ONE, COURSE_TWO, COURSE_THREE, COURSE_FOUR };
#define CHARACTER_SELECT_MENU 12
#define COURSE_SELECT_MENU 13
#define RACING_DUPLICATE 14
#define HARBOUR_MASTERS_MENU 15
/**
* @brief Options for gGameState gGotoMode and gGotoMenu
@@ -383,4 +384,12 @@ enum DIRECTION {
#define FACING_X_AXIS 0x8000
#define FACING_Z_AXIS 0x2000
#endif // DEFINES_H
#endif // DEFINES_H
/**
*
* Laps
*
*/
#define MIN_LAPS 0
#define MAX_LAPS 3
+1
View File
@@ -103,6 +103,7 @@ enum SURFACE_TYPE {
/* 0x0F */ CAVE, // DK Jungle cave
/* 0x10 */ ROPE_BRIDGE, // Bowser's Castle bridge 2, DK Jungle bridge
/* 0x11 */ WOOD_BRIDGE, // Frappe Snowland bridge, Bowser's Castle bridge 1,3, Yoshi Valley bridge 2
/* 0xFB */ WATER_SURFACE = 0xFB, // Water effect and Lakitu picks up the player
/* 0xFC */ BOOST_RAMP_WOOD = 0xFC, // DK Jungle
/* 0xFD */ OUT_OF_BOUNDS, // DK Jungle river island oob / out of bounds
/* 0xFE */ BOOST_RAMP_ASPHALT, // Royal Raceway