En_Racedog OK (#690)

* func_80B24630 OK

* func_80B248B8 OK

* func_80B246F4 OK

* func_80B25448 OK

* func_80B256BC OK

* EnRacedog_Draw OK

* LimbDraw functions OK

* func_80B2583C OK

* func_80B258D8 OK

* EnRacedog_Update OK

* func_80B255AC OK

* func_80B2538C OK

* func_80B252F8 OK

* Data imported to C

* Update struct to have everything Init needs

* func_80B24E14 OK

* EnRacedog_Destroy OK

* func_80B24C14 OK

* EnRacedog_Init OK

* func_80B2478C OK

* func_80B24CB4 OK

* func_80B251EC OK

* func_80B24F08 OK

* func_80B25490 OK

* Use generated reloc

* Object symbols and other misc cleanup

* More cleanup

* Move data to be in-function like how Dg does it

* Rename to ENRACEDOG_GET_3E0 until this actor is actually documented

* Last itty bitty cleanup

* Better header

* Forgot to name the LimbDraw functions, whoops

* Respond to reviews

* Match how Dg does weekEventReg stuff

* Respond to review
This commit is contained in:
Tom Overton
2022-03-05 11:34:26 -03:00
committed by GitHub
parent f87cabbc55
commit f9dac7d483
6 changed files with 619 additions and 81 deletions
+1 -2
View File
@@ -3954,8 +3954,7 @@ beginseg
name "ovl_En_Racedog"
compress
include "build/src/overlays/actors/ovl_En_Racedog/z_en_racedog.o"
include "build/data/ovl_En_Racedog/ovl_En_Racedog.data.o"
include "build/data/ovl_En_Racedog/ovl_En_Racedog.reloc.o"
include "build/src/overlays/actors/ovl_En_Racedog/ovl_En_Racedog_reloc.o"
endseg
beginseg
File diff suppressed because it is too large Load Diff
@@ -3,21 +3,40 @@
#include "global.h"
#define ENRACEDOG_GET_3E0(thisx) (((thisx)->params & 0x3E0) >> 5)
#define ENRACEDOG_GET_PATH(thisx) (((thisx)->params & 0xFC00) >> 10)
struct EnRacedog;
typedef void (*EnRacedogActionFunc)(struct EnRacedog*, GlobalContext*);
typedef struct EnRacedog {
/* 0x0000 */ Actor actor;
/* 0x0144 */ EnRacedogActionFunc actionFunc;
/* 0x0148 */ char unk_148[0xA0];
/* 0x01E8 */ s32 unk_1E8;
/* 0x01EC */ char unk_1EC[0xA4];
/* 0x0290 */ s16 unk_290;
/* 0x0292 */ s16 unk_292;
/* 0x0294 */ char unk_294[0x8];
/* 0x029C */ s16 unk_29C;
/* 0x029E */ char unk_29E[0x2A];
/* 0x000 */ Actor actor;
/* 0x144 */ EnRacedogActionFunc actionFunc;
/* 0x148 */ UNK_TYPE1 unk_148[0x4];
/* 0x14C */ SkelAnime skelAnime;
/* 0x190 */ ColliderCylinder collider;
/* 0x1DC */ UNK_TYPE1 unk_1DC[0x4];
/* 0x1E0 */ Path* unk_1E0;
/* 0x1E4 */ UNK_TYPE1 unk_1E4[0x4];
/* 0x1E8 */ s32 unk_1E8;
/* 0x1EC */ Vec3s jointTable[13];
/* 0x23A */ Vec3s morphTable[13];
/* 0x288 */ s16 unk_288;
/* 0x28A */ s16 unk_28A;
/* 0x28C */ s16 unk_28C;
/* 0x28A */ UNK_TYPE1 unk_28E[0x2];
/* 0x290 */ s16 unk_290;
/* 0x292 */ s16 unk_292;
/* 0x294 */ UNK_TYPE1 unk_294[0x4];
/* 0x298 */ f32 unk_298;
/* 0x29C */ s16 unk_29C;
/* 0x2A0 */ Vec3f unk_2A0;
/* 0x2AC */ Vec3f unk_2AC;
/* 0x2B8 */ s32 unk_2B8;
/* 0x2BC */ s32 unk_2BC;
/* 0x2C0 */ s32 unk_2C0;
/* 0x2C4 */ f32 unk_2C4;
} EnRacedog; // size = 0x2C8
extern const ActorInit En_Racedog_InitVars;
+2 -2
View File
@@ -13297,8 +13297,8 @@
0x80B25708:("EnRacedog_Update",),
0x80B2583C:("func_80B2583C",),
0x80B258D8:("func_80B258D8",),
0x80B25A74:("func_80B25A74",),
0x80B25A90:("func_80B25A90",),
0x80B25A74:("EnRacedog_OverrideLimbDraw",),
0x80B25A90:("EnRacedog_PostLimbDraw",),
0x80B25B14:("EnRacedog_Draw",),
0x80B262A0:("EnKendoJs_Init",),
0x80B264FC:("EnKendoJs_Destroy",),
+12 -19
View File
@@ -14055,25 +14055,18 @@
0x80B245CC:("D_80B245CC","UNK_TYPE4","",0x4),
0x80B245D0:("D_80B245D0","f32","",0x4),
0x80B25D20:("En_Racedog_InitVars","UNK_TYPE1","",0x1),
0x80B25D40:("D_80B25D40","UNK_TYPE2","",0x2),
0x80B25D44:("D_80B25D44","UNK_TYPE2","",0x2),
0x80B25D48:("D_80B25D48","UNK_TYPE2","",0x2),
0x80B25D4C:("D_80B25D4C","UNK_TYPE2","",0x2),
0x80B25D50:("D_80B25D50","f32","",0x4),
0x80B25D54:("D_80B25D54","f32","",0x4),
0x80B25D88:("D_80B25D88","UNK_TYPE1","",0x1),
0x80B25D90:("D_80B25D90","UNK_TYPE1","",0x1),
0x80B25D94:("D_80B25D94","UNK_TYPE1","",0x1),
0x80B25D96:("D_80B25D96","UNK_TYPE1","",0x1),
0x80B25E68:("D_80B25E68","UNK_TYPE4","",0x4),
0x80B25E72:("D_80B25E72","UNK_TYPE2","",0x2),
0x80B25E78:("D_80B25E78","UNK_TYPE1","",0x1),
0x80B25E98:("D_80B25E98","UNK_TYPE1","",0x1),
0x80B25EC4:("D_80B25EC4","UNK_TYPE1","",0x1),
0x80B25ED0:("D_80B25ED0","UNK_TYPE1","",0x1),
0x80B25EF0:("D_80B25EF0","UNK_PTR","",0x4),
0x80B25EF4:("D_80B25EF4","UNK_TYPE1","",0x1),
0x80B25F14:("D_80B25F14","UNK_TYPE1","",0x1),
0x80B25D40:("D_80B25D40","s16","",0x2),
0x80B25D44:("D_80B25D44","s16","",0x2),
0x80B25D48:("D_80B25D48","s16","",0x2),
0x80B25D4C:("D_80B25D4C","s16","",0x2),
0x80B25D50:("D_80B25D50","f32","",0x38),
0x80B25D88:("D_80B25D88","UNK_TYPE1","",0xE0),
0x80B25E68:("D_80B25E68","UNK_TYPE1","",0x10),
0x80B25E78:("D_80B25E78","f32","",0x20),
0x80B25E98:("D_80B25E98","UNK_TYPE1","",0x2C),
0x80B25EC4:("D_80B25EC4","UNK_TYPE1","",0xC),
0x80B25ED0:("D_80B25ED0","UNK_TYPE1","",0x20),
0x80B25EF0:("D_80B25EF0","UNK_TYPE1","",0x100),
0x80B25FF0:("D_80B25FF0","UNK_TYPE1","",0x1),
0x80B25FF4:("D_80B25FF4","UNK_TYPE4","",0x4),
0x80B26000:("D_80B26000","UNK_TYPE4","",0x4),
-6
View File
@@ -1700,12 +1700,6 @@ D_06004340 = 0x06004340;
D_06001A80 = 0x06001A80;
// ovl_En_Racedog
D_06000550 = 0x06000550;
D_06000618 = 0x06000618;
D_060080F0 = 0x060080F0;
// ovl_En_Raf
D_06000108 = 0x06000108;