fox_aq decomped, some type cleanup (#112)

* stuff

* stuff

* temps

* matched

* so complete

* merge and clean

* format

* graphics macros

* aq

* more stuff

* oh god the clam

* limbdraw

* headers?

* format, name changes

* enums

* merge and format
This commit is contained in:
petrie911 2024-02-01 21:05:17 -06:00 committed by GitHub
parent 22f5d22fa0
commit 85da422168
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
26 changed files with 6473 additions and 1540 deletions

View File

@ -49,7 +49,9 @@
"prevent_bss_reordering.h": "c", "prevent_bss_reordering.h": "c",
"fox_map.h": "c", "fox_map.h": "c",
"sf64level.h": "c", "sf64level.h": "c",
"prevent_bss_reordering2.h": "c" "prevent_bss_reordering2.h": "c",
"ast_aq.h": "c",
"ast_8e1f80.h": "c"
}, },
"C_Cpp_Runner.msvcBatchPath": "" "C_Cpp_Runner.msvcBatchPath": ""
} }

View File

@ -187,10 +187,10 @@ extern Gfx D_3014BF0[];
extern Gfx D_3015120[]; extern Gfx D_3015120[];
extern Gfx D_30155E0[]; extern Gfx D_30155E0[];
extern Gfx D_3015740[]; extern Gfx D_3015740[];
extern AnimationHeader D_3015AF4; extern Animation D_3015AF4;
extern AnimationHeader D_3015C28; extern Animation D_3015C28;
extern Gfx D_3015D80[]; extern Gfx D_3015D80[];
extern AnimationHeader D_30163C4; extern Animation D_30163C4;
extern Limb* D_3016610[]; extern Limb* D_3016610[];
extern Gfx D_3016660[]; extern Gfx D_3016660[];
extern Gfx D_30160A0[]; extern Gfx D_30160A0[];
@ -206,13 +206,13 @@ extern Gfx D_3018800[];
extern Gfx D_30194E0[]; extern Gfx D_30194E0[];
extern Gfx D_301B080[]; extern Gfx D_301B080[];
extern Gfx D_301B6E0[]; extern Gfx D_301B6E0[];
extern AnimationHeader D_301C3A8; extern Animation D_301C3A8;
extern Limb* D_301C614[]; extern Limb* D_301C614[];
extern AnimationHeader D_301CFEC; extern Animation D_301CFEC;
extern Limb* D_301D258[]; extern Limb* D_301D258[];
extern AnimationHeader D_301D888; extern Animation D_301D888;
extern Limb* D_301DB94[]; extern Limb* D_301DB94[];
extern AnimationHeader D_301E19C; extern Animation D_301E19C;
extern Limb* D_301E3E8[]; extern Limb* D_301E3E8[];
extern Gfx D_301E570[]; extern Gfx D_301E570[];
extern Gfx D_301F140[]; extern Gfx D_301F140[];
@ -251,18 +251,18 @@ extern Triangle D_302F044[];
extern Vec3f D_302F098[]; extern Vec3f D_302F098[];
// ast_918430, ast_922730 // ast_918430, ast_922730
extern AnimationHeader D_4000080; extern Animation D_4000080;
extern Limb* D_400014C[]; extern Limb* D_400014C[];
extern AnimationHeader D_40001A4; extern Animation D_40001A4;
extern Limb* D_4000270[]; extern Limb* D_4000270[];
extern Gfx D_40018A0[]; extern Gfx D_40018A0[];
extern Gfx D_4003BD0[]; extern Gfx D_4003BD0[];
extern AnimationHeader D_40057AC; extern Animation D_40057AC;
extern Limb* D_40058B8[]; extern Limb* D_40058B8[];
extern Gfx D_40068F0[]; extern Gfx D_40068F0[];
extern Gfx D_4007870[]; extern Gfx D_4007870[];
extern Gfx D_4007AF0[]; extern Gfx D_4007AF0[];
extern AnimationHeader D_400A30C; extern Animation D_400A30C;
extern Limb* D_400A398[]; extern Limb* D_400A398[];
extern Gfx D_400B390[]; extern Gfx D_400B390[];
@ -353,7 +353,7 @@ extern Gfx D_6006140[];
extern Gfx D_6006310[]; extern Gfx D_6006310[];
extern u16* D_600631C[]; extern u16* D_600631C[];
extern u8 D_6006320[]; extern u8 D_6006320[];
extern AnimationHeader D_600636C; extern Animation D_600636C;
extern f32 D_60064AC[]; extern f32 D_60064AC[];
extern f32 D_60064C8[]; extern f32 D_60064C8[];
extern f32 D_60064FC[]; extern f32 D_60064FC[];
@ -394,7 +394,7 @@ extern Gfx D_6006A80[];
extern Gfx D_6006BE0[]; extern Gfx D_6006BE0[];
extern f32 D_6006BF0[]; extern f32 D_6006BF0[];
extern f32 D_6006C44[]; extern f32 D_6006C44[];
extern AnimationHeader D_6006D64; extern Animation D_6006D64;
extern Limb* D_6006E50[]; extern Limb* D_6006E50[];
extern EnvSettings D_6006E70; extern EnvSettings D_6006E70;
extern u8 D_6006E80[]; extern u8 D_6006E80[];
@ -427,7 +427,7 @@ extern u16* D_6009B34[];
extern u16 D_6009BB8[]; extern u16 D_6009BB8[];
extern f32 D_6009CC4[]; extern f32 D_6009CC4[];
extern f32 D_6009CFC[]; extern f32 D_6009CFC[];
extern AnimationHeader D_6009D30; extern Animation D_6009D30;
extern Gfx D_6009E30[]; extern Gfx D_6009E30[];
extern Vtx D_6009ED0[]; extern Vtx D_6009ED0[];
extern Gfx D_6009F90[]; extern Gfx D_6009F90[];
@ -439,7 +439,7 @@ extern u16 D_600AB68[];
extern u8 D_600AD30[]; extern u8 D_600AD30[];
extern Gfx D_600AF40[]; extern Gfx D_600AF40[];
extern Gfx D_600B0E0[]; extern Gfx D_600B0E0[];
extern AnimationHeader D_600B1B4; extern Animation D_600B1B4;
extern Gfx D_600B4B0[]; extern Gfx D_600B4B0[];
extern Gfx D_600B8B0[]; extern Gfx D_600B8B0[];
extern u8 D_600B9B0[]; extern u8 D_600B9B0[];
@ -447,8 +447,8 @@ extern Gfx D_600BAF0[];
extern u16 D_600BEA0[]; extern u16 D_600BEA0[];
extern Gfx D_600BF80[]; extern Gfx D_600BF80[];
extern Gfx D_600C130[]; extern Gfx D_600C130[];
extern AnimationHeader D_600C15C; extern Animation D_600C15C;
extern AnimationHeader D_600C200; extern Animation D_600C200;
extern Limb* D_600C2AC[]; extern Limb* D_600C2AC[];
extern u16 D_600C6A0[]; extern u16 D_600C6A0[];
extern Gfx D_600C740[]; extern Gfx D_600C740[];
@ -457,7 +457,7 @@ extern Gfx D_600CAA0[];
extern u16 D_600CBD8[]; extern u16 D_600CBD8[];
extern u8 D_600CC10[]; extern u8 D_600CC10[];
extern Gfx D_600D190[]; extern Gfx D_600D190[];
extern AnimationHeader D_600D3DC; extern Animation D_600D3DC;
extern u16 D_600D5C0[]; extern u16 D_600D5C0[];
extern Gfx D_600D730[]; extern Gfx D_600D730[];
extern u16 D_600D990[]; extern u16 D_600D990[];
@ -470,10 +470,10 @@ extern Gfx D_600DDF0[];
extern Gfx D_600E050[]; extern Gfx D_600E050[];
extern Gfx D_600E0C0[]; extern Gfx D_600E0C0[];
extern u8 D_600E210[]; extern u8 D_600E210[];
extern AnimationHeader D_600E2C4; extern Animation D_600E2C4;
extern u8 D_600E360[]; extern u8 D_600E360[];
extern Limb* D_600E470[]; extern Limb* D_600E470[];
extern AnimationHeader D_600E5EC; extern Animation D_600E5EC;
extern Gfx D_600E820[]; extern Gfx D_600E820[];
extern u8 D_600E980[]; extern u8 D_600E980[];
extern EnvSettings D_600EA90; extern EnvSettings D_600EA90;
@ -497,7 +497,7 @@ extern CollisionPoly D_600F60C[];
extern Gfx D_600F670[]; extern Gfx D_600F670[];
extern Gfx D_600F6C0[]; extern Gfx D_600F6C0[];
extern Gfx D_600F6C0[]; extern Gfx D_600F6C0[];
extern AnimationHeader D_600F744; extern Animation D_600F744;
extern Gfx D_600F8A0[]; extern Gfx D_600F8A0[];
extern u8 D_600F940[]; extern u8 D_600F940[];
extern Gfx D_600F9B0[]; extern Gfx D_600F9B0[];
@ -544,14 +544,14 @@ extern Gfx D_60120F0[];
extern u8 D_6012310[]; extern u8 D_6012310[];
extern u8 D_60123F0[]; extern u8 D_60123F0[];
extern Gfx D_6012C00_Gfx[]; extern Gfx D_6012C00_Gfx[];
extern AnimationHeader D_6012C00_Anim; extern Animation D_6012C00_Anim;
extern u8 D_60131A0[]; extern u8 D_60131A0[];
extern Gfx D_60132B0[]; extern Gfx D_60132B0[];
extern u8 D_6013470[]; extern u8 D_6013470[];
extern Gfx D_6013480[]; extern Gfx D_6013480[];
extern Gfx D_60137B0[]; extern Gfx D_60137B0[];
extern AnimationHeader D_6013820; extern Animation D_6013820;
extern AnimationHeader D_601388C; extern Animation D_601388C;
extern Limb* D_601390C[]; extern Limb* D_601390C[];
extern Gfx D_6013960[]; extern Gfx D_6013960[];
extern u8 D_60139E0[]; extern u8 D_60139E0[];
@ -561,7 +561,7 @@ extern u8 D_6014360[];
extern Gfx D_60143E0[]; extern Gfx D_60143E0[];
extern Gfx D_6014500[]; extern Gfx D_6014500[];
extern u16 D_6014510[]; extern u16 D_6014510[];
extern AnimationHeader D_6014658; extern Animation D_6014658;
extern Gfx D_6014670[]; extern Gfx D_6014670[];
extern u16 D_60147C0[]; extern u16 D_60147C0[];
extern u8 D_60147E0[]; extern u8 D_60147E0[];
@ -595,7 +595,7 @@ extern u8 D_6017640[];
extern u8 D_6018280[]; extern u8 D_6018280[];
extern Gfx D_6018450[]; extern Gfx D_6018450[];
extern Gfx D_60188D0[]; extern Gfx D_60188D0[];
extern AnimationHeader D_6018994; extern Animation D_6018994;
extern Limb* D_6018BA0[]; extern Limb* D_6018BA0[];
extern Gfx D_6018BF0[]; extern Gfx D_6018BF0[];
extern Gfx D_6018C00[]; // possible collision extern Gfx D_6018C00[]; // possible collision
@ -656,7 +656,7 @@ extern Gfx D_601DE60[];
extern Gfx D_601DE80[]; extern Gfx D_601DE80[];
extern Gfx D_601E150[]; extern Gfx D_601E150[];
extern u16 D_601E1E8[]; extern u16 D_601E1E8[];
extern AnimationHeader D_601E8C4; extern Animation D_601E8C4;
extern Limb* D_601E9D0[]; extern Limb* D_601E9D0[];
extern Gfx D_601EAA0[]; extern Gfx D_601EAA0[];
extern Gfx D_601F1D0[]; extern Gfx D_601F1D0[];
@ -664,7 +664,7 @@ extern EnvSettings D_601F1F0;
extern Gfx D_601F500[]; extern Gfx D_601F500[];
extern Gfx D_601F5A0[]; extern Gfx D_601F5A0[];
extern Gfx D_601F6B0[]; extern Gfx D_601F6B0[];
extern AnimationHeader D_601F874; extern Animation D_601F874;
extern Limb* D_601F920[]; extern Limb* D_601F920[];
extern Gfx D_601FCB0[]; extern Gfx D_601FCB0[];
extern u8 D_601FF40[]; extern u8 D_601FF40[];
@ -678,7 +678,7 @@ extern Gfx D_6020E60[];
extern u16 D_6020F60[]; extern u16 D_6020F60[];
extern u16 D_6020FB0[]; extern u16 D_6020FB0[];
extern u16 D_6021ED0[]; extern u16 D_6021ED0[];
extern AnimationHeader D_602201C; extern Animation D_602201C;
extern Limb* D_60220E8[]; extern Limb* D_60220E8[];
extern Gfx D_6022110[]; extern Gfx D_6022110[];
extern u16 D_6022340[]; extern u16 D_6022340[];
@ -711,7 +711,7 @@ extern u16 D_6026C90[];
extern u8 D_6026D70[]; extern u8 D_6026D70[];
extern Gfx D_60270E0[]; extern Gfx D_60270E0[];
extern Gfx D_6027180[]; extern Gfx D_6027180[];
extern AnimationHeader D_6027320; extern Animation D_6027320;
extern u16 D_6027340[]; extern u16 D_6027340[];
extern Limb* D_602742C[]; extern Limb* D_602742C[];
extern Gfx D_6027900[]; extern Gfx D_6027900[];
@ -724,7 +724,7 @@ extern u16* D_60289FC[];
extern u16 D_6028A60[]; extern u16 D_6028A60[];
extern u16 D_6029170[]; extern u16 D_6029170[];
extern u8 D_6029220[]; extern u8 D_6029220[];
extern AnimationHeader D_6029528; extern Animation D_6029528;
extern Limb* D_6029674[]; extern Limb* D_6029674[];
extern Gfx D_6029890[]; extern Gfx D_6029890[];
extern EnvSettings D_602A120; extern EnvSettings D_602A120;
@ -979,7 +979,7 @@ extern Gfx D_7007350[];
extern Gfx D_700AB70[]; extern Gfx D_700AB70[];
extern Gfx D_700BB10[]; extern Gfx D_700BB10[];
extern Gfx D_700BE00[]; extern Gfx D_700BE00[];
extern AnimationHeader D_700CAF4; extern Animation D_700CAF4;
extern Limb* D_700CB60[]; extern Limb* D_700CB60[];
extern u16 D_700E9A0[]; extern u16 D_700E9A0[];
extern u8 D_70118E0[]; extern u8 D_70118E0[];

