From c51c7f605ed3387cac1fd31a7ee6fa9ef1d8f3f0 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Fri, 28 Aug 2020 19:40:54 +1000 Subject: [PATCH] Decompile stageGetXTrack --- src/game/game_16cfa0.c | 4 ++-- src/game/game_176080.c | 42 ++++++++++++---------------------- src/include/game/game_176080.h | 4 ++-- 3 files changed, 19 insertions(+), 31 deletions(-) diff --git a/src/game/game_16cfa0.c b/src/game/game_16cfa0.c index 3157ddb84..d8d3b442c 100644 --- a/src/game/game_16cfa0.c +++ b/src/game/game_16cfa0.c @@ -277,7 +277,7 @@ bool audioIsAnyPlayerInRoomWithFlag4000(void) void func0f16d89c(f32 arg0) { - func0f16d1bc(2, func0f176d20(var800aa5d0), arg0, audioGetVolume()); + func0f16d1bc(2, stageGetXTrack(var800aa5d0), arg0, audioGetVolume()); } void func0f16d8e0(f32 arg0) @@ -324,7 +324,7 @@ void func0f16d9fc(void) void func0f16da2c(void) { - if (var800840d8 == 0 && func0f176d20(var800aa5d0) >= 0) { + if (var800840d8 == 0 && stageGetXTrack(var800aa5d0) >= 0) { func0f16d240(2); func0f16d240(3); func0f16d240(4); diff --git a/src/game/game_176080.c b/src/game/game_176080.c index 24e1a4ebb..72af9f848 100644 --- a/src/game/game_176080.c +++ b/src/game/game_176080.c @@ -863,7 +863,7 @@ s32 stageGetPrimaryTrack(s32 stagenum) return func0f18c4c0(); } -s16 stageGetAmbientTrack(s32 stagenum) +s32 stageGetAmbientTrack(s32 stagenum) { s32 i = 0; @@ -878,29 +878,17 @@ s16 stageGetAmbientTrack(s32 stagenum) return -1; } -GLOBAL_ASM( -glabel func0f176d20 -/* f176d20: 3c0e8008 */ lui $t6,%hi(g_StageTracks) -/* f176d24: 85ce4500 */ lh $t6,%lo(g_StageTracks)($t6) -/* f176d28: 3c0f8008 */ lui $t7,%hi(g_StageTracks) -/* f176d2c: 25e34500 */ addiu $v1,$t7,%lo(g_StageTracks) -/* f176d30: 51c0000b */ beqzl $t6,.L0f176d60 -/* f176d34: 2402ffff */ addiu $v0,$zero,-1 -/* f176d38: 84620000 */ lh $v0,0x0($v1) -.L0f176d3c: -/* f176d3c: 54820004 */ bnel $a0,$v0,.L0f176d50 -/* f176d40: 84620008 */ lh $v0,0x8($v1) -/* f176d44: 03e00008 */ jr $ra -/* f176d48: 84620006 */ lh $v0,0x6($v1) -/* f176d4c: 84620008 */ lh $v0,0x8($v1) -.L0f176d50: -/* f176d50: 24630008 */ addiu $v1,$v1,0x8 -/* f176d54: 1440fff9 */ bnez $v0,.L0f176d3c -/* f176d58: 00000000 */ nop -/* f176d5c: 2402ffff */ addiu $v0,$zero,-1 -.L0f176d60: -/* f176d60: 03e00008 */ jr $ra -/* f176d64: 00000000 */ nop -/* f176d68: 00000000 */ nop -/* f176d6c: 00000000 */ nop -); +s32 stageGetXTrack(s32 stagenum) +{ + s32 i = 0; + + while (g_StageTracks[i].stagenum) { + if (g_StageTracks[i].stagenum == stagenum) { + return g_StageTracks[i].xtrack; + } + + i++; + } + + return -1; +} diff --git a/src/include/game/game_176080.h b/src/include/game/game_176080.h index 5262f3a6c..ebe2a9658 100644 --- a/src/include/game/game_176080.h +++ b/src/include/game/game_176080.h @@ -12,7 +12,7 @@ u32 func0f1763f4(void); u32 func0f176668(void); u32 func0f1766b4(void); s32 stageGetPrimaryTrack(s32 stagenum); -s16 stageGetAmbientTrack(s32 stagenum); -s32 func0f176d20(s32 stagenum); +s32 stageGetAmbientTrack(s32 stagenum); +s32 stageGetXTrack(s32 stagenum); #endif