Matched some funcs (#378)

* Matched code
This commit is contained in:
MegaMech
2023-08-22 19:12:51 -06:00
committed by GitHub
parent 6e56638950
commit 6e3f6aee63
83 changed files with 3575 additions and 8593 deletions
+16 -16
View File
@@ -23,7 +23,7 @@ Specialized structs are customizable so long as the following member specificati
In general:
0x00 -> s16 type
0x02 -> s16 flags
0x30 -> UnkActorInner unk30
0x30 -> Collision unk30
If player can collide with the actor:
0x0C -> f32 boundingBoxSize
@@ -102,7 +102,7 @@ struct Actor {
/* 0x16 */ s16 unk_16;
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
extern struct Actor gActorList[ACTOR_LIST_SIZE]; // D_8015F9B8
@@ -125,7 +125,7 @@ struct TrainCar {
/* 0x10 */ s16 unk_16;
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
struct RailroadCrossing {
@@ -139,7 +139,7 @@ struct RailroadCrossing {
/* 0x16 */ s16 unk_16;
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
struct FallingRock {
@@ -153,7 +153,7 @@ struct FallingRock {
/* 0x16 */ s16 unk_16;
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
struct ActorSpawnData {
@@ -197,7 +197,7 @@ struct YoshiValleyEgg {
// Note, pathCenter[1] should be understood to be the Y velocity of the egg
// pathCenter[0] and pathCenter[2] are the X,Z coordinates of the center of the path
/* 0x24 */ Vec3f pathCenter;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
struct KiwanoFruit {
@@ -213,7 +213,7 @@ struct KiwanoFruit {
/* 0x16 */ s16 unk_16;
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
struct PaddleWheelBoat {
@@ -227,7 +227,7 @@ struct PaddleWheelBoat {
/* 0x16 */ s16 unk_16;
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
struct PiranhaPlant {
@@ -239,7 +239,7 @@ struct PiranhaPlant {
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec4s timers; // A per-camera timer. Might be more appropriate to call this state
/* 0x2C */ f32 unk_02C;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
// Copied from PiranhaPlant, may not be accurate.
@@ -253,7 +253,7 @@ struct PalmTree {
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec4s timers; // A per-camera timer. Might be more appropriate to call this state
/* 0x2C */ f32 unk_02C;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
typedef struct {
@@ -269,7 +269,7 @@ typedef struct {
/* 0x16 */ s16 unk_16;
/* 0x18 */ Vec3f unk_18;
/* 0x24 */ Vec3f shellIndices; // Indices in gActorList for the shells "owned" by this parent
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
} TripleShellParent; // size = 0x70
struct ShellActor {
@@ -295,7 +295,7 @@ struct ShellActor {
/* 0x16 */ s16 unk_16;
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity; // All 0 until the shell is fired
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
struct ItemBox {
@@ -313,7 +313,7 @@ struct ItemBox {
/* 0x24 */ f32 origY; // Original Y position. Basically the Y position the box will reset to after being touched
/* 0x28 */ f32 unk_028;
/* 0x2C */ f32 unk_02C;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
struct FakeItemBox {
@@ -329,7 +329,7 @@ struct FakeItemBox {
/* 0x24 */ f32 playerId;
/* 0x28 */ f32 targetY;
/* 0x2C */ f32 unk_02C;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
struct BananaBunchParent {
@@ -344,7 +344,7 @@ struct BananaBunchParent {
/* 0x1C */ s16 bananasAvailable;
/* 0x1E */ s16 unk_1E;
/* 0x20 */ f32 unk_20[4];
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
struct BananaActor {
@@ -366,7 +366,7 @@ struct BananaActor {
/* 0x16 */ s16 unk_16;
/* 0x18 */ Vec3f pos;
/* 0x24 */ Vec3f velocity;
/* 0x30 */ UnkActorInner unk30;
/* 0x30 */ Collision unk30;
}; // size = 0x70
//#pragma GCC diagnostic pop
+1 -1
View File
@@ -55,7 +55,7 @@ typedef struct {
extern s32 D_80183DD8[NUM_BOMB_KARTS_MAX];
extern struct_D_80163DE8_entry D_80163DE8[NUM_BOMB_KARTS_MAX];
extern UnkActorInner D_80164038[NUM_BOMB_KARTS_MAX];
extern Collision D_80164038[NUM_BOMB_KARTS_MAX];
// data/data_0DD0A0_1.s
extern BombKartSpawn D_800DCC08[NUM_COURSES][NUM_BOMB_KARTS_MAX];
+12 -6
View File
@@ -120,7 +120,7 @@ typedef struct {
/* 0x24 */ Vec3f unk54;
/* 0x30 */ Vec3f unk60;
/* 0x3C */ f32 unk6C;
} UnkActorInner;
} Collision;
typedef struct {
/* 0x00 */ Vec3f unk_000;
@@ -181,9 +181,15 @@ typedef struct {
//bit 4: 1 = out of bounds
//bit 3: 1 = player tumbles upon contact (may fall right through)
/* 0x02 */ u16 surfaceType;
/* 0x04 */ s16 vtx3[3]; //X, Y, Z of poly's third vertex
/* 0x0A */ s16 vtx2[3]; //X, Y, Z of poly's second vertex
/* 0x10 */ Vtx *vtxs[3]; //pointer to the 3 vertices of this poly
/* 0x04 */ s16 vtx31;
s16 vtx32;
s16 vtx33; //X, Y, Z of poly's third vertex
s16 vtx21;
s16 vtx22;
/* 0x0A */ s16 vtx23; //X, Y, Z of poly's second vertex
/* 0x10 */ Vtx *vtxPoly1; //pointer to the 3 vertices of this poly
Vtx *vtxPoly2;
Vtx *vtxPoly3;
//unsure why this exists along with a copy of two of the vertices.
//both are involved in hit detection.
/* 0x1C */ f32 height;
@@ -208,7 +214,7 @@ typedef struct {
// Close to being a copy of the top byte of the surface_map "flag" member
/* 0x0D */ u8 surfaceFlags;
// Don't know if "tile" is right the right term
// D_8015F580 is a pointer to an array of "tile" structs. This is an index to that array
// gSurfaceMap is a pointer to an array of "tile" structs. This is an index to that array
/* 0x0E */ u16 surfaceMapIndex;
// cornerPos places the corner "in the air" as it were, this member indicates the Y position of the corner's "on the ground" sibling
// On flat ground this value should be cornerY - gKartBoundingBoxTable[characterId]
@@ -317,7 +323,7 @@ typedef struct {
/* 0x0108 */ f32 unk_108;
/* 0x010C */ s16 unk_10C;
/* 0x010E */ char unk_10E[0x2];
/* 0x0110 */ UnkActorInner unk_110;
/* 0x0110 */ Collision unk_110;
/* 0x0150 */ Mat3 unk_150;
/* 0x0174 */ Mat3 unk_174;
/* 0x0198 */ KartBoundingBoxCorner boundingBoxCorners[4];
+5 -4
View File
@@ -9,10 +9,11 @@
* @file Include for course gfx.inc.c.
*/
// This could be *func(arg) instead.
struct CourseAddrUnkStruct {
typedef struct {
Gfx *addr;
s32 value;
};
u8 surfaceType;
u8 sectionId;
u16 flags;
} TrackSections;
#endif // COURSE_H
+1 -1
View File
@@ -6,7 +6,7 @@
#include <types.h>
#include "config.h"
#define GFX_GET_OPCODE(var) ((s32)((var) & 0xFF000000))
// Pointer casting is technically UB, and avoiding it gets rid of endian issues
// as well as a nice side effect.
+1 -1
View File
@@ -102,7 +102,7 @@ extern s32 D_8018D1D8;
// Limit on some object type (ice chips?) in Sherbet Land
extern s32 D_8018D3C0;
extern UnkActorInner D_8018C0B0[];
extern Collision D_8018C0B0[];
/**
* D_80183EA0, D_80183F28, D_8018BFA8, and D_8018C030 are all lists of indices in D_80165C18.
+2 -2
View File
@@ -94,8 +94,8 @@ extern struct_D_802874D8 D_802874D8;
//extern struct GfxPool *gGfxPool; // D_8014EF40
extern mk64_surface_map_ram *D_8015F580; // This is techinally a pointer to an array, but declaring it as such create regalloc issues elsewhere
extern u16 D_8015F588; // Number of entires in D_8015F580
extern mk64_surface_map_ram *gSurfaceMap; // This is techinally a pointer to an array, but declaring it as such create regalloc issues elsewhere
extern u16 D_8015F588; // Number of entires in gSurfaceMap
extern Vec3f D_80165070[];