Decompile modelGetPartNodeData

This commit is contained in:
Ryan Dwyer 2020-06-30 23:18:40 +10:00
parent d924a35090
commit 689f0b38ab
6 changed files with 47 additions and 53 deletions

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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);

View File

@ -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);

View File

@ -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