From 9ec6496043a6be172dc657ef4fb286d201e7225a Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 30 Jul 2020 19:21:29 +1000 Subject: [PATCH] Decompile func0f166df0 --- src/game/game_1668e0.c | 29 ++++++----------------------- src/gvars/gvars.c | 2 +- src/include/gvars/gvars.h | 2 +- src/include/types.h | 6 ++++++ 4 files changed, 14 insertions(+), 25 deletions(-) diff --git a/src/game/game_1668e0.c b/src/game/game_1668e0.c index 47f783d9e..7c39c8ca9 100644 --- a/src/game/game_1668e0.c +++ b/src/game/game_1668e0.c @@ -388,26 +388,9 @@ glabel func0f166dd0 /* f166dec: 24420004 */ addiu $v0,$v0,0x4 ); -GLOBAL_ASM( -glabel func0f166df0 -/* f166df0: 3c03800a */ lui $v1,%hi(var800a4cc4) -/* f166df4: 24634cc4 */ addiu $v1,$v1,%lo(var800a4cc4) -/* f166df8: 8c6e0000 */ lw $t6,0x0($v1) -/* f166dfc: 00041080 */ sll $v0,$a0,0x2 -/* f166e00: 00441021 */ addu $v0,$v0,$a0 -/* f166e04: 00021080 */ sll $v0,$v0,0x2 -/* f166e08: 01c27821 */ addu $t7,$t6,$v0 -/* f166e0c: c5e40004 */ lwc1 $f4,0x4($t7) -/* f166e10: e4a40000 */ swc1 $f4,0x0($a1) -/* f166e14: 8c780000 */ lw $t8,0x0($v1) -/* f166e18: 0302c821 */ addu $t9,$t8,$v0 -/* f166e1c: c7260008 */ lwc1 $f6,0x8($t9) -/* f166e20: e4a60004 */ swc1 $f6,0x4($a1) -/* f166e24: 8c680000 */ lw $t0,0x0($v1) -/* f166e28: 01024821 */ addu $t1,$t0,$v0 -/* f166e2c: c528000c */ lwc1 $f8,0xc($t1) -/* f166e30: 03e00008 */ jr $ra -/* f166e34: e4a80008 */ swc1 $f8,0x8($a1) -/* f166e38: 00000000 */ nop -/* f166e3c: 00000000 */ nop -); +void func0f166df0(s32 room, struct coord *globaldrawworldoffset) +{ + globaldrawworldoffset->x = var800a4cc4[room].pos.x; + globaldrawworldoffset->y = var800a4cc4[room].pos.y; + globaldrawworldoffset->z = var800a4cc4[room].pos.z; +} diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 0ecd709d0..8465be0b9 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -17178,7 +17178,7 @@ u32 var800a4cb4 = 0; u32 var800a4cb8 = 0; u32 var800a4cbc = 0; u32 var800a4cc0 = 0; -u32 var800a4cc4 = 0; +struct var800a4cc4 *var800a4cc4 = NULL; struct portal *g_Portals = NULL; u32 var800a4ccc = 0; u8 *var800a4cd0 = NULL; diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 9353ef156..78086158a 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -726,7 +726,7 @@ extern u32 var800a4bec; extern u32 var800a4bf0; extern u32 var800a4bf8; extern u32 var800a4cc0; -extern u32 var800a4cc4; +extern struct var800a4cc4 *var800a4cc4; extern struct portal *g_Portals; extern u32 var800a4ccc; extern u8 *var800a4cd0; diff --git a/src/include/types.h b/src/include/types.h index 4f702e642..b821908b4 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -6293,4 +6293,10 @@ struct var80062a8c { /*0x58*/ u32 unk058; }; +struct var800a4cc4 { + u32 unk00; + struct coord pos; + u32 unk10; +}; + #endif