View File

@ -429,10 +429,10 @@ void func_8007E45C(Effect*);
void func_8007E5CC(Effect*); void func_8007E5CC(Effect*);
void func_8007E648(Effect*); void func_8007E648(Effect*);
void func_8007E93C(Effect* effect, u32 objId, f32 xPos, f32 yPos, f32 zPos, f32 arg5); void func_8007E93C(Effect* effect, u32 objId, f32 xPos, f32 yPos, f32 zPos, f32 arg5);
void func_8007EE68(s32 objId, Vec3f* pos, Vec3f* rot, Vec3f* arg3, Vec3f* arg4, f32 scale2); void func_8007EE68(ObjectId objId, Vec3f* pos, Vec3f* rot, Vec3f* arg3, Vec3f* arg4, f32 scale2);
void func_8007F04C(s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 zRot, f32 unkX, f32 unkY, f32 unkZ, f32 xVel, f32 yVel, f32 zVel, f32 scale2); void func_8007F04C(ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 zRot, f32 unkX, f32 unkY, f32 unkZ, f32 xVel, f32 yVel, f32 zVel, f32 scale2);
void func_8007F11C(s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 arg4); void func_8007F11C(ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 arg4);
void func_8007F20C(s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 arg4); void func_8007F20C(ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 arg4);
void func_8007F438(Effect*); void func_8007F438(Effect*);
void func_8007F6B0(Effect*); void func_8007F6B0(Effect*);
void func_8007F958(Effect*); void func_8007F958(Effect*);
@ -452,6 +452,7 @@ void func_80081A8C(f32 xPos, f32 yPos, f32 zPos, f32 scale2, s32 arg4);
void func_80081BEC(f32 xPos, f32 yPos, f32 zPos, f32 scale2, s32 arg4); void func_80081BEC(f32 xPos, f32 yPos, f32 zPos, f32 scale2, s32 arg4);
void func_80081C5C(Effect*); void func_80081C5C(Effect*);
void func_80082F78(Effect*); void func_80082F78(Effect*);
void func_8008377C(f32, f32, f32, f32, f32);
void func_800837EC(Effect*); void func_800837EC(Effect*);
void func_80083B8C(Effect*); void func_80083B8C(Effect*);
void func_80083C70(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 arg7, s32 arg8); void func_80083C70(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 arg7, s32 arg8);

View File

