From d213cb01812c9454ef265c069bedad8ee29e64ce Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 31 Jan 2020 17:38:29 +1000 Subject: [PATCH] Decompile func0f0ba010 --- src/game/game_0b28d0.c | 68 ++++++++-------------------------- src/gvars/gvars.c | 10 ++--- src/include/constants.h | 1 + src/include/game/game_0b28d0.h | 2 +- src/include/gvars/gvars.h | 9 +++-- 5 files changed, 27 insertions(+), 63 deletions(-) diff --git a/src/game/game_0b28d0.c b/src/game/game_0b28d0.c index 6dc845170..a1cb57b99 100644 --- a/src/game/game_0b28d0.c +++ b/src/game/game_0b28d0.c @@ -8602,59 +8602,21 @@ glabel func0f0b9cbc /* f0ba00c: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f0ba010 -/* f0ba010: 27bdffe8 */ addiu $sp,$sp,-24 -/* f0ba014: afbf0014 */ sw $ra,0x14($sp) -/* f0ba018: 0fc2e58f */ jal setTickMode -/* f0ba01c: 24040006 */ addiu $a0,$zero,0x6 -/* f0ba020: 3c018007 */ lui $at,0x8007 -/* f0ba024: ac200744 */ sw $zero,0x744($at) -/* f0ba028: 0fc31f7b */ jal releaseObj -/* f0ba02c: 24040005 */ addiu $a0,$zero,0x5 -/* f0ba030: 0fc30748 */ jal func0f0c1d20 -/* f0ba034: 00000000 */ sll $zero,$zero,0x0 -/* f0ba038: 3c02800a */ lui $v0,0x800a -/* f0ba03c: 8c42de20 */ lw $v0,-0x21e0($v0) -/* f0ba040: 3c01800a */ lui $at,0x800a -/* f0ba044: 44802000 */ mtc1 $zero,$f4 -/* f0ba048: ac22de14 */ sw $v0,-0x21ec($at) -/* f0ba04c: 3c01800a */ lui $at,0x800a -/* f0ba050: 00027083 */ sra $t6,$v0,0x2 -/* f0ba054: ac2ede10 */ sw $t6,-0x21f0($at) -/* f0ba058: 3c01800a */ lui $at,0x800a -/* f0ba05c: e424de1c */ swc1 $f4,-0x21e4($at) -/* f0ba060: 3c01800a */ lui $at,0x800a -/* f0ba064: 240fffff */ addiu $t7,$zero,-1 -/* f0ba068: ac2fde2c */ sw $t7,-0x21d4($at) -/* f0ba06c: 3c018007 */ lui $at,0x8007 -/* f0ba070: 24180001 */ addiu $t8,$zero,0x1 -/* f0ba074: ac380764 */ sw $t8,0x764($at) -/* f0ba078: 0fc4772c */ jal func0f11dcb0 -/* f0ba07c: 24040001 */ addiu $a0,$zero,0x1 -/* f0ba080: 3c05800a */ lui $a1,%hi(g_Vars) -/* f0ba084: 24a59fc0 */ addiu $a1,$a1,%lo(g_Vars) -/* f0ba088: 8ca302ac */ lw $v1,0x2ac($a1) -/* f0ba08c: 3c04800a */ lui $a0,0x800a -/* f0ba090: 38790006 */ xori $t9,$v1,0x6 -/* f0ba094: 2f230001 */ sltiu $v1,$t9,0x1 -/* f0ba098: 5060000a */ beqzl $v1,.L0f0ba0c4 -/* f0ba09c: 8fbf0014 */ lw $ra,0x14($sp) -/* f0ba0a0: 0c008dda */ jal func00023768 -/* f0ba0a4: 8484de18 */ lh $a0,-0x21e8($a0) -/* f0ba0a8: 3c08800a */ lui $t0,0x800a -/* f0ba0ac: 8d08de10 */ lw $t0,-0x21f0($t0) -/* f0ba0b0: 3c05800a */ lui $a1,%hi(g_Vars) -/* f0ba0b4: 2449ffff */ addiu $t1,$v0,-1 -/* f0ba0b8: 24a59fc0 */ addiu $a1,$a1,%lo(g_Vars) -/* f0ba0bc: 0109182a */ slt $v1,$t0,$t1 -/* f0ba0c0: 8fbf0014 */ lw $ra,0x14($sp) -.L0f0ba0c4: -/* f0ba0c4: aca304cc */ sw $v1,0x4cc($a1) -/* f0ba0c8: a0a004e2 */ sb $zero,0x4e2($a1) -/* f0ba0cc: 03e00008 */ jr $ra -/* f0ba0d0: 27bd0018 */ addiu $sp,$sp,0x18 -); +void func0f0ba010(void) +{ + setTickMode(TICKMODE_6); + var80070744 = 0; + releaseObj(5); + func0f0c1d20(); + var8009de14 = var8009de20; + var8009de10 = var8009de20 >> 2; + var8009de1c = 0; + var8009de2c = -1; + var80070764 = 1; + func0f11dcb0(1); + g_Vars.in_cutscene = g_Vars.tickmode == TICKMODE_6 && var8009de10 < func00023768(var8009de18) - 1; + g_Vars.unk0004e2 = 0; +} GLOBAL_ASM( glabel cameraDoAnimation diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 0e0a4349b..bc2239239 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -16944,14 +16944,14 @@ f32 var8009de00 = 0; u32 var8009de04 = 0; u32 var8009de08 = 0; u32 var8009de0c = 0; -u32 var8009de10 = 0; +s32 var8009de10 = 0; u32 var8009de14 = 0; -u32 var8009de18 = 0; -u32 var8009de1c = 0; -u32 var8009de20 = 0; +s16 var8009de18 = 0; +f32 var8009de1c = 0; +s32 var8009de20 = 0; u32 var8009de24 = 0; u32 var8009de28 = 0; -u32 var8009de2c = 0; +s32 var8009de2c = 0; u32 var8009de30 = 0; u32 var8009de34 = 0; u32 var8009de38 = 0; diff --git a/src/include/constants.h b/src/include/constants.h index d23009b42..aa524dc61 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -1749,6 +1749,7 @@ #define TICKMODE_1 1 #define TICKMODE_3 3 #define TICKMODE_4 4 +#define TICKMODE_6 6 #define TELEPORTSTATE_STARTING 1 #define TELEPORTSTATE_3 3 diff --git a/src/include/game/game_0b28d0.h b/src/include/game/game_0b28d0.h index 4bf8d0831..879c44eab 100644 --- a/src/include/game/game_0b28d0.h +++ b/src/include/game/game_0b28d0.h @@ -88,7 +88,7 @@ void warpBondToPad(s16 pad_id); void func0f0b9bac(s32 arg0, s32 arg1, s32 arg2); void func0f0b9c1c(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5); u32 func0f0b9cbc(void); -u32 func0f0ba010(void); +void func0f0ba010(void); void cameraDoAnimation(s16 anim_id); u32 func0f0ba190(u32 arg0); u32 func0f0ba29c(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 1f3373b48..2fb1b8e7d 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -358,7 +358,7 @@ extern u32 var80090af8; extern u32 var80090afc; extern u32 var8009cac0; extern u32 var8009cac4; -extern u32 var8009de20; +extern s32 var8009de20; extern u32 var8009de24; extern u32 var8008ae2c; @@ -629,11 +629,12 @@ extern f32 var8009de00; extern u32 var8009de04; extern u32 var8009de08; extern u32 var8009de0c; -extern u32 var8009de10; +extern s32 var8009de10; extern u32 var8009de14; -extern u32 var8009de18; -extern u32 var8009de1c; +extern s16 var8009de18; +extern f32 var8009de1c; extern u32 var8009de28; +extern s32 var8009de2c; extern u32 var8009de30; extern u32 var8009de38; extern u32 var8009de78;