some docs. still baffling

This commit is contained in:
petrie911
2022-10-24 14:33:10 -05:00
parent 925752ea5d
commit ee4e186def
4 changed files with 624 additions and 595 deletions
+4
View File
@@ -129,6 +129,7 @@ extern GraphicsContext* __gfxCtx;
#define ALIGN256(val) (((val) + 0xFF) & ~0xFF)
#define SQ(x) ((x) * (x))
#define CUBE(x) ((x) * (x) * (x))
#define ABS(x) ((x) >= 0 ? (x) : -(x))
#define ABS_ALT(x) ((x) < 0 ? -(x) : (x))
#define DECR(x) ((x) == 0 ? 0 : --(x))
@@ -137,6 +138,9 @@ extern GraphicsContext* __gfxCtx;
#define CLAMP_MAX(x, max) ((x) > (max) ? (max) : (x))
#define CLAMP_MIN(x, min) ((x) < (min) ? (min) : (x))
#define RAND_BITS(n) ((s32)Rand_Next() >> (0x20 - n))
#define RANDU_BITS(n) (Rand_Next() >> (0x20 - n))
#define ROUND(x) (s32)(((x) >= 0.0) ? ((x) + 0.5) : ((x) - 0.5))
#define SWAP(type, a, b) \
File diff suppressed because it is too large Load Diff
+48 -43
View File
@@ -7,27 +7,33 @@ struct ObjMine;
typedef void (*ObjMineActionFunc)(struct ObjMine*, PlayState*);
#define OBJMINE_GET_PARAM_003F(thisx) ((thisx)->params & 0x3F)
#define OBJMINE_GET_PARAM_00FF(thisx) ((thisx)->params & 0xFF)
#define OBJMINE_GET_PARAM_0700(thisx) ((thisx)->params >> 8 & 7)
#define OBJMINE_GET_PARAM_3000(thisx) ((thisx)->params >> 0xC & 3)
#define OBJMINE_GET_LINK_COUNT(thisx) ((thisx)->params & 0x3F)
#define OBJMINE_GET_PATH(thisx) ((thisx)->params & 0xFF)
#define OBJMINE_GET_PATH_SPEED(thisx) (((thisx)->params >> 8) & 7)
#define OBJMINE_GET_TYPE(thisx) (((thisx)->params >> 12) & 3)
#define OBJMINE_SET_PARAM0(pathIndex, pathSpeed, type) ((pathIndex) | ((pathSpeed) << 8))
#define OBJMINE_SET_PARAM12(linkCount, type) ((linkCount) | ((type) << 0xC))
typedef enum {
/* 0 */ OBJMINE_TYPE_PATH,
/* 1 */ OBJMINE_TYPE_AIR,
/* 2 */ OBJMINE_TYPE_WATER
} ObjMineType;
typedef struct {
Vec3f x;
Vec3f y;
Vec3f z;
// Vec3f w;
} ObjMineMtxF3;
/* 0x00 */ Vec3f x;
/* 0x0C */ Vec3f y;
/* 0x18 */ Vec3f z;
} ObjMineMtxF3; // size = 0x24
typedef struct {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
} ObjMineUnkStruct3;
} ObjMineAirLink; // size = 0x4
typedef struct {
/* 0x00 */ ObjMineMtxF3 unk_00;
// /* 0x0C */ Vec3f unk_0C;
// /* 0x18 */ Vec3f unk_18;
/* 0x00 */ ObjMineMtxF3 basis;
/* 0x24 */ Vec3f unk_24;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
@@ -41,49 +47,48 @@ typedef struct {
/* 0x54 */ s16 unk_54;
/* 0x58 */ f32 unk_58;
/* 0x5C */ f32 unk_5C;
/* 0x60 */ ObjMineUnkStruct3* unk_60;
} ObjMineUnkStruct; // size = ?? 0x44??? 48 array???
/* 0x60 */ ObjMineAirLink links[0x3F];
} ObjMineAirChain; // size = 0x15C
// probably fake
typedef struct {
/* 0x00 */ ObjMineMtxF3 unk_00;
// /* 0x0c */ Vec3f unk_0C;
// /* 0x18 */ Vec3f unk_18;
/* 0x00 */ ObjMineMtxF3 basis;
/* 0x24 */ Vec3f unk_24;
/* 0x30 */ Vec3f unk_30;
/* 0x3C */ Vec3f unk_3C;
} ObjMineUnkStruct2; // size = 0x48???
} ObjMineWaterLink; // size = 0x48
typedef struct {
f32 unk_00;
Vec3f unk_04;
f32 unk_10;
f32 unk_14;
f32 unk_18;
f32 unk_1C;
s16 unk_20;
f32 unk_24;
f32 unk_28;
f32 unk_2C;
f32 unk_30;
f32 unk_34;
f32 unk_38;
f32 unk_3C;
s8 unk_40;
ObjMineUnkStruct2 unk_44[0x3F];
} ObjMineTestStruct2;
/* 0x0000 */ f32 unk_00;
/* 0x0004 */ Vec3f unk_04;
/* 0x0010 */ f32 unk_10;
/* 0x0014 */ f32 unk_14;
/* 0x0018 */ f32 unk_18;
/* 0x001C */ f32 unk_1C;
/* 0x0020 */ s16 unk_20;
/* 0x0024 */ f32 unk_24;
/* 0x0028 */ f32 unk_28;
/* 0x002C */ f32 unk_2C;
/* 0x0030 */ f32 unk_30;
/* 0x0034 */ f32 unk_34;
/* 0x0038 */ f32 unk_38;
/* 0x003C */ f32 unk_3C;
/* 0x0040 */ s8 unk_40;
/* 0x0044 */ ObjMineWaterLink links[0x3F];
} ObjMineWaterChain; // size = 0x11FC
typedef struct ObjMine {
/* 0x0000 */ Actor actor;
/* 0x0144 */ ColliderJntSph collider;
/* 0x0164 */ ColliderJntSphElement colliderElements[1];
/* 0x01A4 */ ObjMineActionFunc actionFunc;
/* 0x01A8 */ f32 unk_1A8;
/* 0x01AC */ s32 unk_1AC;
/* 0x01B0 */ s32 unk_1B0;
/* 0x01B4 */ Vec3s* unk_1B4;
// ObjMineTestStruct2 chain2;
union { ObjMineTestStruct2 chain2; ObjMineUnkStruct chain1;};
/* 0x01A8 */ f32 pathSpeed;
/* 0x01AC */ s32 waypointCount;
/* 0x01B0 */ s32 waypointIndex;
/* 0x01B4 */ Vec3s* waypoints;
/* 0x01B8 */ union {
ObjMineAirChain air;
ObjMineWaterChain water;
} chain;
} ObjMine; // size = 0x13B4
#endif // Z_OBJ_MINE_H
+42 -42
View File
@@ -11150,53 +11150,53 @@
0x80A80508:("func_80A80508",),
0x80A80750:("func_80A80750",),
0x80A80904:("func_80A80904",),
0x80A811D0:("func_80A811D0",),
0x80A8120C:("func_80A8120C",),
0x80A81288:("func_80A81288",),
0x80A8131C:("func_80A8131C",),
0x80A81384:("func_80A81384",),
0x80A8140C:("func_80A8140C",),
0x80A8146C:("func_80A8146C",),
0x80A81544:("func_80A81544",),
0x80A81640:("func_80A81640",),
0x80A8164C:("func_80A8164C",),
0x80A81684:("func_80A81684",),
0x80A81714:("func_80A81714",),
0x80A81818:("func_80A81818",),
0x80A81868:("func_80A81868",),
0x80A819A4:("func_80A819A4",),
0x80A81A00:("func_80A81A00",),
0x80A81AA4:("func_80A81AA4",),
0x80A81B14:("func_80A81B14",),
0x80A81B7C:("func_80A81B7C",),
0x80A81D70:("func_80A81D70",),
0x80A81DEC:("func_80A81DEC",),
0x80A811D0:("ObjMine_Path_MoveToWaypoint",),
0x80A8120C:("ObjMine_GetUnitVec3f",),
0x80A81288:("ObjMine_GetUnitVec3fNorm",),
0x80A8131C:("ObjMine_Path_SpawnBomb",),
0x80A81384:("ObjMine_AirWater_SpawnBomb",),
0x80A8140C:("ObjMine_AirWater_CheckOC",),
0x80A8146C:("ObjMine_Air_CheckAC",),
0x80A81544:("ObjMine_Water_CheckAC",),
0x80A81640:("ObjMine_AirWater_Noop",),
0x80A8164C:("ObjMine_ReplaceTranslation",),
0x80A81684:("ObjMine_ReplaceRotation",),
0x80A81714:("ObjMine_StepUntilParallel",),
0x80A81818:("ObjMine_UpdateCollider",),
0x80A81868:("ObjMine_Air_InitChain",),
0x80A819A4:("ObjMine_Air_SetCollider",),
0x80A81A00:("ObjMine_Air_SetBasis",),
0x80A81AA4:("ObjMine_Air_SetWorld",),
0x80A81B14:("ObjMine_Air_SetChain3034",),
0x80A81B7C:("ObjMine_Water_InitChain",),
0x80A81D70:("ObjMine_Water_SetCollider",),
0x80A81DEC:("ObjMine_Water_SetWorld",),
0x80A81E7C:("func_80A81E7C",),
0x80A81FFC:("func_80A81FFC",),
0x80A828A8:("func_80A828A8",),
0x80A82C28:("func_80A82C28",),
0x80A82C28:("ObjMine_Water_UpdateChain",),
0x80A82C5C:("ObjMine_Init",),
0x80A82F58:("ObjMine_Destroy",),
0x80A82F84:("func_80A82F84",),
0x80A82F98:("func_80A82F98",),
0x80A82FA8:("func_80A82FA8",),
0x80A82FC8:("func_80A82FC8",),
0x80A83214:("func_80A83214",),
0x80A83258:("func_80A83258",),
0x80A832BC:("func_80A832BC",),
0x80A832D0:("func_80A832D0",),
0x80A83A74:("func_80A83A74",),
0x80A83A88:("func_80A83A88",),
0x80A83B14:("func_80A83B14",),
0x80A83B28:("func_80A83B28",),
0x80A83CEC:("func_80A83CEC",),
0x80A83D00:("func_80A83D00",),
0x80A83D8C:("ObjMine_Update",),
0x80A83E7C:("func_80A83E7C",),
0x80A83EA0:("ObjMine_Draw",),
0x80A83FBC:("func_80A83FBC",),
0x80A84088:("func_80A84088",),
0x80A84338:("func_80A84338",),
0x80A82F84:("ObjMine_Path_SetupStationary",),
0x80A82F98:("ObjMine_Path_Stationary",),
0x80A82FA8:("ObjMine_Path_SetupMove",),
0x80A82FC8:("ObjMine_Path_Move",),
0x80A83214:("ObjMine_SetupExplode",),
0x80A83258:("ObjMine_Explode",),
0x80A832BC:("ObjMine_Air_SetupChained",),
0x80A832D0:("ObjMine_Air_Chained",),
0x80A83A74:("ObjMine_Air_SetupStationary",),
0x80A83A88:("ObjMine_Air_Stationary",),
0x80A83B14:("ObjMine_Water_SetupChained",),
0x80A83B28:("ObjMine_Water_Chained",),
0x80A83CEC:("ObjMine_Water_SetupStationary",),
0x80A83D00:("ObjMine_Water_Stationary",),
0x80A83D8C:("ObjMine_Path_Update",),
0x80A83E7C:("ObjMine_AirWater_Update",),
0x80A83EA0:("ObjMine_Path_Draw",),
0x80A83FBC:("ObjMine_DrawExplosion",),
0x80A84088:("ObjMine_Air_Draw",),
0x80A84338:("ObjMine_Water_Draw",),
0x80A84CD0:("ObjPurify_SetSysMatrix",),
0x80A84CF8:("ObjPurify_IsPurified",),
0x80A84D68:("ObjPurify_Init",),