func_8005C5B0 ok

This commit is contained in:
mzxrules 2020-03-30 03:30:58 -04:00
parent 5d091132a5
commit a104daa3e3
4 changed files with 33 additions and 27 deletions

View File

@ -1,21 +0,0 @@
glabel func_8005C5B0
/* AD3750 8005C5B0 3C0E8012 */ lui $t6, %hi(D_8011DE78) # $t6, 0x8012
/* AD3754 8005C5B4 25CEDE78 */ addiu $t6, %lo(D_8011DE78) # addiu $t6, $t6, -0x2188
/* AD3758 8005C5B8 AFA40000 */ sw $a0, ($sp)
/* AD375C 8005C5BC 25C80030 */ addiu $t0, $t6, 0x30
/* AD3760 8005C5C0 00A0C825 */ move $t9, $a1
.L8005C5C4:
/* AD3764 8005C5C4 8DD80000 */ lw $t8, ($t6)
/* AD3768 8005C5C8 25CE000C */ addiu $t6, $t6, 0xc
/* AD376C 8005C5CC 2739000C */ addiu $t9, $t9, 0xc
/* AD3770 8005C5D0 AF38FFF4 */ sw $t8, -0xc($t9)
/* AD3774 8005C5D4 8DCFFFF8 */ lw $t7, -8($t6)
/* AD3778 8005C5D8 AF2FFFF8 */ sw $t7, -8($t9)
/* AD377C 8005C5DC 8DD8FFFC */ lw $t8, -4($t6)
/* AD3780 8005C5E0 15C8FFF8 */ bne $t6, $t0, .L8005C5C4
/* AD3784 8005C5E4 AF38FFFC */ sw $t8, -4($t9)
/* AD3788 8005C5E8 8DD80000 */ lw $t8, ($t6)
/* AD378C 8005C5EC 24020001 */ li $v0, 1
/* AD3790 8005C5F0 03E00008 */ jr $ra
/* AD3794 8005C5F4 AF380000 */ sw $t8, ($t9)

View File

@ -691,7 +691,7 @@ 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);
s32 func_8005C5F8(GlobalContext* globalCtx, ColliderTriDim* dim);
// ? func_8005C608(?);
// ? func_8005C6C0(?);
// ? func_8005C6F8(?);

View File

@ -367,6 +367,16 @@ typedef struct {
/* 0x0C */ ColliderJntSphItemInit* list;
} ColliderJntSphInit_Actor;
typedef struct {
/* 0x00 */ Vec3f pointA;
/* 0x0C */ Vec3f pointB;
/* 0x18 */ Vec3f pointC;
/* 0x24 */ Vec3f unitNormal;
/* 0x30 */ float normalDist;
} ColliderTriDim;
typedef struct
{
/* 0x00 */ Actor* actor;

View File

@ -65,18 +65,21 @@ s32 func_8005B72C(GlobalContext* globalCtx, Collider* collision, Actor* actor, C
return 1;
}
//Reset AT collision?
void func_8005B76C(GlobalContext* globalCtx, Collider* collision)
{
collision->at = NULL;
collision->colliderFlags &= ~0x6;
}
//Reset AC collision?
void func_8005B784(GlobalContext* globalCtx, Collider* collision)
{
collision->ac = NULL;
collision->collideFlags &= ~0x82;
}
//Reset OT collision?
void func_8005B79C(GlobalContext* globalCtx, Collider* collision)
{
collision->ot = NULL;
@ -246,7 +249,7 @@ s32 func_8005BB8C(GlobalContext* globalCtx, ColliderJntSphItem* collider) {
}
//Set CollisionBody Property
//arg1 could be wrong type
//TODO: arg1 could be wrong type
s32 func_8005BBB0(GlobalContext* globalCtx, ColliderJntSphItem* collider) {
func_8005B9E8(globalCtx, &collider->body);
return 1;
@ -268,7 +271,6 @@ s32 func_8005BBF8(GlobalContext* globalCtx, ColliderJntSph* collision) {
}
//Destruct ColliderJntSph (malloc)
s32 func_8005BC28(GlobalContext* globalCtx, ColliderJntSph* collider) {
ColliderJntSphItem* next;
func_8005B6A0(globalCtx, &collider->base);
@ -305,7 +307,6 @@ s32 func_8005BCC8(GlobalContext* globalCtx, ColliderJntSph* collider) {
return 1;
}
//ClObjJntSph?
s32 func_8005BD50(GlobalContext* globalCtx, ColliderJntSph* dest, ColliderJntSphInit_Actor* src) {
ColliderJntSphItem* destNext;
@ -484,6 +485,7 @@ s32 func_8005C234(GlobalContext* globalCtx, ColliderJntSph* collider) {
#endif // NON_MATCHING
#ifdef NON_MATCHING
//Initialize ColliderCylinderDim
//matching, but needs data section imported
s32 func_8005C2BC(GlobalContext* globalCtx, ColliderCylinderDim* dim) {
ColliderCylinderDim init = { 0, 0, 0, 0, 0, 0 }; //TODO: this is D_8011DE6C;
@ -491,14 +493,18 @@ s32 func_8005C2BC(GlobalContext* globalCtx, ColliderCylinderDim* dim) {
return 1;
}
#else
//Initialize ColliderCylinderDim
s32 func_8005C2BC(GlobalContext* globalCtx, ColliderCylinderDim* dim);
#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005C2BC.s")
#endif // NON_MATCHING
//Destruct ColliderCylinderDim
s32 func_8005C318(GlobalContext* globalCtx, ColliderCylinderDim* dim)
{
return 1;
}
//Copy ColliderCylinderDim
s32 func_8005C328(GlobalContext* globalCtx, ColliderCylinderDim* dest, ColliderCylinderDim* src)
{
*dest = *src;
@ -550,6 +556,7 @@ s32 ActorCollider_InitCylinder(GlobalContext* globalCtx, ColliderCylinderMain* c
return 1;
}
//Reset AT? ColliderCylinderMain
s32 func_8005C508(GlobalContext* globalCtx, ColliderCylinderMain* collision)
{
func_8005B76C(globalCtx, &collision->base);
@ -557,6 +564,7 @@ s32 func_8005C508(GlobalContext* globalCtx, ColliderCylinderMain* collision)
return 1;
}
//Reset AC? ColliderCylinderMain
s32 func_8005C540(GlobalContext* globalCtx, ColliderCylinderMain* collision)
{
func_8005B784(globalCtx, &collision->base);
@ -564,6 +572,7 @@ s32 func_8005C540(GlobalContext* globalCtx, ColliderCylinderMain* collision)
return 1;
}
//Reset OT? ColliderCylinderMain
s32 func_8005C578(GlobalContext* globalCtx, ColliderCylinderMain* collision)
{
func_8005B79C(globalCtx, &collision->base);
@ -571,9 +580,17 @@ s32 func_8005C578(GlobalContext* globalCtx, ColliderCylinderMain* collision)
return 1;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005C5B0.s")
extern ColliderTriDim D_8011DE78;
s32 func_8005C5F8(UNK_TYPE arg0, UNK_TYPE arg1)
//Initialize ColliderTriDim
s32 func_8005C5B0(GlobalContext* globalCtx, ColliderTriDim* dim)
{
*dim = D_8011DE78;
return 1;
}
//Destruct ColliderTriDim
s32 func_8005C5F8(GlobalContext* globalCtx, ColliderTriDim* dim)
{
return 1;
}