From 32ca10248bd62ea5ccbe859a611b0edf775dc209 Mon Sep 17 00:00:00 2001 From: mzxrules Date: Sat, 21 Mar 2020 23:18:49 -0400 Subject: [PATCH] func_8005BA30 fakish OK, func_8005BAD8 real OK --- .../code/z_collision_check/func_8005BA30.s | 19 ----------------- .../code/z_collision_check/func_8005BAD8.s | 16 -------------- include/z64actor.h | 9 ++++++-- src/code/z_collision_check.c | 21 ++++++++++++++----- 4 files changed, 23 insertions(+), 42 deletions(-) delete mode 100644 asm/non_matchings/code/z_collision_check/func_8005BA30.s delete mode 100644 asm/non_matchings/code/z_collision_check/func_8005BAD8.s diff --git a/asm/non_matchings/code/z_collision_check/func_8005BA30.s b/asm/non_matchings/code/z_collision_check/func_8005BA30.s deleted file mode 100644 index 6729be5bdf..0000000000 --- a/asm/non_matchings/code/z_collision_check/func_8005BA30.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel func_8005BA30 -/* AD2BD0 8005BA30 3C0E8012 */ lui $t6, %hi(D_8011DE54) # $t6, 0x8012 -/* AD2BD4 8005BA34 AFA40000 */ sw $a0, ($sp) -/* AD2BD8 8005BA38 25CEDE54 */ addiu $t6, %lo(D_8011DE54) # addiu $t6, $t6, -0x21ac -/* AD2BDC 8005BA3C 8DD80000 */ lw $t8, ($t6) -/* AD2BE0 8005BA40 24020001 */ li $v0, 1 -/* AD2BE4 8005BA44 ACB80000 */ sw $t8, ($a1) -/* AD2BE8 8005BA48 8DCF0004 */ lw $t7, 4($t6) -/* AD2BEC 8005BA4C ACAF0004 */ sw $t7, 4($a1) -/* AD2BF0 8005BA50 8DD80008 */ lw $t8, 8($t6) -/* AD2BF4 8005BA54 ACB80008 */ sw $t8, 8($a1) -/* AD2BF8 8005BA58 8DCF000C */ lw $t7, 0xc($t6) -/* AD2BFC 8005BA5C ACAF000C */ sw $t7, 0xc($a1) -/* AD2C00 8005BA60 8DD80010 */ lw $t8, 0x10($t6) -/* AD2C04 8005BA64 ACB80010 */ sw $t8, 0x10($a1) -/* AD2C08 8005BA68 8DCF0014 */ lw $t7, 0x14($t6) -/* AD2C0C 8005BA6C 03E00008 */ jr $ra -/* AD2C10 8005BA70 ACAF0014 */ sw $t7, 0x14($a1) - diff --git a/asm/non_matchings/code/z_collision_check/func_8005BAD8.s b/asm/non_matchings/code/z_collision_check/func_8005BAD8.s deleted file mode 100644 index 0142b7990a..0000000000 --- a/asm/non_matchings/code/z_collision_check/func_8005BAD8.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel func_8005BAD8 -/* AD2C78 8005BAD8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* AD2C7C 8005BADC AFBF0014 */ sw $ra, 0x14($sp) -/* AD2C80 8005BAE0 AFA40018 */ sw $a0, 0x18($sp) -/* AD2C84 8005BAE4 0C016E21 */ jal func_8005B884 -/* AD2C88 8005BAE8 AFA5001C */ sw $a1, 0x1c($sp) -/* AD2C8C 8005BAEC 8FA5001C */ lw $a1, 0x1c($sp) -/* AD2C90 8005BAF0 8FA40018 */ lw $a0, 0x18($sp) -/* AD2C94 8005BAF4 0C016E8C */ jal func_8005BA30 -/* AD2C98 8005BAF8 24A50028 */ addiu $a1, $a1, 0x28 -/* AD2C9C 8005BAFC 8FBF0014 */ lw $ra, 0x14($sp) -/* AD2CA0 8005BB00 27BD0018 */ addiu $sp, $sp, 0x18 -/* AD2CA4 8005BB04 24020001 */ li $v0, 1 -/* AD2CA8 8005BB08 03E00008 */ jr $ra -/* AD2CAC 8005BB0C 00000000 */ nop - diff --git a/include/z64actor.h b/include/z64actor.h index 13fcf27c9f..7768d3a053 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -300,7 +300,7 @@ typedef struct /* 0x00 */ s16 radius; /* Cylinder Radius */ /* 0x02 */ s16 height; /* Cylinder Height */ /* 0x04 */ s16 yShift; /* Shift Cylinder on Y Axis */ - /* 0x06 */ Vec3s position; /* {X, Y, Z} position of Cylinder */ + /* 0x08 */ Vec3s position; /* {X, Y, Z} position of Cylinder */ } ColliderCylinderDim; // size = 0xC typedef struct @@ -326,7 +326,12 @@ typedef struct } ColliderCylinderInit_Actor; // size = 0x2C typedef struct { - char pad[0x40]; + s32 pad[6]; +} ColliderJntSphItemDim; + +typedef struct { + ColliderBody body; + ColliderJntSphItemDim dim; } ColliderJntSphItem; typedef struct { diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 2160faaba9..aa8f022ea8 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -191,7 +191,13 @@ void func_8005BA1C(GlobalContext* globalCtx, ColliderBody* body) body->flags2 &= ~0x2; } -#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005BA30.s") +extern ColliderJntSphItemDim D_8011DE54; + +//initialize JntSphItemDim +s32 func_8005BA30(GlobalContext* globalCtx, ColliderJntSphItemDim* dim) { + *dim = D_8011DE54; + return 1; +} s32 func_8005BA74(UNK_TYPE arg0, UNK_TYPE arg1) { @@ -200,10 +206,12 @@ s32 func_8005BA74(UNK_TYPE arg0, UNK_TYPE arg1) #pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005BA84.s") -//call 5BA84, 5BA30 //Initialize JntSphItem -s32 func_8005BAD8(GlobalContext* gctx, ColliderJntSphItem* item); -#pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005BAD8.s") +s32 func_8005BAD8(GlobalContext* globalCtx, ColliderJntSphItem* item) { + func_8005B884(globalCtx, &item->body); + func_8005BA30(globalCtx, &item->dim); + return 1; +} #pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005BB10.s") @@ -215,9 +223,10 @@ s32 func_8005BB48(GlobalContext* gctx, ColliderJntSphItem* item, ColliderJntSphI #pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005BBB0.s") +//wrapper for 5BA1C #pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005BBD4.s") -//Initialize ? List //ClObjJntSph +//Initialize ColliderJntSph s32 func_8005BBF8(GlobalContext* globalCtx, ColliderJntSph* collision) { func_8005B65C(globalCtx, &collision->base); collision->count = 0; @@ -269,6 +278,7 @@ s32 func_8005C050(GlobalContext* globalCtx, ColliderJntSph* dest, Actor* actor, #pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005C1AC.s") +//D_8011DF18 func ptr #pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005C234.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005C2BC.s") @@ -470,6 +480,7 @@ void func_8005D400(UNK_TYPE arg0, UNK_TYPE arg1) #pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005D9F4.s") +//CollisionCheck_SetOC() #pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005DC4C.s") #pragma GLOBAL_ASM("asm/non_matchings/code/z_collision_check/func_8005DF2C.s")