From 689f0b38ab61d29a83aa204d28448cd5c0637b2d Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 30 Jun 2020 23:18:40 +1000 Subject: [PATCH] Decompile modelGetPartNodeData --- src/game/chr/chraction.c | 2 +- src/game/game_00c490.c | 12 ++++----- src/game/propobj.c | 54 ++++++++++++++++++------------------- src/game/title.c | 4 +-- src/include/lib/lib_1a500.h | 2 +- src/lib/lib_1a500.c | 26 +++++++----------- 6 files changed, 47 insertions(+), 53 deletions(-) diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index 476316aeb..4f68c9122 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -18977,7 +18977,7 @@ glabel var7f1a91dc /* f042c98: 24050001 */ addiu $a1,$zero,0x1 .L0f042c9c: /* f042c9c: 8e4b0020 */ lw $t3,0x20($s2) -/* f042ca0: 0c006a6f */ jal func0001a9bc +/* f042ca0: 0c006a6f */ jal modelGetPartNodeData /* f042ca4: 8d640008 */ lw $a0,0x8($t3) /* f042ca8: c4500000 */ lwc1 $f16,0x0($v0) /* f042cac: 3c014396 */ lui $at,0x4396 diff --git a/src/game/game_00c490.c b/src/game/game_00c490.c index 3b7435595..91f1bcd8d 100644 --- a/src/game/game_00c490.c +++ b/src/game/game_00c490.c @@ -1710,7 +1710,7 @@ glabel var7f1a804c /* f00da34: 8fbf0044 */ lw $ra,0x44($sp) /* f00da38: 8e0f0018 */ lw $t7,0x18($s0) /* f00da3c: 00002825 */ or $a1,$zero,$zero -/* f00da40: 0c006a6f */ jal func0001a9bc +/* f00da40: 0c006a6f */ jal modelGetPartNodeData /* f00da44: 8de40008 */ lw $a0,0x8($t7) /* f00da48: 8604005c */ lh $a0,0x5c($s0) /* f00da4c: afa200b4 */ sw $v0,0xb4($sp) @@ -4116,7 +4116,7 @@ glabel var7f1a8224 /* f00f988: 8e040000 */ lw $a0,0x0($s0) /* f00f98c: 50800025 */ beqzl $a0,.L0f00fa24 /* f00f990: 8e580008 */ lw $t8,0x8($s2) -/* f00f994: 0c006a6f */ jal func0001a9bc +/* f00f994: 0c006a6f */ jal modelGetPartNodeData /* f00f998: 24050001 */ addiu $a1,$zero,0x1 /* f00f99c: 10400004 */ beqz $v0,.L0f00f9b0 /* f00f9a0: 24050002 */ addiu $a1,$zero,0x2 @@ -4124,7 +4124,7 @@ glabel var7f1a8224 /* f00f9a8: 25cf0001 */ addiu $t7,$t6,0x1 /* f00f9ac: a24f005a */ sb $t7,0x5a($s2) .L0f00f9b0: -/* f00f9b0: 0c006a6f */ jal func0001a9bc +/* f00f9b0: 0c006a6f */ jal modelGetPartNodeData /* f00f9b4: 8e040000 */ lw $a0,0x0($s0) /* f00f9b8: 10400004 */ beqz $v0,.L0f00f9cc /* f00f9bc: 24050003 */ addiu $a1,$zero,0x3 @@ -4132,7 +4132,7 @@ glabel var7f1a8224 /* f00f9c4: 27380001 */ addiu $t8,$t9,0x1 /* f00f9c8: a258005a */ sb $t8,0x5a($s2) .L0f00f9cc: -/* f00f9cc: 0c006a6f */ jal func0001a9bc +/* f00f9cc: 0c006a6f */ jal modelGetPartNodeData /* f00f9d0: 8e040000 */ lw $a0,0x0($s0) /* f00f9d4: 10400004 */ beqz $v0,.L0f00f9e8 /* f00f9d8: 24050004 */ addiu $a1,$zero,0x4 @@ -4140,7 +4140,7 @@ glabel var7f1a8224 /* f00f9e0: 256c0001 */ addiu $t4,$t3,0x1 /* f00f9e4: a24c005a */ sb $t4,0x5a($s2) .L0f00f9e8: -/* f00f9e8: 0c006a6f */ jal func0001a9bc +/* f00f9e8: 0c006a6f */ jal modelGetPartNodeData /* f00f9ec: 8e040000 */ lw $a0,0x0($s0) /* f00f9f0: 10400004 */ beqz $v0,.L0f00fa04 /* f00f9f4: 24050006 */ addiu $a1,$zero,0x6 @@ -4148,7 +4148,7 @@ glabel var7f1a8224 /* f00f9fc: 25ae0001 */ addiu $t6,$t5,0x1 /* f00fa00: a24e005a */ sb $t6,0x5a($s2) .L0f00fa04: -/* f00fa04: 0c006a6f */ jal func0001a9bc +/* f00fa04: 0c006a6f */ jal modelGetPartNodeData /* f00fa08: 8e040000 */ lw $a0,0x0($s0) /* f00fa0c: 50400005 */ beqzl $v0,.L0f00fa24 /* f00fa10: 8e580008 */ lw $t8,0x8($s2) diff --git a/src/game/propobj.c b/src/game/propobj.c index 3dd1a1bfb..86c3f7bfb 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -4335,7 +4335,7 @@ glabel func0f069850 /* f0698d0: 55020005 */ bnel $t0,$v0,.L0f0698e8 /* f0698d4: 8e090010 */ lw $t1,0x10($s0) .L0f0698d8: -/* f0698d8: 0c006a6f */ jal func0001a9bc +/* f0698d8: 0c006a6f */ jal modelGetPartNodeData /* f0698dc: 24050064 */ addiu $a1,$zero,0x64 /* f0698e0: afa20030 */ sw $v0,0x30($sp) /* f0698e4: 8e090010 */ lw $t1,0x10($s0) @@ -4529,7 +4529,7 @@ glabel func0f069b4c /* f069b98: 8e280018 */ lw $t0,0x18($s1) .L0f069b9c: /* f069b9c: 24050065 */ addiu $a1,$zero,0x65 -/* f069ba0: 0c006a6f */ jal func0001a9bc +/* f069ba0: 0c006a6f */ jal modelGetPartNodeData /* f069ba4: 8d040008 */ lw $a0,0x8($t0) /* f069ba8: 1040000c */ beqz $v0,.L0f069bdc /* f069bac: 00401825 */ or $v1,$v0,$zero @@ -4548,7 +4548,7 @@ glabel func0f069b4c .L0f069bdc: /* f069bdc: 8e2a0018 */ lw $t2,0x18($s1) /* f069be0: 24050066 */ addiu $a1,$zero,0x66 -/* f069be4: 0c006a6f */ jal func0001a9bc +/* f069be4: 0c006a6f */ jal modelGetPartNodeData /* f069be8: 8d440008 */ lw $a0,0x8($t2) /* f069bec: 10400006 */ beqz $v0,.L0f069c08 /* f069bf0: 02202025 */ or $a0,$s1,$zero @@ -4994,7 +4994,7 @@ glabel func0f06a1ec /* f06a238: 24050065 */ addiu $a1,$zero,0x65 /* f06a23c: ae070018 */ sw $a3,0x18($s0) /* f06a240: afa60028 */ sw $a2,0x28($sp) -/* f06a244: 0c006a6f */ jal func0001a9bc +/* f06a244: 0c006a6f */ jal modelGetPartNodeData /* f06a248: 8fa40024 */ lw $a0,0x24($sp) /* f06a24c: 10400004 */ beqz $v0,.L0f06a260 /* f06a250: 8fa60028 */ lw $a2,0x28($sp) @@ -5004,7 +5004,7 @@ glabel func0f06a1ec .L0f06a260: /* f06a260: 8fa40024 */ lw $a0,0x24($sp) /* f06a264: 24050066 */ addiu $a1,$zero,0x66 -/* f06a268: 0c006a6f */ jal func0001a9bc +/* f06a268: 0c006a6f */ jal modelGetPartNodeData /* f06a26c: afa60028 */ sw $a2,0x28($sp) /* f06a270: 10400004 */ beqz $v0,.L0f06a284 /* f06a274: 8fa60028 */ lw $a2,0x28($sp) @@ -12678,13 +12678,13 @@ glabel func0f070f08 /* f070f78: 24050005 */ addiu $a1,$zero,0x5 /* f070f7c: 8e280018 */ lw $t0,0x18($s1) /* f070f80: 2413003b */ addiu $s3,$zero,0x3b -/* f070f84: 0c006a6f */ jal func0001a9bc +/* f070f84: 0c006a6f */ jal modelGetPartNodeData /* f070f88: 8d040008 */ lw $a0,0x8($t0) /* f070f8c: 14400036 */ bnez $v0,.L0f071068 /* f070f90: 00408025 */ or $s0,$v0,$zero /* f070f94: 8e290018 */ lw $t1,0x18($s1) /* f070f98: 00002825 */ or $a1,$zero,$zero -/* f070f9c: 0c006a6f */ jal func0001a9bc +/* f070f9c: 0c006a6f */ jal modelGetPartNodeData /* f070fa0: 8d240008 */ lw $a0,0x8($t1) /* f070fa4: 14400030 */ bnez $v0,.L0f071068 /* f070fa8: 0040a025 */ or $s4,$v0,$zero @@ -12697,7 +12697,7 @@ glabel func0f070f08 /* f070fc0: 02a02825 */ or $a1,$s5,$zero /* f070fc4: 8e2a0018 */ lw $t2,0x18($s1) /* f070fc8: 24130004 */ addiu $s3,$zero,0x4 -/* f070fcc: 0c006a6f */ jal func0001a9bc +/* f070fcc: 0c006a6f */ jal modelGetPartNodeData /* f070fd0: 8d440008 */ lw $a0,0x8($t2) /* f070fd4: 10000024 */ b .L0f071068 /* f070fd8: 00408025 */ or $s0,$v0,$zero @@ -12706,7 +12706,7 @@ glabel func0f070f08 /* f070fe0: 02c02825 */ or $a1,$s6,$zero /* f070fe4: 8e2b0018 */ lw $t3,0x18($s1) /* f070fe8: 24130004 */ addiu $s3,$zero,0x4 -/* f070fec: 0c006a6f */ jal func0001a9bc +/* f070fec: 0c006a6f */ jal modelGetPartNodeData /* f070ff0: 8d640008 */ lw $a0,0x8($t3) /* f070ff4: 1000001c */ b .L0f071068 /* f070ff8: 00408025 */ or $s0,$v0,$zero @@ -12715,7 +12715,7 @@ glabel func0f070f08 /* f071000: 02e02825 */ or $a1,$s7,$zero /* f071004: 8e2c0018 */ lw $t4,0x18($s1) /* f071008: 24130004 */ addiu $s3,$zero,0x4 -/* f07100c: 0c006a6f */ jal func0001a9bc +/* f07100c: 0c006a6f */ jal modelGetPartNodeData /* f071010: 8d840008 */ lw $a0,0x8($t4) /* f071014: 10000014 */ b .L0f071068 /* f071018: 00408025 */ or $s0,$v0,$zero @@ -12728,7 +12728,7 @@ glabel func0f070f08 /* f071030: 00000000 */ nop /* f071034: 8e2f0018 */ lw $t7,0x18($s1) /* f071038: 24130004 */ addiu $s3,$zero,0x4 -/* f07103c: 0c006a6f */ jal func0001a9bc +/* f07103c: 0c006a6f */ jal modelGetPartNodeData /* f071040: 8de40008 */ lw $a0,0x8($t7) /* f071044: 10000008 */ b .L0f071068 /* f071048: 00408025 */ or $s0,$v0,$zero @@ -12737,7 +12737,7 @@ glabel func0f070f08 /* f071050: 24050006 */ addiu $a1,$zero,0x6 /* f071054: 8e2e0018 */ lw $t6,0x18($s1) /* f071058: 2413003b */ addiu $s3,$zero,0x3b -/* f07105c: 0c006a6f */ jal func0001a9bc +/* f07105c: 0c006a6f */ jal modelGetPartNodeData /* f071060: 8dc40008 */ lw $a0,0x8($t6) /* f071064: 00408025 */ or $s0,$v0,$zero .L0f071068: @@ -19873,7 +19873,7 @@ glabel var7f1aa44c /* f0774d0: c436a444 */ lwc1 $f22,%lo(var7f1aa444)($at) /* f0774d4: 460e2182 */ mul.s $f6,$f4,$f14 /* f0774d8: 24050001 */ addiu $a1,$zero,0x1 -/* f0774dc: 0c006a6f */ jal func0001a9bc +/* f0774dc: 0c006a6f */ jal modelGetPartNodeData /* f0774e0: 4606b501 */ sub.s $f20,$f22,$f6 /* f0774e4: 26b10040 */ addiu $s1,$s5,0x40 /* f0774e8: 00408025 */ or $s0,$v0,$zero @@ -19887,7 +19887,7 @@ glabel var7f1aa44c /* f077508: 0c00567f */ jal func000159fc /* f07750c: 02202825 */ or $a1,$s1,$zero /* f077510: 8ec40008 */ lw $a0,0x8($s6) -/* f077514: 0c006a6f */ jal func0001a9bc +/* f077514: 0c006a6f */ jal modelGetPartNodeData /* f077518: 24050002 */ addiu $a1,$zero,0x2 /* f07751c: 26b10080 */ addiu $s1,$s5,0x80 /* f077520: 00408025 */ or $s0,$v0,$zero @@ -19930,7 +19930,7 @@ glabel var7f1aa44c .L0f0775ac: /* f0775ac: 26330001 */ addiu $s3,$s1,0x1 /* f0775b0: 02602825 */ or $a1,$s3,$zero -/* f0775b4: 0c006a6f */ jal func0001a9bc +/* f0775b4: 0c006a6f */ jal modelGetPartNodeData /* f0775b8: 8ec40008 */ lw $a0,0x8($s6) /* f0775bc: 0013c180 */ sll $t8,$s3,0x6 /* f0775c0: 02b89021 */ addu $s2,$s5,$t8 @@ -19946,7 +19946,7 @@ glabel var7f1aa44c /* f0775e8: 02402825 */ or $a1,$s2,$zero /* f0775ec: 26330002 */ addiu $s3,$s1,0x2 /* f0775f0: 02602825 */ or $a1,$s3,$zero -/* f0775f4: 0c006a6f */ jal func0001a9bc +/* f0775f4: 0c006a6f */ jal modelGetPartNodeData /* f0775f8: 8ec40008 */ lw $a0,0x8($s6) /* f0775fc: 0013c980 */ sll $t9,$s3,0x6 /* f077600: 02b98821 */ addu $s1,$s5,$t9 @@ -21486,7 +21486,7 @@ glabel var7f1aa4ac /* f078948: 8c4e000c */ lw $t6,0xc($v0) /* f07894c: afae0074 */ sw $t6,0x74($sp) /* f078950: 8c440008 */ lw $a0,0x8($v0) -/* f078954: 0c006a6f */ jal func0001a9bc +/* f078954: 0c006a6f */ jal modelGetPartNodeData /* f078958: afa3007c */ sw $v1,0x7c($sp) /* f07895c: 8fa3007c */ lw $v1,0x7c($sp) /* f078960: 44802000 */ mtc1 $zero,$f4 @@ -22898,7 +22898,7 @@ glabel var7f1aa588 /* f079d00: 8e240008 */ lw $a0,0x8($s1) .L0f079d04: /* f079d04: e7ac0048 */ swc1 $f12,0x48($sp) -/* f079d08: 0c006a6f */ jal func0001a9bc +/* f079d08: 0c006a6f */ jal modelGetPartNodeData /* f079d0c: afa20064 */ sw $v0,0x64($sp) /* f079d10: c4500000 */ lwc1 $f16,0x0($v0) /* f079d14: 02002025 */ or $a0,$s0,$zero @@ -24017,7 +24017,7 @@ glabel var7f1aa5b0 /* f07ace8: 8c4e000c */ lw $t6,0xc($v0) /* f07acec: afae00ec */ sw $t6,0xec($sp) /* f07acf0: 8c440008 */ lw $a0,0x8($v0) -/* f07acf4: 0c006a6f */ jal func0001a9bc +/* f07acf4: 0c006a6f */ jal modelGetPartNodeData /* f07acf8: afa200f0 */ sw $v0,0xf0($sp) /* f07acfc: afa200e8 */ sw $v0,0xe8($sp) /* f07ad00: 3c017f1b */ lui $at,%hi(var7f1aa5ac) @@ -24047,7 +24047,7 @@ glabel var7f1aa5b0 /* f07ad60: afa60024 */ sw $a2,0x24($sp) /* f07ad64: 8faf00f0 */ lw $t7,0xf0($sp) /* f07ad68: 24050002 */ addiu $a1,$zero,0x2 -/* f07ad6c: 0c006a6f */ jal func0001a9bc +/* f07ad6c: 0c006a6f */ jal modelGetPartNodeData /* f07ad70: 8de40008 */ lw $a0,0x8($t7) /* f07ad74: afa200e8 */ sw $v0,0xe8($sp) /* f07ad78: c60c00dc */ lwc1 $f12,0xdc($s0) @@ -24470,7 +24470,7 @@ glabel var7f1aa610 /* f07b48c: 8fa90114 */ lw $t1,0x114($sp) /* f07b490: 510000b2 */ beqzl $t0,.L0f07b75c /* f07b494: c60000d8 */ lwc1 $f0,0xd8($s0) -/* f07b498: 0c006a6f */ jal func0001a9bc +/* f07b498: 0c006a6f */ jal modelGetPartNodeData /* f07b49c: 8d240008 */ lw $a0,0x8($t1) /* f07b4a0: 8faa00dc */ lw $t2,0xdc($sp) /* f07b4a4: afa200d0 */ sw $v0,0xd0($sp) @@ -27665,7 +27665,7 @@ glabel func0f07e1fc /* f07e210: 00002825 */ or $a1,$zero,$zero /* f07e214: 8c510018 */ lw $s1,0x18($v0) /* f07e218: 8e30000c */ lw $s0,0xc($s1) -/* f07e21c: 0c006a6f */ jal func0001a9bc +/* f07e21c: 0c006a6f */ jal modelGetPartNodeData /* f07e220: 8e240008 */ lw $a0,0x8($s1) /* f07e224: 26050040 */ addiu $a1,$s0,0x40 /* f07e228: afa50024 */ sw $a1,0x24($sp) @@ -27675,7 +27675,7 @@ glabel func0f07e1fc /* f07e238: 0c0056f8 */ jal func00015be0 /* f07e23c: 02002025 */ or $a0,$s0,$zero /* f07e240: 8e240008 */ lw $a0,0x8($s1) -/* f07e244: 0c006a6f */ jal func0001a9bc +/* f07e244: 0c006a6f */ jal modelGetPartNodeData /* f07e248: 24050001 */ addiu $a1,$zero,0x1 /* f07e24c: 26050080 */ addiu $a1,$s0,0x80 /* f07e250: afa50024 */ sw $a1,0x24($sp) @@ -27685,7 +27685,7 @@ glabel func0f07e1fc /* f07e260: 0c0056f8 */ jal func00015be0 /* f07e264: 02002025 */ or $a0,$s0,$zero /* f07e268: 8e240008 */ lw $a0,0x8($s1) -/* f07e26c: 0c006a6f */ jal func0001a9bc +/* f07e26c: 0c006a6f */ jal modelGetPartNodeData /* f07e270: 24050002 */ addiu $a1,$zero,0x2 /* f07e274: 260500c0 */ addiu $a1,$s0,0xc0 /* f07e278: afa50024 */ sw $a1,0x24($sp) @@ -27695,7 +27695,7 @@ glabel func0f07e1fc /* f07e288: 0c0056f8 */ jal func00015be0 /* f07e28c: 02002025 */ or $a0,$s0,$zero /* f07e290: 8e240008 */ lw $a0,0x8($s1) -/* f07e294: 0c006a6f */ jal func0001a9bc +/* f07e294: 0c006a6f */ jal modelGetPartNodeData /* f07e298: 24050003 */ addiu $a1,$zero,0x3 /* f07e29c: 26110100 */ addiu $s1,$s0,0x100 /* f07e2a0: 02202825 */ or $a1,$s1,$zero @@ -34799,7 +34799,7 @@ glabel func0f084e58 /* f084e70: 8c820018 */ lw $v0,0x18($a0) /* f084e74: 8c440008 */ lw $a0,0x8($v0) /* f084e78: afa60098 */ sw $a2,0x98($sp) -/* f084e7c: 0c006a6f */ jal func0001a9bc +/* f084e7c: 0c006a6f */ jal modelGetPartNodeData /* f084e80: afa20088 */ sw $v0,0x88($sp) /* f084e84: 8fa60098 */ lw $a2,0x98($sp) /* f084e88: 00404025 */ or $t0,$v0,$zero @@ -34876,7 +34876,7 @@ glabel func0f084f64 /* f084f88: 33190002 */ andi $t9,$t8,0x2 /* f084f8c: 53200022 */ beqzl $t9,.L0f085018 /* f084f90: 8fa4008c */ lw $a0,0x8c($sp) -/* f084f94: 0c006a6f */ jal func0001a9bc +/* f084f94: 0c006a6f */ jal modelGetPartNodeData /* f084f98: 8e240008 */ lw $a0,0x8($s1) /* f084f9c: 00408025 */ or $s0,$v0,$zero /* f084fa0: 8e240008 */ lw $a0,0x8($s1) diff --git a/src/game/title.c b/src/game/title.c index f8f3474a7..3866738ce 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -1148,7 +1148,7 @@ glabel titleInitPdLogo /* f016fa4: 0c006b4d */ jal modelSetRootPosition /* f016fa8: 27a50034 */ addiu $a1,$sp,0x34 /* f016fac: 8e240268 */ lw $a0,0x268($s1) -/* f016fb0: 0c006a6f */ jal func0001a9bc +/* f016fb0: 0c006a6f */ jal modelGetPartNodeData /* f016fb4: 24050002 */ addiu $a1,$zero,0x2 /* f016fb8: 84430010 */ lh $v1,0x10($v0) /* f016fbc: 3c04800a */ lui $a0,%hi(var8009cca8) @@ -1261,7 +1261,7 @@ glabel titleInitPdLogo // // { // // fb0 -// struct modelthing *modelthing = func0001a9bc(g_Props[MODEL_PDTWO].filedata, 2); +// struct modelthing *modelthing = modelGetPartNodeData(g_Props[MODEL_PDTWO].filedata, 2); // u32 size2; // // size = ALIGN8(modelthing->unk10 * 0xc); diff --git a/src/include/lib/lib_1a500.h b/src/include/lib/lib_1a500.h index ff1d6f627..b8c81d4f4 100644 --- a/src/include/lib/lib_1a500.h +++ b/src/include/lib/lib_1a500.h @@ -15,7 +15,7 @@ u32 func0001a784(void); u32 func0001a7cc(void); u32 func0001a85c(void); struct modelnode *modelGetPart(struct model08 *arg0, s32 partnum); -struct modelthing *func0001a9bc(void *modelfiledata, s32 arg1); +struct modelnode_partid *modelGetPartNodeData(struct model08 *model08, s32 arg1); u32 func0001a9e8(void); void *modelGetNodeData(struct model *model, struct modelnode *node); void modelNodeGetPosition(struct model *model, struct modelnode *node, struct coord *pos); diff --git a/src/lib/lib_1a500.c b/src/lib/lib_1a500.c index 114ba4094..28b9ea742 100644 --- a/src/lib/lib_1a500.c +++ b/src/lib/lib_1a500.c @@ -407,22 +407,16 @@ struct modelnode *modelGetPart(struct model08 *model08, s32 partnum) return NULL; } -GLOBAL_ASM( -glabel func0001a9bc -/* 1a9bc: 27bdffe8 */ addiu $sp,$sp,-24 -/* 1a9c0: afbf0014 */ sw $ra,0x14($sp) -/* 1a9c4: 0c006a47 */ jal modelGetPart -/* 1a9c8: 00000000 */ nop -/* 1a9cc: 10400003 */ beqz $v0,.L0001a9dc -/* 1a9d0: 8fbf0014 */ lw $ra,0x14($sp) -/* 1a9d4: 10000002 */ b .L0001a9e0 -/* 1a9d8: 8c420004 */ lw $v0,0x4($v0) -.L0001a9dc: -/* 1a9dc: 00001025 */ or $v0,$zero,$zero -.L0001a9e0: -/* 1a9e0: 03e00008 */ jr $ra -/* 1a9e4: 27bd0018 */ addiu $sp,$sp,0x18 -); +struct modelnode_partid *modelGetPartNodeData(struct model08 *model08, s32 partnum) +{ + struct modelnode *node = modelGetPart(model08, partnum); + + if (node) { + return node->data.partid; + } + + return NULL; +} GLOBAL_ASM( glabel func0001a9e8