diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index ee4dcc3db..438d366a6 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -11128,39 +11128,16 @@ glabel func0f0291d4 /* f0292b8: 00000000 */ nop ); -GLOBAL_ASM( -glabel func0f0292bc -/* f0292bc: 27bdffd8 */ addiu $sp,$sp,-40 -/* f0292c0: afb2001c */ sw $s2,0x1c($sp) -/* f0292c4: afb30020 */ sw $s3,0x20($sp) -/* f0292c8: afb10018 */ sw $s1,0x18($sp) -/* f0292cc: afb00014 */ sw $s0,0x14($sp) -/* f0292d0: 3c128006 */ lui $s2,%hi(var80062a8c) -/* f0292d4: 00808825 */ or $s1,$a0,$zero -/* f0292d8: afbf0024 */ sw $ra,0x24($sp) -/* f0292dc: 26522a8c */ addiu $s2,$s2,%lo(var80062a8c) -/* f0292e0: 00008025 */ or $s0,$zero,$zero -/* f0292e4: 24130730 */ addiu $s3,$zero,0x730 -/* f0292e8: 8e420000 */ lw $v0,0x0($s2) -.L0f0292ec: -/* f0292ec: 00507021 */ addu $t6,$v0,$s0 -/* f0292f0: 8dcf0000 */ lw $t7,0x0($t6) -/* f0292f4: 562f0004 */ bnel $s1,$t7,.L0f029308 -/* f0292f8: 2610005c */ addiu $s0,$s0,0x5c -/* f0292fc: 0fc0a475 */ jal func0f0291d4 -/* f029300: 02022021 */ addu $a0,$s0,$v0 -/* f029304: 2610005c */ addiu $s0,$s0,0x5c -.L0f029308: -/* f029308: 5613fff8 */ bnel $s0,$s3,.L0f0292ec -/* f02930c: 8e420000 */ lw $v0,0x0($s2) -/* f029310: 8fbf0024 */ lw $ra,0x24($sp) -/* f029314: 8fb00014 */ lw $s0,0x14($sp) -/* f029318: 8fb10018 */ lw $s1,0x18($sp) -/* f02931c: 8fb2001c */ lw $s2,0x1c($sp) -/* f029320: 8fb30020 */ lw $s3,0x20($sp) -/* f029324: 03e00008 */ jr $ra -/* f029328: 27bd0028 */ addiu $sp,$sp,0x28 -); +void func0f0292bc(struct prop *prop) +{ + s32 i; + + for (i = 0; i < 20; i++) { + if (prop == var80062a8c[i].prop) { + func0f0291d4(&var80062a8c[i]); + } + } +} GLOBAL_ASM( glabel func0f02932c diff --git a/src/game/data/data_0083d0.c b/src/game/data/data_0083d0.c index 6ce953892..79b71a945 100644 --- a/src/game/data/data_0083d0.c +++ b/src/game/data/data_0083d0.c @@ -97,7 +97,7 @@ u32 var80062a7c = 0x00000000; u32 var80062a80 = 0x00000000; u32 var80062a84 = 0x00000000; u32 var80062a88 = 0x00000000; -u32 var80062a8c = 0x00000000; +struct var80062a8c *var80062a8c = NULL; // pointer to array u32 var80062a90 = 0x00000000; u32 var80062a94 = 0x00000000; u32 var80062a98 = 0x00000000; diff --git a/src/include/game/chr/chr.h b/src/include/game/chr/chr.h index 924878401..822ad009f 100644 --- a/src/include/game/chr/chr.h +++ b/src/include/game/chr/chr.h @@ -49,7 +49,7 @@ u32 func0f028d50(void); u32 func0f028e18(void); u32 func0f028e6c(void); u32 func0f028f7c(void); -u32 func0f0291d4(void); +void func0f0291d4(struct var80062a8c *thing); void func0f0292bc(struct prop *prop); u32 func0f02932c(void); u32 func0f0293ec(void); diff --git a/src/include/game/data/data_0083d0.h b/src/include/game/data/data_0083d0.h index 8d61c908b..a8b8092d0 100644 --- a/src/include/game/data/data_0083d0.h +++ b/src/include/game/data/data_0083d0.h @@ -102,7 +102,7 @@ extern u32 var800629fc; extern u32 var80062a3c; extern u8 var80062a48[]; extern u32 var80062a4c; -extern u32 var80062a8c; +extern struct var80062a8c *var80062a8c; extern u32 var80062a90; extern u32 var80062a94; extern u32 var80062aa0; diff --git a/src/include/types.h b/src/include/types.h index 6bbf6647b..f12ec39d4 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -6268,4 +6268,30 @@ struct rend_vidat { /*0x28*/ u32 unk28; }; +struct var80062a8c { + /*0x00*/ struct prop *prop; + /*0x04*/ u32 unk004; + /*0x08*/ u32 unk008; + /*0x0c*/ u32 unk00c; + /*0x10*/ u32 unk010; + /*0x14*/ u32 unk014; + /*0x18*/ u32 unk018; + /*0x1c*/ u32 unk01c; + /*0x20*/ u32 unk020; + /*0x24*/ u32 unk024; + /*0x28*/ u32 unk028; + /*0x2c*/ u32 unk02c; + /*0x30*/ u32 unk030; + /*0x34*/ u32 unk034; + /*0x38*/ u32 unk038; + /*0x3c*/ u32 unk03c; + /*0x40*/ u32 unk040; + /*0x44*/ u32 unk044; + /*0x48*/ u32 unk048; + /*0x4c*/ u32 unk04c; + /*0x50*/ u32 unk050; + /*0x54*/ u32 unk054; + /*0x58*/ u32 unk058; +}; + #endif