func_8005B6B0 ok, ColliderInit_Actor structs added

This commit is contained in:
mzxrules 2020-03-21 18:27:28 -04:00
parent 238f1c2dc6
commit 4689169c8f
4 changed files with 35 additions and 21 deletions

View File

@ -1,17 +0,0 @@
glabel func_8005B6B0
/* AD2850 8005B6B0 AFA40000 */ sw $a0, ($sp)
/* AD2854 8005B6B4 8CCE0000 */ lw $t6, ($a2)
/* AD2858 8005B6B8 24080010 */ li $t0, 16
/* AD285C 8005B6BC 24020001 */ li $v0, 1
/* AD2860 8005B6C0 ACAE0000 */ sw $t6, ($a1)
/* AD2864 8005B6C4 90CF0004 */ lbu $t7, 4($a2)
/* AD2868 8005B6C8 A0AF0010 */ sb $t7, 0x10($a1)
/* AD286C 8005B6CC 90D80005 */ lbu $t8, 5($a2)
/* AD2870 8005B6D0 A0B80011 */ sb $t8, 0x11($a1)
/* AD2874 8005B6D4 90D90006 */ lbu $t9, 6($a2)
/* AD2878 8005B6D8 A0A80013 */ sb $t0, 0x13($a1)
/* AD287C 8005B6DC A0B90012 */ sb $t9, 0x12($a1)
/* AD2880 8005B6E0 90C90007 */ lbu $t1, 7($a2)
/* AD2884 8005B6E4 03E00008 */ jr $ra
/* AD2888 8005B6E8 A0A90015 */ sb $t1, 0x15($a1)

View File

@ -685,7 +685,7 @@ s32 func_8005C318(GlobalContext* globalCtx, ColliderCylinderDim* dim);
s32 func_8005C328(GlobalContext* globalCtx, ColliderCylinderDim* dest, ColliderCylinderDim* 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 func_8005C3F4(GlobalContext* globalCtx, ColliderCylinderMain* collision, ColliderCylinderInit_Actor* 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);

View File

@ -284,9 +284,17 @@ typedef struct
/* 0x03 */ u8 maskA; /* Bitwise-And with Mask B */
/* 0x04 */ u8 maskB; /* Bitwise-And with Mask A */
/* 0x05 */ u8 type; /* Collider Type */
/* 0x06 */ u8 unk_06[0x2]; /* 0000 */
} ColliderInit; // size = 0x08
typedef struct
{
/* 0x00 */ Actor* actor;
/* 0x04 */ u8 colliderFlags; /* Compared to 0x11 */
/* 0x05 */ u8 collideFlags; /* Compared to 0x10 */
/* 0x06 */ u8 maskA; /* Bitwise-and compared to 0x13 */
/* 0x07 */ u8 type; /* Cylinder Collection, Cylinder, Triangle Collection, Quad */
} ColliderInit_Actor; // size = 0x08
typedef struct
{
/* 0x00 */ s16 radius; /* Cylinder Radius */
@ -309,6 +317,14 @@ typedef struct
/* 0x20 */ ColliderCylinderDim dim;
} ColliderCylinderInit; // size = 0x2C
typedef struct
{
/* 0x00 */ ColliderInit_Actor body;
/* 0x08 */ ColliderBodyInit inner;
/* 0x20 */ ColliderCylinderDim dim;
} ColliderCylinderInit_Actor; // size = 0x2C
typedef struct
{
/* 0x00 */ Actor* actor;

View File

@ -27,7 +27,17 @@ s32 func_8005B6A0(GlobalContext* globalCtx, Collider* collision)
return 1;
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005B6B0.s")
//SetInit Collider (ColliderInit_Actor)
s32 func_8005B6B0(GlobalContext* globalCtx, Collider* collision, ColliderInit_Actor* src)
{
collision->actor = src->actor;
collision->colliderFlags = src->colliderFlags;
collision->collideFlags = src->collideFlags;
collision->maskA = src->maskA;
collision->maskB = 0x10;
collision->type = src->type;
return 1;
}
//SetInit Collider (maskB = 0x10)
s32 func_8005B6EC(GlobalContext* globalCtx, Collider* collision, Actor* actor, ColliderInit* src)
@ -235,7 +245,9 @@ s32 ActorCollider_FreeCylinder(GlobalContext* globalCtx, ColliderCylinderMain* c
return 1;
}
s32 func_8005C3F4(GlobalContext* globalCtx, ColliderCylinderMain* collision, ColliderCylinderInit* src)
//SetInit Cylinder legacy?
//used only by DekuJr, D_80B92A00
s32 func_8005C3F4(GlobalContext* globalCtx, ColliderCylinderMain* collision, ColliderCylinderInit_Actor* src)
{
func_8005B6B0(globalCtx, &collision->base, &src->body);
func_8005B93C(globalCtx, &collision->body, &src->inner);
@ -243,6 +255,7 @@ s32 func_8005C3F4(GlobalContext* globalCtx, ColliderCylinderMain* collision, Col
return 1;
}
//SetInit Cylinder maskB = 0x10
s32 func_8005C450(GlobalContext* globalCtx, ColliderCylinderMain* collision, Actor* actor, ColliderCylinderInit* src)
{
func_8005B6EC(globalCtx, &collision->base, actor, &src->body);
@ -251,6 +264,8 @@ s32 func_8005C450(GlobalContext* globalCtx, ColliderCylinderMain* collision, Act
return 1;
}
//SetInit Cylinder maskB = src->maskB
//8005c4ac
s32 ActorCollider_InitCylinder(GlobalContext* globalCtx, ColliderCylinderMain* collision, Actor* actor, ColliderCylinderInit* src)
{
func_8005B72C(globalCtx, &collision->base, actor, &src->body);