From 6aff2bbcadce5591f6e5e1eba0933d165d35c121 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Tue, 31 Mar 2020 02:20:08 -0400 Subject: [PATCH] func_8005D3BC ok --- .../code/z_collision_check/func_8005D3BC.s | 19 ------------------- include/functions.h | 6 +++--- include/z64.h | 13 ++++++++++--- src/code/z_collision_check.c | 10 +++++++++- 4 files changed, 22 insertions(+), 26 deletions(-) delete mode 100644 asm/non_matchings/code/z_collision_check/func_8005D3BC.s diff --git a/asm/non_matchings/code/z_collision_check/func_8005D3BC.s b/asm/non_matchings/code/z_collision_check/func_8005D3BC.s deleted file mode 100644 index 613608fb9a..0000000000 --- a/asm/non_matchings/code/z_collision_check/func_8005D3BC.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel func_8005D3BC -/* AD455C 8005D3BC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* AD4560 8005D3C0 AFBF0014 */ sw $ra, 0x14($sp) -/* AD4564 8005D3C4 0C017503 */ jal func_8005D40C -/* AD4568 8005D3C8 A4A00002 */ sh $zero, 2($a1) -/* AD456C 8005D3CC 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* AD4570 8005D3D0 2442FA90 */ addiu $v0, %lo(gGameInfo) # addiu $v0, $v0, -0x570 -/* AD4574 8005D3D4 8C4E0000 */ lw $t6, ($v0) -/* AD4578 8005D3D8 24030001 */ li $v1, 1 -/* AD457C 8005D3DC A5C30E7E */ sh $v1, 0xe7e($t6) -/* AD4580 8005D3E0 8C4F0000 */ lw $t7, ($v0) -/* AD4584 8005D3E4 A5E30E80 */ sh $v1, 0xe80($t7) -/* AD4588 8005D3E8 8C580000 */ lw $t8, ($v0) -/* AD458C 8005D3EC A7030E82 */ sh $v1, 0xe82($t8) -/* AD4590 8005D3F0 8FBF0014 */ lw $ra, 0x14($sp) -/* AD4594 8005D3F4 27BD0018 */ addiu $sp, $sp, 0x18 -/* AD4598 8005D3F8 03E00008 */ jr $ra -/* AD459C 8005D3FC 00000000 */ nop - diff --git a/include/functions.h b/include/functions.h index 132805a183..3310cd4712 100644 --- a/include/functions.h +++ b/include/functions.h @@ -719,9 +719,9 @@ void func_8005D400(UNK_TYPE, UNK_TYPE); // ? func_8005D40C(?); // ? func_8005D4DC(?); // ? func_8005D62C(?); -s32 Actor_CollisionCheck_SetAT(GlobalContext* globalCtx, SubGlobalContext11E60* simpleBodyGroups, ColliderCylinder* collision); -s32 Actor_CollisionCheck_SetAC(GlobalContext* globalCtx, SubGlobalContext11E60* simpleBodyGroups, ColliderCylinder* collision); -s32 Actor_CollisionCheck_SetOT(GlobalContext* globalCtx, SubGlobalContext11E60* simpleBodyGroups, ColliderCylinder* collision); +s32 Actor_CollisionCheck_SetAT(GlobalContext* globalCtx, CollisionCheckContext* simpleBodyGroups, ColliderCylinder* collision); +s32 Actor_CollisionCheck_SetAC(GlobalContext* globalCtx, CollisionCheckContext* simpleBodyGroups, ColliderCylinder* collision); +s32 Actor_CollisionCheck_SetOT(GlobalContext* globalCtx, CollisionCheckContext* simpleBodyGroups, ColliderCylinder* collision); // ? func_8005DF2C(?); // ? func_8005DF50(?); // ? func_8005DF74(?); diff --git a/include/z64.h b/include/z64.h index 0e9d444876..760ab9981d 100644 --- a/include/z64.h +++ b/include/z64.h @@ -777,8 +777,15 @@ typedef struct typedef struct { - /* 0x00 */ char unk_00[0x028C]; -} SubGlobalContext11E60; // size = 0x28C + /* 0x000 */ s16 colAtCount; + /* 0x002 */ u16 unk2; + /* 0x004 */ Collider colAt[50]; + /* 0x0CC */ s32 colAcCount; + /* 0x0D0 */ Collider colAc[60]; + /* 0x1C0 */ s32 colOtCount; + /* 0x1C4 */ Collider colOt[50]; + +} CollisionCheckContext; // size = 0x28C SubGlobalContext11E60 typedef struct { @@ -975,7 +982,7 @@ typedef struct GlobalContext /* 0x11E5D */ s8 bombchuBowlingAmmo; // "bombchu_game_flag" /* 0x11E5E */ u8 fadeOutTransition; /* 0x11E5F */ char unk_11E5F[0x1]; - /* 0x11E60 */ SubGlobalContext11E60 sub_11E60; + /* 0x11E60 */ CollisionCheckContext sub_11E60; /* 0x120EC */ char unk_120EC[0x304]; /* 0x123F0 */ s32 unk_123F0; /* 0x123F4 */ char unk_123F4[0x27]; diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 61ca0ead66..de1a2e3223 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -926,7 +926,15 @@ s32 func_8005D1E0(GlobalContext* globalCtx, ColliderQuad* collision) #pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005D3A4.s") -#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005D3BC.s") +void func_8005D40C(GlobalContext* globalCtx, CollisionCheckContext* check); +void func_8005D3BC(GlobalContext* globalCtx, CollisionCheckContext* check) { + check->unk2 = 0; + func_8005D40C(globalCtx, check); + AREG(21) = 1; + AREG(22) = 1; + AREG(23) = 1; +} + void func_8005D400(UNK_TYPE arg0, UNK_TYPE arg1) {