1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-10 01:44:36 +00:00

z_collision_check.c (#73)

* func_8005B280 ok

* func_8005B65C OK

* split out func_8005BD50

* func_8005B7C0 OK

* func_8005B7F4 OK

* func_8005B824 OK

* func_8005B860 ok

* improve sanity

* func_8005B6B0 ok, ColliderInit_Actor structs added

* func_8005B884 ok

* func_8005BBF8 ok, split out func_8005BF50

* split more stuff out of func_8005C050.s

* func_8005C050 OK

* func_8005BA30 fakish OK, func_8005BAD8 real OK

* func_8005BB48 OK, func_8005BA84 almost decomp'd, but type issues

* func_8005BB10 Ok

* func_8005BF50 OK

* func_8005BE50 OK

* func_8005BD50 OK

* func_8005BCC8 Ok

* func_8005BC28

* func_8005BB8C func_8005BBB0 func_8005BBD4 Ok

* save my work commit

* func_8005C2BC fake OK

* func_8005C5B0 ok

* func_8005C608 ok

* func_8005C6C0 ok

* func_8005C6F8 ok

* func_8005C730 ok

* func_8005C774 func_8005C798 func_8005C7BC OK

* func_8005C7E0 ok, func_8005C810 split

* func_8005C810 OK

* func_8005C8C8 ok

* func_8005C964 OK

* func_8005CA88 ok

* func_8005CBAC ok

* func_8005C124 func_8005C1AC func_8005C234 func_8005CC98 OK

* func_8005CD34 func_8005CDD0 Ok

* func_8005CE6C ok

* func_8005CEC4 ok

* func_8005CEDC ok

* func_8005CF90 Ok

* standardize type names/vars more

* func_8005D3BC ok

* func_8005D40C OK, z64.h CollisionCheckContext

* func_8005D4B4 func_8005D4C8 ok

* partial data section migration

* improve function documentation, OT->OC

* Actor_CollisionCheck_SetOC ok

* Actor_CollisionCheck_SetAT Actor_CollisionCheck_SetAC Ok

* func_8005BA84 ok

* func_800611A0 ok

* func_80061274 ok

* clean up func_80061274

* func_8006139C ok

* func_8005E9C0 and dependencies OK

* minor cleanup to func_8005E9C0

* func_8005EC6C OK!

* func_8005E81C ok

* func_8005E604 ok

* func_8005E2EC func_8005E4F8 OK

* func_8005DE9C OK func_8005D8AC disassembled

* func_8006146C func_8006268C ok

* func_8005EEE0 ok

* func_8005F17C

* func_8005F39C ok

* func_8005F5B0 decompiled, not matching

* func_8005F7D0 decomp, func_8005D218 and func_8005D324 OK

* func_8005FA30 ok, split more functions

* func_8005FC04 ok

* func_8005FDCC k

* func_8005FF90 OK OK OK

* func_80060204 dead

* func_800604B0 ok

* func_80060704 func_80060994 ok, func_80060C2C somewhat disassembled. AT to AC matrix doneish

* func_800635D0 ok, func_80062ECC not so much

* OcLine oks

* D_8011DF28 functions disassembled

* D_8011DF5C functions OK

* setAT_SAC. setAC_SAC, setOC_SAC OK

* func_80061C98 decompiled, func_80061BF4, func_80061C18 OK

* func_800617D4 ok, func_800614A4 disassembled

* CollisionCheck_OC D_8011DFAC functions OK

* func_80062530 ok

* CollisionCheck_generalLineOcCheck subfunctions OK

* func_800622E4 ok

* after a long fought battle, func_80061F64 has fallen.

* func_800628A4 disassembled

* func_800627A0 func_8006285C OK

* ActorCollider_Cylinder_Update, func_80062718, func_80062734 ok

* func_80062CD4 decompiled, import EffShield/EffSpark types from MM

* various SubActor98 struct functions OK

* func_8005D4DC func_8005D62C ok

* .data section migrated, more OKs, fix NON_MATCHINGs to use effect structs

* func_80060C2C ok

* minor code tweaks

* func_80061C98 ok somehow

* Attempt to fix some unknowns, move types out of z64actor, add set3 ColliderInit types

* Apply changes

* formatting

* tweak a couple function names

* krim changes, func naming

* missed some things

* function renames

* Implement GenColliderInit.py utility

* Implement pr changes, GenColliderInit.py, DamageTable.py, z_collision_btltbls.c fully matching

* func_800614A4 ok

* Implement Roman's fixes, name Collider unknowns, rename COLTYPE -> COLSHAPE and define new COLTYPE

* collisionCheckCtx -> colChkCtx, fix small things
This commit is contained in:
mzxrules 2020-04-25 22:43:35 -04:00 committed by GitHub
parent f9bdb1d58a
commit aa91a7ee32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
873 changed files with 6121 additions and 10660 deletions

View file

@ -197,7 +197,7 @@ GlobalContext* func_80026B00(void);
// ? func_80026B0C(?);
// ? func_80026C1C(?);
// ? func_80026C2C(?);
// ? Effect_Add(?);
void Effect_Add(GlobalContext* globalCtx, s32* idp, s32 type, u8 arg3, u8 arg4, void* initParams);
// ? func_80026E74(?);
// ? func_80026F70(?);
// ? func_8002709C(?);
@ -237,9 +237,9 @@ void Effect_SpawnFragment(GlobalContext* globalCtx, Vec3f* burstDepthY, Vec3f* b
// ? func_80029568(?);
// ? func_80029724(?);
// ? func_8002993C(?);
// ? func_800299AC(?);
void func_800299AC(GlobalContext* globalCtx, Vec3f* v);
// ? func_80029C50(?);
// ? func_80029CA4(?);
void func_80029CA4(GlobalContext* globalCtx, s32 a, Vec3f* pos);
// ? func_80029F44(?);
// ? func_8002A32C(?);
// ? func_8002A3C4(?);
@ -412,10 +412,10 @@ Actor* Actor_FindNearby(GlobalContext* globalCtx, Actor* refActor, s16 actorId,
s32 func_800354B4(GlobalContext* globalCtx, Actor* actor, f32 range, s16 arg3, s16 arg4, s16 arg5);
void func_8003555C(GlobalContext* globalCtx, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3);
void func_800355B8(GlobalContext* globalCtx, Vec3f* arg1);
u8 func_800355E4(GlobalContext* globalCtx, ColliderCylinderInit* colCylinderInit);
u8 func_800355E4(GlobalContext* globalCtx, Collider* collider);
u8 Actor_ApplyDamage(Actor* actor);
void func_80035650(Actor* actor, ColliderBody* colBody, s32 freezeFlag);
void func_8003573C(Actor* actor, ColliderBody* colBody, s32 freezeFlag);
void func_8003573C(Actor* actor, ColliderJntSph* colBody, s32 freezeFlag);
void func_80035844(Vec3f* arg0, Vec3f* arg1, s16* arg2, s32 arg3);
void func_800359B8(Actor* actor, s16 arg1, Vec3s* arg2);
s32 Flags_GetEventChkInf(s32 flag);
@ -564,10 +564,10 @@ s32 func_8004213C(GlobalContext*, CollisionContext*, f32, f32, f32*, UNK_PTR);
s32 func_800427B4(CollisionPoly*, CollisionPoly*, s32, s32, Vec3f*);
// ? func_80042868(?);
// ? func_80042B2C(?);
// ? func_80042C3C(?);
void func_80042C3C(GlobalContext*, CollisionContext*);
// ? func_80042CB8(?);
// ? func_80042EF8(?);
// ? func_80042FC4(?);
void func_80042FC4(GlobalContext*, CollisionContext*);
// ? func_800430A0(?);
// ? func_800432A0(?);
// ? func_80043334(?);
@ -660,90 +660,110 @@ s32 func_8005AA90(Camera*, s32, Vec3f*);
// ? func_8005AFB4(?);
// ? func_8005B044(?);
// ? func_8005B1A4(?);
s32 CollisionBtlTbl_Get(s32 index);
DamageTable* DamageTable_Get(s32 index);
// ? func_8005B280(?);
// ? func_8005B2AC(?);
// ? func_8005B65C(?);
s32 func_8005B6A0(GlobalContext* globalCtx, Collider* collision);
// ? func_8005B6B0(?);
s32 func_8005B6EC(GlobalContext* globalCtx, Collider* collision, Actor* actor, ColliderBodyInfo* src);
s32 func_8005B72C(GlobalContext* globalCtx, Collider* collision, Actor* actor, ColliderBodyInfo* src);
void func_8005B76C(GlobalContext* globalCtx, Collider* collision);
void func_8005B784(GlobalContext* globalCtx, Collider* collision);
void func_8005B79C(GlobalContext* globalCtx, Collider* collision);
// ? func_8005B7C0(?);
s32 func_8005B7E4(GlobalContext* globalCtx, ColliderTouch* touch);
// ? func_8005B7F4(?);
void func_8005B818(GlobalContext* globalCtx, ColliderBody* body);
// ? func_8005B824(?);
s32 func_8005B850(GlobalContext* globalCtx, ColliderBump* bump);
// ? func_8005B860(?);
// ? func_8005B884(?);
s32 func_8005B904(GlobalContext* globalCtx, ColliderBody* body);
s32 func_8005B93C(GlobalContext* globalCtx, ColliderBody* colliderBody, ColliderBodyInfoInner* bodyFlags);
void func_8005B9B0(GlobalContext* globalCtx, ColliderBody* body);
void func_8005B9E8(GlobalContext* globalCtx, ColliderBody* body);
// ? func_8005BA1C(?);
// ? func_8005BA30(?);
s32 func_8005BA74(UNK_TYPE, UNK_TYPE);
// ? func_8005BA84(?);
// ? func_8005BAD8(?);
// ? func_8005BB10(?);
// ? func_8005BB48(?);
// ? func_8005BB8C(?);
// ? func_8005BBB0(?);
// ? func_8005BBD4(?);
void func_8005C050(GlobalContext* globalCtx, Collider* collision, Actor* actor, UNK_TYPE arg3, UNK_TYPE arg4);
// ? func_8005C2BC(?);
s32 func_8005C318(GlobalContext* globalCtx, ColliderDimensions* dim);
s32 func_8005C328(GlobalContext* globalCtx, ColliderDimensions* dest, ColliderDimensions* src);
s32 ActorCollider_AllocCylinder(GlobalContext* globalCtx, ColliderCylinderMain* collision);
s32 ActorCollider_FreeCylinder(GlobalContext* globalCtx, ColliderCylinderMain* collision);
s32 func_8005C3F4(GlobalContext* globalCtx, ColliderCylinderMain* collision, ColliderCylinderInit* arg2);
s32 ActorCollider_InitCylinder(GlobalContext* globalCtx, ColliderCylinderMain* collision, Actor* actor,
ColliderCylinderInit* src);
s32 func_8005C508(GlobalContext* globalCtx, ColliderCylinderMain* collision);
s32 func_8005C540(GlobalContext* globalCtx, ColliderCylinderMain* collision);
s32 func_8005C578(GlobalContext* globalCtx, ColliderCylinderMain* collision);
// ? func_8005C5B0(?);
s32 func_8005C5F8(UNK_TYPE, UNK_TYPE);
// ? func_8005C608(?);
// ? func_8005C6C0(?);
// ? func_8005C6F8(?);
// ? func_8005C730(?);
// ? func_8005C774(?);
// ? func_8005C798(?);
// ? func_8005C7BC(?);
// ? func_8005CE6C(?);
s32 func_8005CEB4(GlobalContext* globalCtx, ColliderDimensions* dim);
// ? func_8005CEC4(?);
// ? func_8005CEDC(?);
// ? func_8005CF90(?);
s32 func_8005D018(GlobalContext* globalCtx, ColliderCylinderMain* collision);
s32 func_8005D060(GlobalContext* globalCtx, ColliderCylinderMain* collision);
s32 func_8005D0A8(GlobalContext* globalCtx, ColliderCylinderMain* collision, Actor* actor, ColliderCylinderInit* src);
s32 func_8005D104(GlobalContext* globalCtx, ColliderCylinderMain* collision, Actor* actor, ColliderCylinderInit* src);
s32 func_8005D160(GlobalContext* globalCtx, ColliderCylinderMain* collision);
s32 func_8005D1A8(GlobalContext* globalCtx, ColliderCylinderMain* collision);
s32 func_8005D1E0(GlobalContext* globalCtx, ColliderCylinderMain* collision);
// ? func_8005D218(?);
s32 Collider_InitBase(GlobalContext* globalCtx, Collider* collider);
s32 Collider_DestroyBase(GlobalContext* globalCtx, Collider* collider);
s32 Collider_SetBase_Actor(GlobalContext* globalCtx, Collider* collider, ColliderInit_Actor* src);
s32 Collider_SetBase_Set3(GlobalContext* globalCtx, Collider* collider, Actor* actor, ColliderInit_Set3* src);
s32 Collider_SetBase(GlobalContext* globalCtx, Collider* collider, Actor* actor, ColliderInit* src);
void Collider_BaseSetAT(GlobalContext* globalCtx, Collider* collider);
void Collider_BaseSetAC(GlobalContext* globalCtx, Collider* collider);
void Collider_BaseSetOC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_InitTouch(GlobalContext* globalCtx, ColliderTouch* touch);
s32 Collider_DestroyTouch(GlobalContext* globalCtx, ColliderTouch* touch);
s32 Collider_SetTouch(GlobalContext* globalCtx, ColliderTouch* dest, ColliderTouch* src);
void Collider_BodySetAT_Unk(GlobalContext* globalCtx, ColliderBody* body);
s32 Collider_InitBump(GlobalContext* globalCtx, ColliderBump* bump);
s32 Collider_DestroyBump(GlobalContext* globalCtx, ColliderBump* bump);
s32 Collider_SetBump(GlobalContext* globalCtx, ColliderBump* bump, ColliderBumpInit* init);
s32 Collider_InitBody(GlobalContext* globalCtx, ColliderBody* body);
s32 Collider_DestroyBody(GlobalContext* globalCtx, ColliderBody* body);
s32 Collider_SetBody(GlobalContext* globalCtx, ColliderBody* body, ColliderBodyInit* bodyInit);
void Collider_BodySetAT(GlobalContext* globalCtx, ColliderBody* body);
void Collider_BodySetAC(GlobalContext* globalCtx, ColliderBody* body);
void Collider_BodySetOC(GlobalContext* globalCtx, ColliderBody* body);
s32 Collider_InitJntSphItemDim(GlobalContext* globalCtx, ColliderJntSphItemDim* dim);
s32 Collider_DestroyJntSphItemDim(GlobalContext* globalCtx, ColliderJntSphItemDim* item);
s32 Collider_SetJntSphItemDim(GlobalContext* globalCtx, ColliderJntSphItemDim* dest, ColliderJntSphItemDimInit* src);
s32 Collider_InitJntSphItem(GlobalContext* globalCtx, ColliderJntSphItem* item);
s32 Collider_DestroyJntSphItem(GlobalContext* globalCtx, ColliderJntSphItem* item);
s32 Collider_SetJntSphItem(GlobalContext* globalCtx, ColliderJntSphItem* dest, ColliderJntSphItemInit* src);
s32 Collider_JntSphItemSetAT(GlobalContext* globalCtx, ColliderJntSphItem* collider);
s32 Collider_JntSphItemSetAC(GlobalContext* globalCtx, ColliderJntSphItem* collider);
s32 Collider_JntSphItemSetOC(GlobalContext* globalCtx, ColliderJntSphItem* collider);
s32 Collider_InitJntSph(GlobalContext* globalCtx, ColliderJntSph* collider);
s32 Collider_FreeJntSph(GlobalContext* globalCtx, ColliderJntSph* collider);
s32 Collider_DestroyJntSph(GlobalContext* globalCtx, ColliderJntSph* collider);
s32 Collider_SetJntSph_Set(GlobalContext* globalCtx, ColliderJntSph* dest, ColliderJntSphInit_Actor* src);
s32 Collider_SetJntSph_Set3(GlobalContext* globalCtx, ColliderJntSph* dest, Actor* actor, ColliderJntSphInit_Set3* src);
s32 Collider_SetJntSph_Set5(GlobalContext* globalCtx, ColliderJntSph* dest, Actor* actor, ColliderJntSphInit* src);
s32 Collider_SetJntSph(GlobalContext* globalCtx, ColliderJntSph* dest, Actor* actor, ColliderJntSphInit* src, ColliderJntSphItem* list);
s32 Collider_InitCylinderDim(GlobalContext* globalCtx, Cylinder16* dim);
s32 Collider_DestroyCylinderDim(GlobalContext* globalCtx, Cylinder16* dim);
s32 Collider_SetCylinderDim(GlobalContext* globalCtx, Cylinder16* dest, Cylinder16* src);
s32 Collider_InitCylinder(GlobalContext* globalCtx, ColliderCylinder* collider);
s32 Collider_DestroyCylinder(GlobalContext* globalCtx, ColliderCylinder* collider);
s32 Collider_SetCylinder_Actor(GlobalContext* globalCtx, ColliderCylinder* collider, ColliderCylinderInit_Actor* arg2);
s32 Collider_SetCylinder_Set3(GlobalContext* globalCtx, ColliderCylinder* collider, Actor* actor, ColliderCylinderInit_Set3* src);
s32 Collider_SetCylinder(GlobalContext* globalCtx, ColliderCylinder* collider, Actor* actor, ColliderCylinderInit* src);
s32 Collider_CylinderSetAT(GlobalContext* globalCtx, Collider* collider);
s32 Collider_CylinderSetAC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_CylinderSetOC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_InitTrisItemDim(GlobalContext* globalCtx, TriNorm* dim);
s32 Collider_DestroyTrisItemDim(GlobalContext* globalCtx, TriNorm* dim);
s32 Collider_SetTrisItemDim(GlobalContext* globalCtx, TriNorm* dest, ColliderTrisItemDimInit* src);
s32 Collider_InitTrisItem(GlobalContext* globalCtx, ColliderTrisItem* collider);
s32 Collider_DestroyTrisItem(GlobalContext* globalCtx, ColliderTrisItem* collider);
s32 Collider_SetTrisItem(GlobalContext* globalCtx, ColliderTrisItem* dest, ColliderTrisItemInit* src);
s32 Collider_TrisItemSetAT(GlobalContext* globalCtx, ColliderTrisItem* item);
s32 Collider_TrisItemSetAC(GlobalContext* globalCtx, ColliderTrisItem* item);
s32 Collider_TrisItemSetOC(GlobalContext* globalCtx, ColliderTrisItem* item);
s32 Collider_InitTris(GlobalContext* globalCtx, ColliderTris* tris);
s32 Collider_FreeTris(GlobalContext* globalCtx, ColliderTris* tris);
s32 Collider_DestroyTris(GlobalContext* globalCtx, ColliderTris* tris);
s32 Collider_SetTris_Set3(GlobalContext* globalCtx, ColliderTris* dest, Actor* actor, ColliderTrisInit_Set3* src);
s32 Collider_SetTris_Set5(GlobalContext* globalCtx, ColliderTris* dest, Actor* actor, ColliderTrisInit* src);
s32 Collider_SetTris(GlobalContext* globalCtx, ColliderTris* dest, Actor* actor, ColliderTrisInit* src,
ColliderTrisItem* list);
s32 Collider_TrisSetAT(GlobalContext* globalCtx, Collider* collider);
s32 Collider_TrisSetAC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_TrisSetOC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_InitQuadDim(GlobalContext* globalCtx, ColliderQuadDim* dim);
s32 Collider_DestroyQuadDim(GlobalContext* globalCtx, ColliderQuadDim* dim);
s32 func_8005CEC4(GlobalContext* globalCtx, ColliderQuadDim* dim);
void func_8005CEDC(ColliderQuadDim* dim);
s32 Collider_SetQuadDim(GlobalContext* globalCtx, ColliderQuadDim* dest, ColliderQuadDimInit* src);
s32 Collider_InitQuad(GlobalContext* globalCtx, ColliderQuad* collider);
s32 Collider_DestroyQuad(GlobalContext* globalCtx, ColliderQuad* collider);
s32 Collider_SetQuad_Set3(GlobalContext* globalCtx, ColliderQuad* collider, Actor* actor, ColliderQuadInit_Set3* src);
s32 Collider_SetQuad(GlobalContext* globalCtx, ColliderQuad* collider, Actor* actor, ColliderQuadInit* src);
s32 Collider_QuadSetAT(GlobalContext* globalCtx, Collider* collider);
s32 Collider_QuadSetAC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_QuadSetOC(GlobalContext* globalCtx, Collider* collider);
s32 func_8005D218(GlobalContext* globalCtx, ColliderQuad* quad, Vec3f* arg2);
s32 Collider_InitOcLine(GlobalContext* globalCtx, OcLine* line);
s32 Collider_DestroyOcLine(GlobalContext* globalCtx, OcLine* line);
// ? func_8005D334(?);
// ? func_8005D3A4(?);
// ? func_8005D3BC(?);
void func_8005D400(GlobalContext*, SubGlobalContext11E60*);
// ? func_8005D40C(?);
// ? func_8005D4DC(?);
// ? func_8005D62C(?);
s32 Actor_CollisionCheck_SetAT(GlobalContext* globalCtx, SubGlobalContext11E60* simpleBodyGroups,
ColliderCylinderMain* collision);
s32 Actor_CollisionCheck_SetAC(GlobalContext* globalCtx, SubGlobalContext11E60* simpleBodyGroups,
ColliderCylinderMain* collision);
s32 Actor_CollisionCheck_SetOT(GlobalContext* globalCtx, SubGlobalContext11E60* simpleBodyGroups,
ColliderCylinderMain* collision);
void func_8005D3BC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
void CollisionCheck_DestroyContext(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
void CollisionCheck_InitContext(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
void CollisionCheck_EnableSAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
void CollisionCheck_DisableSAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
void func_8005D4DC(GlobalContext* globalCtx, Collider* collider);
void CollisionCheck_Draw(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
s32 CollisionCheck_SetAT(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider);
s32 CollisionCheck_SetAT_SAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider, s32 index);
s32 CollisionCheck_SetAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider);
s32 CollisionCheck_SetAC_SAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider, s32 index);
s32 CollisionCheck_SetOC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider);
s32 CollisionCheck_SetOC_SAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider, s32 index);
s32 CollisionCheck_SetOCLine(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, OcLine* collider);
// ? func_8005DF2C(?);
// ? func_8005DF50(?);
// ? func_8005DF74(?);
// ? func_8005DFAC(?);
// ? func_8005E2EC(?);
// ? func_8005E4F8(?);
// ? func_8005E604(?);
@ -751,29 +771,29 @@ s32 Actor_CollisionCheck_SetOT(GlobalContext* globalCtx, SubGlobalContext11E60*
// ? func_8005E81C(?);
// ? func_800611A0(?);
// ? func_80061274(?);
// ? func_8006139C(?);
void func_8006139C(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
// ? func_8006146C(?);
// ? func_800614A4(?);
// ? func_8006199C(?);
// ? func_80061BF4(?);
// ? func_80061C18(?);
// ? func_80061C98(?);
void CollisionCheck_OC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
// ? func_80061E48(?);
// ? func_80061E8C(?);
void func_80061ED4(SubActorStruct98* sub98, ActorDamageChart* damageChart, Sub98Init4* sub98Init);
void func_80061EFC(SubActorStruct98* sub98, ActorDamageChart* damageChart, Sub98Init4* sub98Init);
void func_80061E8C(CollisionCheckInfo* info);
void func_80061EB0(CollisionCheckInfo* info, CollisionCheckInfoInit* init);
void func_80061ED4(CollisionCheckInfo* info, DamageTable* damageTable, CollisionCheckInfoInit* init);
void func_80061EFC(CollisionCheckInfo* info, DamageTable* damageTable, CollisionCheckInfoInit2* init);
// ? func_80061F64(?);
// ? func_800622E4(?);
// ? func_80062530(?);
s32 CollisionCheck_GeneralLineOcCheck(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Vec3f* camera_3C, Vec3f* arg3, Actor** arg4, s32 arg5);
// ? func_800626B0(?);
void ActorCollider_Cylinder_Update(Actor* actor, ColliderCylinderMain* collision);
void Collider_CylinderUpdate(Actor* actor, ColliderCylinder* collider);
// ? func_80062734(?);
// ? func_80062A28(?);
// ? func_80062B80(?);
// ? func_80062CD4(?);
void func_80062D60(GlobalContext*, Vec3f*);
// ? func_80062DAC(?);
// ? func_80062E14(?);
void func_80062A28(GlobalContext*, Vec3f*);
void func_80062B80(GlobalContext*, Vec3f*);
void func_80062CD4(GlobalContext* globalCtx, Vec3f* v);
void func_80062D60(GlobalContext* globalCtx, Vec3f* v);
void func_80062DAC(GlobalContext* globalCtx, Vec3f* v, Vec3f* arg2);
void func_80062E14(GlobalContext* globalCtx, Vec3f* arg1, Vec3f* arg2);
s32 func_80062ECC(f32, f32, f32, Vec3f*, Vec3f*, Vec3f*, Vec3f*, Vec3f*);
void SaveContext_Init(void);
// ? func_800636C0(?);
@ -1655,8 +1675,8 @@ s32 Math3D_TrisIntersect(TriNorm* ta, TriNorm* tb, Vec3f* intersect);
s32 func_800D0480(Sphere16* arg0, f32 arg1, f32 arg2);
s32 func_800D04F0(Sphere16* arg0, f32 arg1, f32 arg2);
s32 func_800D0560(Sphere16* arg0, f32 arg1, f32 arg2);
void func_800D05D0(s32 arg0, s32 arg1);
void func_800D05DC(s32 arg0, s32 arg1);
void func_800D05D0(GlobalContext* globalCtx, Sphere16* sph);
void func_800D05DC(GlobalContext* globalCtx, Cylinder16* cyl);
s16 atan2s(f32 x, f32 y);
f32 atan2f(f32 x, f32 y);
void Matrix_Init(GameState* gameState);