From c8a15ec34701743d240866db98ed9ad7b142f563 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 29 Feb 2020 21:33:36 +1000 Subject: [PATCH] Decompile getPlayerByOrderNum --- src/game/game_127910.c | 47 ++++++++++++---------------------- src/game/game_167ae0.c | 2 +- src/include/game/game_127910.h | 2 +- src/lib/lib_0d520.c | 2 +- 4 files changed, 19 insertions(+), 34 deletions(-) diff --git a/src/game/game_127910.c b/src/game/game_127910.c index b0a83c147..be4e15d15 100644 --- a/src/game/game_127910.c +++ b/src/game/game_127910.c @@ -1473,34 +1473,19 @@ u32 calculatePlayerIndex(u32 playernum) return count; } -GLOBAL_ASM( -glabel func0f128ec8 -/* f128ec8: 3c03800a */ lui $v1,%hi(g_Vars) -/* f128ecc: 3c06800a */ lui $a2,0x800a -/* f128ed0: 3c02800a */ lui $v0,%hi(g_Vars) -/* f128ed4: 00802825 */ or $a1,$a0,$zero -/* f128ed8: 24429fc0 */ addiu $v0,$v0,%lo(g_Vars) -/* f128edc: 24c69fd0 */ addiu $a2,$a2,-24624 -/* f128ee0: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars) -/* f128ee4: 8c640274 */ lw $a0,0x274($v1) -.L0f128ee8: -/* f128ee8: 24630004 */ addiu $v1,$v1,0x4 -/* f128eec: 00047080 */ sll $t6,$a0,0x2 -/* f128ef0: 004e7821 */ addu $t7,$v0,$t6 -/* f128ef4: 8df80064 */ lw $t8,0x64($t7) -/* f128ef8: 13000006 */ beqz $t8,.L0f128f14 -/* f128efc: 00000000 */ sll $zero,$zero,0x0 -/* f128f00: 54a00004 */ bnezl $a1,.L0f128f14 -/* f128f04: 24a5ffff */ addiu $a1,$a1,-1 -/* f128f08: 03e00008 */ jr $ra -/* f128f0c: 00801025 */ or $v0,$a0,$zero -/* f128f10: 24a5ffff */ addiu $a1,$a1,-1 -.L0f128f14: -/* f128f14: 5466fff4 */ bnel $v1,$a2,.L0f128ee8 -/* f128f18: 8c640274 */ lw $a0,0x274($v1) -/* f128f1c: 00001025 */ or $v0,$zero,$zero -/* f128f20: 03e00008 */ jr $ra -/* f128f24: 00000000 */ sll $zero,$zero,0x0 -/* f128f28: 00000000 */ sll $zero,$zero,0x0 -/* f128f2c: 00000000 */ sll $zero,$zero,0x0 -); +s32 getPlayerByOrderNum(s32 arg0) +{ + s32 i; + + for (i = 0; i < 4; i++) { + if (g_Vars.players[g_Vars.playerorder[i]]) { + if (arg0 == 0) { + return g_Vars.playerorder[i]; + } + + arg0--; + } + } + + return 0; +} diff --git a/src/game/game_167ae0.c b/src/game/game_167ae0.c index 09444b472..a70bab8ac 100644 --- a/src/game/game_167ae0.c +++ b/src/game/game_167ae0.c @@ -2272,7 +2272,7 @@ glabel func0f169374 /* f1699f8: 1000000a */ beqz $zero,.L0f169a24 /* f1699fc: afb90060 */ sw $t9,0x60($sp) .L0f169a00: -/* f169a00: 0fc4a3b2 */ jal func0f128ec8 +/* f169a00: 0fc4a3b2 */ jal getPlayerByOrderNum /* f169a04: 02002025 */ or $a0,$s0,$zero /* f169a08: 0fc4a24b */ jal setCurrentPlayerNum /* f169a0c: 00402025 */ or $a0,$v0,$zero diff --git a/src/include/game/game_127910.h b/src/include/game/game_127910.h index bdc05a52c..523c1fed1 100644 --- a/src/include/game/game_127910.h +++ b/src/include/game/game_127910.h @@ -17,7 +17,7 @@ s32 weaponGetModel(s32 arg0); void currentPlayerSetWeaponFlag4(s32 weaponslot); void func0f128d20(s32 slot); void randomisePlayerOrder(void); -u32 func0f128ec8(void); +s32 getPlayerByOrderNum(s32 arg0); void setCurrentPlayerNum(u32 playernum); u32 calculatePlayerIndex(u32 playernum); diff --git a/src/lib/lib_0d520.c b/src/lib/lib_0d520.c index 315cfaaf7..1e494d893 100644 --- a/src/lib/lib_0d520.c +++ b/src/lib/lib_0d520.c @@ -1273,7 +1273,7 @@ glabel func0000e324 /* e4c8: 1b000038 */ blez $t8,.L0000e5ac /* e4cc: 00000000 */ sll $zero,$zero,0x0 .L0000e4d0: -/* e4d0: 0fc4a3b2 */ jal func0f128ec8 +/* e4d0: 0fc4a3b2 */ jal getPlayerByOrderNum /* e4d4: 02402025 */ or $a0,$s2,$zero /* e4d8: 0fc4a24b */ jal setCurrentPlayerNum /* e4dc: 00402025 */ or $a0,$v0,$zero