diff --git a/src/game/chr/chr.c b/src/game/chr/chr.c index f17187964..4fbaaf517 100644 --- a/src/game/chr/chr.c +++ b/src/game/chr/chr.c @@ -1568,7 +1568,7 @@ glabel var7f1a992cpf /* f020220: 46121182 */ mul.s $f6,$f2,$f18 /* f020224: 15a10005 */ bne $t5,$at,.PF0f02023c /* f020228: e60600b0 */ swc1 $f6,0xb0($s0) -/* f02022c: 0c0069eb */ jal modelGetNodeData +/* f02022c: 0c0069eb */ jal modelGetNodeRwData /* f020230: 8fa40120 */ lw $a0,0x120($sp) /* f020234: c4480028 */ lwc1 $f8,0x28($v0) /* f020238: e4480038 */ swc1 $f8,0x38($v0) @@ -2846,7 +2846,7 @@ glabel var7f1a8720 /* f02011c: 46081182 */ mul.s $f6,$f2,$f8 /* f020120: 15a10005 */ bne $t5,$at,.L0f020138 /* f020124: e60600b0 */ swc1 $f6,0xb0($s0) -/* f020128: 0c006a87 */ jal modelGetNodeData +/* f020128: 0c006a87 */ jal modelGetNodeRwData /* f02012c: 8fa40120 */ lw $a0,0x120($sp) /* f020130: c44a0028 */ lwc1 $f10,0x28($v0) /* f020134: e44a0038 */ swc1 $f10,0x38($v0) @@ -4001,7 +4001,7 @@ glabel var7f1a8720 /* f01fd30: e60400b0 */ swc1 $f4,0xb0($s0) /* f01fd34: 1521009b */ bne $t1,$at,.NB0f01ffa4 /* f01fd38: e7a200c8 */ swc1 $f2,0xc8($sp) -/* f01fd3c: 0c006bab */ jal modelGetNodeData +/* f01fd3c: 0c006bab */ jal modelGetNodeRwData /* f01fd40: 8fa400f0 */ lw $a0,0xf0($sp) /* f01fd44: c4480028 */ lwc1 $f8,0x28($v0) /* f01fd48: 10000096 */ beqz $zero,.NB0f01ffa4 @@ -4544,8 +4544,8 @@ struct prop *func0f020b14(struct prop *prop, struct model *model, nodetype = chr->model->filedata->rootnode->type; if ((nodetype & 0xff) == MODELNODETYPE_ROOT) { - struct modeldata_root *data = modelGetNodeData(chr->model, chr->model->filedata->rootnode); - data->ground = ground; + union modelrwdata *rwdata = modelGetNodeRwData(chr->model, chr->model->filedata->rootnode); + rwdata->root.ground = ground; } chr->prevpos.x = prop->pos.x; @@ -8307,7 +8307,7 @@ glabel var7f1a99ecpf /* f024504: 24010017 */ li $at,0x17 /* f024508: 55010036 */ bnel $t0,$at,.PF0f0245e4 /* f02450c: 8fac01f0 */ lw $t4,0x1f0($sp) -/* f024510: 0c0069eb */ jal modelGetNodeData +/* f024510: 0c0069eb */ jal modelGetNodeRwData /* f024514: 8fa40208 */ lw $a0,0x208($sp) /* f024518: 8c590000 */ lw $t9,0x0($v0) /* f02451c: 24050001 */ li $a1,0x1 @@ -8317,7 +8317,7 @@ glabel var7f1a99ecpf /* f02452c: 8c440000 */ lw $a0,0x0($v0) /* f024530: 1040002b */ beqz $v0,.PF0f0245e0 /* f024534: 00402825 */ move $a1,$v0 -/* f024538: 0c0069eb */ jal modelGetNodeData +/* f024538: 0c0069eb */ jal modelGetNodeRwData /* f02453c: 8fa40208 */ lw $a0,0x208($sp) /* f024540: 8fae0200 */ lw $t6,0x200($sp) /* f024544: 10000026 */ b .PF0f0245e0 @@ -9745,7 +9745,7 @@ glabel var7f1a87d8 /* f0243e0: 24010017 */ addiu $at,$zero,0x17 /* f0243e4: 55c10036 */ bnel $t6,$at,.L0f0244c0 /* f0243e8: 8fb801f0 */ lw $t8,0x1f0($sp) -/* f0243ec: 0c006a87 */ jal modelGetNodeData +/* f0243ec: 0c006a87 */ jal modelGetNodeRwData /* f0243f0: 8fa40208 */ lw $a0,0x208($sp) /* f0243f4: 8c490000 */ lw $t1,0x0($v0) /* f0243f8: 24050001 */ addiu $a1,$zero,0x1 @@ -9755,7 +9755,7 @@ glabel var7f1a87d8 /* f024408: 8c440000 */ lw $a0,0x0($v0) /* f02440c: 1040002b */ beqz $v0,.L0f0244bc /* f024410: 00402825 */ or $a1,$v0,$zero -/* f024414: 0c006a87 */ jal modelGetNodeData +/* f024414: 0c006a87 */ jal modelGetNodeRwData /* f024418: 8fa40208 */ lw $a0,0x208($sp) /* f02441c: 8faa0200 */ lw $t2,0x200($sp) /* f024420: 10000026 */ b .L0f0244bc @@ -11124,7 +11124,7 @@ glabel var7f1a87d8 /* f023df8: 24010017 */ addiu $at,$zero,0x17 /* f023dfc: 55010037 */ bnel $t0,$at,.NB0f023edc /* f023e00: 8fad01f0 */ lw $t5,0x1f0($sp) -/* f023e04: 0c006bab */ jal modelGetNodeData +/* f023e04: 0c006bab */ jal modelGetNodeRwData /* f023e08: 8fa40208 */ lw $a0,0x208($sp) /* f023e0c: 8c4f0000 */ lw $t7,0x0($v0) /* f023e10: 24050001 */ addiu $a1,$zero,0x1 @@ -11134,7 +11134,7 @@ glabel var7f1a87d8 /* f023e20: 8c440000 */ lw $a0,0x0($v0) /* f023e24: 1040002c */ beqz $v0,.NB0f023ed8 /* f023e28: 00402825 */ or $a1,$v0,$zero -/* f023e2c: 0c006bab */ jal modelGetNodeData +/* f023e2c: 0c006bab */ jal modelGetNodeRwData /* f023e30: 8fa40208 */ lw $a0,0x208($sp) /* f023e34: 8fb90200 */ lw $t9,0x200($sp) /* f023e38: 10000027 */ beqz $zero,.NB0f023ed8 @@ -11241,14 +11241,14 @@ void chrSetHudpieceVisible(struct chrdata *chr, bool visible) struct modelnode *node = modelGetPart(modelfiledata, MODELPART_HUDPIECE); if (node && node->type == MODELNODETYPE_HEADSPOT) { - struct modeldata_headspot *data = modelGetNodeData(chr->model, node); + union modelrwdata *rwdata = modelGetNodeRwData(chr->model, node); - if (data->modelfiledata) { - struct modelnode *node2 = modelGetPart(data->modelfiledata, MODELPART_HUDPIECE); + if (rwdata->headspot.modelfiledata) { + struct modelnode *node2 = modelGetPart(rwdata->headspot.modelfiledata, MODELPART_HUDPIECE); if (node2) { - struct modeldata_partid *data2 = modelGetNodeData(chr->model, node2); - data2->visible.u32 = visible; + union modelrwdata *rwdata2 = modelGetNodeRwData(chr->model, node2); + rwdata2->partid.visible.u32 = visible; } } } @@ -12226,11 +12226,11 @@ Gfx *chrRender(struct prop *prop, Gfx *gdl, bool withalpha) struct modelnode *node2 = modelGetPart(model->filedata, MODELPART_05); if (node1 && node2) { - struct modeldata_partid *data1 = modelGetNodeData(model, node1); - struct modeldata_partid *data2 = modelGetNodeData(model, node2); + union modelrwdata *data1 = modelGetNodeRwData(model, node1); + union modelrwdata *data2 = modelGetNodeRwData(model, node2); - data2->visible.u32 = chr->actiontype == ACT_DIE || chr->actiontype == ACT_DEAD; - data1->visible.u32 = !data2->visible.u32; + data2->partid.visible.u32 = chr->actiontype == ACT_DIE || chr->actiontype == ACT_DEAD; + data1->partid.visible.u32 = !data2->partid.visible.u32; } } @@ -12243,18 +12243,18 @@ Gfx *chrRender(struct prop *prop, Gfx *gdl, bool withalpha) struct modelnode *node = modelGetPart(model->filedata, MODELPART_04); if (node && node->type == MODELNODETYPE_HEADSPOT) { - struct modeldata_headspot *headdata = modelGetNodeData(model, node); + union modelrwdata *headrwdata = modelGetNodeRwData(model, node); - if (headdata->modelfiledata) { - struct modelnode *node1 = modelGetPart(headdata->modelfiledata, MODELPART_02); - struct modelnode *node2 = modelGetPart(headdata->modelfiledata, MODELPART_03); + if (headrwdata->headspot.modelfiledata) { + struct modelnode *node1 = modelGetPart(headrwdata->headspot.modelfiledata, MODELPART_02); + struct modelnode *node2 = modelGetPart(headrwdata->headspot.modelfiledata, MODELPART_03); if (node1 && node2) { - struct modeldata_partid *data1 = modelGetNodeData(model, node1); - struct modeldata_partid *data2 = modelGetNodeData(model, node2); + union modelrwdata *data1 = modelGetNodeRwData(model, node1); + union modelrwdata *data2 = modelGetNodeRwData(model, node2); - data2->visible.u32 = chr->actiontype == ACT_DIE || chr->actiontype == ACT_DEAD; - data1->visible.u32 = !data2->visible.u32; + data2->partid.visible.u32 = chr->actiontype == ACT_DIE || chr->actiontype == ACT_DEAD; + data1->partid.visible.u32 = !data2->partid.visible.u32; } } } @@ -12474,7 +12474,7 @@ glabel func0f0260c4 /* f0261c4: 8ca20014 */ lw $v0,0x14($a1) .L0f0261c8: /* f0261c8: 8cb20004 */ lw $s2,0x4($a1) -/* f0261cc: 0c006a87 */ jal modelGetNodeData +/* f0261cc: 0c006a87 */ jal modelGetNodeRwData /* f0261d0: afa50110 */ sw $a1,0x110($sp) /* f0261d4: 8c440004 */ lw $a0,0x4($v0) /* f0261d8: 8fa50110 */ lw $a1,0x110($sp) @@ -12697,7 +12697,7 @@ glabel func0f0260c4 /* f0264e8: 8ca20014 */ lw $v0,0x14($a1) /* f0264ec: 8cb20004 */ lw $s2,0x4($a1) .L0f0264f0: -/* f0264f0: 0c006a87 */ jal modelGetNodeData +/* f0264f0: 0c006a87 */ jal modelGetNodeRwData /* f0264f4: afa50110 */ sw $a1,0x110($sp) /* f0264f8: 8c440004 */ lw $a0,0x4($v0) /* f0264fc: 00408025 */ or $s0,$v0,$zero @@ -13072,7 +13072,7 @@ glabel var7f1a8944 /* f0269b4: 8ca20014 */ lw $v0,0x14($a1) .L0f0269b8: /* f0269b8: 8cb20004 */ lw $s2,0x4($a1) -/* f0269bc: 0c006a87 */ jal modelGetNodeData +/* f0269bc: 0c006a87 */ jal modelGetNodeRwData /* f0269c0: afa500fc */ sw $a1,0xfc($sp) /* f0269c4: 8c440004 */ lw $a0,0x4($v0) /* f0269c8: 8fa500fc */ lw $a1,0xfc($sp) @@ -13328,7 +13328,7 @@ glabel var7f1a8944 /* f026d4c: 1160002a */ beqz $t3,.L0f026df8 /* f026d50: 00000000 */ nop /* f026d54: 8cb20004 */ lw $s2,0x4($a1) -/* f026d58: 0c006a87 */ jal modelGetNodeData +/* f026d58: 0c006a87 */ jal modelGetNodeRwData /* f026d5c: afa500fc */ sw $a1,0xfc($sp) /* f026d60: 8c440004 */ lw $a0,0x4($v0) /* f026d64: 00408025 */ or $s0,$v0,$zero @@ -13637,7 +13637,7 @@ glabel func0f0270f4 /* f0271b0: 8ca90004 */ lw $t1,0x4($a1) .L0f0271b4: /* f0271b4: afa500a4 */ sw $a1,0xa4($sp) -/* f0271b8: 0c006a87 */ jal modelGetNodeData +/* f0271b8: 0c006a87 */ jal modelGetNodeRwData /* f0271bc: afa900a0 */ sw $t1,0xa0($sp) /* f0271c0: 8c4a0004 */ lw $t2,0x4($v0) /* f0271c4: 0040a025 */ or $s4,$v0,$zero @@ -22329,7 +22329,7 @@ void chrSetDrCarollImages(struct chrdata *drcaroll, s32 imageleft, s32 imagerigh if (drcaroll && imageleft >= 0 && imageleft < 6 && imageright >= 0 && imageright < 6) { struct model *model = drcaroll->model; struct modelnode *nodes[2]; - struct modeldata_partid *data; + union modelrwdata *rwdata; s32 i; s32 j; u32 stack; @@ -22343,12 +22343,12 @@ void chrSetDrCarollImages(struct chrdata *drcaroll, s32 imageleft, s32 imagerigh for (j = 0; j < 2; j++) { if (nodes[j]) { - data = modelGetNodeData(model, nodes[j]); + rwdata = modelGetNodeRwData(model, nodes[j]); if (j == 0) { - data->visible.u32 = (imageleft == i) ? true : false; + rwdata->partid.visible.u32 = (imageleft == i) ? true : false; } else { - data->visible.u32 = (imageright == i) ? true : false; + rwdata->partid.visible.u32 = (imageright == i) ? true : false; } } } diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index 9fbd480be..e36ba2715 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -7496,7 +7496,7 @@ glabel var7f1a8dac /* f0377d4: afa5003c */ sw $a1,0x3c($sp) /* f0377d8: 8e040020 */ lw $a0,0x20($s0) /* f0377dc: 8c8f0008 */ lw $t7,0x8($a0) -/* f0377e0: 0c006a87 */ jal modelGetNodeData +/* f0377e0: 0c006a87 */ jal modelGetNodeRwData /* f0377e4: 8de50000 */ lw $a1,0x0($t7) /* f0377e8: c7b20108 */ lwc1 $f18,0x108($sp) /* f0377ec: 2401000e */ addiu $at,$zero,0xe @@ -7757,7 +7757,7 @@ glabel var7f1a8dac /* f0377d4: afa5003c */ sw $a1,0x3c($sp) /* f0377d8: 8e040020 */ lw $a0,0x20($s0) /* f0377dc: 8c8f0008 */ lw $t7,0x8($a0) -/* f0377e0: 0c006a87 */ jal modelGetNodeData +/* f0377e0: 0c006a87 */ jal modelGetNodeRwData /* f0377e4: 8de50000 */ lw $a1,0x0($t7) /* f0377e8: c7b20108 */ lwc1 $f18,0x108($sp) /* f0377ec: 2401000e */ addiu $at,$zero,0xe @@ -13779,7 +13779,7 @@ glabel var7f1a8fc8 /* f03f4e4: 8da40020 */ lw $a0,0x20($t5) /* f03f4e8: 8c8c0008 */ lw $t4,0x8($a0) /* f03f4ec: 8d850000 */ lw $a1,0x0($t4) -/* f03f4f0: 0c006a87 */ jal modelGetNodeData +/* f03f4f0: 0c006a87 */ jal modelGetNodeRwData /* f03f4f4: e7b00188 */ swc1 $f16,0x188($sp) /* f03f4f8: 44801000 */ mtc1 $zero,$f2 /* f03f4fc: c440005c */ lwc1 $f0,0x5c($v0) @@ -14268,7 +14268,7 @@ bool func0f03fde4(struct chrdata *chr, s32 handnum, struct coord *arg2) struct modelnode *part1; Mtxf *spac; Mtxf sp6c; - struct modelnode_type16 *data; + struct modelrodata_type16 *rodata; Mtxf *sp64; Mtxf sp24; @@ -14279,11 +14279,11 @@ bool func0f03fde4(struct chrdata *chr, s32 handnum, struct coord *arg2) if ((chr->prop->flags & PROPFLAG_02) && (weaponprop->flags & PROPFLAG_02)) { if ((part0 = modelGetPart(model->filedata, MODELPART_00))) { spac = func0001a5cc(model, part0, 0); - data = &part0->data->type16; + rodata = &part0->rodata->type16; - arg2->x = data->pos.x; - arg2->y = data->pos.y; - arg2->z = data->pos.z; + arg2->x = rodata->pos.x; + arg2->y = rodata->pos.y; + arg2->z = rodata->pos.z; func00015be4(currentPlayerGetUnk174c(), spac, &sp6c); func00015b64(&sp6c, arg2); @@ -14399,9 +14399,9 @@ void chrCalculateShieldHit(struct chrdata *chr, struct coord *pos, struct coord #endif { Mtxf sp48; - struct modelnode_bbox *data = &bestnode->data->bbox; + struct modelrodata_bbox *rodata = &bestnode->rodata->bbox; - *ibhptr = data->ibh; + *ibhptr = rodata->ibh; *nodeptr = bestnode; *modelptr = chr->model; *sideptr = 0; @@ -14446,10 +14446,10 @@ void chrCalculateShieldHit(struct chrdata *chr, struct coord *pos, struct coord while (node) { if ((node->type & 0xff) == MODELNODETYPE_BBOX) { - struct modelnode_bbox *data = &node->data->bbox; + struct modelrodata_bbox *rodata = &node->rodata->bbox; - if (data->ibh == IBH_TORSO) { - *ibhptr = data->ibh; + if (rodata->ibh == IBH_TORSO) { + *ibhptr = rodata->ibh; *nodeptr = node; *modelptr = chr->model; *sideptr = 0; @@ -20898,7 +20898,7 @@ void chrTickAttackAmount(struct chrdata *chr) void robotSetMuzzleFlash(struct chrdata *chr, bool right, bool enabled) { struct modelnode *node; - struct modeldata_partid *data; + union modelrwdata *rwdata; s32 partnum; if (right) { @@ -20910,12 +20910,12 @@ void robotSetMuzzleFlash(struct chrdata *chr, bool right, bool enabled) node = modelGetPart(chr->model->filedata, partnum); if (node) { - data = modelGetNodeData(chr->model, node); + rwdata = modelGetNodeRwData(chr->model, node); } // @dangerous: data may be uninitialised - if (data) { - data->visible.u16 = enabled; + if (rwdata) { + rwdata->partid.visible.u16 = enabled; } } @@ -21178,7 +21178,7 @@ glabel var7f1a91dc /* f042c98: 24050001 */ addiu $a1,$zero,0x1 .L0f042c9c: /* f042c9c: 8e4b0020 */ lw $t3,0x20($s2) -/* f042ca0: 0c006a6f */ jal modelGetPartNodeData +/* f042ca0: 0c006a6f */ jal modelGetPartRodata /* f042ca4: 8d640008 */ lw $a0,0x8($t3) /* f042ca8: c4500000 */ lwc1 $f16,0x0($v0) /* f042cac: 3c014396 */ lui $at,0x4396 @@ -22202,7 +22202,7 @@ glabel chrTickAttackRoll /* f043750: 00000000 */ nop /* f043754: 8c880008 */ lw $t0,0x8($a0) /* f043758: 8d050000 */ lw $a1,0x0($t0) -/* f04375c: 0c006a87 */ jal modelGetNodeData +/* f04375c: 0c006a87 */ jal modelGetNodeRwData /* f043760: e7a20034 */ swc1 $f2,0x34($sp) /* f043764: c7a20034 */ lwc1 $f2,0x34($sp) /* f043768: e442005c */ swc1 $f2,0x5c($v0) @@ -31131,7 +31131,7 @@ bool chrMoveToPos(struct chrdata *chr, struct coord *pos, s16 *rooms, f32 angle, s16 rooms2[8]; bool result = false; u32 nodetype; - struct modeldata_root *data; + union modelrwdata *rwdata; struct player *player; f32 ground; @@ -31166,8 +31166,8 @@ bool chrMoveToPos(struct chrdata *chr, struct coord *pos, s16 *rooms, f32 angle, nodetype = chr->model->filedata->rootnode->type; if ((nodetype & 0xff) == MODELNODETYPE_ROOT) { - data = modelGetNodeData(chr->model, chr->model->filedata->rootnode); - data->ground = ground; + rwdata = modelGetNodeRwData(chr->model, chr->model->filedata->rootnode); + rwdata->root.ground = ground; } chr->chrflags |= CHRCFLAG_00000001; @@ -33130,15 +33130,15 @@ void chrToggleModelPart(struct chrdata *chr, s32 partnum) { if (chr && chr->model && chr->model->filedata) { struct modelnode *node = modelGetPart(chr->model->filedata, partnum); - struct modeldata_partid *data = NULL; + union modelrwdata *rwdata = NULL; if (node) { - data = modelGetNodeData(chr->model, node); + rwdata = modelGetNodeRwData(chr->model, node); } - if (data) { - bool visible = data->visible.u32; - data->visible.u32 = !visible; + if (rwdata) { + bool visible = rwdata->partid.visible.u32; + rwdata->partid.visible.u32 = !visible; } } } diff --git a/src/game/game_00c490.c b/src/game/game_00c490.c index d8dfd349e..b7e3d416e 100644 --- a/src/game/game_00c490.c +++ b/src/game/game_00c490.c @@ -1079,7 +1079,7 @@ void setupCamera(struct cameraobj *camera, s32 cmdindex) if (camera->lookatpadnum >= 0) { struct coord lenspos; - union modelnode_data *lens = modelGetPartNodeData(obj->model->filedata, MODELPART_LENS); + union modelrodata *lens = modelGetPartRodata(obj->model->filedata, MODELPART_LENS); struct pad pad; f32 xdiff; f32 ydiff; @@ -3027,19 +3027,19 @@ void setupParseObjects(s32 stagenum) modelstate = &g_ModelStates[modelnum]; if (modelstate->filedata) { - if (modelGetPartNodeData(modelstate->filedata, 1)) { + if (modelGetPartRodata(modelstate->filedata, 1)) { obj->numtiles++; } - if (modelGetPartNodeData(modelstate->filedata, 2)) { + if (modelGetPartRodata(modelstate->filedata, 2)) { obj->numtiles++; } - if (modelGetPartNodeData(modelstate->filedata, 3)) { + if (modelGetPartRodata(modelstate->filedata, 3)) { obj->numtiles++; } - if (modelGetPartNodeData(modelstate->filedata, 4)) { + if (modelGetPartRodata(modelstate->filedata, 4)) { obj->numtiles++; } - if (modelGetPartNodeData(modelstate->filedata, 6)) { + if (modelGetPartRodata(modelstate->filedata, 6)) { obj->numtiles++; } } @@ -3199,8 +3199,8 @@ void setupParseObjects(s32 stagenum) struct modelnode *node = modelGetPart(obj->model->filedata, 5); if (node) { - struct modeldata_05 *data = modelGetNodeData(obj->model, node); - data->unk00 = ((obj->flags & OBJFLAG_DEACTIVATED) == 0); + union modelrwdata *rwdata = modelGetNodeRwData(obj->model, node); + rwdata->type05.unk00 = ((obj->flags & OBJFLAG_DEACTIVATED) == 0); } } diff --git a/src/game/game_02cde0.c b/src/game/game_02cde0.c index 35e7cff1d..fda54a2bc 100644 --- a/src/game/game_02cde0.c +++ b/src/game/game_02cde0.c @@ -479,7 +479,7 @@ glabel var7f1a8a84 /* f02d2ec: 00002825 */ or $a1,$zero,$zero /* f02d2f0: 10400004 */ beqz $v0,.L0f02d304 /* f02d2f4: 00402825 */ or $a1,$v0,$zero -/* f02d2f8: 0c006a87 */ jal modelGetNodeData +/* f02d2f8: 0c006a87 */ jal modelGetNodeRwData /* f02d2fc: 8fa4005c */ lw $a0,0x5c($sp) /* f02d300: ac400000 */ sw $zero,0x0($v0) .L0f02d304: @@ -488,7 +488,7 @@ glabel var7f1a8a84 /* f02d30c: 24050004 */ addiu $a1,$zero,0x4 /* f02d310: 10400004 */ beqz $v0,.L0f02d324 /* f02d314: 00402825 */ or $a1,$v0,$zero -/* f02d318: 0c006a87 */ jal modelGetNodeData +/* f02d318: 0c006a87 */ jal modelGetNodeRwData /* f02d31c: 8fa4005c */ lw $a0,0x5c($sp) /* f02d320: ac400000 */ sw $zero,0x0($v0) .L0f02d324: diff --git a/src/game/game_097ba0.c b/src/game/game_097ba0.c index 6054403c4..f0038c508 100644 --- a/src/game/game_097ba0.c +++ b/src/game/game_097ba0.c @@ -430,8 +430,8 @@ void func0f097e74(s16 partnum, s32 arg1, struct hand *hand, struct modelfiledata node = modelGetPart(g_Vars.currentplayer->gunctrl.unk1594, partnum); if (node) { - union modelnode_data *data = node->data; - u32 *ptr = &hand->handsavedata[data->partid.index]; + struct modelrodata_partid *rodata = &node->rodata->partid; + u32 *ptr = &hand->handsavedata[rodata->rwdataindex]; *ptr = arg1; } } @@ -439,8 +439,8 @@ void func0f097e74(s16 partnum, s32 arg1, struct hand *hand, struct modelfiledata node = modelGetPart(arg3, partnum); if (node) { - union modelnode_data *data = node->data; - u32 *ptr = &hand->unk0a6c[data->partid.index]; + struct modelrodata_partid *rodata = &node->rodata->partid; + u32 *ptr = &hand->unk0a6c[rodata->rwdataindex]; *ptr = arg1; } } @@ -17462,7 +17462,7 @@ glabel var7f1ac7c4 /* f0a2f0c: 00000000 */ nop /* f0a2f10: 8e120004 */ lw $s2,0x4($s0) /* f0a2f14: 02802025 */ or $a0,$s4,$zero -/* f0a2f18: 0c006a87 */ jal modelGetNodeData +/* f0a2f18: 0c006a87 */ jal modelGetNodeRwData /* f0a2f1c: 02002825 */ or $a1,$s0,$zero /* f0a2f20: ac400000 */ sw $zero,0x0($v0) /* f0a2f24: 8e580008 */ lw $t8,0x8($s2) @@ -17477,7 +17477,7 @@ glabel var7f1ac7c4 /* f0a2f48: ae39fffc */ sw $t9,-0x4($s1) /* f0a2f4c: 8e120004 */ lw $s2,0x4($s0) /* f0a2f50: 02802025 */ or $a0,$s4,$zero -/* f0a2f54: 0c006a87 */ jal modelGetNodeData +/* f0a2f54: 0c006a87 */ jal modelGetNodeRwData /* f0a2f58: 02002825 */ or $a1,$s0,$zero /* f0a2f5c: ac550000 */ sw $s5,0x0($v0) /* f0a2f60: 8e480000 */ lw $t0,0x0($s2) @@ -17491,7 +17491,7 @@ glabel var7f1ac7c4 /* f0a2f80: 1000003b */ b .L0f0a3070 /* f0a2f84: ae29fffc */ sw $t1,-0x4($s1) /* f0a2f88: 02802025 */ or $a0,$s4,$zero -/* f0a2f8c: 0c006a87 */ jal modelGetNodeData +/* f0a2f8c: 0c006a87 */ jal modelGetNodeRwData /* f0a2f90: 02002825 */ or $a1,$s0,$zero /* f0a2f94: ac400000 */ sw $zero,0x0($v0) /* f0a2f98: ac400004 */ sw $zero,0x4($v0) @@ -17502,7 +17502,7 @@ glabel var7f1ac7c4 /* f0a2fac: 10000030 */ b .L0f0a3070 /* f0a2fb0: 26730008 */ addiu $s3,$s3,0x8 /* f0a2fb4: 02802025 */ or $a0,$s4,$zero -/* f0a2fb8: 0c006a87 */ jal modelGetNodeData +/* f0a2fb8: 0c006a87 */ jal modelGetNodeRwData /* f0a2fbc: 02002825 */ or $a1,$s0,$zero /* f0a2fc0: a4400000 */ sh $zero,0x0($v0) /* f0a2fc4: 240b0003 */ addiu $t3,$zero,0x3 @@ -17512,7 +17512,7 @@ glabel var7f1ac7c4 /* f0a2fd4: 10000026 */ b .L0f0a3070 /* f0a2fd8: 26730008 */ addiu $s3,$s3,0x8 /* f0a2fdc: 02802025 */ or $a0,$s4,$zero -/* f0a2fe0: 0c006a87 */ jal modelGetNodeData +/* f0a2fe0: 0c006a87 */ jal modelGetNodeRwData /* f0a2fe4: 02002825 */ or $a1,$s0,$zero /* f0a2fe8: a4400000 */ sh $zero,0x0($v0) /* f0a2fec: 240c0004 */ addiu $t4,$zero,0x4 @@ -17523,7 +17523,7 @@ glabel var7f1ac7c4 /* f0a3000: 26730008 */ addiu $s3,$s3,0x8 /* f0a3004: 8e120004 */ lw $s2,0x4($s0) /* f0a3008: 02802025 */ or $a0,$s4,$zero -/* f0a300c: 0c006a87 */ jal modelGetNodeData +/* f0a300c: 0c006a87 */ jal modelGetNodeRwData /* f0a3010: 02002825 */ or $a1,$s0,$zero /* f0a3014: 8e4d000c */ lw $t5,0xc($s2) /* f0a3018: 26310014 */ addiu $s1,$s1,0x14 @@ -25601,7 +25601,7 @@ glabel var7f1aca90 /* f0a7568: 0c006a47 */ jal modelGetPart /* f0a756c: 24050011 */ addiu $a1,$zero,0x11 /* f0a7570: 8fa4003c */ lw $a0,0x3c($sp) -/* f0a7574: 0c006a87 */ jal modelGetNodeData +/* f0a7574: 0c006a87 */ jal modelGetNodeRwData /* f0a7578: 00402825 */ or $a1,$v0,$zero /* f0a757c: 10400003 */ beqz $v0,.L0f0a758c /* f0a7580: 3c06800a */ lui $a2,%hi(var8009cf88) @@ -26442,7 +26442,7 @@ glabel var7f1aca90 /* f0a7568: 0c006a47 */ jal modelGetPart /* f0a756c: 24050011 */ addiu $a1,$zero,0x11 /* f0a7570: 8fa4003c */ lw $a0,0x3c($sp) -/* f0a7574: 0c006a87 */ jal modelGetNodeData +/* f0a7574: 0c006a87 */ jal modelGetNodeRwData /* f0a7578: 00402825 */ or $a1,$v0,$zero /* f0a757c: 10400003 */ beqz $v0,.L0f0a758c /* f0a7580: 3c06800a */ lui $a2,%hi(var8009cf88) @@ -27283,7 +27283,7 @@ glabel var7f1aca90 /* f0a52b4: 0c006ea3 */ jal modelGetPart /* f0a52b8: 24050011 */ addiu $a1,$zero,0x11 /* f0a52bc: 8fa40038 */ lw $a0,0x38($sp) -/* f0a52c0: 0c006bab */ jal modelGetNodeData +/* f0a52c0: 0c006bab */ jal modelGetNodeRwData /* f0a52c4: 00402825 */ or $a1,$v0,$zero /* f0a52c8: 10400003 */ beqz $v0,.NB0f0a52d8 /* f0a52cc: 3c06800a */ lui $a2,0x800a diff --git a/src/game/game_0b69d0.c b/src/game/game_0b69d0.c index 539e96214..fba86368d 100644 --- a/src/game/game_0b69d0.c +++ b/src/game/game_0b69d0.c @@ -1257,9 +1257,9 @@ void currentPlayerResetToDefault(void) bool currentPlayerAssumeChrForAnti(struct chrdata *hostchr, bool force) { struct prop *hostprop; - struct modeldata_root *chrrootnode; + union modelrwdata *chrrootrwdata; struct chrdata *playerchr = g_Vars.currentplayer->prop->chr; - struct modeldata_root *playerrootnode; + union modelrwdata *playerrootrwdata; hostprop = hostchr->prop; @@ -1341,17 +1341,17 @@ bool currentPlayerAssumeChrForAnti(struct chrdata *hostchr, bool force) modelCopyAnimData(hostchr->model, playerchr->model); func0f02e9a0(playerchr, 12); - chrrootnode = modelGetNodeData(hostchr->model, hostchr->model->filedata->rootnode); - playerrootnode = modelGetNodeData(playerchr->model, playerchr->model->filedata->rootnode); + chrrootrwdata = modelGetNodeRwData(hostchr->model, hostchr->model->filedata->rootnode); + playerrootrwdata = modelGetNodeRwData(playerchr->model, playerchr->model->filedata->rootnode); - *playerrootnode = *chrrootnode; + playerrootrwdata->root = chrrootrwdata->root; - if (playerrootnode->unk34.y < 10) { - playerrootnode->unk34.y = 10; + if (playerrootrwdata->root.unk34.y < 10) { + playerrootrwdata->root.unk34.y = 10; } - if (playerrootnode->unk24.y < 10) { - playerrootnode->unk24.y = 10; + if (playerrootrwdata->root.unk24.y < 10) { + playerrootrwdata->root.unk24.y = 10; } playerchr->chrwidth = hostchr->chrwidth; diff --git a/src/game/game_0f09f0.c b/src/game/game_0f09f0.c index 8144315ce..1f5390068 100644 --- a/src/game/game_0f09f0.c +++ b/src/game/game_0f09f0.c @@ -6068,7 +6068,7 @@ glabel var7f1b3c40pf /* f0f4ccc: 1040000d */ beqz $v0,.PF0f0f4d04 /* f0f4cd0: 00402825 */ move $a1,$v0 /* f0f4cd4: 8fa4003c */ lw $a0,0x3c($sp) -/* f0f4cd8: 0c0069eb */ jal modelGetNodeData +/* f0f4cd8: 0c0069eb */ jal modelGetNodeRwData /* f0f4cdc: afa3028c */ sw $v1,0x28c($sp) /* f0f4ce0: 10400008 */ beqz $v0,.PF0f0f4d04 /* f0f4ce4: 8fa3028c */ lw $v1,0x28c($sp) @@ -7681,7 +7681,7 @@ glabel var7f1b2948 /* f0f459c: 1040000d */ beqz $v0,.L0f0f45d4 /* f0f45a0: 00402825 */ or $a1,$v0,$zero /* f0f45a4: 8fa4003c */ lw $a0,0x3c($sp) -/* f0f45a8: 0c006a87 */ jal modelGetNodeData +/* f0f45a8: 0c006a87 */ jal modelGetNodeRwData /* f0f45ac: afa3028c */ sw $v1,0x28c($sp) /* f0f45b0: 10400008 */ beqz $v0,.L0f0f45d4 /* f0f45b4: 8fa3028c */ lw $v1,0x28c($sp) @@ -9290,7 +9290,7 @@ glabel var7f1b2948 /* f0f10e0: 1040000d */ beqz $v0,.NB0f0f1118 /* f0f10e4: 00402825 */ or $a1,$v0,$zero /* f0f10e8: 8fa40040 */ lw $a0,0x40($sp) -/* f0f10ec: 0c006bab */ jal modelGetNodeData +/* f0f10ec: 0c006bab */ jal modelGetNodeRwData /* f0f10f0: afa302b4 */ sw $v1,0x2b4($sp) /* f0f10f4: 10400008 */ beqz $v0,.NB0f0f1118 /* f0f10f8: 8fa302b4 */ lw $v1,0x2b4($sp) diff --git a/src/game/game_129210.c b/src/game/game_129210.c index 29d01c901..685851921 100644 --- a/src/game/game_129210.c +++ b/src/game/game_129210.c @@ -44,7 +44,7 @@ struct var8007e3d0 var8007e3d0[] = { * Search all props and their model data for something, and replace it with * something else. */ -void func0f129210(void *find, void *replacement) +void func0f129210(union modelrwdata *find, union modelrwdata *replacement) { u32 stack; struct prop *prop = g_Vars.list1head; @@ -55,15 +55,15 @@ void func0f129210(void *find, void *replacement) struct model *model = obj->model; struct modelfiledata *filedata = model->filedata; struct modelnode *node = filedata->rootnode; - struct modelnode_displaylist *data; + struct modelrodata_displaylist *rodata; while (node) { switch (node->type & 0xff) { case MODELNODETYPE_DISPLAYLIST: - data = &node->data->displaylist; + rodata = &node->rodata->displaylist; - if (model->datas[data->index] == find) { - model->datas[data->index] = replacement; + if (model->rwdatas[rodata->rwdataindex] == find) { + model->rwdatas[rodata->rwdataindex] = replacement; } break; case MODELNODETYPE_NEARFAR: diff --git a/src/game/propobj.c b/src/game/propobj.c index ae07cba70..1bf24fa2f 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -4653,7 +4653,7 @@ glabel func0f069850 /* f0698d0: 55020005 */ bnel $t0,$v0,.L0f0698e8 /* f0698d4: 8e090010 */ lw $t1,0x10($s0) .L0f0698d8: -/* f0698d8: 0c006a6f */ jal modelGetPartNodeData +/* f0698d8: 0c006a6f */ jal modelGetPartRodata /* f0698dc: 24050064 */ addiu $a1,$zero,0x64 /* f0698e0: afa20030 */ sw $v0,0x30($sp) /* f0698e4: 8e090010 */ lw $t1,0x10($s0) @@ -4847,7 +4847,7 @@ glabel func0f069b4c /* f069b98: 8e280018 */ lw $t0,0x18($s1) .L0f069b9c: /* f069b9c: 24050065 */ addiu $a1,$zero,0x65 -/* f069ba0: 0c006a6f */ jal modelGetPartNodeData +/* f069ba0: 0c006a6f */ jal modelGetPartRodata /* f069ba4: 8d040008 */ lw $a0,0x8($t0) /* f069ba8: 1040000c */ beqz $v0,.L0f069bdc /* f069bac: 00401825 */ or $v1,$v0,$zero @@ -4866,7 +4866,7 @@ glabel func0f069b4c .L0f069bdc: /* f069bdc: 8e2a0018 */ lw $t2,0x18($s1) /* f069be0: 24050066 */ addiu $a1,$zero,0x66 -/* f069be4: 0c006a6f */ jal modelGetPartNodeData +/* f069be4: 0c006a6f */ jal modelGetPartRodata /* f069be8: 8d440008 */ lw $a0,0x8($t2) /* f069bec: 10400006 */ beqz $v0,.L0f069c08 /* f069bf0: 02202025 */ or $a0,$s1,$zero @@ -4928,7 +4928,7 @@ glabel func0f069cd8 /* f069d00: 260500c9 */ addiu $a1,$s0,0xc9 /* f069d04: 10400006 */ beqz $v0,.L0f069d20 /* f069d08: 00402825 */ or $a1,$v0,$zero -/* f069d0c: 0c006a87 */ jal modelGetNodeData +/* f069d0c: 0c006a87 */ jal modelGetNodeRwData /* f069d10: 02202025 */ or $a0,$s1,$zero /* f069d14: 26100001 */ addiu $s0,$s0,0x1 /* f069d18: 1612fff7 */ bne $s0,$s2,.L0f069cf8 @@ -5227,7 +5227,7 @@ glabel var7f1aa1fc /* f06a118: 8d040008 */ lw $a0,0x8($t0) /* f06a11c: 10400004 */ beqz $v0,.L0f06a130 /* f06a120: 00402825 */ or $a1,$v0,$zero -/* f06a124: 0c006a87 */ jal modelGetNodeData +/* f06a124: 0c006a87 */ jal modelGetNodeRwData /* f06a128: 8e040018 */ lw $a0,0x18($s0) /* f06a12c: ac400000 */ sw $zero,0x0($v0) .L0f06a130: @@ -5238,7 +5238,7 @@ glabel var7f1aa1fc /* f06a140: 24a500c9 */ addiu $a1,$a1,0xc9 /* f06a144: 10400005 */ beqz $v0,.L0f06a15c /* f06a148: 00402825 */ or $a1,$v0,$zero -/* f06a14c: 0c006a87 */ jal modelGetNodeData +/* f06a14c: 0c006a87 */ jal modelGetNodeRwData /* f06a150: 8e040018 */ lw $a0,0x18($s0) /* f06a154: 240d0001 */ addiu $t5,$zero,0x1 /* f06a158: ac4d0000 */ sw $t5,0x0($v0) @@ -5534,7 +5534,7 @@ glabel var7f1aa1fc /* f06a118: 8d040008 */ lw $a0,0x8($t0) /* f06a11c: 10400004 */ beqz $v0,.L0f06a130 /* f06a120: 00402825 */ or $a1,$v0,$zero -/* f06a124: 0c006a87 */ jal modelGetNodeData +/* f06a124: 0c006a87 */ jal modelGetNodeRwData /* f06a128: 8e040018 */ lw $a0,0x18($s0) /* f06a12c: ac400000 */ sw $zero,0x0($v0) .L0f06a130: @@ -5545,7 +5545,7 @@ glabel var7f1aa1fc /* f06a140: 24a500c9 */ addiu $a1,$a1,0xc9 /* f06a144: 10400005 */ beqz $v0,.L0f06a15c /* f06a148: 00402825 */ or $a1,$v0,$zero -/* f06a14c: 0c006a87 */ jal modelGetNodeData +/* f06a14c: 0c006a87 */ jal modelGetNodeRwData /* f06a150: 8e040018 */ lw $a0,0x18($s0) /* f06a154: 240d0001 */ addiu $t5,$zero,0x1 /* f06a158: ac4d0000 */ sw $t5,0x0($v0) @@ -5621,7 +5621,7 @@ glabel func0f06a1ec /* f06a238: 24050065 */ addiu $a1,$zero,0x65 /* f06a23c: ae070018 */ sw $a3,0x18($s0) /* f06a240: afa60028 */ sw $a2,0x28($sp) -/* f06a244: 0c006a6f */ jal modelGetPartNodeData +/* f06a244: 0c006a6f */ jal modelGetPartRodata /* f06a248: 8fa40024 */ lw $a0,0x24($sp) /* f06a24c: 10400004 */ beqz $v0,.L0f06a260 /* f06a250: 8fa60028 */ lw $a2,0x28($sp) @@ -5631,7 +5631,7 @@ glabel func0f06a1ec .L0f06a260: /* f06a260: 8fa40024 */ lw $a0,0x24($sp) /* f06a264: 24050066 */ addiu $a1,$zero,0x66 -/* f06a268: 0c006a6f */ jal modelGetPartNodeData +/* f06a268: 0c006a6f */ jal modelGetPartRodata /* f06a26c: afa60028 */ sw $a2,0x28($sp) /* f06a270: 10400004 */ beqz $v0,.L0f06a284 /* f06a274: 8fa60028 */ lw $a2,0x28($sp) @@ -8235,7 +8235,7 @@ glabel var7f1aa264 /* f06c088: 12e00034 */ beqz $s7,.L0f06c15c /* f06c08c: 02602025 */ or $a0,$s3,$zero /* f06c090: 8e110004 */ lw $s1,0x4($s0) -/* f06c094: 0c006a87 */ jal modelGetNodeData +/* f06c094: 0c006a87 */ jal modelGetNodeRwData /* f06c098: 02002825 */ or $a1,$s0,$zero /* f06c09c: 8c430004 */ lw $v1,0x4($v0) /* f06c0a0: 1060002e */ beqz $v1,.L0f06c15c @@ -16881,13 +16881,13 @@ glabel func0f070f08 /* f070f78: 24050005 */ addiu $a1,$zero,0x5 /* f070f7c: 8e280018 */ lw $t0,0x18($s1) /* f070f80: 2413003b */ addiu $s3,$zero,0x3b -/* f070f84: 0c006a6f */ jal modelGetPartNodeData +/* f070f84: 0c006a6f */ jal modelGetPartRodata /* 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 modelGetPartNodeData +/* f070f9c: 0c006a6f */ jal modelGetPartRodata /* f070fa0: 8d240008 */ lw $a0,0x8($t1) /* f070fa4: 14400030 */ bnez $v0,.L0f071068 /* f070fa8: 0040a025 */ or $s4,$v0,$zero @@ -16900,7 +16900,7 @@ glabel func0f070f08 /* f070fc0: 02a02825 */ or $a1,$s5,$zero /* f070fc4: 8e2a0018 */ lw $t2,0x18($s1) /* f070fc8: 24130004 */ addiu $s3,$zero,0x4 -/* f070fcc: 0c006a6f */ jal modelGetPartNodeData +/* f070fcc: 0c006a6f */ jal modelGetPartRodata /* f070fd0: 8d440008 */ lw $a0,0x8($t2) /* f070fd4: 10000024 */ b .L0f071068 /* f070fd8: 00408025 */ or $s0,$v0,$zero @@ -16909,7 +16909,7 @@ glabel func0f070f08 /* f070fe0: 02c02825 */ or $a1,$s6,$zero /* f070fe4: 8e2b0018 */ lw $t3,0x18($s1) /* f070fe8: 24130004 */ addiu $s3,$zero,0x4 -/* f070fec: 0c006a6f */ jal modelGetPartNodeData +/* f070fec: 0c006a6f */ jal modelGetPartRodata /* f070ff0: 8d640008 */ lw $a0,0x8($t3) /* f070ff4: 1000001c */ b .L0f071068 /* f070ff8: 00408025 */ or $s0,$v0,$zero @@ -16918,7 +16918,7 @@ glabel func0f070f08 /* f071000: 02e02825 */ or $a1,$s7,$zero /* f071004: 8e2c0018 */ lw $t4,0x18($s1) /* f071008: 24130004 */ addiu $s3,$zero,0x4 -/* f07100c: 0c006a6f */ jal modelGetPartNodeData +/* f07100c: 0c006a6f */ jal modelGetPartRodata /* f071010: 8d840008 */ lw $a0,0x8($t4) /* f071014: 10000014 */ b .L0f071068 /* f071018: 00408025 */ or $s0,$v0,$zero @@ -16931,7 +16931,7 @@ glabel func0f070f08 /* f071030: 00000000 */ nop /* f071034: 8e2f0018 */ lw $t7,0x18($s1) /* f071038: 24130004 */ addiu $s3,$zero,0x4 -/* f07103c: 0c006a6f */ jal modelGetPartNodeData +/* f07103c: 0c006a6f */ jal modelGetPartRodata /* f071040: 8de40008 */ lw $a0,0x8($t7) /* f071044: 10000008 */ b .L0f071068 /* f071048: 00408025 */ or $s0,$v0,$zero @@ -16940,7 +16940,7 @@ glabel func0f070f08 /* f071050: 24050006 */ addiu $a1,$zero,0x6 /* f071054: 8e2e0018 */ lw $t6,0x18($s1) /* f071058: 2413003b */ addiu $s3,$zero,0x3b -/* f07105c: 0c006a6f */ jal modelGetPartNodeData +/* f07105c: 0c006a6f */ jal modelGetPartRodata /* f071060: 8dc40008 */ lw $a0,0x8($t6) /* f071064: 00408025 */ or $s0,$v0,$zero .L0f071068: @@ -33346,7 +33346,7 @@ void doorUpdatePortalIfWindowed(struct prop *doorprop, s32 playercount) struct modelnode *node; bool canhide = true; struct model *model = doorprop->obj->model; - struct modeldata_partid *partdata; + union modelrwdata *rwdata; if (doorobj->doorflags & DOORFLAG_WINDOWED) { doorobj->fadealpha = func0f07092c(&doorprop->pos, doorobj->xludist, doorobj->opadist, 0); @@ -33357,9 +33357,9 @@ void doorUpdatePortalIfWindowed(struct prop *doorprop, s32 playercount) if (model->filedata->type == &g_ModelTypeWindowedDoor) { node = modelGetPart(model->filedata, MODELPART_01); - partdata = modelGetNodeData(model, node); + rwdata = modelGetNodeRwData(model, node); - if (partdata->visible.u32 == 0) { + if (rwdata->partid.visible.u32 == 0) { canhide = false; } } @@ -33425,7 +33425,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 modelGetPartNodeData +/* f0774dc: 0c006a6f */ jal modelGetPartRodata /* f0774e0: 4606b501 */ sub.s $f20,$f22,$f6 /* f0774e4: 26b10040 */ addiu $s1,$s5,0x40 /* f0774e8: 00408025 */ or $s0,$v0,$zero @@ -33439,7 +33439,7 @@ glabel var7f1aa44c /* f077508: 0c00567f */ jal func000159fc /* f07750c: 02202825 */ or $a1,$s1,$zero /* f077510: 8ec40008 */ lw $a0,0x8($s6) -/* f077514: 0c006a6f */ jal modelGetPartNodeData +/* f077514: 0c006a6f */ jal modelGetPartRodata /* f077518: 24050002 */ addiu $a1,$zero,0x2 /* f07751c: 26b10080 */ addiu $s1,$s5,0x80 /* f077520: 00408025 */ or $s0,$v0,$zero @@ -33482,7 +33482,7 @@ glabel var7f1aa44c .L0f0775ac: /* f0775ac: 26330001 */ addiu $s3,$s1,0x1 /* f0775b0: 02602825 */ or $a1,$s3,$zero -/* f0775b4: 0c006a6f */ jal modelGetPartNodeData +/* f0775b4: 0c006a6f */ jal modelGetPartRodata /* f0775b8: 8ec40008 */ lw $a0,0x8($s6) /* f0775bc: 0013c180 */ sll $t8,$s3,0x6 /* f0775c0: 02b89021 */ addu $s2,$s5,$t8 @@ -33498,7 +33498,7 @@ glabel var7f1aa44c /* f0775e8: 02402825 */ or $a1,$s2,$zero /* f0775ec: 26330002 */ addiu $s3,$s1,0x2 /* f0775f0: 02602825 */ or $a1,$s3,$zero -/* f0775f4: 0c006a6f */ jal modelGetPartNodeData +/* f0775f4: 0c006a6f */ jal modelGetPartRodata /* f0775f8: 8ec40008 */ lw $a0,0x8($s6) /* f0775fc: 0013c980 */ sll $t9,$s3,0x6 /* f077600: 02b98821 */ addu $s1,$s5,$t9 @@ -33719,7 +33719,7 @@ glabel var7f1aa454 /* f07790c: 304d00ff */ andi $t5,$v0,0xff /* f077910: 55a100ab */ bnel $t5,$at,.L0f077bc0 /* f077914: 8fac00b8 */ lw $t4,0xb8($sp) -/* f077918: 0c006a87 */ jal modelGetNodeData +/* f077918: 0c006a87 */ jal modelGetNodeRwData /* f07791c: 00000000 */ nop /* f077920: c6aa0004 */ lwc1 $f10,0x4($s5) /* f077924: c6c40004 */ lwc1 $f4,0x4($s6) @@ -34105,7 +34105,7 @@ glabel var7f1aa454 /* f07790c: 304d00ff */ andi $t5,$v0,0xff /* f077910: 55a100ab */ bnel $t5,$at,.L0f077bc0 /* f077914: 8fac00b8 */ lw $t4,0xb8($sp) -/* f077918: 0c006a87 */ jal modelGetNodeData +/* f077918: 0c006a87 */ jal modelGetNodeRwData /* f07791c: 00000000 */ nop /* f077920: c6aa0004 */ lwc1 $f10,0x4($s5) /* f077924: c6c40004 */ lwc1 $f4,0x4($s6) @@ -34488,7 +34488,7 @@ glabel var7f1aa454 /* f076504: 304d00ff */ andi $t5,$v0,0xff /* f076508: 55a10067 */ bnel $t5,$at,.NB0f0766a8 /* f07650c: 8fac0088 */ lw $t4,0x88($sp) -/* f076510: 0c006bab */ jal modelGetNodeData +/* f076510: 0c006bab */ jal modelGetNodeRwData /* f076514: 00000000 */ sll $zero,$zero,0x0 /* f076518: c64a0004 */ lwc1 $f10,0x4($s2) /* f07651c: c6640004 */ lwc1 $f4,0x4($s3) @@ -35031,7 +35031,7 @@ glabel var7f1aa4ac /* f078948: 8c4e000c */ lw $t6,0xc($v0) /* f07894c: afae0074 */ sw $t6,0x74($sp) /* f078950: 8c440008 */ lw $a0,0x8($v0) -/* f078954: 0c006a6f */ jal modelGetPartNodeData +/* f078954: 0c006a6f */ jal modelGetPartRodata /* f078958: afa3007c */ sw $v1,0x7c($sp) /* f07895c: 8fa3007c */ lw $v1,0x7c($sp) /* f078960: 44802000 */ mtc1 $zero,$f4 @@ -37667,7 +37667,7 @@ glabel var7f1aa588 /* f079d00: 8e240008 */ lw $a0,0x8($s1) .L0f079d04: /* f079d04: e7ac0048 */ swc1 $f12,0x48($sp) -/* f079d08: 0c006a6f */ jal modelGetPartNodeData +/* f079d08: 0c006a6f */ jal modelGetPartRodata /* f079d0c: afa20064 */ sw $v0,0x64($sp) /* f079d10: c4500000 */ lwc1 $f16,0x0($v0) /* f079d14: 02002025 */ or $a0,$s0,$zero @@ -38747,7 +38747,7 @@ glabel var7f1aa5a8 /* f07ac78: 8da40008 */ lw $a0,0x8($t5) /* f07ac7c: 10400005 */ beqz $v0,.L0f07ac94 /* f07ac80: 00402825 */ or $a1,$v0,$zero -/* f07ac84: 0c006a87 */ jal modelGetNodeData +/* f07ac84: 0c006a87 */ jal modelGetNodeRwData /* f07ac88: 8fa40184 */ lw $a0,0x184($sp) /* f07ac8c: 8fae018c */ lw $t6,0x18c($sp) /* f07ac90: a44e0000 */ sh $t6,0x0($v0) @@ -38758,7 +38758,7 @@ glabel var7f1aa5a8 /* f07aca0: 8d640008 */ lw $a0,0x8($t3) /* f07aca4: 10400005 */ beqz $v0,.L0f07acbc /* f07aca8: 00402825 */ or $a1,$v0,$zero -/* f07acac: 0c006a87 */ jal modelGetNodeData +/* f07acac: 0c006a87 */ jal modelGetNodeRwData /* f07acb0: 8fa40184 */ lw $a0,0x184($sp) /* f07acb4: 8fb80188 */ lw $t8,0x188($sp) /* f07acb8: a4580000 */ sh $t8,0x0($v0) @@ -39709,7 +39709,7 @@ glabel var7f1aa5a8 /* f07ac78: 8da40008 */ lw $a0,0x8($t5) /* f07ac7c: 10400005 */ beqz $v0,.L0f07ac94 /* f07ac80: 00402825 */ or $a1,$v0,$zero -/* f07ac84: 0c006a87 */ jal modelGetNodeData +/* f07ac84: 0c006a87 */ jal modelGetNodeRwData /* f07ac88: 8fa40184 */ lw $a0,0x184($sp) /* f07ac8c: 8fae018c */ lw $t6,0x18c($sp) /* f07ac90: a44e0000 */ sh $t6,0x0($v0) @@ -39720,7 +39720,7 @@ glabel var7f1aa5a8 /* f07aca0: 8d640008 */ lw $a0,0x8($t3) /* f07aca4: 10400005 */ beqz $v0,.L0f07acbc /* f07aca8: 00402825 */ or $a1,$v0,$zero -/* f07acac: 0c006a87 */ jal modelGetNodeData +/* f07acac: 0c006a87 */ jal modelGetNodeRwData /* f07acb0: 8fa40184 */ lw $a0,0x184($sp) /* f07acb4: 8fb80188 */ lw $t8,0x188($sp) /* f07acb8: a4580000 */ sh $t8,0x0($v0) @@ -39750,7 +39750,7 @@ glabel var7f1aa5b0 /* f07ace8: 8c4e000c */ lw $t6,0xc($v0) /* f07acec: afae00ec */ sw $t6,0xec($sp) /* f07acf0: 8c440008 */ lw $a0,0x8($v0) -/* f07acf4: 0c006a6f */ jal modelGetPartNodeData +/* f07acf4: 0c006a6f */ jal modelGetPartRodata /* f07acf8: afa200f0 */ sw $v0,0xf0($sp) /* f07acfc: afa200e8 */ sw $v0,0xe8($sp) /* f07ad00: 3c017f1b */ lui $at,%hi(var7f1aa5ac) @@ -39780,7 +39780,7 @@ glabel var7f1aa5b0 /* f07ad60: afa60024 */ sw $a2,0x24($sp) /* f07ad64: 8faf00f0 */ lw $t7,0xf0($sp) /* f07ad68: 24050002 */ addiu $a1,$zero,0x2 -/* f07ad6c: 0c006a6f */ jal modelGetPartNodeData +/* f07ad6c: 0c006a6f */ jal modelGetPartRodata /* f07ad70: 8de40008 */ lw $a0,0x8($t7) /* f07ad74: afa200e8 */ sw $v0,0xe8($sp) /* f07ad78: c60c00dc */ lwc1 $f12,0xdc($s0) @@ -40138,7 +40138,7 @@ glabel var7f1aa610 /* f07b48c: 8fa90114 */ lw $t1,0x114($sp) /* f07b490: 510000b2 */ beqzl $t0,.L0f07b75c /* f07b494: c60000d8 */ lwc1 $f0,0xd8($s0) -/* f07b498: 0c006a6f */ jal modelGetPartNodeData +/* f07b498: 0c006a6f */ jal modelGetPartRodata /* f07b49c: 8d240008 */ lw $a0,0x8($t1) /* f07b4a0: 8faa00dc */ lw $t2,0xdc($sp) /* f07b4a4: afa200d0 */ sw $v0,0xd0($sp) @@ -40455,7 +40455,7 @@ glabel var7f1aa610 /* f07b93c: 8d240008 */ lw $a0,0x8($t1) /* f07b940: 10400004 */ beqz $v0,.L0f07b954 /* f07b944: 00402825 */ or $a1,$v0,$zero -/* f07b948: 0c006a87 */ jal modelGetNodeData +/* f07b948: 0c006a87 */ jal modelGetNodeRwData /* f07b94c: 8fa40114 */ lw $a0,0x114($sp) /* f07b950: afa200d4 */ sw $v0,0xd4($sp) .L0f07b954: @@ -40599,7 +40599,7 @@ glabel var7f1aa610 /* f07b48c: 8fa90114 */ lw $t1,0x114($sp) /* f07b490: 510000b2 */ beqzl $t0,.L0f07b75c /* f07b494: c60000d8 */ lwc1 $f0,0xd8($s0) -/* f07b498: 0c006a6f */ jal modelGetPartNodeData +/* f07b498: 0c006a6f */ jal modelGetPartRodata /* f07b49c: 8d240008 */ lw $a0,0x8($t1) /* f07b4a0: 8faa00dc */ lw $t2,0xdc($sp) /* f07b4a4: afa200d0 */ sw $v0,0xd0($sp) @@ -40916,7 +40916,7 @@ glabel var7f1aa610 /* f07b93c: 8d240008 */ lw $a0,0x8($t1) /* f07b940: 10400004 */ beqz $v0,.L0f07b954 /* f07b944: 00402825 */ or $a1,$v0,$zero -/* f07b948: 0c006a87 */ jal modelGetNodeData +/* f07b948: 0c006a87 */ jal modelGetNodeRwData /* f07b94c: 8fa40114 */ lw $a0,0x114($sp) /* f07b950: afa200d4 */ sw $v0,0xd4($sp) .L0f07b954: @@ -47323,10 +47323,10 @@ void func0f07e058(struct prop *prop) struct modelnode *node = modelGetPart(model->filedata, MODELPART_6E); if (node) { - struct modeldata_partid *data = modelGetNodeData(model, node); + union modelrwdata *data = modelGetNodeRwData(model, node); u32 flags = obj->flags; - data->visible.u32 = (flags & OBJFLAG_DEACTIVATED) == 0; + data->partid.visible.u32 = (flags & OBJFLAG_DEACTIVATED) == 0; } } @@ -47435,7 +47435,7 @@ glabel func0f07e1fc /* f07e210: 00002825 */ or $a1,$zero,$zero /* f07e214: 8c510018 */ lw $s1,0x18($v0) /* f07e218: 8e30000c */ lw $s0,0xc($s1) -/* f07e21c: 0c006a6f */ jal modelGetPartNodeData +/* f07e21c: 0c006a6f */ jal modelGetPartRodata /* f07e220: 8e240008 */ lw $a0,0x8($s1) /* f07e224: 26050040 */ addiu $a1,$s0,0x40 /* f07e228: afa50024 */ sw $a1,0x24($sp) @@ -47445,7 +47445,7 @@ glabel func0f07e1fc /* f07e238: 0c0056f8 */ jal func00015be0 /* f07e23c: 02002025 */ or $a0,$s0,$zero /* f07e240: 8e240008 */ lw $a0,0x8($s1) -/* f07e244: 0c006a6f */ jal modelGetPartNodeData +/* f07e244: 0c006a6f */ jal modelGetPartRodata /* f07e248: 24050001 */ addiu $a1,$zero,0x1 /* f07e24c: 26050080 */ addiu $a1,$s0,0x80 /* f07e250: afa50024 */ sw $a1,0x24($sp) @@ -47455,7 +47455,7 @@ glabel func0f07e1fc /* f07e260: 0c0056f8 */ jal func00015be0 /* f07e264: 02002025 */ or $a0,$s0,$zero /* f07e268: 8e240008 */ lw $a0,0x8($s1) -/* f07e26c: 0c006a6f */ jal modelGetPartNodeData +/* f07e26c: 0c006a6f */ jal modelGetPartRodata /* f07e270: 24050002 */ addiu $a1,$zero,0x2 /* f07e274: 260500c0 */ addiu $a1,$s0,0xc0 /* f07e278: afa50024 */ sw $a1,0x24($sp) @@ -47465,7 +47465,7 @@ glabel func0f07e1fc /* f07e288: 0c0056f8 */ jal func00015be0 /* f07e28c: 02002025 */ or $a0,$s0,$zero /* f07e290: 8e240008 */ lw $a0,0x8($s1) -/* f07e294: 0c006a6f */ jal modelGetPartNodeData +/* f07e294: 0c006a6f */ jal modelGetPartRodata /* f07e298: 24050003 */ addiu $a1,$zero,0x3 /* f07e29c: 26110100 */ addiu $s1,$s0,0x100 /* f07e2a0: 02202825 */ or $a1,$s1,$zero @@ -48536,7 +48536,7 @@ glabel var7f1aa824 /* f07fc68: afb800ac */ sw $t8,0xac($sp) /* f07fc6c: 8e290004 */ lw $t1,0x4($s1) /* f07fc70: 02202825 */ or $a1,$s1,$zero -/* f07fc74: 0c006a87 */ jal modelGetNodeData +/* f07fc74: 0c006a87 */ jal modelGetNodeRwData /* f07fc78: afa900a8 */ sw $t1,0xa8($sp) /* f07fc7c: 3c017f1b */ lui $at,%hi(var7f1aa7cc) /* f07fc80: c43aa7cc */ lwc1 $f26,%lo(var7f1aa7cc)($at) @@ -51306,7 +51306,7 @@ glabel var7f1aa82c /* f081664: 8c460004 */ lw $a2,0x4($v0) /* f081668: 8e040018 */ lw $a0,0x18($s0) /* f08166c: 00402825 */ or $a1,$v0,$zero -/* f081670: 0c006a87 */ jal modelGetNodeData +/* f081670: 0c006a87 */ jal modelGetNodeRwData /* f081674: afa60060 */ sw $a2,0x60($sp) /* f081678: 8fa60060 */ lw $a2,0x60($sp) /* f08167c: afa2005c */ sw $v0,0x5c($sp) @@ -51941,7 +51941,7 @@ glabel var7f1aa82c /* f081664: 8c460004 */ lw $a2,0x4($v0) /* f081668: 8e040018 */ lw $a0,0x18($s0) /* f08166c: 00402825 */ or $a1,$v0,$zero -/* f081670: 0c006a87 */ jal modelGetNodeData +/* f081670: 0c006a87 */ jal modelGetNodeRwData /* f081674: afa60060 */ sw $a2,0x60($sp) /* f081678: 8fa60060 */ lw $a2,0x60($sp) /* f08167c: afa2005c */ sw $v0,0x5c($sp) @@ -52448,7 +52448,7 @@ glabel var7f1aa82c // if (door->doortype == DOORTYPE_LASER) { // node = func0f0687e4(obj->model); // dldata1 = &node->data->displaylist; -// dldata2 = modelGetNodeData(obj->model, node); +// dldata2 = modelGetNodeRwData(obj->model, node); // oldcolours = (struct colour *)(((u32)&dldata1->ptable[dldata1->pcount] + 7 | 7) ^ 7); // newcolours = (struct colour *)gfxAllocateColours(dldata1->numcolours); // @@ -58997,7 +58997,7 @@ glabel var7f1aaa00 /* f084a70: 00000000 */ nop /* f084a74: 8e110004 */ lw $s1,0x4($s0) /* f084a78: 02c02025 */ or $a0,$s6,$zero -/* f084a7c: 0c006a87 */ jal modelGetNodeData +/* f084a7c: 0c006a87 */ jal modelGetNodeRwData /* f084a80: 02002825 */ or $a1,$s0,$zero /* f084a84: 8c430004 */ lw $v1,0x4($v0) /* f084a88: 1060002b */ beqz $v1,.L0f084b38 @@ -59222,12 +59222,11 @@ void doorDestroyGlass(struct doorobj *door) bool bail; struct prop *prop = door->base.prop; struct model *model = door->base.model; - struct model08thing *thing; - struct modeldata_partid *data; + union modelrodata *rodata; + union modelrwdata *rwdata; f32 matrix[16]; - // TODO: Remove cast - thing = (struct model08thing *) modelGetPartNodeData(model->filedata, 2); + rodata = modelGetPartRodata(model->filedata, 2); if (door->portalnum >= 0) { bail = (g_BgPortals[door->portalnum].flags & PORTALFLAG_ENABLED) != 0 @@ -59242,38 +59241,37 @@ void doorDestroyGlass(struct doorobj *door) func0f08c424(door, matrix); shardsCreate((struct coord *) &matrix[12], &matrix[0], &matrix[4], &matrix[8], - thing->unk04[0], thing->unk04[1], thing->unk04[2], thing->unk04[3], + rodata->bbox.xmin, rodata->bbox.xmax, rodata->bbox.ymin, rodata->bbox.ymax, SHARDTYPE_GLASS, prop); func0f13e40c(prop, 1); node = modelGetPart(model->filedata, 1); - data = modelGetNodeData(model, node); - data->visible.u32 = 0; + rwdata = modelGetNodeRwData(model, node); + rwdata->partid.visible.u32 = 0; } void func0f084f64(struct defaultobj *obj) { struct prop *prop = obj->prop; struct model *model = obj->model; - struct model08thing *thing; - struct modeldata_partid *data; + union modelrodata *rodata; + union modelrwdata *rwdata; Mtxf *sp7c; Mtxf matrix; if (prop->flags & PROPFLAG_02) { - // TODO: Remove cast - thing = (struct model08thing *) modelGetPartNodeData(model->filedata, 2); + rodata = modelGetPartRodata(model->filedata, 2); sp7c = func0001a5cc(model, modelGetPart(model->filedata, 1), 0); func00015be4(currentPlayerGetUnk174c(), sp7c, &matrix); shardsCreate((struct coord *) matrix.m[3], matrix.m[0], matrix.m[1], matrix.m[2], - thing->unk04[0], thing->unk04[1], thing->unk04[2], thing->unk04[3], + rodata->bbox.xmin, rodata->bbox.xmax, rodata->bbox.ymin, rodata->bbox.ymax, SHARDTYPE_GLASS, prop); } func0f13e40c(prop, 1); - data = modelGetNodeData(model, modelGetPart(model->filedata, 3)); - data->visible.u32 = 0; + rwdata = modelGetNodeRwData(model, modelGetPart(model->filedata, 3)); + rwdata->partid.visible.u32 = 0; } void func0f085050(struct prop *prop, f32 damage, struct coord *pos, s32 arg3, s32 arg4) @@ -66586,7 +66584,7 @@ glabel func0f089a94 /* f089b18: 8e020014 */ lw $v0,0x14($s0) .L0f089b1c: /* f089b1c: 8e110004 */ lw $s1,0x4($s0) -/* f089b20: 0c006a87 */ jal modelGetNodeData +/* f089b20: 0c006a87 */ jal modelGetNodeRwData /* f089b24: 02002825 */ or $a1,$s0,$zero /* f089b28: 00409025 */ or $s2,$v0,$zero /* f089b2c: 02c02025 */ or $a0,$s6,$zero @@ -69799,7 +69797,7 @@ glabel func0f08bb5c /* f08bbb8: 00002825 */ or $a1,$zero,$zero /* f08bbbc: 1040000a */ beqz $v0,.L0f08bbe8 /* f08bbc0: 00402825 */ or $a1,$v0,$zero -/* f08bbc4: 0c006a87 */ jal modelGetNodeData +/* f08bbc4: 0c006a87 */ jal modelGetNodeRwData /* f08bbc8: 02002025 */ or $a0,$s0,$zero /* f08bbcc: 8fb9003c */ lw $t9,0x3c($sp) /* f08bbd0: 24090001 */ addiu $t1,$zero,0x1 @@ -69815,7 +69813,7 @@ glabel func0f08bb5c /* f08bbf0: 24050002 */ addiu $a1,$zero,0x2 /* f08bbf4: 1040000a */ beqz $v0,.L0f08bc20 /* f08bbf8: 00402825 */ or $a1,$v0,$zero -/* f08bbfc: 0c006a87 */ jal modelGetNodeData +/* f08bbfc: 0c006a87 */ jal modelGetNodeRwData /* f08bc00: 02002025 */ or $a0,$s0,$zero /* f08bc04: 8faa003c */ lw $t2,0x3c($sp) /* f08bc08: 240c0001 */ addiu $t4,$zero,0x1 @@ -69865,7 +69863,7 @@ glabel func0f08bc5c /* f08bc98: 8fa60018 */ lw $a2,0x18($sp) /* f08bc9c: 10400005 */ beqz $v0,.L0f08bcb4 /* f08bca0: 00402825 */ or $a1,$v0,$zero -/* f08bca4: 0c006a87 */ jal modelGetNodeData +/* f08bca4: 0c006a87 */ jal modelGetNodeRwData /* f08bca8: 00c02025 */ or $a0,$a2,$zero /* f08bcac: 1000000d */ b .L0f08bce4 /* f08bcb0: 84420000 */ lh $v0,0x0($v0) @@ -69877,7 +69875,7 @@ glabel func0f08bc5c /* f08bcc4: 8fa60018 */ lw $a2,0x18($sp) /* f08bcc8: 10400005 */ beqz $v0,.L0f08bce0 /* f08bccc: 00402825 */ or $a1,$v0,$zero -/* f08bcd0: 0c006a87 */ jal modelGetNodeData +/* f08bcd0: 0c006a87 */ jal modelGetNodeRwData /* f08bcd4: 00c02025 */ or $a0,$a2,$zero /* f08bcd8: 10000002 */ b .L0f08bce4 /* f08bcdc: 8c420000 */ lw $v0,0x0($v0) @@ -71549,7 +71547,7 @@ glabel func0f08d3dc /* f08d408: 8c580004 */ lw $t8,0x4($v0) /* f08d40c: 00402825 */ or $a1,$v0,$zero /* f08d410: afb80028 */ sw $t8,0x28($sp) -/* f08d414: 0c006a87 */ jal modelGetNodeData +/* f08d414: 0c006a87 */ jal modelGetNodeRwData /* f08d418: 8e040018 */ lw $a0,0x18($s0) /* f08d41c: 8fb90028 */ lw $t9,0x28($sp) /* f08d420: afa20024 */ sw $v0,0x24($sp) @@ -71587,7 +71585,7 @@ glabel func0f08d460 /* f08d48c: 8c430004 */ lw $v1,0x4($v0) /* f08d490: 8e040018 */ lw $a0,0x18($s0) /* f08d494: 00402825 */ or $a1,$v0,$zero -/* f08d498: 0c006a87 */ jal modelGetNodeData +/* f08d498: 0c006a87 */ jal modelGetNodeRwData /* f08d49c: afa30028 */ sw $v1,0x28($sp) /* f08d4a0: 8e0600a4 */ lw $a2,0xa4($s0) /* f08d4a4: 8c580000 */ lw $t8,0x0($v0) @@ -77908,16 +77906,16 @@ void objSetModelPartVisible(struct defaultobj *obj, s32 partnum, bool visible) struct modelnode *node = modelGetPart(obj->model->filedata, partnum); if (node) { - struct modeldata_partid *data = modelGetNodeData(obj->model, node); + union modelrwdata *rwdata = modelGetNodeRwData(obj->model, node); - if (data) { + if (rwdata) { if (visible) { visible = true; } else { visible = false; } - data->visible.u32 = visible; + rwdata->partid.visible.u32 = visible; } } } diff --git a/src/game/title.c b/src/game/title.c index 49086a851..1a0ec73f7 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -1642,7 +1642,7 @@ glabel titleInitPdLogo /* f016fa4: 0c006b4d */ jal modelSetRootPosition /* f016fa8: 27a50034 */ addiu $a1,$sp,0x34 /* f016fac: 8e240268 */ lw $a0,0x268($s1) -/* f016fb0: 0c006a6f */ jal modelGetPartNodeData +/* f016fb0: 0c006a6f */ jal modelGetPartRodata /* f016fb4: 24050002 */ addiu $a1,$zero,0x2 /* f016fb8: 84430010 */ lh $v1,0x10($v0) /* f016fbc: 3c04800a */ lui $a0,%hi(var8009cca8) @@ -1755,7 +1755,7 @@ glabel titleInitPdLogo // // { // // fb0 -// struct modelthing *modelthing = modelGetPartNodeData(g_ModelStates[MODEL_PDTWO].filedata, 2); +// struct modelthing *modelthing = modelGetPartRodata(g_ModelStates[MODEL_PDTWO].filedata, 2); // u32 size2; // // size = ALIGN8(modelthing->unk10 * 0xc); @@ -1946,7 +1946,7 @@ glabel func0f017248 /* f0172cc: 0c006a47 */ jal modelGetPart /* f0172d0: 8ee40008 */ lw $a0,0x8($s7) /* f0172d4: 02e02025 */ or $a0,$s7,$zero -/* f0172d8: 0c006a87 */ jal modelGetNodeData +/* f0172d8: 0c006a87 */ jal modelGetNodeRwData /* f0172dc: 00402825 */ or $a1,$v0,$zero /* f0172e0: 8fac0158 */ lw $t4,0x158($sp) /* f0172e4: 24050001 */ addiu $a1,$zero,0x1 @@ -1954,7 +1954,7 @@ glabel func0f017248 /* f0172ec: 0c006a47 */ jal modelGetPart /* f0172f0: 8ee40008 */ lw $a0,0x8($s7) /* f0172f4: 02e02025 */ or $a0,$s7,$zero -/* f0172f8: 0c006a87 */ jal modelGetNodeData +/* f0172f8: 0c006a87 */ jal modelGetNodeRwData /* f0172fc: 00402825 */ or $a1,$v0,$zero /* f017300: 3c014780 */ lui $at,0x4780 /* f017304: 44812000 */ mtc1 $at,$f4 @@ -2092,14 +2092,14 @@ glabel func0f017248 /* f0174d8: 8e150004 */ lw $s5,0x4($s0) /* f0174dc: 8cd10004 */ lw $s1,0x4($a2) /* f0174e0: 02e02025 */ or $a0,$s7,$zero -/* f0174e4: 0c006a87 */ jal modelGetNodeData +/* f0174e4: 0c006a87 */ jal modelGetNodeRwData /* f0174e8: 02002825 */ or $a1,$s0,$zero /* f0174ec: 10000006 */ b .L0f017508 /* f0174f0: 86af0010 */ lh $t7,0x10($s5) .L0f0174f4: /* f0174f4: 8cd50004 */ lw $s5,0x4($a2) /* f0174f8: 8e110004 */ lw $s1,0x4($s0) -/* f0174fc: 0c006a87 */ jal modelGetNodeData +/* f0174fc: 0c006a87 */ jal modelGetNodeRwData /* f017500: 00c02825 */ or $a1,$a2,$zero /* f017504: 86af0010 */ lh $t7,0x10($s5) .L0f017508: @@ -3342,7 +3342,7 @@ glabel var7f1a8468 /* f018800: 94ce0016 */ lhu $t6,0x16($a2) /* f018804: afa60164 */ sw $a2,0x164($sp) /* f018808: 25d80001 */ addiu $t8,$t6,0x1 -/* f01880c: 0c0069eb */ jal modelGetNodeData +/* f01880c: 0c0069eb */ jal modelGetNodeRwData /* f018810: afb800d8 */ sw $t8,0xd8($sp) /* f018814: afa20160 */ sw $v0,0x160($sp) /* f018818: 0fc5a25d */ jal gfxAllocate @@ -3391,7 +3391,7 @@ glabel var7f1a8468 /* f0188c0: afa60164 */ sw $a2,0x164($sp) /* f0188c4: 01d8c821 */ addu $t9,$t6,$t8 /* f0188c8: 272f0001 */ addiu $t7,$t9,0x1 -/* f0188cc: 0c0069eb */ jal modelGetNodeData +/* f0188cc: 0c0069eb */ jal modelGetNodeRwData /* f0188d0: afaf00d8 */ sw $t7,0xd8($sp) /* f0188d4: afa20160 */ sw $v0,0x160($sp) /* f0188d8: 0fc5a25d */ jal gfxAllocate @@ -3453,7 +3453,7 @@ glabel var7f1a8468 /* f0189b0: afa60164 */ sw $a2,0x164($sp) /* f0189b4: 01eec021 */ addu $t8,$t7,$t6 /* f0189b8: 27190001 */ addiu $t9,$t8,0x1 -/* f0189bc: 0c0069eb */ jal modelGetNodeData +/* f0189bc: 0c0069eb */ jal modelGetNodeRwData /* f0189c0: afb900d8 */ sw $t9,0xd8($sp) /* f0189c4: afa20160 */ sw $v0,0x160($sp) /* f0189c8: 0fc5a25d */ jal gfxAllocate @@ -3515,7 +3515,7 @@ glabel var7f1a8468 /* f018aa0: afa60164 */ sw $a2,0x164($sp) /* f018aa4: 032f7021 */ addu $t6,$t9,$t7 /* f018aa8: 25d80001 */ addiu $t8,$t6,0x1 -/* f018aac: 0c0069eb */ jal modelGetNodeData +/* f018aac: 0c0069eb */ jal modelGetNodeRwData /* f018ab0: afb800d8 */ sw $t8,0xd8($sp) /* f018ab4: afa20160 */ sw $v0,0x160($sp) /* f018ab8: 0fc5a25d */ jal gfxAllocate @@ -4673,7 +4673,7 @@ glabel var7f1a8468 /* f01871c: 94cf0016 */ lhu $t7,0x16($a2) /* f018720: afa60164 */ sw $a2,0x164($sp) /* f018724: 25ee0001 */ addiu $t6,$t7,0x1 -/* f018728: 0c006a87 */ jal modelGetNodeData +/* f018728: 0c006a87 */ jal modelGetNodeRwData /* f01872c: afae00d8 */ sw $t6,0xd8($sp) /* f018730: afa20160 */ sw $v0,0x160($sp) /* f018734: 0fc59e7d */ jal gfxAllocate @@ -4722,7 +4722,7 @@ glabel var7f1a8468 /* f0187dc: afa60164 */ sw $a2,0x164($sp) /* f0187e0: 01eec021 */ addu $t8,$t7,$t6 /* f0187e4: 27190001 */ addiu $t9,$t8,0x1 -/* f0187e8: 0c006a87 */ jal modelGetNodeData +/* f0187e8: 0c006a87 */ jal modelGetNodeRwData /* f0187ec: afb900d8 */ sw $t9,0xd8($sp) /* f0187f0: afa20160 */ sw $v0,0x160($sp) /* f0187f4: 0fc59e7d */ jal gfxAllocate @@ -4784,7 +4784,7 @@ glabel var7f1a8468 /* f0188cc: afa60164 */ sw $a2,0x164($sp) /* f0188d0: 032f7021 */ addu $t6,$t9,$t7 /* f0188d4: 25d80001 */ addiu $t8,$t6,0x1 -/* f0188d8: 0c006a87 */ jal modelGetNodeData +/* f0188d8: 0c006a87 */ jal modelGetNodeRwData /* f0188dc: afb800d8 */ sw $t8,0xd8($sp) /* f0188e0: afa20160 */ sw $v0,0x160($sp) /* f0188e4: 0fc59e7d */ jal gfxAllocate @@ -4846,7 +4846,7 @@ glabel var7f1a8468 /* f0189bc: afa60164 */ sw $a2,0x164($sp) /* f0189c0: 03197821 */ addu $t7,$t8,$t9 /* f0189c4: 25ee0001 */ addiu $t6,$t7,0x1 -/* f0189c8: 0c006a87 */ jal modelGetNodeData +/* f0189c8: 0c006a87 */ jal modelGetNodeRwData /* f0189cc: afae00d8 */ sw $t6,0xd8($sp) /* f0189d0: afa20160 */ sw $v0,0x160($sp) /* f0189d4: 0fc59e7d */ jal gfxAllocate @@ -6391,7 +6391,7 @@ glabel var7f1a84bc /* f01a100: 0c006a47 */ jal modelGetPart /* f01a104: 8f240008 */ lw $a0,0x8($t9) /* f01a108: 8e640000 */ lw $a0,0x0($s3) -/* f01a10c: 0c006a87 */ jal modelGetNodeData +/* f01a10c: 0c006a87 */ jal modelGetNodeRwData /* f01a110: 00402825 */ or $a1,$v0,$zero /* f01a114: 50400003 */ beqzl $v0,.L0f01a124 /* f01a118: 8e780000 */ lw $t8,0x0($s3) @@ -6402,7 +6402,7 @@ glabel var7f1a84bc /* f01a128: 0c006a47 */ jal modelGetPart /* f01a12c: 8f040008 */ lw $a0,0x8($t8) /* f01a130: 8e640000 */ lw $a0,0x0($s3) -/* f01a134: 0c006a87 */ jal modelGetNodeData +/* f01a134: 0c006a87 */ jal modelGetNodeRwData /* f01a138: 00402825 */ or $a1,$v0,$zero /* f01a13c: 10400002 */ beqz $v0,.L0f01a148 /* f01a140: 24080001 */ addiu $t0,$zero,0x1 @@ -6413,7 +6413,7 @@ glabel var7f1a84bc /* f01a150: 0c006a47 */ jal modelGetPart /* f01a154: 8de40008 */ lw $a0,0x8($t7) /* f01a158: 8e640000 */ lw $a0,0x0($s3) -/* f01a15c: 0c006a87 */ jal modelGetNodeData +/* f01a15c: 0c006a87 */ jal modelGetNodeRwData /* f01a160: 00402825 */ or $a1,$v0,$zero /* f01a164: 10400002 */ beqz $v0,.L0f01a170 /* f01a168: 3c12bc00 */ lui $s2,0xbc00 @@ -6453,7 +6453,7 @@ glabel var7f1a84bc /* f01a1ec: 0c006a47 */ jal modelGetPart /* f01a1f0: 8d640008 */ lw $a0,0x8($t3) /* f01a1f4: 8e640000 */ lw $a0,0x0($s3) -/* f01a1f8: 0c006a87 */ jal modelGetNodeData +/* f01a1f8: 0c006a87 */ jal modelGetNodeRwData /* f01a1fc: 00402825 */ or $a1,$v0,$zero /* f01a200: 10400002 */ beqz $v0,.L0f01a20c /* f01a204: 240d0001 */ addiu $t5,$zero,0x1 @@ -6464,7 +6464,7 @@ glabel var7f1a84bc /* f01a214: 0c006a47 */ jal modelGetPart /* f01a218: 8f240008 */ lw $a0,0x8($t9) /* f01a21c: 8e640000 */ lw $a0,0x0($s3) -/* f01a220: 0c006a87 */ jal modelGetNodeData +/* f01a220: 0c006a87 */ jal modelGetNodeRwData /* f01a224: 00402825 */ or $a1,$v0,$zero /* f01a228: 50400003 */ beqzl $v0,.L0f01a238 /* f01a22c: 8e780000 */ lw $t8,0x0($s3) @@ -6475,7 +6475,7 @@ glabel var7f1a84bc /* f01a23c: 0c006a47 */ jal modelGetPart /* f01a240: 8f040008 */ lw $a0,0x8($t8) /* f01a244: 8e640000 */ lw $a0,0x0($s3) -/* f01a248: 0c006a87 */ jal modelGetNodeData +/* f01a248: 0c006a87 */ jal modelGetNodeRwData /* f01a24c: 00402825 */ or $a1,$v0,$zero /* f01a250: 10400003 */ beqz $v0,.L0f01a260 /* f01a254: 26830008 */ addiu $v1,$s4,0x8 @@ -6809,7 +6809,7 @@ glabel var7f1a84bc /* f01a100: 0c006a47 */ jal modelGetPart /* f01a104: 8f240008 */ lw $a0,0x8($t9) /* f01a108: 8e640000 */ lw $a0,0x0($s3) -/* f01a10c: 0c006a87 */ jal modelGetNodeData +/* f01a10c: 0c006a87 */ jal modelGetNodeRwData /* f01a110: 00402825 */ or $a1,$v0,$zero /* f01a114: 50400003 */ beqzl $v0,.L0f01a124 /* f01a118: 8e780000 */ lw $t8,0x0($s3) @@ -6820,7 +6820,7 @@ glabel var7f1a84bc /* f01a128: 0c006a47 */ jal modelGetPart /* f01a12c: 8f040008 */ lw $a0,0x8($t8) /* f01a130: 8e640000 */ lw $a0,0x0($s3) -/* f01a134: 0c006a87 */ jal modelGetNodeData +/* f01a134: 0c006a87 */ jal modelGetNodeRwData /* f01a138: 00402825 */ or $a1,$v0,$zero /* f01a13c: 10400002 */ beqz $v0,.L0f01a148 /* f01a140: 24080001 */ addiu $t0,$zero,0x1 @@ -6831,7 +6831,7 @@ glabel var7f1a84bc /* f01a150: 0c006a47 */ jal modelGetPart /* f01a154: 8de40008 */ lw $a0,0x8($t7) /* f01a158: 8e640000 */ lw $a0,0x0($s3) -/* f01a15c: 0c006a87 */ jal modelGetNodeData +/* f01a15c: 0c006a87 */ jal modelGetNodeRwData /* f01a160: 00402825 */ or $a1,$v0,$zero /* f01a164: 10400002 */ beqz $v0,.L0f01a170 /* f01a168: 3c12bc00 */ lui $s2,0xbc00 @@ -6871,7 +6871,7 @@ glabel var7f1a84bc /* f01a1ec: 0c006a47 */ jal modelGetPart /* f01a1f0: 8d640008 */ lw $a0,0x8($t3) /* f01a1f4: 8e640000 */ lw $a0,0x0($s3) -/* f01a1f8: 0c006a87 */ jal modelGetNodeData +/* f01a1f8: 0c006a87 */ jal modelGetNodeRwData /* f01a1fc: 00402825 */ or $a1,$v0,$zero /* f01a200: 10400002 */ beqz $v0,.L0f01a20c /* f01a204: 240d0001 */ addiu $t5,$zero,0x1 @@ -6882,7 +6882,7 @@ glabel var7f1a84bc /* f01a214: 0c006a47 */ jal modelGetPart /* f01a218: 8f240008 */ lw $a0,0x8($t9) /* f01a21c: 8e640000 */ lw $a0,0x0($s3) -/* f01a220: 0c006a87 */ jal modelGetNodeData +/* f01a220: 0c006a87 */ jal modelGetNodeRwData /* f01a224: 00402825 */ or $a1,$v0,$zero /* f01a228: 50400003 */ beqzl $v0,.L0f01a238 /* f01a22c: 8e780000 */ lw $t8,0x0($s3) @@ -6893,7 +6893,7 @@ glabel var7f1a84bc /* f01a23c: 0c006a47 */ jal modelGetPart /* f01a240: 8f040008 */ lw $a0,0x8($t8) /* f01a244: 8e640000 */ lw $a0,0x0($s3) -/* f01a248: 0c006a87 */ jal modelGetNodeData +/* f01a248: 0c006a87 */ jal modelGetNodeRwData /* f01a24c: 00402825 */ or $a1,$v0,$zero /* f01a250: 10400003 */ beqz $v0,.L0f01a260 /* f01a254: 26830008 */ addiu $v1,$s4,0x8 diff --git a/src/include/game/game_129210.h b/src/include/game/game_129210.h index d8349ff5a..e16500f1f 100644 --- a/src/include/game/game_129210.h +++ b/src/include/game/game_129210.h @@ -4,7 +4,7 @@ #include "data.h" #include "types.h" -void func0f129210(void *find, void *replacement); +void func0f129210(union modelrwdata *find, union modelrwdata *replacement); void func0f12939c(void); void *func0f12955c(s32 count, s32 index, s32 arg2, s32 arg3); void func0f129818(s32 arg0, void *arg1); diff --git a/src/include/lib/model.h b/src/include/lib/model.h index 69f1431ce..2ab26efc9 100644 --- a/src/include/lib/model.h +++ b/src/include/lib/model.h @@ -16,9 +16,9 @@ struct modelnode *func0001a784(struct modelnode *node); u32 func0001a7cc(void); u32 func0001a85c(void); struct modelnode *modelGetPart(struct modelfiledata *arg0, s32 partnum); -union modelnode_data *modelGetPartNodeData(struct modelfiledata *modelfiledata, s32 partnum); +union modelrodata *modelGetPartRodata(struct modelfiledata *modelfiledata, s32 partnum); u32 func0001a9e8(void); -void *modelGetNodeData(struct model *model, struct modelnode *node); +void *modelGetNodeRwData(struct model *model, struct modelnode *node); void modelNodeGetPosition(struct model *model, struct modelnode *node, struct coord *pos); void modelNodeSetPosition(struct model *model, struct modelnode *node, struct coord *pos); void modelGetRootPosition(struct model *model, struct coord *pos); diff --git a/src/include/types.h b/src/include/types.h index 901216ada..d303d3438 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -514,13 +514,13 @@ struct modeltype { u16 *things; }; -struct modelnode_root { // type 0x01 +struct modelrodata_root { // type 0x01 u32 modeltype; f32 unk04; - u16 index; + u16 rwdataindex; }; -struct modelnode_position { // type 0x02 +struct modelrodata_position { // type 0x02 struct coord pos; u16 part; s16 piece0; @@ -529,14 +529,14 @@ struct modelnode_position { // type 0x02 f32 drawdist; }; -struct modelnode_nearfar { // type 0x08 +struct modelrodata_nearfar { // type 0x08 f32 near; f32 far; struct modelnode *target; - u16 index; + u16 rwdataindex; }; -struct modelnode_hat { // type 0x09 +struct modelrodata_hat { // type 0x09 u32 unk00; u32 unk04; u32 unk08; @@ -546,10 +546,10 @@ struct modelnode_hat { // type 0x09 u32 unk18; u32 unk1c; u16 unk20; - u16 index; + u16 rwdataindex; }; -struct modelnode_bbox { // type 0x0a +struct modelrodata_bbox { // type 0x0a s32 ibh; f32 xmin; f32 xmax; @@ -559,7 +559,7 @@ struct modelnode_bbox { // type 0x0a f32 zmax; }; -struct modelnode_0b { // type 0x0b +struct modelrodata_type0b { // type 0x0b u32 unk00; u32 unk04; u32 unk08; @@ -577,63 +577,63 @@ struct modelnode_0b { // type 0x0b u32 unk38; u32 unk3c; u32 unk40; - u16 index; + u16 rwdataindex; }; -struct modelnode_gunfire { // type 0x0c +struct modelrodata_gunfire { // type 0x0c struct coord pos; struct coord dim; u32 texture; f32 unk1c; - u16 index; + u16 rwdataindex; }; -struct modelnode_partid { // type 0x12 +struct modelrodata_partid { // type 0x12 struct modelnode *target; - u16 index; + u16 rwdataindex; }; -struct modelnode_positionheld { // type 0x15 +struct modelrodata_positionheld { // type 0x15 struct coord pos; }; -struct modelnode_type16 { // type 0x16 +struct modelrodata_type16 { // type 0x16 struct coord pos; }; -struct modelnode_headspot { // type 0x17 - u16 index; +struct modelrodata_headspot { // type 0x17 + u16 rwdataindex; }; -struct modelnode_displaylist { // type 0x18 +struct modelrodata_displaylist { // type 0x18 /*0x00*/ u32 primary; /*0x04*/ u32 secondary; /*0x08*/ u32 *colourtable; /*0x0c*/ struct coord *ptable; /*0x10*/ s16 pcount; /*0x12*/ u16 mcount; - /*0x14*/ u16 index; + /*0x14*/ u16 rwdataindex; /*0x16*/ u16 numcolours; }; -union modelnode_data { - struct modelnode_root root; - struct modelnode_position position; - struct modelnode_nearfar nearfar; - struct modelnode_hat hat; - struct modelnode_bbox bbox; - struct modelnode_0b unk0b; - struct modelnode_gunfire gunfire; - struct modelnode_partid partid; - struct modelnode_positionheld positionheld; - struct modelnode_type16 type16; - struct modelnode_headspot headspot; - struct modelnode_displaylist displaylist; +union modelrodata { + struct modelrodata_root root; + struct modelrodata_position position; + struct modelrodata_nearfar nearfar; + struct modelrodata_hat hat; + struct modelrodata_bbox bbox; + struct modelrodata_type0b type0b; + struct modelrodata_gunfire gunfire; + struct modelrodata_partid partid; + struct modelrodata_positionheld positionheld; + struct modelrodata_type16 type16; + struct modelrodata_headspot headspot; + struct modelrodata_displaylist displaylist; }; struct modelnode { /*0x00*/ u16 type; - /*0x04*/ union modelnode_data *data; + /*0x04*/ union modelrodata *rodata; /*0x08*/ struct modelnode *parent; /*0x0c*/ struct modelnode *next; /*0x10*/ struct modelnode *prev; @@ -660,14 +660,14 @@ struct model { /*0x04*/ struct chrdata *chr; /*0x08*/ struct modelfiledata *filedata; /*0x0c*/ Mtxf *matrices; - /*0x10*/ void **datas; // array of pointers to modeldata structs + /*0x10*/ union modelrwdata **rwdatas; // array of pointers to modelrwdata structs /*0x14*/ f32 scale; /*0x18*/ struct model *attachedto; /*0x1c*/ struct modelnode *unk1c; /*0x20*/ struct anim *anim; }; -struct modeldata_root { // type 0x01 +struct modelrwdata_root { // type 0x01 u16 unk00; u8 unk02; f32 ground; @@ -685,24 +685,32 @@ struct modeldata_root { // type 0x01 u32 unk5c; }; -struct modeldata_nearfar { // type 0x08 +struct modelrwdata_nearfar { // type 0x08 bool visible; }; -struct modeldata_partid { // type 0x12 +struct modelrwdata_partid { // type 0x12 union { u16 u16; bool u32; } visible; }; -struct modeldata_05 { +struct modelrwdata_05 { bool unk00; }; -struct modeldata_headspot { // type 0x17 +struct modelrwdata_headspot { // type 0x17 struct modelfiledata *modelfiledata; - void *datas; + void *rwdatas; +}; + +union modelrwdata { + struct modelrwdata_root root; + struct modelrwdata_nearfar nearfar; + struct modelrwdata_partid partid; + struct modelrwdata_05 type05; + struct modelrwdata_headspot headspot; }; struct waygroup { diff --git a/src/lib/lib_184d0.c b/src/lib/lib_184d0.c index 03694116b..3bd1dc50d 100644 --- a/src/lib/lib_184d0.c +++ b/src/lib/lib_184d0.c @@ -1789,7 +1789,7 @@ glabel func00019d1c #if VERSION < VERSION_NTSC_1_0 GLOBAL_ASM( -glabel modelGetNodeData +glabel modelGetNodeRwData /* 1aeac: 27bdfff0 */ addiu $sp,$sp,-16 /* 1aeb0: afa80000 */ sw $t0,0x0($sp) /* 1aeb4: afa90004 */ sw $t1,0x4($sp) @@ -1823,7 +1823,7 @@ glabel modelGetNodeData /* 1af1c: 24010017 */ addiu $at,$zero,0x17 /* 1af20: 1521fff9 */ bne $t1,$at,.NB0001af08 /* 1af24: 00000000 */ sll $zero,$zero,0x0 -/* 1af28: 0c006bab */ jal modelGetNodeData +/* 1af28: 0c006bab */ jal modelGetNodeRwData /* 1af2c: 00000000 */ sll $zero,$zero,0x0 /* 1af30: 8c4b0004 */ lw $t3,0x4($v0) .NB0001af34: diff --git a/src/lib/model.c b/src/lib/model.c index bf886a2f2..7cc782204 100644 --- a/src/lib/model.c +++ b/src/lib/model.c @@ -387,12 +387,12 @@ struct modelnode *modelGetPart(struct modelfiledata *modelfiledata, s32 partnum) return NULL; } -union modelnode_data *modelGetPartNodeData(struct modelfiledata *modelfiledata, s32 partnum) +union modelrodata *modelGetPartRodata(struct modelfiledata *modelfiledata, s32 partnum) { struct modelnode *node = modelGetPart(modelfiledata, partnum); if (node) { - return node->data; + return node->rodata; } return NULL; @@ -419,35 +419,35 @@ glabel func0001a9e8 #if VERSION >= VERSION_NTSC_1_0 // ntsc-beta has this function in another file -void *modelGetNodeData(struct model *model, struct modelnode *node) +void *modelGetNodeRwData(struct model *model, struct modelnode *node) { u32 index = 0; - void **datas = model->datas; + union modelrwdata **rwdatas = model->rwdatas; switch (node->type & 0xff) { case MODELNODETYPE_ROOT: - index = node->data->root.index; + index = node->rodata->root.rwdataindex; break; case MODELNODETYPE_DISPLAYLIST: - index = node->data->displaylist.index; + index = node->rodata->displaylist.rwdataindex; break; case MODELNODETYPE_NEARFAR: - index = node->data->nearfar.index; + index = node->rodata->nearfar.rwdataindex; break; case MODELNODETYPE_PARTID: - index = node->data->partid.index; + index = node->rodata->partid.rwdataindex; break; case MODELNODETYPE_HAT: - index = node->data->hat.index; + index = node->rodata->hat.rwdataindex; break; case MODELNODETYPE_0B: - index = node->data->unk0b.index; + index = node->rodata->type0b.rwdataindex; break; case MODELNODETYPE_GUNFIRE: - index = node->data->gunfire.index; + index = node->rodata->gunfire.rwdataindex; break; case MODELNODETYPE_HEADSPOT: - index = node->data->headspot.index; + index = node->rodata->headspot.rwdataindex; break; } @@ -455,13 +455,13 @@ void *modelGetNodeData(struct model *model, struct modelnode *node) node = node->parent; if ((node->type & 0xff) == MODELNODETYPE_HEADSPOT) { - struct modeldata_headspot *tmp = modelGetNodeData(model, node); - datas = tmp->datas; + struct modelrwdata_headspot *tmp = modelGetNodeRwData(model, node); + rwdatas = tmp->rwdatas; break; } } - return &datas[index]; + return &rwdatas[index]; } #endif @@ -470,26 +470,26 @@ void modelNodeGetPosition(struct model *model, struct modelnode *node, struct co switch (node->type & 0xff) { case MODELNODETYPE_ROOT: { - struct modeldata_root *data = modelGetNodeData(model, node); - pos->x = data->pos.x; - pos->y = data->pos.y; - pos->z = data->pos.z; + struct modelrwdata_root *rwdata = modelGetNodeRwData(model, node); + pos->x = rwdata->pos.x; + pos->y = rwdata->pos.y; + pos->z = rwdata->pos.z; } break; case MODELNODETYPE_POSITION: { - struct modelnode_position *data = &node->data->position; - pos->x = data->pos.x; - pos->y = data->pos.y; - pos->z = data->pos.z; + struct modelrodata_position *rodata = &node->rodata->position; + pos->x = rodata->pos.x; + pos->y = rodata->pos.y; + pos->z = rodata->pos.z; } break; case MODELNODETYPE_POSITIONHELD: { - struct modelnode_positionheld *data = &node->data->positionheld; - pos->x = data->pos.x; - pos->y = data->pos.y; - pos->z = data->pos.z; + struct modelrodata_positionheld *rodata = &node->rodata->positionheld; + pos->x = rodata->pos.x; + pos->y = rodata->pos.y; + pos->z = rodata->pos.z; } break; default: @@ -505,36 +505,36 @@ void modelNodeSetPosition(struct model *model, struct modelnode *node, struct co switch (node->type & 0xff) { case MODELNODETYPE_ROOT: { - struct modeldata_root *data = modelGetNodeData(model, node); + struct modelrwdata_root *rwdata = modelGetNodeRwData(model, node); struct coord diff[1]; - diff[0].x = pos->x - data->pos.x; - diff[0].z = pos->z - data->pos.z; + diff[0].x = pos->x - rwdata->pos.x; + diff[0].z = pos->z - rwdata->pos.z; - data->pos.x = pos->x; - data->pos.y = pos->y; - data->pos.z = pos->z; + rwdata->pos.x = pos->x; + rwdata->pos.y = pos->y; + rwdata->pos.z = pos->z; - data->unk24.x += diff[0].x; data->unk24.z += diff[0].z; - data->unk34.x += diff[0].x; data->unk34.z += diff[0].z; - data->unk40.x += diff[0].x; data->unk40.z += diff[0].z; - data->unk4c.x += diff[0].x; data->unk4c.z += diff[0].z; + rwdata->unk24.x += diff[0].x; rwdata->unk24.z += diff[0].z; + rwdata->unk34.x += diff[0].x; rwdata->unk34.z += diff[0].z; + rwdata->unk40.x += diff[0].x; rwdata->unk40.z += diff[0].z; + rwdata->unk4c.x += diff[0].x; rwdata->unk4c.z += diff[0].z; } break; case MODELNODETYPE_POSITION: { - struct modelnode_position *data = &node->data->position; - data->pos.x = pos->x; - data->pos.y = pos->y; - data->pos.z = pos->z; + struct modelrodata_position *rodata = &node->rodata->position; + rodata->pos.x = pos->x; + rodata->pos.y = pos->y; + rodata->pos.z = pos->z; } break; case MODELNODETYPE_POSITIONHELD: { - struct modelnode_positionheld *data = &node->data->positionheld; - data->pos.x = pos->x; - data->pos.y = pos->y; - data->pos.z = pos->z; + struct modelrodata_positionheld *rodata = &node->rodata->positionheld; + rodata->pos.x = pos->x; + rodata->pos.y = pos->y; + rodata->pos.z = pos->z; } break; } @@ -619,8 +619,8 @@ glabel func0001ad5c f32 func0001ae44(struct model *model) { if ((model->filedata->rootnode->type & 0xff) == MODELNODETYPE_ROOT) { - struct modeldata_root *data = modelGetNodeData(model, model->filedata->rootnode); - return data->unk14; + union modelrwdata *rwdata = modelGetNodeRwData(model, model->filedata->rootnode); + return rwdata->root.unk14; } return 0; @@ -629,26 +629,26 @@ f32 func0001ae44(struct model *model) void func0001ae90(struct model *model, f32 angle) { if ((model->filedata->rootnode->type & 0xff) == MODELNODETYPE_ROOT) { - struct modeldata_root *data = modelGetNodeData(model, model->filedata->rootnode); - f32 diff = angle - data->unk14; + struct modelrwdata_root *rwdata = modelGetNodeRwData(model, model->filedata->rootnode); + f32 diff = angle - rwdata->unk14; if (diff < 0) { diff += M_BADTAU; } - data->unk30 += diff; + rwdata->unk30 += diff; - if (data->unk30 >= M_BADTAU) { - data->unk30 -= M_BADTAU; + if (rwdata->unk30 >= M_BADTAU) { + rwdata->unk30 -= M_BADTAU; } - data->unk20 += diff; + rwdata->unk20 += diff; - if (data->unk20 >= M_BADTAU) { - data->unk20 -= M_BADTAU; + if (rwdata->unk20 >= M_BADTAU) { + rwdata->unk20 -= M_BADTAU; } - data->unk14 = angle; + rwdata->unk14 = angle; } } @@ -764,7 +764,7 @@ glabel var70053f98pf /* 1ae84: 510000b1 */ beqzl $t0,.PF0001b14c /* 1ae88: 8fbf0014 */ lw $ra,0x14($sp) /* 1ae8c: afa40048 */ sw $a0,0x48($sp) -/* 1ae90: 0c0069eb */ jal modelGetNodeData +/* 1ae90: 0c0069eb */ jal modelGetNodeRwData /* 1ae94: afa80040 */ sw $t0,0x40($sp) /* 1ae98: 804e0000 */ lb $t6,0x0($v0) /* 1ae9c: 8fa80040 */ lw $t0,0x40($sp) @@ -962,7 +962,7 @@ glabel func0001b0e8 /* 1b0f4: 510000ae */ beqzl $t0,.L0001b3b0 /* 1b0f8: 8fbf0014 */ lw $ra,0x14($sp) /* 1b0fc: afa40048 */ sw $a0,0x48($sp) -/* 1b100: 0c006a87 */ jal modelGetNodeData +/* 1b100: 0c006a87 */ jal modelGetNodeRwData /* 1b104: afa80040 */ sw $t0,0x40($sp) /* 1b108: 804e0000 */ lb $t6,0x0($v0) /* 1b10c: 8fa80040 */ lw $t0,0x40($sp) @@ -1173,7 +1173,7 @@ glabel func0001b400 /* 1b1bc: 00c02825 */ move $a1,$a2 /* 1b1c0: afa7026c */ sw $a3,0x26c($sp) /* 1b1c4: afa60270 */ sw $a2,0x270($sp) -/* 1b1c8: 0c0069eb */ jal modelGetNodeData +/* 1b1c8: 0c0069eb */ jal modelGetNodeRwData /* 1b1cc: afa80260 */ sw $t0,0x260($sp) /* 1b1d0: 8fa7026c */ lw $a3,0x26c($sp) /* 1b1d4: afa2025c */ sw $v0,0x25c($sp) @@ -1455,7 +1455,7 @@ glabel func0001b400 /* 1b420: 00c02825 */ or $a1,$a2,$zero /* 1b424: afa7026c */ sw $a3,0x26c($sp) /* 1b428: afa60270 */ sw $a2,0x270($sp) -/* 1b42c: 0c006a87 */ jal modelGetNodeData +/* 1b42c: 0c006a87 */ jal modelGetNodeRwData /* 1b430: afa80260 */ sw $t0,0x260($sp) /* 1b434: 8fa7026c */ lw $a3,0x26c($sp) /* 1b438: afa2025c */ sw $v0,0x25c($sp) @@ -3188,7 +3188,7 @@ glabel func0001c664 /* 1c670: afa40030 */ sw $a0,0x30($sp) /* 1c674: 8cae0004 */ lw $t6,0x4($a1) /* 1c678: 00a08025 */ or $s0,$a1,$zero -/* 1c67c: 0c006a87 */ jal modelGetNodeData +/* 1c67c: 0c006a87 */ jal modelGetNodeRwData /* 1c680: afae002c */ sw $t6,0x2c($sp) /* 1c684: afa20028 */ sw $v0,0x28($sp) /* 1c688: 8fa40030 */ lw $a0,0x30($sp) @@ -3265,11 +3265,11 @@ glabel func0001c664 void func0001c784(struct model *model, struct modelnode *node) { - struct modelnode_nearfar *data1 = &node->data->nearfar; - struct modeldata_nearfar *data2 = modelGetNodeData(model, node); + struct modelrodata_nearfar *rodata = &node->rodata->nearfar; + struct modelrwdata_nearfar *rwdata = modelGetNodeRwData(model, node); - if (data2->visible) { - node->child = data1->target; + if (rwdata->visible) { + node->child = rodata->target; } else { node->child = NULL; } @@ -3277,11 +3277,11 @@ void func0001c784(struct model *model, struct modelnode *node) void func0001c7d0(struct model *model, struct modelnode *node) { - struct modelnode_partid *data1 = &node->data->partid; - struct modeldata_partid *data2 = modelGetNodeData(model, node); + struct modelrodata_partid *rodata = &node->rodata->partid; + struct modelrwdata_partid *rwdata = modelGetNodeRwData(model, node); - if (data2->visible.u32) { - node->child = data1->target; + if (rwdata->visible.u32) { + node->child = rodata->target; } else { node->child = NULL; } @@ -3294,10 +3294,10 @@ void func0001c7d0(struct model *model, struct modelnode *node) */ void modelAttachHead(struct model *model, struct modelnode *bodynode) { - struct modeldata_headspot *data = modelGetNodeData(model, bodynode); + struct modelrwdata_headspot *rwdata = modelGetNodeRwData(model, bodynode); - if (data->modelfiledata) { - struct modelnode *headnode = data->modelfiledata->rootnode; + if (rwdata->modelfiledata) { + struct modelnode *headnode = rwdata->modelfiledata->rootnode; bodynode->child = headnode; @@ -3371,7 +3371,7 @@ GLOBAL_ASM( glabel func0001c924 /* 1c924: 27bdffe8 */ addiu $sp,$sp,-24 /* 1c928: afbf0014 */ sw $ra,0x14($sp) -/* 1c92c: 0c006a87 */ jal modelGetNodeData +/* 1c92c: 0c006a87 */ jal modelGetNodeRwData /* 1c930: afa5001c */ sw $a1,0x1c($sp) /* 1c934: 8fa4001c */ lw $a0,0x1c($sp) /* 1c938: 0c00721a */ jal func0001c868 @@ -3389,7 +3389,7 @@ glabel func0001c950 /* 1c958: afb00018 */ sw $s0,0x18($sp) /* 1c95c: afa40050 */ sw $a0,0x50($sp) /* 1c960: 8cb00004 */ lw $s0,0x4($a1) -/* 1c964: 0c006a87 */ jal modelGetNodeData +/* 1c964: 0c006a87 */ jal modelGetNodeRwData /* 1c968: afa50054 */ sw $a1,0x54($sp) /* 1c96c: afa20048 */ sw $v0,0x48($sp) /* 1c970: 8fa40050 */ lw $a0,0x50($sp) @@ -4414,14 +4414,14 @@ void modelCopyAnimForMerge(struct model *model, f32 arg1) anim->endframe2 = anim->endframe; if (nodetype == MODELNODETYPE_ROOT) { - struct modeldata_root *data = modelGetNodeData(model, node); - data->unk02 = 1; - data->unk4c.x = data->unk34.x; - data->unk4c.y = data->unk34.y; - data->unk4c.z = data->unk34.z; - data->unk40.x = data->unk24.x; - data->unk40.y = data->unk24.y; - data->unk40.z = data->unk24.z; + struct modelrwdata_root *rwdata = modelGetNodeRwData(model, node); + rwdata->unk02 = 1; + rwdata->unk4c.x = rwdata->unk34.x; + rwdata->unk4c.y = rwdata->unk34.y; + rwdata->unk4c.z = rwdata->unk34.z; + rwdata->unk40.x = rwdata->unk24.x; + rwdata->unk40.y = rwdata->unk24.y; + rwdata->unk40.z = rwdata->unk24.z; } } else { anim->animnum2 = 0; @@ -4491,7 +4491,7 @@ glabel var7005444c /* 1d6e8: 55010126 */ bnel $t0,$at,.L0001db84 /* 1d6ec: 8fbf002c */ lw $ra,0x2c($sp) /* 1d6f0: 8ca90004 */ lw $t1,0x4($a1) -/* 1d6f4: 0c006a87 */ jal modelGetNodeData +/* 1d6f4: 0c006a87 */ jal modelGetNodeRwData /* 1d6f8: afa900ac */ sw $t1,0xac($sp) /* 1d6fc: 8fab00c0 */ lw $t3,0xc0($sp) /* 1d700: 3c0d8006 */ lui $t5,%hi(var8005efd0) @@ -5169,7 +5169,7 @@ glabel var70054450 /* 1e314: 304f00ff */ andi $t7,$v0,0xff /* 1e318: 55e102ac */ bnel $t7,$at,.L0001edcc /* 1e31c: c7b40140 */ lwc1 $f20,0x140($sp) -/* 1e320: 0c006a87 */ jal modelGetNodeData +/* 1e320: 0c006a87 */ jal modelGetNodeRwData /* 1e324: 8cb30004 */ lw $s3,0x4($a1) /* 1e328: 80580000 */ lb $t8,0x0($v0) /* 1e32c: 00409025 */ or $s2,$v0,$zero @@ -8233,7 +8233,7 @@ glabel func00020f30 /* 20f78: 33190001 */ andi $t9,$t8,0x1 /* 20f7c: 53200068 */ beqzl $t9,.L00021120 /* 20f80: 8e0b0008 */ lw $t3,0x8($s0) -/* 20f84: 0c006a87 */ jal modelGetNodeData +/* 20f84: 0c006a87 */ jal modelGetNodeRwData /* 20f88: 8fa50058 */ lw $a1,0x58($sp) /* 20f8c: afa20048 */ sw $v0,0x48($sp) /* 20f90: 8c480004 */ lw $t0,0x4($v0) @@ -8347,7 +8347,7 @@ glabel func00020f30 /* 21124: 316c0002 */ andi $t4,$t3,0x2 /* 21128: 51800044 */ beqzl $t4,.L0002123c /* 2112c: 8fbf001c */ lw $ra,0x1c($sp) -/* 21130: 0c006a87 */ jal modelGetNodeData +/* 21130: 0c006a87 */ jal modelGetNodeRwData /* 21134: 8fa50058 */ lw $a1,0x58($sp) /* 21138: afa20030 */ sw $v0,0x30($sp) /* 2113c: 8c4d0004 */ lw $t5,0x4($v0) @@ -8757,7 +8757,7 @@ glabel var70054454 /* 2172c: 00a02025 */ or $a0,$a1,$zero /* 21730: 00c08025 */ or $s0,$a2,$zero /* 21734: 8cd10004 */ lw $s1,0x4($a2) -/* 21738: 0c006a87 */ jal modelGetNodeData +/* 21738: 0c006a87 */ jal modelGetNodeRwData /* 2173c: 00c02825 */ or $a1,$a2,$zero /* 21740: 3c198006 */ lui $t9,%hi(var8005efec) /* 21744: 2739efec */ addiu $t9,$t9,%lo(var8005efec) @@ -9350,7 +9350,7 @@ glabel var700544b4 /* 21f78: 8e110004 */ lw $s1,0x4($s0) /* 21f7c: afa3002c */ sw $v1,0x2c($sp) /* 21f80: 02402025 */ or $a0,$s2,$zero -/* 21f84: 0c006a87 */ jal modelGetNodeData +/* 21f84: 0c006a87 */ jal modelGetNodeRwData /* 21f88: 02002825 */ or $a1,$s0,$zero /* 21f8c: 8fa3002c */ lw $v1,0x2c($sp) /* 21f90: 24010008 */ addiu $at,$zero,0x8 @@ -9382,7 +9382,7 @@ glabel var700544b4 /* 21fe8: 1000002d */ b .L000220a0 /* 21fec: 8e020014 */ lw $v0,0x14($s0) /* 21ff0: 02402025 */ or $a0,$s2,$zero -/* 21ff4: 0c006a87 */ jal modelGetNodeData +/* 21ff4: 0c006a87 */ jal modelGetNodeRwData /* 21ff8: 02002825 */ or $a1,$s0,$zero /* 21ffc: 8c440000 */ lw $a0,0x0($v0) /* 22000: 10800008 */ beqz $a0,.L00022024 @@ -9924,7 +9924,7 @@ glabel var70054514 /* 226e4: 00009825 */ or $s3,$zero,$zero /* 226e8: 8e110004 */ lw $s1,0x4($s0) /* 226ec: 02402025 */ or $a0,$s2,$zero -/* 226f0: 0c006a87 */ jal modelGetNodeData +/* 226f0: 0c006a87 */ jal modelGetNodeRwData /* 226f4: 02002825 */ or $a1,$s0,$zero /* 226f8: 8c490000 */ lw $t1,0x0($v0) /* 226fc: 11200004 */ beqz $t1,.L00022710 @@ -9937,7 +9937,7 @@ glabel var70054514 /* 22714: ae000014 */ sw $zero,0x14($s0) /* 22718: 8e110004 */ lw $s1,0x4($s0) /* 2271c: 02402025 */ or $a0,$s2,$zero -/* 22720: 0c006a87 */ jal modelGetNodeData +/* 22720: 0c006a87 */ jal modelGetNodeRwData /* 22724: 02002825 */ or $a1,$s0,$zero /* 22728: 8c4b0000 */ lw $t3,0x0($v0) /* 2272c: 11600004 */ beqz $t3,.L00022740 @@ -9949,7 +9949,7 @@ glabel var70054514 /* 22740: 1000000e */ b .L0002277c /* 22744: ae000014 */ sw $zero,0x14($s0) /* 22748: 02402025 */ or $a0,$s2,$zero -/* 2274c: 0c006a87 */ jal modelGetNodeData +/* 2274c: 0c006a87 */ jal modelGetNodeRwData /* 22750: 02002825 */ or $a1,$s0,$zero /* 22754: 8c440000 */ lw $a0,0x0($v0) /* 22758: 10800008 */ beqz $a0,.L0002277c @@ -10568,7 +10568,7 @@ glabel var70054634 /* 22da8: 01e00008 */ jr $t7 /* 22dac: 00000000 */ nop /* 22db0: 02402025 */ or $a0,$s2,$zero -/* 22db4: 0c006a87 */ jal modelGetNodeData +/* 22db4: 0c006a87 */ jal modelGetNodeRwData /* 22db8: 02002825 */ or $a1,$s0,$zero /* 22dbc: a0400000 */ sb $zero,0x0($v0) /* 22dc0: e4540004 */ swc1 $f20,0x4($v0) @@ -10599,7 +10599,7 @@ glabel var70054634 /* 22e24: 8e030014 */ lw $v1,0x14($s0) /* 22e28: 8e110004 */ lw $s1,0x4($s0) /* 22e2c: 02402025 */ or $a0,$s2,$zero -/* 22e30: 0c006a87 */ jal modelGetNodeData +/* 22e30: 0c006a87 */ jal modelGetNodeRwData /* 22e34: 02002825 */ or $a1,$s0,$zero /* 22e38: ac400000 */ sw $zero,0x0($v0) /* 22e3c: 8e230008 */ lw $v1,0x8($s1) @@ -10607,7 +10607,7 @@ glabel var70054634 /* 22e44: ae030014 */ sw $v1,0x14($s0) /* 22e48: 8e110004 */ lw $s1,0x4($s0) /* 22e4c: 02402025 */ or $a0,$s2,$zero -/* 22e50: 0c006a87 */ jal modelGetNodeData +/* 22e50: 0c006a87 */ jal modelGetNodeRwData /* 22e54: 02002825 */ or $a1,$s0,$zero /* 22e58: 24190001 */ addiu $t9,$zero,0x1 /* 22e5c: ac590000 */ sw $t9,0x0($v0) @@ -10615,14 +10615,14 @@ glabel var70054634 /* 22e64: 10000032 */ b .L00022f30 /* 22e68: ae030014 */ sw $v1,0x14($s0) /* 22e6c: 02402025 */ or $a0,$s2,$zero -/* 22e70: 0c006a87 */ jal modelGetNodeData +/* 22e70: 0c006a87 */ jal modelGetNodeRwData /* 22e74: 02002825 */ or $a1,$s0,$zero /* 22e78: ac400000 */ sw $zero,0x0($v0) /* 22e7c: ac400004 */ sw $zero,0x4($v0) /* 22e80: 1000002b */ b .L00022f30 /* 22e84: 8e030014 */ lw $v1,0x14($s0) /* 22e88: 02402025 */ or $a0,$s2,$zero -/* 22e8c: 0c006a87 */ jal modelGetNodeData +/* 22e8c: 0c006a87 */ jal modelGetNodeRwData /* 22e90: 02002825 */ or $a1,$s0,$zero /* 22e94: ac400000 */ sw $zero,0x0($v0) /* 22e98: 02402025 */ or $a0,$s2,$zero @@ -10631,20 +10631,20 @@ glabel var70054634 /* 22ea4: 10000022 */ b .L00022f30 /* 22ea8: 8e030014 */ lw $v1,0x14($s0) /* 22eac: 02402025 */ or $a0,$s2,$zero -/* 22eb0: 0c006a87 */ jal modelGetNodeData +/* 22eb0: 0c006a87 */ jal modelGetNodeRwData /* 22eb4: 02002825 */ or $a1,$s0,$zero /* 22eb8: a4400000 */ sh $zero,0x0($v0) /* 22ebc: 1000001c */ b .L00022f30 /* 22ec0: 8e030014 */ lw $v1,0x14($s0) /* 22ec4: 02402025 */ or $a0,$s2,$zero -/* 22ec8: 0c006a87 */ jal modelGetNodeData +/* 22ec8: 0c006a87 */ jal modelGetNodeRwData /* 22ecc: 02002825 */ or $a1,$s0,$zero /* 22ed0: a4400000 */ sh $zero,0x0($v0) /* 22ed4: 10000016 */ b .L00022f30 /* 22ed8: 8e030014 */ lw $v1,0x14($s0) /* 22edc: 8e110004 */ lw $s1,0x4($s0) /* 22ee0: 02402025 */ or $a0,$s2,$zero -/* 22ee4: 0c006a87 */ jal modelGetNodeData +/* 22ee4: 0c006a87 */ jal modelGetNodeRwData /* 22ee8: 02002825 */ or $a1,$s0,$zero /* 22eec: 8e29000c */ lw $t1,0xc($s1) /* 22ef0: ac490000 */ sw $t1,0x0($v0) @@ -10811,7 +10811,7 @@ glabel func00023108 /* 23114: afa40018 */ sw $a0,0x18($sp) /* 23118: afa70024 */ sw $a3,0x24($sp) /* 2311c: 00c02825 */ or $a1,$a2,$zero -/* 23120: 0c006a87 */ jal modelGetNodeData +/* 23120: 0c006a87 */ jal modelGetNodeRwData /* 23124: afa60020 */ sw $a2,0x20($sp) /* 23128: 8fa50024 */ lw $a1,0x24($sp) /* 2312c: 8fa60020 */ lw $a2,0x20($sp)