From d24cb43445ad313259bb793ecf3bc2db2241ba8a Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sun, 29 Mar 2020 13:48:15 +1000 Subject: [PATCH] Decompile func0f0a93e0 --- src/game/game_097ba0.c | 48 +++++++++------------------------- src/include/game/game_097ba0.h | 2 +- src/include/game/game_0b0420.h | 2 +- src/include/types.h | 8 ++---- 4 files changed, 16 insertions(+), 44 deletions(-) diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 2d9f97491..4eaf4bd34 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -21272,42 +21272,18 @@ void currentPlayerSetAimType(u32 aimtype) g_Vars.currentplayer->aimtype = aimtype; } -GLOBAL_ASM( -glabel func0f0a93e0 -/* f0a93e0: 3c02800a */ lui $v0,%hi(g_Vars+0x284) -/* f0a93e4: 8c42a244 */ lw $v0,%lo(g_Vars+0x284)($v0) -/* f0a93e8: 27bdffe0 */ addiu $sp,$sp,-32 -/* f0a93ec: afbf0014 */ sw $ra,0x14($sp) -/* f0a93f0: 00802825 */ or $a1,$a0,$zero -/* f0a93f4: afa50020 */ sw $a1,0x20($sp) -/* f0a93f8: 00002025 */ or $a0,$zero,$zero -/* f0a93fc: 0fc2c4bb */ jal func0f0b12ec -/* f0a9400: afa2001c */ sw $v0,0x1c($sp) -/* f0a9404: 8fa50020 */ lw $a1,0x20($sp) -/* f0a9408: 8fa2001c */ lw $v0,0x1c($sp) -/* f0a940c: 24040001 */ addiu $a0,$zero,0x1 -/* f0a9410: c4a40000 */ lwc1 $f4,0x0($a1) -/* f0a9414: 46040180 */ add.s $f6,$f0,$f4 -/* f0a9418: e44607f8 */ swc1 $f6,0x7f8($v0) -/* f0a941c: c4a80004 */ lwc1 $f8,0x4($a1) -/* f0a9420: e44807fc */ swc1 $f8,0x7fc($v0) -/* f0a9424: c4aa0008 */ lwc1 $f10,0x8($a1) -/* f0a9428: 0fc2c4bb */ jal func0f0b12ec -/* f0a942c: e44a0800 */ swc1 $f10,0x800($v0) -/* f0a9430: 8fa50020 */ lw $a1,0x20($sp) -/* f0a9434: 8fa2001c */ lw $v0,0x1c($sp) -/* f0a9438: c4b00000 */ lwc1 $f16,0x0($a1) -/* f0a943c: 46100480 */ add.s $f18,$f0,$f16 -/* f0a9440: e4520f9c */ swc1 $f18,0xf9c($v0) -/* f0a9444: c4a40004 */ lwc1 $f4,0x4($a1) -/* f0a9448: e4440fa0 */ swc1 $f4,0xfa0($v0) -/* f0a944c: c4a60008 */ lwc1 $f6,0x8($a1) -/* f0a9450: e4460fa4 */ swc1 $f6,0xfa4($v0) -/* f0a9454: 8fbf0014 */ lw $ra,0x14($sp) -/* f0a9458: 27bd0020 */ addiu $sp,$sp,0x20 -/* f0a945c: 03e00008 */ jr $ra -/* f0a9460: 00000000 */ sll $zero,$zero,0x0 -); +void func0f0a93e0(struct coord *coord) +{ + struct player *player = g_Vars.currentplayer; + + player->unk07f8.x = func0f0b12ec(0) + coord->x; + player->unk07f8.y = coord->y; + player->unk07f8.z = coord->z; + + player->unk0f9c.x = func0f0b12ec(1) + coord->x; + player->unk0f9c.y = coord->y; + player->unk0f9c.z = coord->z; +} void func0f0a9464(struct coord *coord) { diff --git a/src/include/game/game_097ba0.h b/src/include/game/game_097ba0.h index 4451d641c..e6bf7512d 100644 --- a/src/include/game/game_097ba0.h +++ b/src/include/game/game_097ba0.h @@ -146,7 +146,7 @@ u32 func0f0a8c7c(void); u32 func0f0a8d34(void); void func0f0a92ac(u32 arg0); void currentPlayerSetAimType(u32 aimtype); -u32 func0f0a93e0(void); +void func0f0a93e0(struct coord *coord); void func0f0a9464(struct coord *coord); void func0f0a9494(u32 operation); void func0f0a94d0(u32 operation, struct coord *a, struct coord *b); diff --git a/src/include/game/game_0b0420.h b/src/include/game/game_0b0420.h index 93974d972..325792a8e 100644 --- a/src/include/game/game_0b0420.h +++ b/src/include/game/game_0b0420.h @@ -25,7 +25,7 @@ struct weaponfunc *weaponGetFunction(u8 *arg0, s32 which); u32 func0f0b10ec(void); u32 func0f0b11bc(void); u32 func0f0b11ec(void); -u32 func0f0b12ec(void); +f32 func0f0b12ec(u32 arg0); u32 func0f0b131c(void); u32 func0f0b14d8(void); u32 func0f0b1588(void); diff --git a/src/include/types.h b/src/include/types.h index 19ea7933a..e674ff4ab 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -1597,9 +1597,7 @@ struct player { /*0x07ec*/ u32 unk07ec; /*0x07f0*/ u32 unk07f0; /*0x07f4*/ u32 unk07f4; - /*0x07f8*/ u32 unk07f8; - /*0x07fc*/ u32 unk07fc; - /*0x0800*/ u32 unk0800; + /*0x07f8*/ struct coord unk07f8; /*0x0804*/ u32 unk0804; /*0x0808*/ u32 unk0808; /*0x080c*/ u32 unk080c; @@ -2080,9 +2078,7 @@ struct player { /*0x0f90*/ u32 unk0f90; /*0x0f94*/ u32 unk0f94; /*0x0f98*/ u32 unk0f98; - /*0x0f9c*/ u32 unk0f9c; - /*0x0fa0*/ u32 unk0fa0; - /*0x0fa4*/ u32 unk0fa4; + /*0x0f9c*/ struct coord unk0f9c; /*0x0fa8*/ u32 unk0fa8; /*0x0fac*/ u32 unk0fac; /*0x0fb0*/ u32 unk0fb0;