@ -52,7 +52,7 @@ typedef struct {
/* 0x02 */ s16 limbCount; /* 0x02 */ s16 limbCount;
/* 0x04 */ u16* frameData; /* 0x04 */ u16* frameData;
/* 0x08 */ JointKey* jointKey; /* 0x08 */ JointKey* jointKey;
} AnimationHeader; // size = 0xC } Animation; // size = 0xC
typedef struct Limb { typedef struct Limb {
/* 0x000 */ Gfx* dList; /* 0x000 */ Gfx* dList;
@ -62,14 +62,6 @@ typedef struct Limb {
/* 0x01C */ struct Limb* child; /* 0x01C */ struct Limb* child;
} Limb; // size = 0x20 } Limb; // size = 0x20
typedef Limb* SkelAnime;
typedef struct {
/* 0x00 */ AnimationHeader* unk_0;
/* 0x04 */ AnimationHeader* unk_4;
/* 0x08 */ SkelAnime* skelanime;
} Animation; // size = 0x0C
void Lights_SetOneLight(Gfx** dList, s32 dirX, s32 dirY, s32 dirZ, s32 colR, s32 colG, s32 colB, s32 ambR, s32 ambG, s32 ambB); void Lights_SetOneLight(Gfx** dList, s32 dirX, s32 dirY, s32 dirZ, s32 colR, s32 colG, s32 colB, s32 ambR, s32 ambG, s32 ambB);
void Lights_SetTwoLights(Gfx** dList, s32 dir1x, s32 dir1y, s32 dir1z, s32 dir2x, s32 dir2y, s32 dir2z, s32 col1r, s32 col1g, void Lights_SetTwoLights(Gfx** dList, s32 dir1x, s32 dir1y, s32 dir1z, s32 dir2x, s32 dir2y, s32 dir2z, s32 col1r, s32 col1g,
s32 col1b, s32 col2r, s32 col2g, s32 col2b, s32 ambR, s32 ambG, s32 ambB); s32 col1b, s32 col2r, s32 col2g, s32 col2b, s32 ambR, s32 ambG, s32 ambB);
@ -81,11 +73,11 @@ void Texture_Mottle(void *dst, void *src, u8 mode);
s32 Animation_GetLimbIndex(Limb* limb, Limb** skeleton); s32 Animation_GetLimbIndex(Limb* limb, Limb** skeleton);
void Animation_DrawLimb(s32 mode, Limb* limb, Limb* *skeleton, Vec3f* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, void* data); void Animation_DrawLimb(s32 mode, Limb* limb, Limb* *skeleton, Vec3f* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, void* data);
void Animation_DrawSkeleton(s32 mode, Limb** skeletonSegment, Vec3f* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, void* data, Matrix* transform); void Animation_DrawSkeleton(s32 mode, Limb** skeletonSegment, Vec3f* jointTable, OverrideLimbDraw overrideLimbDraw, PostLimbDraw postLimbDraw, void* data, Matrix* transform);
s16 Animation_GetFrameData(AnimationHeader *animationSegmemt, s32 frame, Vec3f *frameTable); s16 Animation_GetFrameData(Animation *animationSegmemt, s32 frame, Vec3f *frameTable);
s16 Animation_GetFrameCount(AnimationHeader *animationSegment); s16 Animation_GetFrameCount(Animation *animationSegment);
void Animation_FindBoundingBox(Gfx* dList, s32 len, Vec3f *min, Vec3f *max, s32 *vtxFound, s32 *vtxCount, Vtx* *vtxList); void Animation_FindBoundingBox(Gfx* dList, s32 len, Vec3f *min, Vec3f *max, s32 *vtxFound, s32 *vtxCount, Vtx* *vtxList);
void Animation_GetDListBoundingBox(Gfx *dList, s32 len, Vec3f *min, Vec3f *max); void Animation_GetDListBoundingBox(Gfx *dList, s32 len, Vec3f *min, Vec3f *max);
void Animation_GetSkeletonBoundingBox(Limb **skeletonSegment, AnimationHeader *animationSegment, s32 frame, Vec3f *min, Vec3f* max); void Animation_GetSkeletonBoundingBox(Limb** skeletonSegment, Animation *animationSegment, s32 frame, Vec3f *min, Vec3f* max);
void TextureRect_4bCI(Gfx **gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale); void TextureRect_4bCI(Gfx **gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_4bCI_Flip(Gfx **gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale); void TextureRect_4bCI_Flip(Gfx **gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);
void TextureRect_4bCI_MirX(Gfx **gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale); void TextureRect_4bCI_MirX(Gfx **gfxPtr, void* texture, void* palette, u32 width, u32 height, f32 xPos, f32 yPos, f32 xScale, f32 yScale);

View File

@ -45,7 +45,7 @@ void func_i5_801A5E2C(Actor *);
void func_i5_801A6134(Actor *); void func_i5_801A6134(Actor *);
void func_i5_801A65E0(Object_80 *); void func_i5_801A65E0(Object_80 *);
void func_i5_801A7D98(Actor *); void func_i5_801A7D98(Actor *);
void func_i5_801ACFBC(); void func_i5_801ACFBC(void);
void func_i5_801AD080(void); void func_i5_801AD080(void);
void func_i5_801B5110(f32, f32, f32); void func_i5_801B5110(f32, f32, f32);
void func_i5_801B58AC(Gfx **, f32); void func_i5_801B58AC(Gfx **, f32);

View File

@ -7,6 +7,7 @@
#define RAND_FLOAT(max) (Rand_ZeroOne()*(max)) #define RAND_FLOAT(max) (Rand_ZeroOne()*(max))
#define RAND_INT(max) ((s32)(Rand_ZeroOne()*(max))) #define RAND_INT(max) ((s32)(Rand_ZeroOne()*(max)))
#define RAND_FLOAT_CENTERED(width) ((Rand_ZeroOne()-0.5f)*(width)) #define RAND_FLOAT_CENTERED(width) ((Rand_ZeroOne()-0.5f)*(width))
#define RAND_RANGE(min, max) (((max) - (min)) * (Rand_ZeroOne() - (min) / ((min) - (max))))
#define RAND_FLOAT_SEEDED(max) (Rand_ZeroOneSeeded()*(max)) #define RAND_FLOAT_SEEDED(max) (Rand_ZeroOneSeeded()*(max))
#define RAND_INT_SEEDED(max) ((s32)(Rand_ZeroOneSeeded()*(max))) #define RAND_INT_SEEDED(max) ((s32)(Rand_ZeroOneSeeded()*(max)))

View File

@ -78,7 +78,7 @@ D_i3_801C27C8 = 0x801C27C8; //segment:ovl_i3 size:0x12C0
D_i3_801C3A88 = 0x801C3A88; //segment:ovl_i3 size:0x700 D_i3_801C3A88 = 0x801C3A88; //segment:ovl_i3 size:0x700
D_i3_801C4190 = 0x801C4190; //segment:ovl_i3 size:0x28 D_i3_801C4190 = 0x801C4190; //segment:ovl_i3 size:0x28
D_i3_801C41B8 = 0x801C41B8; //segment:ovl_i3 size:0x78 D_i3_801C41B8 = 0x801C41B8; //segment:ovl_i3 size:0x78
D_i3_801C4230 = 0x801C4230; //segment:ovl_i3 size:0x70 sBossAQlimbTimers = 0x801C4230; //segment:ovl_i3 size:0x70
D_i3_801C42A0 = 0x801C42A0; //segment:ovl_i3 size:0x68 D_i3_801C42A0 = 0x801C42A0; //segment:ovl_i3 size:0x68
D_i3_801C4308 = 0x801C4308; //segment:ovl_i3 size:0x148 D_i3_801C4308 = 0x801C4308; //segment:ovl_i3 size:0x148
D_i3_801C0060 = 0x801C0060; //segment:ovl_i3 type:f32 D_i3_801C0060 = 0x801C0060; //segment:ovl_i3 type:f32

View File

@ -9,17 +9,17 @@
extern Gfx D_1024AC0[]; extern Gfx D_1024AC0[];
extern Gfx D_60320E0[]; extern Gfx D_60320E0[];
extern Gfx D_7010970[]; extern Gfx D_7010970[];
extern Gfx* D_E000000; extern Gfx D_E000000[];
extern Gfx* D_E003AB0; extern Gfx D_E003AB0[];
extern s32 D_800C9E90[]; extern s32 D_800C9E90[];
extern AnimationHeader D_60265B4[]; extern Animation D_60265B4[];
extern AnimationHeader D_602B8DC[]; extern Animation D_602B8DC[];
extern AnimationHeader D_60034C4[]; extern Animation D_60034C4[];
extern AnimationHeader D_602A2CC[]; extern Animation D_602A2CC[];
extern AnimationHeader D_602CEB4[]; extern Animation D_602CEB4[];
extern AnimationHeader D_602B778[]; extern Animation D_602B778[];
extern f32 D_80178454; extern f32 D_80178454;
extern f32 D_80178458; extern f32 D_80178458;
@ -36,9 +36,9 @@ extern Gfx D_60132B0[];
extern Gfx D_6014A40[]; extern Gfx D_6014A40[];
extern Gfx D_6020810[]; extern Gfx D_6020810[];
extern AnimationHeader D_6020A40; extern Animation D_6020A40;
extern Limb* D_6020C6C; extern Limb* D_6020C6C[];
extern Limb* D_602D140; extern Limb* D_602D140[];
Vec3f D_800C9F60[] = { Vec3f D_800C9F60[] = {
{ 2000.0f, 2000.0f, 2000.0f }, { 2000.0f, 2000.0f, 2000.0f },
@ -127,8 +127,8 @@ f32 D_800CA1D4[] = {
1.5f, 0.87f, 0.83f, 0.75f, 0.7f, 0.6f, 0.4f, 0.1f, 1.5f, 0.87f, 0.83f, 0.75f, 0.7f, 0.6f, 0.4f, 0.1f,
}; };
AnimationHeader* D_800CA1F4[] = { Animation* D_800CA1F4[] = {
D_60265B4, D_602B8DC, D_60034C4, D_602A2CC, D_602CEB4, D_602B778, (AnimationHeader*) 0x0601F3B8, D_60265B4, D_602B8DC, D_60034C4, D_602A2CC, D_602CEB4, D_602B778, (Animation*) 0x0601F3B8,
}; };
void func_80048AC0(s32 teamId) { void func_80048AC0(s32 teamId) {
@ -2801,7 +2801,7 @@ void func_8004FEC0(Actor* actor) {
Math_SmoothStepToVec3fArray(sp144, actor->vwork, 1, animFrameData, actor->fwork[2], 100.0f, .0f); Math_SmoothStepToVec3fArray(sp144, actor->vwork, 1, animFrameData, actor->fwork[2], 100.0f, .0f);
RCP_SetupDL_30(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); RCP_SetupDL_30(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
gDPSetPrimColor(gMasterDisp++, 0, 0, 150, 255, 150, 255); gDPSetPrimColor(gMasterDisp++, 0, 0, 150, 255, 150, 255);
Animation_DrawSkeleton(1, &D_602D140, actor->vwork, 0, 0, actor, &gIdentityMatrix); Animation_DrawSkeleton(1, D_602D140, actor->vwork, 0, 0, actor, &gIdentityMatrix);
if (actor->fwork[0] != 0.0f) { if (actor->fwork[0] != 0.0f) {
RCP_SetupDL_49(); RCP_SetupDL_49();
@ -2895,7 +2895,7 @@ void func_8004FEC0(Actor* actor) {
case 44: case 44:
Animation_GetFrameData(&D_6020A40, actor->iwork[0], actor->vwork); Animation_GetFrameData(&D_6020A40, actor->iwork[0], actor->vwork);
gSPClearGeometryMode(gMasterDisp++, 0x00002000); gSPClearGeometryMode(gMasterDisp++, 0x00002000);
Animation_DrawSkeleton(1, &D_6020C6C, actor->vwork, 0, 0, &actor->index, &gIdentityMatrix); Animation_DrawSkeleton(1, D_6020C6C, actor->vwork, 0, 0, &actor->index, &gIdentityMatrix);
gSPSetGeometryMode(gMasterDisp++, 0x00002000); gSPSetGeometryMode(gMasterDisp++, 0x00002000);
break; break;
@ -2939,9 +2939,9 @@ void func_800515C4(void) {
} }
if (D_80177B8C != 0) { if (D_80177B8C != 0) {
gSPDisplayList(gMasterDisp++, &D_E000000); gSPDisplayList(gMasterDisp++, D_E000000);
} else { } else {
gSPDisplayList(gMasterDisp++, &D_E003AB0); gSPDisplayList(gMasterDisp++, D_E003AB0);
} }
if ((gCurrentLevel != LEVEL_AQUAS) && if ((gCurrentLevel != LEVEL_AQUAS) &&

View File

@ -2496,7 +2496,8 @@ void func_8007E93C(Effect* effect, u32 objId, f32 xPos, f32 yPos, f32 zPos, f32
Audio_PlaySfx(0x29002002, effect->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); Audio_PlaySfx(0x29002002, effect->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
} }
void func_8007EBB8(Effect* effect, s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2) { void func_8007EBB8(Effect* effect, ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel,
f32 scale2) {
Effect_Initialize(effect); Effect_Initialize(effect);
effect->obj.status = OBJ_INIT; effect->obj.status = OBJ_INIT;
effect->obj.id = objId; effect->obj.id = objId;
@ -2520,7 +2521,7 @@ void func_8007EBB8(Effect* effect, s32 objId, f32 xPos, f32 yPos, f32 zPos, f32
Object_SetInfo(&effect->info, effect->obj.id); Object_SetInfo(&effect->info, effect->obj.id);
} }
void func_8007ECB4(s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2) { void func_8007ECB4(ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2) {
s32 i; s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) { for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
@ -2531,7 +2532,7 @@ void func_8007ECB4(s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel,
} }
} }
void func_8007ED54(Effect* effect, s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 zRot, f32 unkX, void func_8007ED54(Effect* effect, ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 zRot, f32 unkX,
f32 unkY, f32 unkZ, f32 xVel, f32 yVel, f32 zVel, f32 scale2) { f32 unkY, f32 unkZ, f32 xVel, f32 yVel, f32 zVel, f32 scale2) {
Effect_Initialize(effect); Effect_Initialize(effect);
effect->obj.status = OBJ_INIT; effect->obj.status = OBJ_INIT;
@ -2565,7 +2566,7 @@ void func_8007ED54(Effect* effect, s32 objId, f32 xPos, f32 yPos, f32 zPos, f32
Object_SetInfo(&effect->info, effect->obj.id); Object_SetInfo(&effect->info, effect->obj.id);
} }
void func_8007EE68(s32 objId, Vec3f* pos, Vec3f* rot, Vec3f* arg3, Vec3f* arg4, f32 scale2) { void func_8007EE68(ObjectId objId, Vec3f* pos, Vec3f* rot, Vec3f* arg3, Vec3f* arg4, f32 scale2) {
s32 i; s32 i;
Vec3f sp68; Vec3f sp68;
@ -2587,8 +2588,8 @@ void func_8007EE68(s32 objId, Vec3f* pos, Vec3f* rot, Vec3f* arg3, Vec3f* arg4,
} }
} }
void func_8007F04C(s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 zRot, f32 unkX, f32 unkY, f32 unkZ, void func_8007F04C(ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 zRot, f32 unkX, f32 unkY,
f32 xVel, f32 yVel, f32 zVel, f32 scale2) { f32 unkZ, f32 xVel, f32 yVel, f32 zVel, f32 scale2) {
s32 i; s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) { for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
@ -2600,7 +2601,7 @@ void func_8007F04C(s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot,
} }
} }
void func_8007F11C(s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 arg4) { void func_8007F11C(ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 arg4) {
s32 i; s32 i;
if ((fabsf(zPos - gPlayer[0].unk_138) > 300.0f) || (fabsf(xPos - gPlayer[0].pos.x) > 300.0f)) { if ((fabsf(zPos - gPlayer[0].unk_138) > 300.0f) || (fabsf(xPos - gPlayer[0].pos.x) > 300.0f)) {
@ -2615,7 +2616,7 @@ void func_8007F11C(s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 arg4) {
} }
} }
void func_8007F20C(s32 objId, f32 xPos, f32 yPos, f32 zPos, f32 arg4) { void func_8007F20C(ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 arg4) {
s32 i; s32 i;
if ((fabsf(zPos - gPlayer[0].camEye.z) > 300.0f) || (fabsf(xPos - gPlayer[0].camEye.x) > 300.0f)) { if ((fabsf(zPos - gPlayer[0].camEye.z) > 300.0f) || (fabsf(xPos - gPlayer[0].camEye.x) > 300.0f)) {

View File

@ -3850,10 +3850,10 @@ void func_800B0194(Player* player) {
player->unk_17C = RAND_FLOAT_CENTERED(100.0f); player->unk_17C = RAND_FLOAT_CENTERED(100.0f);
} }
if (((gGameFrameCount & 0xF) == 3) && (Rand_ZeroOne() < 0.5f)) { if (((gGameFrameCount & 0xF) == 3) && (Rand_ZeroOne() < 0.5f)) {
player->unk_174 = (Rand_ZeroOne() - 0.2f) * 50.0f; player->unk_174 = RAND_RANGE(-10.0f, 40.0f);
} }
if (((gGameFrameCount & 0xF) == 10) && (Rand_ZeroOne() < 0.5f)) { if (((gGameFrameCount & 0xF) == 10) && (Rand_ZeroOne() < 0.5f)) {
player->unk_178 = (Rand_ZeroOne() - 0.2f) * 50.0f; player->unk_178 = RAND_RANGE(-10.0f, 40.0f);
} }
Math_SmoothStepToF(&player->unk_15C, player->unk_17C, 0.15f, 10.0f, 0.00001f); Math_SmoothStepToF(&player->unk_15C, player->unk_17C, 0.15f, 10.0f, 0.00001f);
Math_SmoothStepToF(&player->unk_164, player->unk_174, 0.1f, 10.0f, 0.00001f); Math_SmoothStepToF(&player->unk_164, player->unk_174, 0.1f, 10.0f, 0.00001f);
@ -5148,7 +5148,7 @@ void func_800B44C4(Player* player) {
break; break;
case FORM_BLUE_MARINE: case FORM_BLUE_MARINE:
func_i3_801BEC80(player); func_i3_801BEC80(player);
return; break;
case FORM_ON_FOOT: case FORM_ON_FOOT:
func_800B00C0(player); func_800B00C0(player);
func_800B0194(player); func_800B0194(player);

View File

@ -248,8 +248,8 @@ void Animation_DrawSkeleton(s32 mode, Limb** skeletonSegment, Vec3f* jointTable,
} }
} }
s16 Animation_GetFrameData(AnimationHeader* animationSegmemt, s32 frame, Vec3f* frameTable) { s16 Animation_GetFrameData(Animation* animationSegmemt, s32 frame, Vec3f* frameTable) {
AnimationHeader* animation = SEGMENTED_TO_VIRTUAL(animationSegmemt); Animation* animation = SEGMENTED_TO_VIRTUAL(animationSegmemt);
u16 var4 = animation->limbCount; u16 var4 = animation->limbCount;
JointKey* key = SEGMENTED_TO_VIRTUAL(animation->jointKey); JointKey* key = SEGMENTED_TO_VIRTUAL(animation->jointKey);
u16* frameData = SEGMENTED_TO_VIRTUAL(animation->frameData); u16* frameData = SEGMENTED_TO_VIRTUAL(animation->frameData);
@ -275,8 +275,8 @@ s16 Animation_GetFrameData(AnimationHeader* animationSegmemt, s32 frame, Vec3f*
return var4 + 1; return var4 + 1;
} }
s16 Animation_GetFrameCount(AnimationHeader* animationSegment) { s16 Animation_GetFrameCount(Animation* animationSegment) {
AnimationHeader* animation = SEGMENTED_TO_VIRTUAL(animationSegment); Animation* animation = SEGMENTED_TO_VIRTUAL(animationSegment);
return animation->frameCount; return animation->frameCount;
} }
@ -335,11 +335,11 @@ void Animation_GetDListBoundingBox(Gfx* dList, s32 len, Vec3f* min, Vec3f* max)
Animation_FindBoundingBox(dList, len, min, max, &vtxFound, &vtxCount, &vtxList); Animation_FindBoundingBox(dList, len, min, max, &vtxFound, &vtxCount, &vtxList);
} }
void Animation_GetSkeletonBoundingBox(Limb** skeletonSegment, AnimationHeader* animationSegment, s32 frame, Vec3f* min, void Animation_GetSkeletonBoundingBox(Limb** skeletonSegment, Animation* animationSegment, s32 frame, Vec3f* min,
Vec3f* max) { Vec3f* max) {
JointKey* key; JointKey* key;
u16* frameData; u16* frameData;
AnimationHeader* animation; Animation* animation;
Limb* limb; Limb* limb;
u16 var_t6; u16 var_t6;
s32 vtxFound; s32 vtxFound;
@ -351,7 +351,7 @@ void Animation_GetSkeletonBoundingBox(Limb** skeletonSegment, AnimationHeader* a
Limb** skeleton = (Limb**) SEGMENTED_TO_VIRTUAL(skeletonSegment); Limb** skeleton = (Limb**) SEGMENTED_TO_VIRTUAL(skeletonSegment);
limb = (Limb*) SEGMENTED_TO_VIRTUAL(skeleton[0]); limb = (Limb*) SEGMENTED_TO_VIRTUAL(skeleton[0]);
animation = (AnimationHeader*) SEGMENTED_TO_VIRTUAL(animationSegment); animation = (Animation*) SEGMENTED_TO_VIRTUAL(animationSegment);
key = (JointKey*) SEGMENTED_TO_VIRTUAL(animation->jointKey); key = (JointKey*) SEGMENTED_TO_VIRTUAL(animation->jointKey);
frameData = (u16*) SEGMENTED_TO_VIRTUAL(animation->frameData); frameData = (u16*) SEGMENTED_TO_VIRTUAL(animation->frameData);

View File

@ -526,8 +526,8 @@ void func_i1_80188D50(Boss* boss) {
} }
} }
extern AnimationHeader D_602BC18; extern Animation D_602BC18;
extern AnimationHeader D_602C0D0; extern Animation D_602C0D0;
void func_i1_80189058(Boss* boss) { void func_i1_80189058(Boss* boss) {
Vec3f sp21C = { 0.0f, 0.0f, 0.0f }; Vec3f sp21C = { 0.0f, 0.0f, 0.0f };
@ -1154,7 +1154,7 @@ void func_i1_8018ACE0(Actor* actor) {
} }
} }
extern AnimationHeader D_602991C; extern Animation D_602991C;
extern Gfx D_60329C0[]; extern Gfx D_60329C0[];
void func_i1_8018AED0(Actor* actor) { void func_i1_8018AED0(Actor* actor) {
@ -1222,7 +1222,7 @@ void func_i1_8018B0B4(Actor* actor) {
} }
} }
extern AnimationHeader D_602AA04; extern Animation D_602AA04;
void func_i1_8018B15C(Actor* actor) { void func_i1_8018B15C(Actor* actor) {
Vec3f sp60[20]; Vec3f sp60[20];
@ -1288,7 +1288,7 @@ void func_i1_8018B15C(Actor* actor) {
1.0f, 1.0f); 1.0f, 1.0f);
} }
extern AnimationHeader D_602A520; extern Animation D_602A520;
void func_i1_8018B418(Actor* actor) { void func_i1_8018B418(Actor* actor) {
s32 pad; s32 pad;
@ -2328,7 +2328,7 @@ s32 func_i1_8018EC54(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* d
return false; return false;
} }
extern AnimationHeader D_602D400; extern Animation D_602D400;
extern Limb* D_602D5AC[]; extern Limb* D_602D5AC[];
void func_i1_8018ECAC(Boss* boss) { void func_i1_8018ECAC(Boss* boss) {
@ -2442,7 +2442,7 @@ s32 func_i1_8018F1C8(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* d
return 0; return 0;
} }
extern AnimationHeader D_602AA7C; extern Animation D_602AA7C;
extern Limb* D_602AB48[]; extern Limb* D_602AB48[];
void func_i1_8018F31C(Object_80* obj80) { void func_i1_8018F31C(Object_80* obj80) {
@ -2494,13 +2494,13 @@ void func_i1_8018F55C(Effect* effect) {
Effect_Initialize(effect); Effect_Initialize(effect);
effect->obj.status = OBJ_INIT; effect->obj.status = OBJ_INIT;
effect->obj.pos.x = gPlayer[0].camEye.x + RAND_FLOAT_CENTERED(500.0f); effect->obj.pos.x = gPlayer[0].camEye.x + RAND_FLOAT_CENTERED(500.0f);
effect->obj.pos.y = gPlayer[0].camEye.y + ((Rand_ZeroOne() - 0.8f) * 350.0f); effect->obj.pos.y = gPlayer[0].camEye.y + RAND_RANGE(-280.0f, 70.0f);
effect->obj.id = OBJ_EFFECT_352; effect->obj.id = OBJ_EFFECT_352;
effect->timer_50 = 80; effect->timer_50 = 80;
effect->unk_46 = 0x90; effect->unk_46 = 0x90;
effect->obj.pos.z = -4000.0f; effect->obj.pos.z = -4000.0f;
effect->vel.z = 60.0f; effect->vel.z = 60.0f;
effect->scale2 = RAND_FLOAT(15.0f) + 10.0f; effect->scale2 = 10.0f + RAND_FLOAT(15.0f);
if (Rand_ZeroOne() < 0.5f) { if (Rand_ZeroOne() < 0.5f) {
effect->obj.rot.z = 180.0f; effect->obj.rot.z = 180.0f;
} }

View File

@ -7,8 +7,8 @@ extern s32 D_i1_8019C0B8;
extern s32 D_i1_8019C0BC; extern s32 D_i1_8019C0BC;
extern s32 D_i1_8019C0C0; extern s32 D_i1_8019C0C0;
extern Vec3f D_i1_80199FFC; extern Vec3f D_i1_80199FFC;
extern Limb* D_900D164; extern Limb* D_900D164[];
extern Limb* D_901C0F4; extern Limb* D_901C0F4[];
const char D_i1_8019B2B0[] = "--アタックオフ!!\n"; const char D_i1_8019B2B0[] = "--アタックオフ!!\n";
const char D_i1_8019B2C4[] = "--レベルアップ!!\n"; const char D_i1_8019B2C4[] = "--レベルアップ!!\n";
@ -351,7 +351,7 @@ void func_i1_801933B4(Actor* arg0) {
void func_i1_801934D0(Actor* actor) { void func_i1_801934D0(Actor* actor) {
Matrix_Translate(gGfxMatrix, 0.0f, -488.0f, 0.0f, 1U); Matrix_Translate(gGfxMatrix, 0.0f, -488.0f, 0.0f, 1U);
Animation_DrawSkeleton(0, &D_900D164, actor->vwork, NULL, NULL, actor, &gIdentityMatrix); Animation_DrawSkeleton(0, D_900D164, actor->vwork, NULL, NULL, actor, &gIdentityMatrix);
} }
void func_i1_80193540(Object_80* arg0) { void func_i1_80193540(Object_80* arg0) {
@ -383,7 +383,7 @@ void func_i1_80198594(Boss* boss) {
void func_i1_801985E4(Boss* boss) { void func_i1_801985E4(Boss* boss) {
if (boss->swork[26] == 0) { if (boss->swork[26] == 0) {
Animation_DrawSkeleton(0, &D_901C0F4, boss->vwork, func_i1_801937F4, func_i1_80193D64, boss, &gIdentityMatrix); Animation_DrawSkeleton(0, D_901C0F4, boss->vwork, func_i1_801937F4, func_i1_80193D64, boss, &gIdentityMatrix);
} }
boss->state = boss->swork[9]; boss->state = boss->swork[9];
} }

View File

@ -13,17 +13,17 @@ Vec3f D_i2_80195668 = { 90.0f, 0.0f, 0.0f };
extern Gfx D_60010C0[]; extern Gfx D_60010C0[];
extern Gfx D_6006810[]; extern Gfx D_6006810[];
extern Gfx D_6009C30[]; extern Gfx D_6009C30[];
extern AnimationHeader D_6009FF8; extern Animation D_6009FF8;
extern AnimationHeader D_600A2D4; extern Animation D_600A2D4;
extern AnimationHeader D_600F890; extern Animation D_600F890;
extern AnimationHeader D_60123BC; extern Animation D_60123BC;
extern AnimationHeader D_6013798; extern Animation D_6013798;
extern AnimationHeader D_60158C4; extern Animation D_60158C4;
extern AnimationHeader D_6016E28; extern Animation D_6016E28;
extern AnimationHeader D_601AA28; extern Animation D_601AA28;
extern AnimationHeader D_601C690; extern Animation D_601C690;
extern AnimationHeader D_60206DC; extern Animation D_60206DC;
extern Limb* D_6020C68; extern Limb* D_6020C68[];
extern Gfx D_6020D20[]; extern Gfx D_6020D20[];
extern Gfx D_603265C[]; extern Gfx D_603265C[];
extern Gfx D_6032768[]; extern Gfx D_6032768[];
@ -312,7 +312,7 @@ bool func_i2_8018FF40(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void*
} }
void func_i2_8018FF84(Boss* boss) { void func_i2_8018FF84(Boss* boss) {
Animation_DrawSkeleton(3, &D_6020C68, boss->vwork, func_i2_8018FF40, func_i2_80193208, boss, gCalcMatrix); Animation_DrawSkeleton(3, D_6020C68, boss->vwork, func_i2_8018FF40, func_i2_80193208, boss, gCalcMatrix);
} }
bool func_i2_8018FFDC(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* data) { bool func_i2_8018FFDC(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* data) {
@ -324,7 +324,7 @@ bool func_i2_8018FFDC(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void*
} }
void func_i2_80190020(Boss* boss) { void func_i2_80190020(Boss* boss) {
Animation_DrawSkeleton(3, &D_6020C68, boss->vwork, func_i2_8018FFDC, func_i2_80193208, boss, gCalcMatrix); Animation_DrawSkeleton(3, D_6020C68, boss->vwork, func_i2_8018FFDC, func_i2_80193208, boss, gCalcMatrix);
} }
void func_i2_80190078(Boss* boss) { void func_i2_80190078(Boss* boss) {
@ -1106,7 +1106,7 @@ void func_i2_80190078(Boss* boss) {
D_i2_80195640 = 1; D_i2_80195640 = 1;
Animation_DrawSkeleton(1, &D_6020C68, boss->vwork, func_i2_80192AF0, func_i2_80193208, boss, &gIdentityMatrix); Animation_DrawSkeleton(1, D_6020C68, boss->vwork, func_i2_80192AF0, func_i2_80193208, boss, &gIdentityMatrix);
if (((boss->swork[1] != 0) && (boss->swork[3] > 0)) && ((boss->fwork[4] < 45.0f) || (boss->fwork[4] > 315.0f))) { if (((boss->swork[1] != 0) && (boss->swork[3] > 0)) && ((boss->fwork[4] < 45.0f) || (boss->fwork[4] > 315.0f))) {
boss->swork[1]++; boss->swork[1]++;
@ -1364,7 +1364,7 @@ void func_i2_80193434(Boss* boss) {
if (boss->swork[5] == 0) { if (boss->swork[5] == 0) {
D_i2_80195640 = 0; D_i2_80195640 = 0;
Animation_DrawSkeleton(3, &D_6020C68, boss->vwork, func_i2_80192AF0, 0, boss, gCalcMatrix); Animation_DrawSkeleton(3, D_6020C68, boss->vwork, func_i2_80192AF0, 0, boss, gCalcMatrix);
RCP_SetupDL_64(); RCP_SetupDL_64();
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 96); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 96);

View File

@ -1415,7 +1415,7 @@ void func_i3_8018A464(Boss* bossA6, s32 arg1) {
} }
} else { } else {
bossA6->swork[A6_SWK_11] = 30; bossA6->swork[A6_SWK_11] = 30;
D_i3_801BF100[0].x = (Rand_ZeroOne() - 0.4f) * 30.0f; D_i3_801BF100[0].x = RAND_RANGE(-12.0f, 18.0f);
} }
D_i3_801BF394[0] = D_i3_801BF100[0].x; D_i3_801BF394[0] = D_i3_801BF100[0].x;
} else if (!(bossA6->swork[A6_SWK_11] & 7)) { } else if (!(bossA6->swork[A6_SWK_11] & 7)) {

6184
src/overlays/ovl_i3/fox_aq.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -46,7 +46,6 @@ typedef struct {
#define ZO_HIT_10(bossZO, index) ((Hitbox*) ((f32*) (ZO_HIT_8(bossZO, 0) + 2) + 6 * (index))) #define ZO_HIT_10(bossZO, index) ((Hitbox*) ((f32*) (ZO_HIT_8(bossZO, 0) + 2) + 6 * (index)))
#define ZO_HIT_12(bossZO) ((Hitbox*) (ZO_HIT_10(bossZO, 0) + 2)) #define ZO_HIT_12(bossZO) ((Hitbox*) (ZO_HIT_10(bossZO, 0) + 2))
void func_8007EE68(s32, Vec3f*, Vec3f*, Vec3f*, Vec3f*, f32);
void func_80081BEC(f32, f32, f32, f32, s32); void func_80081BEC(f32, f32, f32, f32, s32);
void func_8008377C(f32, f32, f32, f32, f32); void func_8008377C(f32, f32, f32, f32, f32);
void func_i3_801A7750(void); void func_i3_801A7750(void);
@ -62,6 +61,20 @@ void func_i3_80199394(Boss* bossZO, s32 arg1);
void func_i3_80199470(Boss* bossZO, s32 arg1); void func_i3_80199470(Boss* bossZO, s32 arg1);
void func_i3_8019962C(Boss* bossZO, f32 arg1); void func_i3_8019962C(Boss* bossZO, f32 arg1);
// /* 0x1 */ ROM_SEGMENT(ast_873CB0),
// /* 0x2 */ ROM_SEGMENT(ast_8AE0A0),
// /* 0x3 */ ROM_SEGMENT(ast_8BFC00),
// /* 0x4 */ ROM_SEGMENT(ast_918430),
// /* 0x5 */ ROM_SEGMENT(ast_CD2410),
// /* 0x6 */ ROM_SEGMENT(ast_B84560),
// /* 0x7 */ NO_SEGMENT,
// /* 0x8 */ NO_SEGMENT,
// /* 0x9 */ NO_SEGMENT,
// /* 0xA */ NO_SEGMENT,
// /* 0xB */ NO_SEGMENT,
// /* 0xC */ NO_SEGMENT,
// /* 0xD */ ROM_SEGMENT(ast_955270),
extern Gfx D_6002E10[]; extern Gfx D_6002E10[];
extern Gfx D_6004380[]; extern Gfx D_6004380[];
extern Gfx D_6006360[]; extern Gfx D_6006360[];
@ -69,25 +82,25 @@ extern Limb* D_600E7D8[];
extern Gfx D_6013330[]; extern Gfx D_6013330[];
extern Gfx D_6017950[]; extern Gfx D_6017950[];
extern Gfx D_60181E0[]; extern Gfx D_60181E0[];
extern AnimationHeader D_6018550; extern Animation D_6018550;
extern Limb* D_601863C[]; extern Limb* D_601863C[];
extern Gfx D_6018660[]; extern Gfx D_6018660[];
extern AnimationHeader D_60195EC; extern Animation D_60195EC;
extern Limb* D_6019738[]; extern Limb* D_6019738[];
extern AnimationHeader D_601996C; extern Animation D_601996C;
extern Limb* D_6019E18[]; extern Limb* D_6019E18[];
extern Gfx D_6019EB0[]; extern Gfx D_6019EB0[];
extern Gfx D_601A340[]; extern Gfx D_601A340[];
extern AnimationHeader D_601AA48; extern Animation D_601AA48;
extern Limb* D_601AB14[]; extern Limb* D_601AB14[];
extern AnimationHeader D_601AFB8; extern Animation D_601AFB8;
extern Limb* D_601B184[]; extern Limb* D_601B184[];
extern Gfx D_601BCC0[]; extern Gfx D_601BCC0[];
extern Gfx D_601C590[]; extern Gfx D_601C590[];
extern Gfx D_601D680[]; extern Gfx D_601D680[];
extern AnimationHeader D_601FBC4; extern Animation D_601FBC4;
extern Limb* D_601FC90[]; extern Limb* D_601FC90[];
extern AnimationHeader D_6021ABC; extern Animation D_6021ABC;
extern Limb* D_6021B88[]; extern Limb* D_6021B88[];
extern Gfx D_6023D50[]; extern Gfx D_6023D50[];
extern Gfx D_6025E60[]; extern Gfx D_6025E60[];
@ -177,7 +190,7 @@ typedef enum {
/* 38 */ ZO_LIMB_38, /* 38 */ ZO_LIMB_38,
/* 39 */ ZO_LIMB_39, /* 39 */ ZO_LIMB_39,
/* 40 */ ZO_LIMB_MAX, /* 40 */ ZO_LIMB_MAX,
} ZoLimbs; } BossZOLimbs;
typedef enum { typedef enum {
/* 0 */ ZO_BSF_0, /* 0 */ ZO_BSF_0,
@ -2509,8 +2522,8 @@ void func_i3_80194A84(Boss* bossZO) {
} }
func_8007C120(sZoFwork[ZO_BSF_55_X], sZoFwork[ZO_BSF_55_Y], sZoFwork[ZO_BSF_55_Z], bossZO->vel.x, func_8007C120(sZoFwork[ZO_BSF_55_X], sZoFwork[ZO_BSF_55_Y], sZoFwork[ZO_BSF_55_Z], bossZO->vel.x,
bossZO->vel.y, bossZO->vel.z, 0.2f, 10); bossZO->vel.y, bossZO->vel.z, 0.2f, 10);
func_8007D0E0(RAND_FLOAT_CENTERED(200.0f) + sZoFwork[ZO_BSF_55_X], func_8007D0E0(sZoFwork[ZO_BSF_55_X] + RAND_FLOAT_CENTERED(200.0f),
((Rand_ZeroOne() - 0.2f) * 800.0f) + sZoFwork[ZO_BSF_55_Y], sZoFwork[ZO_BSF_55_Z], 10.0f); sZoFwork[ZO_BSF_55_Y] + RAND_RANGE(-160.0f, 640.0f), sZoFwork[ZO_BSF_55_Z], 10.0f);
if (bossZO->timer_050 == 30) { if (bossZO->timer_050 == 30) {
Radio_PlayMessage(gMsg_ID_6079, RCID_BOSS_ZONESS); Radio_PlayMessage(gMsg_ID_6079, RCID_BOSS_ZONESS);
} }
@ -2596,8 +2609,8 @@ void func_i3_80194A84(Boss* bossZO) {
} }
if ((bossZO->timer_050 == 0) && (sZoSwork[ZO_BSS_26] != 0)) { if ((bossZO->timer_050 == 0) && (sZoSwork[ZO_BSS_26] != 0)) {
bossZO->timer_050 = 50; bossZO->timer_050 = 50;
sZoFwork[ZO_BSF_37_X] = (Rand_ZeroOne() - 0.3f) * 1100.0f; sZoFwork[ZO_BSF_37_X] = RAND_RANGE(-330.0f, 770.0f);
sZoFwork[ZO_BSF_40_X] = (Rand_ZeroOne() - 0.7f) * 800.0f; sZoFwork[ZO_BSF_40_X] = RAND_RANGE(-560.0f, 240.0f);
func_i3_801989FC(bossZO); func_i3_801989FC(bossZO);
} }
} else { } else {
@ -3253,7 +3266,7 @@ void func_i3_80198F3C(Boss* bossZO, s32 arg1, s32 arg2) {
sZoLimbTimers[ZO_LIMB_22 + 2 * arg1] = 15; sZoLimbTimers[ZO_LIMB_22 + 2 * arg1] = 15;
} }
func_8007D0E0(sZoFwork[ZO_BSF_0 + arg2] + RAND_FLOAT_CENTERED(400.0f), func_8007D0E0(sZoFwork[ZO_BSF_0 + arg2] + RAND_FLOAT_CENTERED(400.0f),
sZoFwork[ZO_BSF_1 + arg2] + (Rand_ZeroOne() - 0.2f) * 800.0f, sZoFwork[ZO_BSF_2 + arg2], 7.0f); sZoFwork[ZO_BSF_1 + arg2] + RAND_RANGE(-160.0f, 640.0f), sZoFwork[ZO_BSF_2 + arg2], 7.0f);
if (!(gGameFrameCount & 1)) { if (!(gGameFrameCount & 1)) {
func_8007C120(sZoFwork[ZO_BSF_0 + arg2], sZoFwork[ZO_BSF_1 + arg2], sZoFwork[ZO_BSF_2 + arg2], bossZO->vel.x, func_8007C120(sZoFwork[ZO_BSF_0 + arg2], sZoFwork[ZO_BSF_1 + arg2], sZoFwork[ZO_BSF_2 + arg2], bossZO->vel.x,
bossZO->vel.y, bossZO->vel.z, 0.2f, 10); bossZO->vel.y, bossZO->vel.z, 0.2f, 10);

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
#include "global.h" #include "global.h"
extern AnimationHeader D_6007854; extern Animation D_6007854;
extern Limb* D_6007980; extern Limb* D_6007980[];
extern u8 D_600FF64[]; extern u8 D_600FF64[];
s32 func_80090200(Boss* boss); s32 func_80090200(Boss* boss);
@ -576,7 +576,7 @@ void func_i4_80188FE4(Actor* actor) {
Vec3f vec[20]; Vec3f vec[20];
Animation_GetFrameData(&D_6007854, 0, vec); Animation_GetFrameData(&D_6007854, 0, vec);
Animation_DrawSkeleton(3, &D_6007980, vec, func_i4_80188F08, func_i4_80188DA0, actor, gCalcMatrix); Animation_DrawSkeleton(3, D_6007980, vec, func_i4_80188F08, func_i4_80188DA0, actor, gCalcMatrix);
if (actor->state == 1) { if (actor->state == 1) {
actor->state = 2; actor->state = 2;

View File

@ -14,32 +14,32 @@ extern f32 D_603605C[];
extern Gfx D_6010470[]; extern Gfx D_6010470[];
extern Gfx D_6003370[]; extern Gfx D_6003370[];
extern Gfx D_6004440[]; extern Gfx D_6004440[];
extern AnimationHeader D_600FEC4; extern Animation D_600FEC4;
extern AnimationHeader D_6010144; extern Animation D_6010144;
extern AnimationHeader D_6010220; extern Animation D_6010220;
extern Limb* D_601042C[]; extern Limb* D_601042C[];
extern Gfx D_6017720[]; extern Gfx D_6017720[];
extern Gfx D_601BE90[]; extern Gfx D_601BE90[];
extern AnimationHeader D_601EAB0; extern Animation D_601EAB0;
extern Limb* D_601EBBC; extern Limb* D_601EBBC;
extern Gfx D_6022200[]; extern Gfx D_6022200[];
extern Gfx D_60227F0[]; extern Gfx D_60227F0[];
extern Gfx D_60239D0[]; extern Gfx D_60239D0[];
extern Gfx D_6024670[]; extern Gfx D_6024670[];
extern Gfx D_60269E0[]; extern Gfx D_60269E0[];
extern AnimationHeader D_6027A04; extern Animation D_6027A04;
extern Limb* D_6027AF0[]; extern Limb* D_6027AF0[];
extern Gfx D_6027BF0[]; extern Gfx D_6027BF0[];
extern Gfx D_6027D40[]; extern Gfx D_6027D40[];
extern Gfx D_6027EB0[]; extern Gfx D_6027EB0[];
extern Gfx D_60288A0[]; extern Gfx D_60288A0[];
extern AnimationHeader D_602EA0C; extern Animation D_602EA0C;
extern Limb* D_602EBB8[]; extern Limb* D_602EBB8[];
extern Gfx D_6001180[]; extern Gfx D_6001180[];
extern Gfx D_60014A0[]; extern Gfx D_60014A0[];
extern Gfx D_601C170[]; extern Gfx D_601C170[];
extern Gfx D_6022610[]; extern Gfx D_6022610[];
extern AnimationHeader D_6025CA0; extern Animation D_6025CA0;
extern Limb* D_6025DAC[]; extern Limb* D_6025DAC[];
extern Gfx D_6026860[]; extern Gfx D_6026860[];
extern Gfx D_602D380[]; extern Gfx D_602D380[];
@ -62,18 +62,18 @@ extern Gfx D_600A4D0[];
extern Gfx D_600A7D0[]; extern Gfx D_600A7D0[];
extern Gfx D_600AA70[]; extern Gfx D_600AA70[];
extern Gfx D_600AD50[]; extern Gfx D_600AD50[];
extern AnimationHeader D_600C4D0; extern Animation D_600C4D0;
extern Limb* D_600C65C[]; extern Limb* D_600C65C[];
extern f32 D_603648C[]; extern f32 D_603648C[];
extern Gfx D_602F380[]; extern Gfx D_602F380[];
extern AnimationHeader D_602FEB4; extern Animation D_602FEB4;
extern Limb* D_602FFA0[]; extern Limb* D_602FFA0[];
extern Gfx D_602FFC0[]; extern Gfx D_602FFC0[];
extern Gfx D_601A2B0[]; extern Gfx D_601A2B0[];
extern f32 D_6036520[]; extern f32 D_6036520[];
extern AnimationHeader D_602F098; extern Animation D_602F098;
extern Limb* D_602F264[]; extern Limb* D_602F264[];
extern AnimationHeader D_602F2E0; extern Animation D_602F2E0;
extern Limb* D_602F36C[]; extern Limb* D_602F36C[];
extern Gfx D_601A840[]; extern Gfx D_601A840[];
extern Gfx D_6012A60[]; extern Gfx D_6012A60[];
@ -82,16 +82,16 @@ extern Gfx D_6025850[];
extern Gfx D_60257B0[]; extern Gfx D_60257B0[];
extern Gfx D_601F270[]; extern Gfx D_601F270[];
extern u16 D_6012C98[]; extern u16 D_6012C98[];
extern AnimationHeader D_600CD18; extern Animation D_600CD18;
extern AnimationHeader D_6015C24; extern Animation D_6015C24;
extern AnimationHeader D_6016040; extern Animation D_6016040;
extern AnimationHeader D_60163F0; extern Animation D_60163F0;
extern AnimationHeader D_6016B2C; extern Animation D_6016B2C;
extern AnimationHeader D_6017714; extern Animation D_6017714;
extern AnimationHeader D_601D188; extern Animation D_601D188;
extern f32 D_6036818[]; extern f32 D_6036818[];
extern Limb* D_600D1E4[]; extern Limb* D_600D1E4[];
extern AnimationHeader D_601EA28; extern Animation D_601EA28;
extern f32 D_6035A94[]; extern f32 D_6035A94[];
extern ObjectInit D_6035678[]; extern ObjectInit D_6035678[];
extern ObjectInit D_60357CC[]; extern ObjectInit D_60357CC[];
@ -340,7 +340,7 @@ void func_i5_80199920(void) {
D_i5_801BE250[6] = 0.0f; D_i5_801BE250[6] = 0.0f;
D_i5_801BE250[16] = 0.0f; D_i5_801BE250[16] = 0.0f;
D_i5_801BE250[20] = 0.0f; D_i5_801BE250[20] = 0.0f;
D_i5_801BA1E8 = 0x62; D_i5_801BA1E8 = 98;
D_i5_801BA1E0 = 1e7f; D_i5_801BA1E0 = 1e7f;
D_i5_801BE310 = 999; D_i5_801BE310 = 999;
D_i5_801BE312 = 0; D_i5_801BE312 = 0;
@ -515,7 +515,7 @@ void func_i5_80199F8C(Actor* actor) {
void func_i5_8019A128(void) { void func_i5_8019A128(void) {
func_i5_80199C20(D_6023228, 16, 16, 0, 8); func_i5_80199C20(D_6023228, 16, 16, 0, 8);
func_i5_80199A40(D_6023388, D_Unk_800DB4B8, (f32) gGameFrameCount * -20.0f); func_i5_80199A40(D_6023388, D_Unk_800DB4B8, gGameFrameCount * -20.0f);
} }
void func_i5_8019A198(Actor* actor) { void func_i5_8019A198(Actor* actor) {
@ -531,7 +531,7 @@ void func_i5_8019A198(Actor* actor) {
func_8001CFA8(actor->vel.z); func_8001CFA8(actor->vel.z);
} }
func_8001D10C(actor->sfxPos, 0x31078085); func_8001D10C(actor->sfxPos, 0x31078085);
D_i5_801BE310 = (s16) actor->iwork[5]; D_i5_801BE310 = actor->iwork[5];
} }
D_i5_801BA1E0 = actor->obj.pos.z; D_i5_801BA1E0 = actor->obj.pos.z;
if (D_i5_801BE313 != 0) { if (D_i5_801BE313 != 0) {
@ -2046,14 +2046,15 @@ void func_i5_801A0BD8(Object_80* obj80) {
break; break;
} }
if (obj80->timer_4C != 0) { if (obj80->timer_4C != 0) {
obj80->vel.z = Rand_ZeroOne() + 2.0f; obj80->vel.z = 2.0f + RAND_FLOAT(1.0f);
} else { } else {
obj80->vel.z = Rand_ZeroOne() + 1.0f; obj80->vel.z = 1.0f + RAND_FLOAT(1.0f);
} }
} }
bool func_i5_801A0DD8(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* data) { bool func_i5_801A0DD8(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* data) {
Object_80* obj80 = (Object_80*) data; Object_80* obj80 = (Object_80*) data;
if (limbIndex == 5) { if (limbIndex == 5) {
rot->y += obj80->vel.y; rot->y += obj80->vel.y;
} }
@ -2973,7 +2974,7 @@ void func_i5_801A46A0(Actor* actor) {
} }
actor->fwork[0] /= 1.2f + Rand_ZeroOne() / 2; actor->fwork[0] /= 1.2f + Rand_ZeroOne() / 2;
actor->unk_046 -= 1; actor->unk_046--;
actor->vel.z /= 1.5f; actor->vel.z /= 1.5f;
if (actor->unk_046 == 0) { if (actor->unk_046 == 0) {
actor->timer_0BE = RAND_INT(30.0f); actor->timer_0BE = RAND_INT(30.0f);
@ -3503,7 +3504,7 @@ void func_i5_801A68F8(Actor* actor, s16 arg1, f32 arg2, f32 arg3, f32 arg4, f32
gUnkEntities30[arg1].unk_04.y = arg3; gUnkEntities30[arg1].unk_04.y = arg3;
gUnkEntities30[arg1].unk_28 = 5.0f; gUnkEntities30[arg1].unk_28 = 5.0f;
gUnkEntities30[arg1].unk_2C = gUnkEntities30[arg1].unk_2D = gUnkEntities30[arg1].unk_2E = gUnkEntities30[arg1].unk_2C = gUnkEntities30[arg1].unk_2D = gUnkEntities30[arg1].unk_2E =
gUnkEntities30[arg1].unk_2F = 0xFF; gUnkEntities30[arg1].unk_2F = 255;
gUnkEntities30[arg1].timer = 3; gUnkEntities30[arg1].timer = 3;
gUnkEntities30[arg1].unk_04.z = arg4; gUnkEntities30[arg1].unk_04.z = arg4;
gUnkEntities30[arg1].unk_10.x = arg5; gUnkEntities30[arg1].unk_10.x = arg5;
@ -3512,23 +3513,22 @@ void func_i5_801A68F8(Actor* actor, s16 arg1, f32 arg2, f32 arg3, f32 arg4, f32
} }
void func_i5_801A6984(Actor* actor) { void func_i5_801A6984(Actor* actor) {
s16 var_s3;
f32 temp_fa0; f32 temp_fa0;
f32 temp_fa1;
f32 temp_fs0; f32 temp_fs0;
f32 temp_fs1; f32 temp_fa1;
f32 temp_fs2_2;
f32 temp_fs3; f32 temp_fs3;
s32 var_s4;
f32 temp_fs2_2;
f32 temp_fs3_2; f32 temp_fs3_2;
f32 temp_fs4; f32 temp_fs4;
f32 var_fs5;
f32 spA8; f32 spA8;
f32 temp; f32 var_fs5;
f32 spA0; f32 spA0;
f32 sp9C; f32 sp9C;
f32 sp78; f32 temp;
s16 temp_a1; s32 pad1;
s16 var_s3; s32 pad2;
s32 var_s4;
s32 i; s32 i;
f32 sp88; f32 sp88;
f32 sp84; f32 sp84;
@ -3546,14 +3546,11 @@ void func_i5_801A6984(Actor* actor) {
if (var_s4 == 0) { if (var_s4 == 0) {
var_s4 = 1; var_s4 = 1;
} }
sp78 = (f32) var_s4;
spA8 = (180.0f / var_s4) + 1.0f; spA8 = (180.0f / var_s4) + 1.0f;
var_fs5 = actor->obj.pos.x; var_fs5 = actor->obj.pos.x;
spA0 = actor->obj.pos.y; spA0 = actor->obj.pos.y;
sp9C = actor->obj.pos.z; sp9C = actor->obj.pos.z;
sp88 = (D_i5_801BE368[4] - actor->obj.pos.x) / var_s4; sp88 = (D_i5_801BE368[4] - actor->obj.pos.x) / var_s4;
sp84 = (D_i5_801BE368[5] - actor->obj.pos.y) / var_s4; sp84 = (D_i5_801BE368[5] - actor->obj.pos.y) / var_s4;
sp80 = (D_i5_801BE368[6] - actor->obj.pos.z) / var_s4; sp80 = (D_i5_801BE368[6] - actor->obj.pos.z) / var_s4;
@ -3563,13 +3560,11 @@ void func_i5_801A6984(Actor* actor) {
} else { } else {
Math_SmoothStepToF(&D_i5_801BE368[7], 100.0f, 0.01f, 0.01f, 0.01f); Math_SmoothStepToF(&D_i5_801BE368[7], 100.0f, 0.01f, 0.01f, 0.01f);
} }
temp = SIN_DEG(i * spA8) * (-(D_i5_801BE368[7] * 3.0f) * (1.0f - ((f32) i / var_s4)));
temp = SIN_DEG(i * spA8) * (-(D_i5_801BE368[7] * 3.0f) * (1.0f - (i / sp78)));
temp_a1 = var_s3++;
temp_fs2_2 = actor->obj.pos.x + (sp88 * i); temp_fs2_2 = actor->obj.pos.x + (sp88 * i);
temp_fs3_2 = actor->obj.pos.y + (sp84 * i) + temp; temp_fs3_2 = actor->obj.pos.y + (sp84 * i) + temp;
temp_fs4 = actor->obj.pos.z + (sp80 * i); temp_fs4 = actor->obj.pos.z + (sp80 * i);
func_i5_801A68F8(actor, temp_a1, var_fs5, spA0, sp9C, temp_fs2_2, temp_fs3_2, temp_fs4); func_i5_801A68F8(actor, var_s3++, var_fs5, spA0, sp9C, temp_fs2_2, temp_fs3_2, temp_fs4);
var_fs5 = temp_fs2_2; var_fs5 = temp_fs2_2;
spA0 = temp_fs3_2; spA0 = temp_fs3_2;
sp9C = temp_fs4; sp9C = temp_fs4;
@ -4360,12 +4355,12 @@ void func_i5_801A7E7C(Actor* actor) {
spC6 = RAND_INT(5.0f); spC6 = RAND_INT(5.0f);
for (i = 0; i < 10; i++) { for (i = 0; i < 10; i++) {
func_i5_801AE610(actor->vwork[0].x, actor->vwork[0].y + 100.0f, actor->vwork[0].z, func_i5_801AE610(actor->vwork[0].x, actor->vwork[0].y + 100.0f, actor->vwork[0].z,
RAND_FLOAT_CENTERED(35.0f), RAND_FLOAT(80.0f) + 90.0f, RAND_FLOAT_CENTERED(35.0f), RAND_FLOAT(80) + 90.0f, RAND_RANGE(-72.0f, 8.0f),
(Rand_ZeroOne() - 0.9f) * 80.0f, spC6); spC6);
} }
for (i = 0; i < 20; i++) { for (i = 0; i < 20; i++) {
func_i5_801AD624(actor->vwork[0].x, (actor->vwork[0].y + 50.0f) + RAND_FLOAT(50.0f), func_i5_801AD624(actor->vwork[0].x, actor->vwork[0].y + 50.0f + RAND_FLOAT(50.0f),
actor->vwork[0].z, RAND_FLOAT_CENTERED(10.0f), RAND_FLOAT(5.0f), actor->vwork[0].z, RAND_FLOAT_CENTERED(10.0f), RAND_FLOAT(5.0f),
actor->vel.z + 2.0f, RAND_FLOAT(360.0f), RAND_FLOAT(360.0f), RAND_FLOAT(360.0f), actor->vel.z + 2.0f, RAND_FLOAT(360.0f), RAND_FLOAT(360.0f), RAND_FLOAT(360.0f),
RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT_CENTERED(30.0f),
@ -4419,7 +4414,7 @@ void func_i5_801A7E7C(Actor* actor) {
sp360.z = RAND_FLOAT(200.0f) + 100.0f; sp360.z = RAND_FLOAT(200.0f) + 100.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp360, &sp354); Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp360, &sp354);
D_i5_801BE368[23] = 1.0f; D_i5_801BE368[23] = 1.0f;
func_i5_801AE800((actor->vwork[2].x + sp354.x) - 50.0f, actor->vwork[2].y + sp354.y + 100.0f, func_i5_801AE800(actor->vwork[2].x + sp354.x - 50.0f, actor->vwork[2].y + sp354.y + 100.0f,
actor->vwork[2].z + sp354.z, actor->vwork[2].x, actor->vwork[2].y, actor->vwork[2].z); actor->vwork[2].z + sp354.z, actor->vwork[2].x, actor->vwork[2].y, actor->vwork[2].z);
D_i5_801BE368[23] = 2.0f; D_i5_801BE368[23] = 2.0f;
func_i5_801AE800(actor->vwork[4].x + sp354.x + 50.0f, actor->vwork[4].y + sp354.y + 100.0f, func_i5_801AE800(actor->vwork[4].x + sp354.x + 50.0f, actor->vwork[4].y + sp354.y + 100.0f,
@ -4453,7 +4448,7 @@ void func_i5_801A7E7C(Actor* actor) {
Math_SmoothStepToF(&actor->obj.pos.z, gPlayer[0].unk_138 - 250.0f, 0.1f, 15.0f, 0.01f); Math_SmoothStepToF(&actor->obj.pos.z, gPlayer[0].unk_138 - 250.0f, 0.1f, 15.0f, 0.01f);
Math_SmoothStepToF(&actor->obj.pos.y, 250.0f, 0.1f, 10.0f, 0.01f); Math_SmoothStepToF(&actor->obj.pos.y, 250.0f, 0.1f, 10.0f, 0.01f);
if (D_i5_801BE320[3] < (Animation_GetFrameCount(&D_6015C24) - 1)) { if (D_i5_801BE320[3] < (Animation_GetFrameCount(&D_6015C24) - 1)) {
D_i5_801BE320[3] = (s16) (D_i5_801BE320[3] + 1); D_i5_801BE320[3]++;
} }
func_i5_8019A198(actor); func_i5_8019A198(actor);
func_i5_801A6984(actor); func_i5_801A6984(actor);
@ -4476,14 +4471,14 @@ void func_i5_801A7E7C(Actor* actor) {
actor->vwork[6].z += actor->vel.z; actor->vwork[6].z += actor->vel.z;
actor->vwork[7].z += actor->vel.z; actor->vwork[7].z += actor->vel.z;
sp348.x = actor->vwork[6].x - actor->vwork[2].x; sp348.x = actor->vwork[6].x - actor->vwork[2].x;
sp348.y = (actor->vwork[6].y - actor->vwork[2].y) + 25.0f; sp348.y = actor->vwork[6].y - actor->vwork[2].y + 25.0f;
sp348.z = actor->vwork[6].z - actor->vwork[2].z; sp348.z = actor->vwork[6].z - actor->vwork[2].z;
Matrix_RotateZ(gCalcMatrix, -actor->vwork[3].z * M_DTOR, 0); Matrix_RotateZ(gCalcMatrix, -actor->vwork[3].z * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, -actor->vwork[3].x * M_DTOR, 1); Matrix_RotateX(gCalcMatrix, -actor->vwork[3].x * M_DTOR, 1);
Matrix_RotateY(gCalcMatrix, -actor->vwork[3].y * M_DTOR, 1); Matrix_RotateY(gCalcMatrix, -actor->vwork[3].y * M_DTOR, 1);
Matrix_MultVec3f(gCalcMatrix, &sp348, &sp354); Matrix_MultVec3f(gCalcMatrix, &sp348, &sp354);
D_i5_801BE368[14] = Math_RadToDeg(Math_Atan2F(sp354.x, sp354.z)); D_i5_801BE368[14] = Math_RadToDeg(Math_Atan2F(sp354.x, sp354.z));
temp = sqrtf((sp354.x * sp354.x) + (sp354.z * sp354.z)); temp = sqrtf(SQ(sp354.x) + SQ(sp354.z));
D_i5_801BE368[13] = Math_RadToDeg(-Math_Atan2F(sp354.y, temp)); D_i5_801BE368[13] = Math_RadToDeg(-Math_Atan2F(sp354.y, temp));
Matrix_RotateY(gCalcMatrix, actor->vwork[3].y * M_DTOR, 0); Matrix_RotateY(gCalcMatrix, actor->vwork[3].y * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, actor->vwork[3].x * M_DTOR, 1); Matrix_RotateX(gCalcMatrix, actor->vwork[3].x * M_DTOR, 1);
@ -4500,7 +4495,7 @@ void func_i5_801A7E7C(Actor* actor) {
sp330.z = actor->vwork[3].z; sp330.z = actor->vwork[3].z;
func_8007EE68(OBJ_EFFECT_380, &sp348, &sp33C, &sp330, &D_i5_801BA750, 5.0f); func_8007EE68(OBJ_EFFECT_380, &sp348, &sp33C, &sp330, &D_i5_801BA750, 5.0f);
sp348.x = actor->vwork[7].x - actor->vwork[4].x; sp348.x = actor->vwork[7].x - actor->vwork[4].x;
sp348.y = (actor->vwork[7].y - actor->vwork[4].y) + 25.0f; sp348.y = actor->vwork[7].y - actor->vwork[4].y + 25.0f;
sp348.z = actor->vwork[7].z - actor->vwork[4].z; sp348.z = actor->vwork[7].z - actor->vwork[4].z;
Matrix_RotateZ(gCalcMatrix, -actor->vwork[5].z * M_DTOR, 0); Matrix_RotateZ(gCalcMatrix, -actor->vwork[5].z * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, -actor->vwork[5].x * M_DTOR, 1); Matrix_RotateX(gCalcMatrix, -actor->vwork[5].x * M_DTOR, 1);
@ -4543,7 +4538,7 @@ void func_i5_801A7E7C(Actor* actor) {
func_i5_801A0308(actor, actor->obj.pos.z, actor->obj.rot.y, 0); func_i5_801A0308(actor, actor->obj.pos.z, actor->obj.rot.y, 0);
Math_SmoothStepToF(&actor->obj.pos.x, gPlayer[0].pos.x, 0.1f, 10.0f, 0.01f); Math_SmoothStepToF(&actor->obj.pos.x, gPlayer[0].pos.x, 0.1f, 10.0f, 0.01f);
Math_SmoothStepToF(&actor->obj.pos.z, gPlayer[0].unk_138 - 1200.0f, 0.1f, 35.0f, 0.01f); Math_SmoothStepToF(&actor->obj.pos.z, gPlayer[0].unk_138 - 1200.0f, 0.1f, 35.0f, 0.01f);
Math_SmoothStepToF(&actor->obj.pos.y, (actor->fwork[5] + 600.0f) + D_i5_801BE368[3], 0.1f, 20.0f, 10.0f); Math_SmoothStepToF(&actor->obj.pos.y, actor->fwork[5] + 600.0f + D_i5_801BE368[3], 0.1f, 20.0f, 10.0f);
if (D_i5_801BE368[3] < ((gPlayer[0].unk_138 - actor->obj.pos.z) / 5.0f)) { if (D_i5_801BE368[3] < ((gPlayer[0].unk_138 - actor->obj.pos.z) / 5.0f)) {
Math_SmoothStepToF(&D_i5_801BE368[2], 15.0f, 0.2f, 2.0f, 0.01f); Math_SmoothStepToF(&D_i5_801BE368[2], 15.0f, 0.2f, 2.0f, 0.01f);
D_i5_801BE368[3] += D_i5_801BE368[2]; D_i5_801BE368[3] += D_i5_801BE368[2];
@ -4617,7 +4612,7 @@ void func_i5_801A7E7C(Actor* actor) {
Audio_PlaySfx(0x2903300E, actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); Audio_PlaySfx(0x2903300E, actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
actor->iwork[7] = 15; actor->iwork[7] = 15;
D_i5_801BE320[9] -= actor->damage; D_i5_801BE320[9] -= actor->damage;
func_i5_801AD624(actor->obj.pos.x, actor->obj.pos.y + 80.0f, actor->obj.pos.z + 50.0f, func_i5_801AD624(actor->obj.pos.x, actor->obj.pos.y + 80, actor->obj.pos.z + 50.0f,
RAND_FLOAT_CENTERED(10.0f), RAND_FLOAT(5.0f), RAND_FLOAT_CENTERED(3.0f), RAND_FLOAT_CENTERED(10.0f), RAND_FLOAT(5.0f), RAND_FLOAT_CENTERED(3.0f),
RAND_FLOAT(360.0f), RAND_FLOAT(360.0f), RAND_FLOAT(360.0f), RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT(360.0f), RAND_FLOAT(360.0f), RAND_FLOAT(360.0f), RAND_FLOAT_CENTERED(30.0f),
RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT_CENTERED(30.0f), (s32) (RAND_FLOAT(50.0f) + 70.0f), RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT_CENTERED(30.0f), (s32) (RAND_FLOAT(50.0f) + 70.0f),
@ -4687,9 +4682,9 @@ void func_i5_801A7E7C(Actor* actor) {
Radio_PlayMessage(gMsg_ID_2225, RCID_SLIPPY); Radio_PlayMessage(gMsg_ID_2225, RCID_SLIPPY);
} else if (gBossFrameCount > 155) { } else if (gBossFrameCount > 155) {
gShowBossHealth = 1; gShowBossHealth = 1;
gBossHealthBar = (s32) (((f32) D_i5_801BE320[29] / 250) * 85.0f); gBossHealthBar = (s32) ((D_i5_801BE320[29] / 250.f) * 85.0f);
gBossHealthBar += (s32) (((f32) D_i5_801BE320[9] / 200) * 85.0f); gBossHealthBar += (s32) ((D_i5_801BE320[9] / 200.f) * 85.0f);
gBossHealthBar += (s32) (((f32) D_i5_801BE320[10] / 250) * 85.0f); gBossHealthBar += (s32) ((D_i5_801BE320[10] / 250.f) * 85.0f);
} }
gBossFrameCount++; gBossFrameCount++;
} }

View File

@ -344,7 +344,7 @@ void func_i6_80188528(Actor* actor) {
actor->unk_0F4.z += actor->fwork[0]; actor->unk_0F4.z += actor->fwork[0];
} }
extern Gfx* D_6009300; extern Gfx D_6009300[];
void func_i6_80188660(Actor* actor) { void func_i6_80188660(Actor* actor) {
RCP_SetupDL(&gMasterDisp, 0x3D); RCP_SetupDL(&gMasterDisp, 0x3D);
@ -355,7 +355,7 @@ void func_i6_80188660(Actor* actor) {
Matrix_Scale(gGfxMatrix, 1.1f, 0.9f, 1.0f, 1); Matrix_Scale(gGfxMatrix, 1.1f, 0.9f, 1.0f, 1);
Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 1.0f, 1); Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 1.0f, 1);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, &D_6009300); gSPDisplayList(gMasterDisp++, D_6009300);
} }
void func_i6_801887B0(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel) { void func_i6_801887B0(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel) {
@ -469,7 +469,7 @@ void func_i6_80188A4C(Boss* boss) {
} }
} }
extern AnimationHeader D_600C038; extern Animation D_600C038;
void func_i6_80188CB8(Boss* boss) { void func_i6_80188CB8(Boss* boss) {
s32 i; s32 i;
@ -1214,8 +1214,8 @@ s32 func_i6_8018B47C(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* d
} }
extern Limb* D_600C0A4[]; extern Limb* D_600C0A4[];
extern Gfx* D_600C2D0; extern Gfx D_600C2D0[];
extern Gfx* D_600C560; extern Gfx D_600C560[];
void func_i6_8018B8C0(Boss* boss) { void func_i6_8018B8C0(Boss* boss) {
s32 j; s32 j;
@ -1262,9 +1262,9 @@ void func_i6_8018B8C0(Boss* boss) {
Matrix_Translate(gGfxMatrix, 0.0f, -5.0f, 0.0f, 1); Matrix_Translate(gGfxMatrix, 0.0f, -5.0f, 0.0f, 1);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
if (j == 9) { if (j == 9) {
gSPDisplayList(gMasterDisp++, &D_600C2D0); gSPDisplayList(gMasterDisp++, D_600C2D0);
} else { } else {
gSPDisplayList(gMasterDisp++, &D_600C560); gSPDisplayList(gMasterDisp++, D_600C560);
} }
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
} }
@ -1554,7 +1554,7 @@ void func_i6_8018CAD4(Effect* effect) {
} }
} }
extern Gfx* D_2010A30; extern Gfx D_2010A30[];
static Gfx* D_i6_801A6790[10] = { static Gfx* D_i6_801A6790[10] = {
D_C001880, D_C001880, D_C001880, D_C001880, D_C001880, D_C001880, D_C001880, D_C001880, D_3016660, D_3015D80, D_C001880, D_C001880, D_C001880, D_C001880, D_C001880, D_C001880, D_C001880, D_C001880, D_3016660, D_3015D80,
}; };
@ -1565,7 +1565,7 @@ void func_i6_8018CF98(Effect* effect) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, effect->unk_44); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, effect->unk_44);
Matrix_Scale(gGfxMatrix, effect->scale2, effect->scale2, effect->scale2, 1); Matrix_Scale(gGfxMatrix, effect->scale2, effect->scale2, effect->scale2, 1);
Matrix_SetGfxMtx(&gMasterDisp); Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, &D_2010A30); gSPDisplayList(gMasterDisp++, D_2010A30);
} else { } else {
RCP_SetupDL(&gMasterDisp, 0x1D); RCP_SetupDL(&gMasterDisp, 0x1D);
if (effect->unk_4C < 8) { if (effect->unk_4C < 8) {
@ -1789,24 +1789,24 @@ void func_i6_8018DA94(Boss* boss, Vec3f* arg1) {
Audio_PlaySfx(0x2903B009, boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); Audio_PlaySfx(0x2903B009, boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
} }
extern AnimationHeader D_C00208C; extern Animation D_C00208C;
extern AnimationHeader D_C002654; extern Animation D_C002654;
extern AnimationHeader D_C002B08; extern Animation D_C002B08;
extern AnimationHeader D_C006F08; extern Animation D_C006F08;
extern AnimationHeader D_C00DE48; extern Animation D_C00DE48;
extern AnimationHeader D_C00E598; extern Animation D_C00E598;
extern AnimationHeader D_C017050; extern Animation D_C017050;
extern AnimationHeader D_C017430; extern Animation D_C017430;
extern AnimationHeader D_C018BC4; extern Animation D_C018BC4;
extern AnimationHeader D_C023B54; extern Animation D_C023B54;
extern AnimationHeader D_C0240D0; extern Animation D_C0240D0;
extern AnimationHeader D_C025C00; extern Animation D_C025C00;
extern AnimationHeader D_C029F74; extern Animation D_C029F74;
extern AnimationHeader D_C02E494; extern Animation D_C02E494;
extern AnimationHeader D_C02EDA0; extern Animation D_C02EDA0;
extern AnimationHeader D_C030244; extern Animation D_C030244;
extern AnimationHeader D_C033780; extern Animation D_C033780;
extern AnimationHeader D_C033D98; extern Animation D_C033D98;
static f32 D_i6_801A67B8[] = { 0.0f, 0.0f, 0.0f }; static f32 D_i6_801A67B8[] = { 0.0f, 0.0f, 0.0f };
@ -3172,7 +3172,7 @@ void func_i6_801924B4(s32 limbIndex, Vec3f* rot, void* data) {
} }
} }
extern Limb* D_C01CC3C; extern Limb* D_C01CC3C[];
void func_i6_801928C8(Boss* boss) { void func_i6_801928C8(Boss* boss) {
@ -3185,7 +3185,7 @@ void func_i6_801928C8(Boss* boss) {
D_i6_801A7F74, D_i6_801A7F7C, D_i6_801A8430); D_i6_801A7F74, D_i6_801A7F7C, D_i6_801A8430);
} }
Matrix_Scale(gCalcMatrix, 10.0f, 10.0f, 10.0f, 1); Matrix_Scale(gCalcMatrix, 10.0f, 10.0f, 10.0f, 1);
Animation_DrawSkeleton(2, &D_C01CC3C, D_i6_801A7F80, func_i6_801917F0, func_i6_801924B4, boss, gCalcMatrix); Animation_DrawSkeleton(2, D_C01CC3C, D_i6_801A7F80, func_i6_801917F0, func_i6_801924B4, boss, gCalcMatrix);
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);
Matrix_Push(&gGfxMatrix); Matrix_Push(&gGfxMatrix);
if (boss->fwork[20] > 0.05f) { if (boss->fwork[20] > 0.05f) {
@ -3303,11 +3303,11 @@ void func_i6_80192E94(Actor* actor) {
} }
} }
extern Gfx* D_6007E20; extern Gfx D_6007E20[];
void func_i6_80193244(Actor* actor) { void func_i6_80193244(Actor* actor) {
gSPDisplayList(gMasterDisp++, &D_6007E20); gSPDisplayList(gMasterDisp++, D_6007E20);
if (actor->timer_0BC != 0) { if (actor->timer_0BC != 0) {
f32 scale; f32 scale;
u8 alpha; u8 alpha;
@ -3328,7 +3328,7 @@ void func_i6_80193244(Actor* actor) {
} }
} }
extern Gfx* D_C038AC4; extern Gfx D_C038AC4[];
void func_i6_80193380(Object_80* obj80) { void func_i6_80193380(Object_80* obj80) {

View File

@ -1,20 +1,20 @@
#include "global.h" #include "global.h"
extern AnimationHeader D_6003348; extern Animation D_6003348;
extern AnimationHeader D_60034C4; extern Animation D_60034C4;
extern Gfx D_6013600[]; extern Gfx D_6013600[];
extern Gfx D_6014A40[]; extern Gfx D_6014A40[];
extern Gfx D_6014BD0[]; extern Gfx D_6014BD0[];
extern Gfx D_601F3D0[]; extern Gfx D_601F3D0[];
extern AnimationHeader D_60258A0; extern Animation D_60258A0;
extern AnimationHeader D_602645C; extern Animation D_602645C;
extern AnimationHeader D_60265B4; extern Animation D_60265B4;
extern AnimationHeader D_602738C; extern Animation D_602738C;
extern AnimationHeader D_6029B48; extern Animation D_6029B48;
extern AnimationHeader D_602A2CC; extern Animation D_602A2CC;
extern AnimationHeader D_602B778; extern Animation D_602B778;
extern AnimationHeader D_602B8DC; extern Animation D_602B8DC;
extern AnimationHeader D_602CEB4; extern Animation D_602CEB4;
extern Limb* D_602D140[]; extern Limb* D_602D140[];
extern f32 D_60340C0[]; extern f32 D_60340C0[];
extern f32 D_6034124[]; extern f32 D_6034124[];

View File

@ -14,7 +14,7 @@ s32 func_i6_8019624C(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* d
return false; return false;
} }
extern AnimationHeader D_6014904; extern Animation D_6014904;
extern Limb* D_60149D0[]; extern Limb* D_60149D0[];
void func_i6_80196288(Boss* boss) { void func_i6_80196288(Boss* boss) {

View File

@ -6170,185 +6170,31 @@ void func_menu_801AC80C(s32 arg0) {
u32 padding_801B6B34[3] = { 0, 0, 0 }; u32 padding_801B6B34[3] = { 0, 0, 0 };
UnkStruct_D_menu_801B8294 D_menu_801B6B40[] = { UnkStruct_D_menu_801B8294 D_menu_801B6B40[] = {
{ { 0.0f, 260.47226f, 1477.2115f, 0.0f, -17.364819f, -98.480774f },
0.0, { 0.0f, 20.159666f, 759.7326f, 0.0f, -2.652588f, -99.96481f },
260.4722595214844, { -45.790363f, 0.712088f, 336.90164f, 13.467754f, -0.209438f, -99.08872f },
1477.2115478515625, { -59.033607f, -7.952868f, 104.171906f, 49.19467f, 6.62739f, -86.80992f },
0.0, { -39.374687f, 50.69824f, 40.264343f, 65.62447f, -4.497063f, -67.10724f },
-17.364818572998047, { -57.28257f, 48.529156f, -34.806377f, 95.470955f, 7.118073f, -11.322705f },
-98.48077392578125, { -64.80925f, 53.131527f, -77.35162f, 81.011566f, 3.335592f, 15.689522f },
}, { -32.061317f, 30.244366f, -127.72071f, 32.061317f, 29.755634f, 61.72071f },
{ { -62.32031f, 25.741756f, -222.99486f, 31.160154f, 32.12912f, 61.99743f },
0.0, { -105.85609f, 14.339533f, -355.72162f, 31.134144f, 34.606018f, 61.91813f },
20.159666061401367, { -136.99023f, 9.733513f, -450.63974f, 31.134144f, 34.606018f, 61.91813f },
759.7326049804688, { -189.91827f, 1.90328f, -612.00055f, 31.134144f, 34.606018f, 61.91813f },
0.0,
-2.652587890625,
-99.96481323242188,
},
{
-45.79036331176758,
0.7120879888534546,
336.9016418457031,
13.467754364013672,
-0.2094379961490631,
-99.0887222290039,
},
{
-59.033607482910156,
-7.9528679847717285,
104.17190551757812,
49.194671630859375,
6.627389907836914,
-86.80992126464844,
},
{
-39.37468719482422,
50.698238372802734,
40.26434326171875,
65.62447357177734,
-4.497063159942627,
-67.10723876953125,
},
{
-57.282569885253906,
48.52915573120117,
-34.80637741088867,
95.47095489501953,
7.118072986602783,
-11.322705268859863,
},
{
-64.80924987792969,
53.131526947021484,
-77.35162353515625,
81.01156616210938,
3.335592031478882,
15.689521789550781,
},
{
-32.061317443847656,
30.244365692138672,
-127.72071075439453,
32.061317443847656,
29.755634307861328,
61.72071075439453,
},
{
-62.320308685302734,
25.741756439208984,
-222.99485778808594,
31.160154342651367,
32.129119873046875,
61.99742889404297,
},
{
-105.85608673095703,
14.339532852172852,
-355.72161865234375,
31.134143829345703,
34.60601806640625,
61.918128967285156,
},
{
-136.990234375,
9.733512878417969,
-450.6397399902344,
31.134143829345703,
34.60601806640625,
61.918128967285156,
},
{
-189.91827392578125,
1.9032800197601318,
-612.0005493164062,
31.134143829345703,
34.60601806640625,
61.918128967285156,
},
}; };
UnkStruct_D_menu_801B8294 D_menu_801B6C60[] = { UnkStruct_D_menu_801B8294 D_menu_801B6C60[] = {
{ { 230.0f, -20.0f, -0.000004f, 90.0f, -20.0f, 0.000002f },
230.0, { 217.92657f, 45.0272f, -0.006961f, 96.70746f, -25.01511f, 0.003867f },
-20.0, { 161.75992f, 66.4626f, 50.403748f, 73.1124f, -6.102585f, -28.316711f },
-3.999999989900971e-06, { 117.362366f, 2.619884f, 27.208603f, 84.39606f, -4.366472f, -45.34767f },
90.0, { 19.168537f, 2.445203f, 27.57978f, 7.556181f, -4.366434f, -49.249607f },
-20.0, { -116.45978f, 1.270139f, 27.862812f, -109.60754f, -2.268106f, -49.75502f },
1.9999999949504854e-06, { -117.43788f, 1.272571f, 27.864624f, -110.646645f, -2.272449f, -49.758255f },
}, { -118.43771f, 1.314066f, 27.862713f, -111.646935f, -2.346546f, -49.754845f },
{ { -118.44501f, 1.314066f, 27.862074f, -111.63391f, -2.346546f, -49.753704f },
217.92657470703125, { -118.46446f, 1.314066f, 27.860361f, -111.59918f, -2.346546f, -49.750645f },
45.027198791503906,
-0.0069610001519322395,
96.70745849609375,
-25.01511001586914,
0.0038670001085847616,
},
{
161.75991821289062,
66.46260070800781,
50.40374755859375,
73.11239624023438,
-6.1025848388671875,
-28.31671142578125,
},
{
117.36236572265625,
2.6198840141296387,
27.208602905273438,
84.39605712890625,
-4.366471767425537,
-45.34767150878906,
},
{
19.168537139892578,
2.4452030658721924,
27.57978057861328,
7.556180953979492,
-4.366434097290039,
-49.24960708618164,
},
{
-116.45977783203125,
1.2701389789581299,
27.862812042236328,
-109.60753631591797,
-2.268105983734131,
-49.75502014160156,
},
{
-117.43788146972656,
1.2725709676742554,
27.8646240234375,
-110.64664459228516,
-2.272449016571045,
-49.75825500488281,
},
{
-118.43771362304688,
1.3140660524368286,
27.862712860107422,
-111.64693450927734,
-2.346545934677124,
-49.754844665527344,
},
{
-118.44500732421875,
1.3140660524368286,
27.86207389831543,
-111.6339111328125,
-2.346545934677124,
-49.75370407104492,
},
{
-118.46446228027344,
1.3140660524368286,
27.860361099243164,
-111.59918212890625,
-2.346545934677124,
-49.75064468383789,
},
}; };
void func_menu_801AC9A0(s32 index) { void func_menu_801AC9A0(s32 index) {

View File

@ -7,19 +7,19 @@
#include "global.h" #include "global.h"
#include "fox_title.h" #include "fox_title.h"
extern AnimationHeader D_602F8E0; extern Animation D_602F8E0;
extern AnimationHeader D_60305C0; extern Animation D_60305C0;
extern AnimationHeader D_6031DB8; extern Animation D_6031DB8;
extern AnimationHeader D_6031120; extern Animation D_6031120;
extern AnimationHeader D_6035024; extern Animation D_6035024;
extern AnimationHeader D_60338DC; extern Animation D_60338DC;
extern AnimationHeader D_603531C; extern Animation D_603531C;
extern AnimationHeader D_6036278; extern Animation D_6036278;
extern SkelAnime D_602FBAC[]; extern Limb* D_602FBAC[];
extern SkelAnime D_603088C[]; extern Limb* D_603088C[];
extern SkelAnime D_6032084[]; extern Limb* D_6032084[];
extern SkelAnime D_60313AC[]; extern Limb* D_60313AC[];
extern Gfx D_6036290[]; extern Gfx D_6036290[];
extern Gfx D_6036B30[]; extern Gfx D_6036B30[];
@ -158,8 +158,14 @@ f32 D_menu_801B907C;
f32 D_menu_801B9080; f32 D_menu_801B9080;
f32 D_menu_801B9084; f32 D_menu_801B9084;
typedef struct {
/* 0x00 */ Animation* unk_0;
/* 0x04 */ Animation* unk_4;
/* 0x08 */ Limb** skeleton;
} TitleAnimation; // size = 0x0C
//! TODO: Symbols for segmented addresses //! TODO: Symbols for segmented addresses
Animation D_menu_801ADA00[4] = { TitleAnimation D_menu_801ADA00[4] = {
{ &D_602F8E0, &D_6035024, D_602FBAC }, { &D_602F8E0, &D_6035024, D_602FBAC },
{ &D_60305C0, &D_60338DC, D_603088C }, { &D_60305C0, &D_60338DC, D_603088C },
{ &D_6031DB8, &D_603531C, D_6032084 }, { &D_6031DB8, &D_603531C, D_6032084 },
@ -680,7 +686,7 @@ void func_menu_801881FC(void) {
D_menu_801B8350[3].unk_00.x = 58.0f; D_menu_801B8350[3].unk_00.x = 58.0f;
D_menu_801B8350[3].unk_00.y = -5.0f; D_menu_801B8350[3].unk_00.y = -5.0f;
D_menu_801B8350[3].unk_00.z = 22.00f; D_menu_801B8350[3].unk_00.z = 22.00f;
D_menu_801B8350[3].unk_48 = -17.899979; D_menu_801B8350[3].unk_48 = -17.899979f;
D_menu_801B8350[3].unk_4C = -8.890011f; D_menu_801B8350[3].unk_4C = -8.890011f;
D_menu_801B8350[3].unk_50 = 0.00f; D_menu_801B8350[3].unk_50 = 0.00f;
} else { } else {
@ -2580,7 +2586,7 @@ void func_menu_8018E67C(s32 arg0) {
} }
Animation_GetFrameData(D_menu_801ADA00[arg0].unk_0, sp5C, sp60); Animation_GetFrameData(D_menu_801ADA00[arg0].unk_0, sp5C, sp60);
Animation_DrawSkeleton(0, D_menu_801ADA00[arg0].skelanime, sp60, NULL, NULL, NULL, &gIdentityMatrix); Animation_DrawSkeleton(0, D_menu_801ADA00[arg0].skeleton, sp60, NULL, NULL, NULL, &gIdentityMatrix);
if (arg0 == 2) { if (arg0 == 2) {
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
@ -2645,7 +2651,7 @@ void func_menu_8018EA78(s32 arg0) {
Math_SmoothStepToVec3fArray(sp48, D_menu_801B86E0[arg0], 1, Math_SmoothStepToVec3fArray(sp48, D_menu_801B86E0[arg0], 1,
Animation_GetFrameData(D_menu_801ADA00[arg0].unk_4, sp44, sp48), 0.2f, 100.0f, 0.0001f); Animation_GetFrameData(D_menu_801ADA00[arg0].unk_4, sp44, sp48), 0.2f, 100.0f, 0.0001f);
Animation_DrawSkeleton(1, D_menu_801ADA00[arg0].skelanime, D_menu_801B86E0[arg0], func_menu_8018EDC8, NULL, &arg0, Animation_DrawSkeleton(1, D_menu_801ADA00[arg0].skeleton, D_menu_801B86E0[arg0], func_menu_8018EDC8, NULL, &arg0,
&gIdentityMatrix); &gIdentityMatrix);
Matrix_Pop(&gGfxMatrix); Matrix_Pop(&gGfxMatrix);

View File

@ -57,21 +57,21 @@
- [0xE16C60, c, fox_a6] - [0xE16C60, c, fox_a6]
- [0xE1F680, c, fox_zo] - [0xE1F680, c, fox_zo]
- [0xE2DF20, c, fox_so] - [0xE2DF20, c, fox_so]
- [0xE38560, c, sf_aq] - [0xE38560, c, fox_aq]
- [0xE4E3D0, .data, fox_i3] - [0xE4E3D0, .data, fox_i3]
- [0xE4E3E0, .data, fox_a6] - [0xE4E3E0, .data, fox_a6]
- [0xE4EC90, .data, fox_zo] - [0xE4EC90, .data, fox_zo]
- [0xE4F010, .data, fox_so] - [0xE4F010, .data, fox_so]
- [0xE4F290, .data, sf_aq] - [0xE4F290, .data, fox_aq]
- [0xE50030, .rodata, fox_a6] - [0xE50030, .rodata, fox_a6]
- [0xE504E0, .rodata, fox_zo] - [0xE504E0, .rodata, fox_zo]
- [0xE50C00, .rodata, fox_so] - [0xE50C00, .rodata, fox_so]
- [0xE51160, .rodata, sf_aq] - [0xE51160, .rodata, fox_aq]
- { start: 0xE51970, type: .bss, vram: 0x801C2240, name: fox_i3 } - { start: 0xE51970, type: .bss, vram: 0x801C2240, name: fox_i3 }
- { type: .bss, vram: 0x801C2250, name: fox_a6 } - { type: .bss, vram: 0x801C2250, name: fox_a6 }
- { type: .bss, vram: 0x801C2330, name: fox_zo } - { type: .bss, vram: 0x801C2330, name: fox_zo }
- { type: .bss, vram: 0x801C2740, name: fox_so } - { type: .bss, vram: 0x801C2740, name: fox_so }
- { type: .bss, vram: 0x801C27C0, name: sf_aq } - { type: .bss, vram: 0x801C27C0, name: fox_aq }
- name: ovl_i4 - name: ovl_i4
type: code type: code