From f3461b900c9978b97cc9e17c7e236971e0a44d9b Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 28 Nov 2022 22:59:47 +1000 Subject: [PATCH] Rename modelfiledata to modeldef --- src/game/body.c | 80 +++---- src/game/bodyreset.c | 2 +- src/game/bondgun.c | 84 ++++---- src/game/bondheadreset.c | 2 +- src/game/camdraw.c | 8 +- src/game/chr.c | 84 ++++---- src/game/chraction.c | 32 +-- src/game/gunfx.c | 6 +- src/game/modeldata/player.c | 2 +- src/game/modeldef.c | 30 +-- src/game/modelmgr.c | 24 +-- src/game/modelmgrreset.c | 2 +- src/game/mplayer/mplayer.c | 4 +- src/game/player.c | 54 ++--- src/game/propobj.c | 328 ++++++++++++++--------------- src/game/setup.c | 42 ++-- src/game/setuputils.c | 10 +- src/game/title.c | 116 +++++----- src/game/vtxstore.c | 4 +- src/include/data.h | 2 +- src/include/game/body.h | 6 +- src/include/game/bondgun.h | 30 +-- src/include/game/gunfx.h | 2 +- src/include/game/modeldef.h | 8 +- src/include/game/modelmgr.h | 10 +- src/include/game/mplayer/mplayer.h | 2 +- src/include/game/propobj.h | 24 +-- src/include/game/setuputils.h | 2 +- src/include/lib/model.h | 16 +- src/include/types.h | 24 +-- src/lib/model.c | 120 +++++------ 31 files changed, 580 insertions(+), 580 deletions(-) diff --git a/src/game/body.c b/src/game/body.c index 598e66cc1..de643be09 100644 --- a/src/game/body.c +++ b/src/game/body.c @@ -157,15 +157,15 @@ u32 bodyGetRace(s32 bodynum) bool bodyLoad(s32 bodynum) { - if (!g_HeadsAndBodies[bodynum].filedata) { - g_HeadsAndBodies[bodynum].filedata = modeldefLoadToNew(g_HeadsAndBodies[bodynum].filenum); + if (!g_HeadsAndBodies[bodynum].modeldef) { + g_HeadsAndBodies[bodynum].modeldef = modeldefLoadToNew(g_HeadsAndBodies[bodynum].filenum); return true; } return false; } -struct model *body0f02ce8c(s32 bodynum, s32 headnum, struct modelfiledata *bodyfiledata, struct modelfiledata *headfiledata, bool sunglasses, struct model *model, bool isplayer, u8 varyheight) +struct model *body0f02ce8c(s32 bodynum, s32 headnum, struct modeldef *bodymodeldef, struct modeldef *headmodeldef, bool sunglasses, struct model *model, bool isplayer, u8 varyheight) { f32 scale = g_HeadsAndBodies[bodynum].scale * 0.10000001f; f32 animscale = g_HeadsAndBodies[bodynum].animscale; @@ -176,43 +176,43 @@ struct model *body0f02ce8c(s32 bodynum, s32 headnum, struct modelfiledata *bodyf scale *= 0.8f; } - if (bodyfiledata == NULL) { - if (g_HeadsAndBodies[bodynum].filedata == NULL) { - g_HeadsAndBodies[bodynum].filedata = modeldefLoadToNew(g_HeadsAndBodies[bodynum].filenum); + if (bodymodeldef == NULL) { + if (g_HeadsAndBodies[bodynum].modeldef == NULL) { + g_HeadsAndBodies[bodynum].modeldef = modeldefLoadToNew(g_HeadsAndBodies[bodynum].filenum); } - bodyfiledata = g_HeadsAndBodies[bodynum].filedata; + bodymodeldef = g_HeadsAndBodies[bodynum].modeldef; } - modelAllocateRwData(bodyfiledata); + modelAllocateRwData(bodymodeldef); if (!g_HeadsAndBodies[bodynum].unk00_01) { - if (bodyfiledata->skel == &g_SkelChr) { - node = modelGetPart(bodyfiledata, MODELPART_CHR_HEADSPOT); + if (bodymodeldef->skel == &g_SkelChr) { + node = modelGetPart(bodymodeldef, MODELPART_CHR_HEADSPOT); if (node != NULL) { if (headnum < 0) { - headfiledata = func0f18e57c(-1 - headnum, &headnum); - bodyfiledata->rwdatalen += headfiledata->rwdatalen; + headmodeldef = func0f18e57c(-1 - headnum, &headnum); + bodymodeldef->rwdatalen += headmodeldef->rwdatalen; } else if (headnum > 0) { - if (headfiledata == NULL) { + if (headmodeldef == NULL) { if (g_Vars.normmplayerisrunning && !IS4MB()) { - headfiledata = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); - g_HeadsAndBodies[headnum].filedata = headfiledata; + headmodeldef = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); + g_HeadsAndBodies[headnum].modeldef = headmodeldef; g_FileInfo[g_HeadsAndBodies[headnum].filenum].loadedsize = 0; - bodyCalculateHeadOffset(headfiledata, headnum, bodynum); + bodyCalculateHeadOffset(headmodeldef, headnum, bodynum); } else { - if (g_HeadsAndBodies[headnum].filedata == NULL) { - g_HeadsAndBodies[headnum].filedata = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); + if (g_HeadsAndBodies[headnum].modeldef == NULL) { + g_HeadsAndBodies[headnum].modeldef = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); } - headfiledata = g_HeadsAndBodies[headnum].filedata; + headmodeldef = g_HeadsAndBodies[headnum].modeldef; } } - modelAllocateRwData(headfiledata); + modelAllocateRwData(headmodeldef); - bodyfiledata->rwdatalen += headfiledata->rwdatalen; + bodymodeldef->rwdatalen += headmodeldef->rwdatalen; if (g_HeadsAndBodies[bodynum].canvaryheight && varyheight) { // Set height to between 95% and 115% @@ -235,7 +235,7 @@ struct model *body0f02ce8c(s32 bodynum, s32 headnum, struct modelfiledata *bodyf } } } - } else if (bodyfiledata->skel == &g_SkelSkedar) { + } else if (bodymodeldef->skel == &g_SkelSkedar) { if (g_HeadsAndBodies[bodynum].canvaryheight && varyheight && bodynum == BODY_SKEDAR) { // Set height to between 65% and 85% f32 frac = RANDOMFRAC(); @@ -247,25 +247,25 @@ struct model *body0f02ce8c(s32 bodynum, s32 headnum, struct modelfiledata *bodyf } if (model) { - if (model->rwdatalen < bodyfiledata->rwdatalen); + if (model->rwdatalen < bodymodeldef->rwdatalen); } else { - model = modelmgrInstantiateModelWithAnim(bodyfiledata); + model = modelmgrInstantiateModelWithAnim(bodymodeldef); } if (model) { modelSetScale(model, scale); modelSetAnimScale(model, animscale); - if (headfiledata && !g_HeadsAndBodies[bodynum].unk00_01) { - bodyfiledata->rwdatalen -= headfiledata->rwdatalen; + if (headmodeldef && !g_HeadsAndBodies[bodynum].unk00_01) { + bodymodeldef->rwdatalen -= headmodeldef->rwdatalen; - modelmgrAttachHead(model, node, headfiledata); + modelmgrAttachHead(model, node, headmodeldef); - if ((s16)*(s32 *)&headfiledata->skel == SKEL_HEAD) { + if ((s16)*(s32 *)&headmodeldef->skel == SKEL_HEAD) { struct modelnode *node2; if (!sunglasses) { - node2 = modelGetPart(headfiledata, MODELPART_HEAD_SUNGLASSES); + node2 = modelGetPart(headmodeldef, MODELPART_HEAD_SUNGLASSES); if (node2) { union modelrwdata *rwdata = modelGetNodeRwData(model, node2); @@ -273,7 +273,7 @@ struct model *body0f02ce8c(s32 bodynum, s32 headnum, struct modelfiledata *bodyf } } - node2 = modelGetPart(headfiledata, MODELPART_HEAD_HUDPIECE); + node2 = modelGetPart(headmodeldef, MODELPART_HEAD_HUDPIECE); if (node2) { union modelrwdata *rwdata = modelGetNodeRwData(model, node2); @@ -286,9 +286,9 @@ struct model *body0f02ce8c(s32 bodynum, s32 headnum, struct modelfiledata *bodyf return model; } -struct model *body0f02d338(s32 bodynum, s32 headnum, struct modelfiledata *bodyfiledata, struct modelfiledata *headfiledata, bool sunglasses, u8 varyheight) +struct model *body0f02d338(s32 bodynum, s32 headnum, struct modeldef *bodymodeldef, struct modeldef *headmodeldef, bool sunglasses, u8 varyheight) { - return body0f02ce8c(bodynum, headnum, bodyfiledata, headfiledata, sunglasses, NULL, false, varyheight); + return body0f02ce8c(bodynum, headnum, bodymodeldef, headmodeldef, sunglasses, NULL, false, varyheight); } struct model *bodyAllocateModel(s32 bodynum, s32 headnum, u32 spawnflags) @@ -348,7 +348,7 @@ void bodyAllocateChr(s32 stagenum, struct packedchr *packed, s32 cmdindex) struct pad pad; s16 rooms[2]; struct chrdata *chr; - struct modelfiledata *headfiledata; + struct modeldef *headmodeldef; struct model *model; struct prop *prop; s32 bodynum; @@ -382,7 +382,7 @@ void bodyAllocateChr(s32 stagenum, struct packedchr *packed, s32 cmdindex) } headnum = -55555; - headfiledata = NULL; + headmodeldef = NULL; if (packed->bodynum == 255) { bodynum = body0f02d3f8(); @@ -402,10 +402,10 @@ void bodyAllocateChr(s32 stagenum, struct packedchr *packed, s32 cmdindex) index = -1 - headnum; if (index >= 0 && index < 22) { - headfiledata = func0f18e57c(index, &headnum); + headmodeldef = func0f18e57c(index, &headnum); } - model = body0f02ce8c(bodynum, headnum, NULL, headfiledata, false, NULL, false, false); + model = body0f02ce8c(bodynum, headnum, NULL, headmodeldef, false, NULL, false, false); } else { model = bodyAllocateModel(bodynum, headnum, packed->spawnflags); } @@ -633,7 +633,7 @@ void body0f02ddbf(void) * any tweaking. This function is used in multiplayer where players can put any * heads on any bodies. */ -void bodyCalculateHeadOffset(struct modelfiledata *headfiledata, s32 headnum, s32 bodynum) +void bodyCalculateHeadOffset(struct modeldef *headmodeldef, s32 headnum, s32 bodynum) { struct modelnode *node; struct modelnode *prev; @@ -671,7 +671,7 @@ void bodyCalculateHeadOffset(struct modelfiledata *headfiledata, s32 headnum, s3 } #endif - if ((s16)(*(s32 *)&headfiledata->skel) == SKEL_HEAD) { + if ((s16)(*(s32 *)&headmodeldef->skel) == SKEL_HEAD) { #if VERSION >= VERSION_JPN_FINAL if (g_HeadsAndBodies[headnum].type == g_HeadsAndBodies[bodynum].type && offset == 0) { return; @@ -769,7 +769,7 @@ void bodyCalculateHeadOffset(struct modelfiledata *headfiledata, s32 headnum, s3 do { prev = node; - modelIterateDisplayLists(headfiledata, &node, &gdl); + modelIterateDisplayLists(headmodeldef, &node, &gdl); if (node && node != prev && node->type == MODELNODETYPE_DL) { struct modelrodata_dl *rodata = &node->rodata->dl; @@ -780,7 +780,7 @@ void bodyCalculateHeadOffset(struct modelfiledata *headfiledata, s32 headnum, s3 } } while (node); - bbox = modelFileDataFindBboxRodata(headfiledata); + bbox = modeldefFindBboxRodata(headmodeldef); if (bbox != NULL) { bbox->ymin += offset; diff --git a/src/game/bodyreset.c b/src/game/bodyreset.c index 4af4c77be..048b91566 100644 --- a/src/game/bodyreset.c +++ b/src/game/bodyreset.c @@ -283,7 +283,7 @@ void bodiesReset(s32 stagenum) s32 j; for (i = 0; g_HeadsAndBodies[i].filenum; i++) { - g_HeadsAndBodies[i].filedata = NULL; + g_HeadsAndBodies[i].modeldef = NULL; } var80062c80 = random() % g_NumBondBodies; diff --git a/src/game/bondgun.c b/src/game/bondgun.c index 7cdb8e26b..55ca602a9 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -514,7 +514,7 @@ bool bgunTestGunVisCommand(struct gunviscmd *cmd, struct hand *hand) return result; } -void bgunSetPartVisible(s16 partnum, bool visible, struct hand *hand, struct modelfiledata *filedata) +void bgunSetPartVisible(s16 partnum, bool visible, struct hand *hand, struct modeldef *modeldef) { struct modelnode *node; @@ -529,7 +529,7 @@ void bgunSetPartVisible(s16 partnum, bool visible, struct hand *hand, struct mod } } } else { - node = modelGetPart(filedata, partnum); + node = modelGetPart(modeldef, partnum); if (node) { struct modelrodata_toggle *rodata = &node->rodata->toggle; @@ -539,7 +539,7 @@ void bgunSetPartVisible(s16 partnum, bool visible, struct hand *hand, struct mod } } -void bgunExecuteGunVisCommands(struct hand *hand, struct modelfiledata *filedata, struct gunviscmd *commands) +void bgunExecuteGunVisCommands(struct hand *hand, struct modeldef *modeldef, struct gunviscmd *commands) { struct gunviscmd *cmd = commands; bool done = false; @@ -551,19 +551,19 @@ void bgunExecuteGunVisCommands(struct hand *hand, struct modelfiledata *filedata while (!done) { if (bgunTestGunVisCommand(cmd, hand)) { if (cmd->op == GUNVISOP_IFTRUE_SETVISIBLE) { - bgunSetPartVisible(cmd->partnum, true, hand, filedata); + bgunSetPartVisible(cmd->partnum, true, hand, modeldef); } if (cmd->op == GUNVISOP_IFTRUE_SETHIDDEN) { - bgunSetPartVisible(cmd->partnum, false, hand, filedata); + bgunSetPartVisible(cmd->partnum, false, hand, modeldef); } if (cmd->op == GUNVISOP_SETVISIBILITY) { - bgunSetPartVisible(cmd->partnum, true, hand, filedata); + bgunSetPartVisible(cmd->partnum, true, hand, modeldef); } } else { if (cmd->op == GUNVISOP_SETVISIBILITY) { - bgunSetPartVisible(cmd->partnum, false, hand, filedata); + bgunSetPartVisible(cmd->partnum, false, hand, modeldef); } } @@ -575,22 +575,22 @@ void bgunExecuteGunVisCommands(struct hand *hand, struct modelfiledata *filedata } } -void bgun0f098030(struct hand *hand, struct modelfiledata *filedata) +void bgun0f098030(struct hand *hand, struct modeldef *modeldef) { struct weapon *weapon = weaponFindById(hand->gset.weaponnum); s32 i; s32 j; - bgunExecuteGunVisCommands(hand, filedata, weapon->gunviscmds); - bgunSetPartVisible(MODELPART_0042, false, hand, filedata); + bgunExecuteGunVisCommands(hand, modeldef, weapon->gunviscmds); + bgunSetPartVisible(MODELPART_0042, false, hand, modeldef); for (i = 0; i < 2; i++) { if (weapon->ammos[i] && (weapon->ammos[i]->flags & AMMOFLAG_QTYAFFECTSPARTVIS)) { for (j = 0; j < hand->clipsizes[i]; j++) { if (j >= hand->loadedammo[i]) { - bgunSetPartVisible(j + 100, false, hand, filedata); + bgunSetPartVisible(j + 100, false, hand, modeldef); } else { - bgunSetPartVisible(j + 100, true, hand, filedata); + bgunSetPartVisible(j + 100, true, hand, modeldef); } } } @@ -610,7 +610,7 @@ f32 bgun0f09815c(struct hand *hand) return 0; } -void bgun0f0981e8(struct hand *hand, struct modelfiledata *modeldef) +void bgun0f0981e8(struct hand *hand, struct modeldef *modeldef) { #if VERSION >= VERSION_PAL_BETA f32 s4; @@ -3600,7 +3600,7 @@ u32 bgunGetGunMemType(void) return g_Vars.currentplayer->gunctrl.gunmemtype; } -struct modelfiledata *bgun0f09dddc(void) +struct modeldef *bgun0f09dddc(void) { return g_Vars.currentplayer->gunctrl.gunmodeldef; } @@ -3764,7 +3764,7 @@ void bgunTickGunLoad(void) u32 loadsize; u32 ptr; struct player *player = g_Vars.currentplayer; - struct modelfiledata *modeldef; + struct modeldef *modeldef; struct fileinfo *fileinfo; struct fileinfo *gunfileinfo; s32 newvalue; @@ -4254,7 +4254,7 @@ bool bgun0f09eae4(void) return false; } -struct modelfiledata *bgunGetCartModeldef(void) +struct modeldef *bgunGetCartModeldef(void) { return g_Vars.currentplayer->gunctrl.cartmodeldef; } @@ -4645,10 +4645,10 @@ void bgunUpdateHeldRocket(s32 handnum) propDeregisterRooms(objprop); } - model->matrices = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf)); + model->matrices = gfxAllocate(model->definition->nummatrices * sizeof(Mtxf)); mtx4Copy(&hand->muzzlemat, &model->matrices[0]); - modelUpdateRelationsQuick(model, model->filedata->rootnode); + modelUpdateRelationsQuick(model, model->definition->rootnode); objprop->flags |= PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONTHISSCREENTHISTICK; objprop->z = -model->matrices[0].m[3][2]; @@ -4862,7 +4862,7 @@ void bgunCreateFiredProjectile(s32 handnum) struct coord sp6c; struct coord sp60; - if (weapon->base.model && weapon->base.model->filedata) { + if (weapon->base.model && weapon->base.model->definition) { weapon->timer240 = funcdef->timer60; if (weapon->timer240 != -1) { @@ -6765,7 +6765,7 @@ void bgunUpdateSmoke(struct hand *hand, s32 handnum, s32 weaponnum, struct weapo /** * Update the red beam and dot (used by the Falcon 2 and its variants). */ -void bgunUpdateLasersight(struct hand *hand, struct modelfiledata *modeldef, s32 handnum, u8 *allocation) +void bgunUpdateLasersight(struct hand *hand, struct modeldef *modeldef, s32 handnum, u8 *allocation) { struct modelnode *node; struct coord beamfar; @@ -6865,7 +6865,7 @@ void bgunUpdateLasersight(struct hand *hand, struct modelfiledata *modeldef, s32 /** * Increment the main barrel spinning, play sounds and (probably) fire shots. */ -void bgunUpdateReaper(struct hand *hand, struct modelfiledata *modeldef) +void bgunUpdateReaper(struct hand *hand, struct modeldef *modeldef) { struct modelnode *node; f32 f2; @@ -6962,7 +6962,7 @@ void bgunUpdateReaper(struct hand *hand, struct modelfiledata *modeldef) /** * Move/extend the scope on the gun model when the zoom function is used. */ -void bgunUpdateSniperRifle(struct modelfiledata *modeldef, u8 *allocation) +void bgunUpdateSniperRifle(struct modeldef *modeldef, u8 *allocation) { struct modelnode *nodes[4]; f32 sp88[4] = {0, 0, 0, 0}; @@ -7006,7 +7006,7 @@ void bgunUpdateSniperRifle(struct modelfiledata *modeldef, u8 *allocation) /** * Animate the cartridge slider thing in the Devastator model. */ -void bgunUpdateDevastator(struct hand *hand, u8 *allocation, struct modelfiledata *modeldef) +void bgunUpdateDevastator(struct hand *hand, u8 *allocation, struct modeldef *modeldef) { struct modelnode *node = modelGetPart(modeldef, MODELPART_DEVASTATOR_0028); @@ -7039,7 +7039,7 @@ void bgunUpdateDevastator(struct hand *hand, u8 *allocation, struct modelfiledat * starburst when the trigger is pressed while the shotgun has the double blast * function. */ -void bgunUpdateShotgun(struct hand *hand, u8 *allocation, bool *arg2, struct modelfiledata *modeldef) +void bgunUpdateShotgun(struct hand *hand, u8 *allocation, bool *arg2, struct modeldef *modeldef) { if (hand->flashon) { hand->matmot1 = 1.0f; @@ -7091,7 +7091,7 @@ void bgunUpdateLaser(struct hand *hand) /** * Create ammo casing so they can be ejected during reload. */ -void bgunUpdateMagnum(struct hand *hand, s32 handnum, struct modelfiledata *modeldef, Mtxf *mtx) +void bgunUpdateMagnum(struct hand *hand, s32 handnum, struct modeldef *modeldef, Mtxf *mtx) { f32 ground = g_Vars.currentplayer->vv_ground; s32 i; @@ -7131,23 +7131,23 @@ void bgunUpdateRocketLauncher(struct hand *hand, s32 handnum, struct weaponfunc_ } } -void bgun0f0a45d0(struct hand *hand, struct modelfiledata *filedata, bool isdetonator) +void bgun0f0a45d0(struct hand *hand, struct modeldef *modeldef, bool isdetonator) { struct modelnode *node = NULL; switch (hand->ejecttype) { case EJECTTYPE_GUN: if (isdetonator) { - node = modelGetPart(filedata, 0x2a); + node = modelGetPart(modeldef, 0x2a); } else { - node = modelGetPart(filedata, 0x37); + node = modelGetPart(modeldef, 0x37); } break; case EJECTTYPE_GRENADEPIN: - node = modelGetPart(filedata, 0x2b); + node = modelGetPart(modeldef, 0x2b); break; case EJECTTYPE_TRANQCASE: - node = modelGetPart(filedata, 0x2b); + node = modelGetPart(modeldef, 0x2b); break; } @@ -7164,7 +7164,7 @@ void bgun0f0a45d0(struct hand *hand, struct modelfiledata *filedata, bool isdeto * when reloading, and the pulled pin on grenades and nbombs appears to move * with the model rather than detaching properly. */ -void bgunTickEject(struct hand *hand, struct modelfiledata *modeldef, bool isdetonator) +void bgunTickEject(struct hand *hand, struct modeldef *modeldef, bool isdetonator) { f32 lvupdate; struct coord spd0; @@ -7268,7 +7268,7 @@ void bgunTickEject(struct hand *hand, struct modelfiledata *modeldef, bool isdet } } -void bgun0f0a4e44(struct hand *hand, struct weapon *weapondef, struct modelfiledata *modeldef, +void bgun0f0a4e44(struct hand *hand, struct weapon *weapondef, struct modeldef *modeldef, struct weaponfunc *funcdef, s32 maxburst, u8 *allocation, s32 weaponnum, bool **arg7, s32 mtxindex, Mtxf *arg9, Mtxf *arg10) { @@ -7360,7 +7360,7 @@ void bgun0f0a4e44(struct hand *hand, struct weapon *weapondef, struct modelfiled * Create casing and beam for a fired weapon, * and uncloak if the weapon is a throwable or fired projectile. */ -void bgunCreateFx(struct hand *hand, s32 handnum, struct weaponfunc *funcdef, s32 weaponnum, struct modelfiledata *modeldef, u8 *allocation) +void bgunCreateFx(struct hand *hand, s32 handnum, struct weaponfunc *funcdef, s32 weaponnum, struct modeldef *modeldef, u8 *allocation) { f32 ground; bool createbeam = true; @@ -7467,7 +7467,7 @@ void bgun0f0a5550(s32 handnum) u8 *mtxallocation; Mtxf sp2c4; Mtxf sp284; - struct modelfiledata *modeldef = NULL; + struct modeldef *modeldef = NULL; struct coord sp274 = {0, 0, 0}; Mtxf sp234; Mtxf sp1f4; @@ -7837,7 +7837,7 @@ void bgun0f0a5550(s32 handnum) spc8 = player->hands[HAND_RIGHT].unk0dd8; spc4 = hand->gunmodel.matrices; - for (spcc = 0; spcc < hand->gunmodel.filedata->nummatrices; spcc++) { + for (spcc = 0; spcc < hand->gunmodel.definition->nummatrices; spcc++) { mtx00015be4(&sp2c4, spc8, spc4); spc8++; spc4++; @@ -10911,10 +10911,10 @@ void bgunRender(Gfx **gdlptr) // There is support for guns having a TV screen on them // but no guns have this model part so it's not used. - node = modelGetPart(hand->gunmodel.filedata, MODELPART_0010); + node = modelGetPart(hand->gunmodel.definition, MODELPART_0010); if (node) { - union modelrwdata *rwdata = modelGetNodeRwData(&hand->gunmodel, modelGetPart(hand->gunmodel.filedata, MODELPART_0011)); + union modelrwdata *rwdata = modelGetNodeRwData(&hand->gunmodel, modelGetPart(hand->gunmodel.definition, MODELPART_0011)); if (rwdata) { rwdata->toggle.visible = true; @@ -10993,12 +10993,12 @@ void bgunRender(Gfx **gdlptr) bool sp94 = false; #if VERSION >= VERSION_NTSC_1_0 - if (rocketmodel && rocketmodel->filedata) { + if (rocketmodel && rocketmodel->definition) { sp94 = true; modelRender(&renderdata, rocketmodel); - mtxF2LBulk(rocketmodel->matrices, rocketmodel->filedata->nummatrices); + mtxF2LBulk(rocketmodel->matrices, rocketmodel->definition->nummatrices); if (hand->firedrocket) { hand->rocket = NULL; @@ -11009,7 +11009,7 @@ void bgunRender(Gfx **gdlptr) #else modelRender(&renderdata, rocketmodel); - mtxF2LBulk(rocketmodel->matrices, rocketmodel->filedata->nummatrices); + mtxF2LBulk(rocketmodel->matrices, rocketmodel->definition->nummatrices); if (hand->firedrocket) { hand->rocket = NULL; @@ -11029,7 +11029,7 @@ void bgunRender(Gfx **gdlptr) // Slide the laser's liquid texture if (PLAYERCOUNT() == 1) { - node = modelGetPart(hand->gunmodel.filedata, MODELPART_LASER_0041); + node = modelGetPart(hand->gunmodel.definition, MODELPART_LASER_0041); // a5c if (node) { @@ -11075,7 +11075,7 @@ void bgunRender(Gfx **gdlptr) gSPClearGeometryMode(gdl++, G_CULL_BOTH); } - mtxF2LBulk(hand->gunmodel.matrices, hand->gunmodel.filedata->nummatrices); + mtxF2LBulk(hand->gunmodel.matrices, hand->gunmodel.definition->nummatrices); mtx00016784(); gSPPerspNormalize(gdl++, viGetPerspScale()); diff --git a/src/game/bondheadreset.c b/src/game/bondheadreset.c index f7f81a834..9ba4268bb 100644 --- a/src/game/bondheadreset.c +++ b/src/game/bondheadreset.c @@ -34,7 +34,7 @@ void bheadReset(void) { s32 i; - modelInit(&g_Vars.currentplayer->model, &g_PlayerModelFileData, g_Vars.currentplayer->bondheadsave, false); + modelInit(&g_Vars.currentplayer->model, &g_PlayerModeldef, g_Vars.currentplayer->bondheadsave, false); animInit(g_Vars.currentplayer->model.anim); modelSetScale(&g_Vars.currentplayer->model, 0.1000000089407f); modelSetAnimPlaySpeed(&g_Vars.currentplayer->model, (PAL ? 1.2f : 1), 0); diff --git a/src/game/camdraw.c b/src/game/camdraw.c index 0fba471be..a30774a77 100644 --- a/src/game/camdraw.c +++ b/src/game/camdraw.c @@ -2816,11 +2816,11 @@ void func0f14f1d4(s16 *src, s32 len, s32 *dst) } } -s32 func0f14f2b4(struct modelfiledata *filedata, struct gfxvtx **dst, u32 *len) +s32 func0f14f2b4(struct modeldef *modeldef, struct gfxvtx **dst, u32 *len) { - struct modelnode *node1 = modelGetPart(filedata, MODELPART_HEAD_0190); - struct modelnode *node2 = modelGetPart(filedata, MODELPART_HEAD_0191); - struct modelnode *node3 = modelGetPart(filedata, MODELPART_HEAD_0192); + struct modelnode *node1 = modelGetPart(modeldef, MODELPART_HEAD_0190); + struct modelnode *node2 = modelGetPart(modeldef, MODELPART_HEAD_0191); + struct modelnode *node3 = modelGetPart(modeldef, MODELPART_HEAD_0192); s32 totalverts = 0; diff --git a/src/game/chr.c b/src/game/chr.c index ee29d2450..af624a517 100644 --- a/src/game/chr.c +++ b/src/game/chr.c @@ -858,7 +858,7 @@ bool chr0f01f378(struct model *model, struct coord *arg1, struct coord *arg2, f3 chr->ground = ground; if (chr->chrflags & CHRCFLAG_00000001) { - node = model->filedata->rootnode; + node = model->definition->rootnode; nodetype = (u8)node->type; arg2->y += yincrement + chr->ground - manground; @@ -1320,10 +1320,10 @@ struct prop *chr0f020b14(struct prop *prop, struct model *model, chr0f0220ac(chr); modelSetRootPosition(model, &prop->pos); - nodetype = chr->model->filedata->rootnode->type; + nodetype = chr->model->definition->rootnode->type; if ((nodetype & 0xff) == MODELNODETYPE_CHRINFO) { - union modelrwdata *rwdata = modelGetNodeRwData(chr->model, chr->model->filedata->rootnode); + union modelrwdata *rwdata = modelGetNodeRwData(chr->model, chr->model->definition->rootnode); rwdata->chrinfo.ground = ground; } @@ -1588,7 +1588,7 @@ void chrHandleJointPositioned(s32 joint, Mtxf *mtx) f32 yrot; // eg. twist left/right or shaking head f32 zrot; // eg. cartwheeling - if (g_CurModelChr->model->filedata->skel == &g_SkelRobot) { + if (g_CurModelChr->model->definition->skel == &g_SkelRobot) { // Handle Chicago robot guns theta = chrGetInverseTheta(g_CurModelChr); @@ -1650,12 +1650,12 @@ void chrHandleJointPositioned(s32 joint, Mtxf *mtx) mtx00015be0(camGetWorldToScreenMtxf(), mtx); } else { - if (g_CurModelChr->model->filedata->skel == &g_SkelChr) { + if (g_CurModelChr->model->definition->skel == &g_SkelChr) { lshoulderjoint = 2; rshoulderjoint = 3; waistjoint = 1; neckjoint = 0; - } else if (g_CurModelChr->model->filedata->skel == &g_SkelSkedar) { + } else if (g_CurModelChr->model->definition->skel == &g_SkelSkedar) { lshoulderjoint = 3; rshoulderjoint = 4; waistjoint = 2; @@ -1979,7 +1979,7 @@ void chr0f022214(struct chrdata *chr, struct prop *prop, bool fulltick) thing.unk00 = sp104; } - thing.unk10 = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf)); + thing.unk10 = gfxAllocate(model->definition->nummatrices * sizeof(Mtxf)); modelSetMatrices(&thing, model); func0f07063c(prop, fulltick); @@ -2688,7 +2688,7 @@ s32 chrTick(struct prop *prop) sp210.unk00 = camGetWorldToScreenMtxf(); } - sp210.unk10 = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf)); + sp210.unk10 = gfxAllocate(model->definition->nummatrices * sizeof(Mtxf)); if (fulltick && g_CurModelChr->flinchcnt >= 0) { g_CurModelChr->flinchcnt += g_Vars.lvupdate60; @@ -2821,8 +2821,8 @@ s32 chrTick(struct prop *prop) } } - if (model->filedata->skel == &g_SkelChr) { - struct modelnode *headspotnode = modelGetPart(model->filedata, MODELPART_CHR_HEADSPOT); + if (model->definition->skel == &g_SkelChr) { + struct modelnode *headspotnode = modelGetPart(model->definition, MODELPART_CHR_HEADSPOT); if (headspotnode && headspotnode->type == MODELNODETYPE_HEADSPOT) { union modelrwdata *rwdata = modelGetNodeRwData(model, headspotnode); @@ -2893,10 +2893,10 @@ void chrDropConcealedItems(struct chrdata *chr) void chrSetHudpieceVisible(struct chrdata *chr, bool visible) { - struct modelfiledata *modelfiledata = chr->model->filedata; + struct modeldef *modeldef = chr->model->definition; - if (modelfiledata->skel == &g_SkelChr) { - struct modelnode *headspotnode = modelGetPart(modelfiledata, MODELPART_CHR_HEADSPOT); + if (modeldef->skel == &g_SkelChr) { + struct modelnode *headspotnode = modelGetPart(modeldef, MODELPART_CHR_HEADSPOT); if (headspotnode && headspotnode->type == MODELNODETYPE_HEADSPOT) { union modelrwdata *rwdata = modelGetNodeRwData(chr->model, headspotnode); @@ -2979,7 +2979,7 @@ bool chr0f024738(struct chrdata *chr) struct doorobj *door = prop->door; struct coord pos; - if (obj->model->filedata->skel != &g_SkelWindowedDoor + if (obj->model->definition->skel != &g_SkelWindowedDoor && door->doortype != DOORTYPE_EYE && door->doortype != DOORTYPE_IRIS && door->doortype != DOORTYPE_FALLAWAY @@ -3258,7 +3258,7 @@ void chrRenderAttachedObject(struct prop *prop, struct modelrenderdata *renderda } if (xlupass) { - mtxF2LBulk(model->matrices, model->filedata->nummatrices); + mtxF2LBulk(model->matrices, model->definition->nummatrices); } } } @@ -3492,9 +3492,9 @@ Gfx *chrRender(struct prop *prop, Gfx *gdl, bool xlupass) } // Set Skedar eyes open or closed - if (model->filedata->skel == &g_SkelSkedar) { - struct modelnode *node1 = modelGetPart(model->filedata, MODELPART_SKEDAR_EYESOPEN); - struct modelnode *node2 = modelGetPart(model->filedata, MODELPART_SKEDAR_EYESCLOSED); + if (model->definition->skel == &g_SkelSkedar) { + struct modelnode *node1 = modelGetPart(model->definition, MODELPART_SKEDAR_EYESOPEN); + struct modelnode *node2 = modelGetPart(model->definition, MODELPART_SKEDAR_EYESCLOSED); if (node1 && node2) { union modelrwdata *data1 = modelGetNodeRwData(model, node1); @@ -3510,8 +3510,8 @@ Gfx *chrRender(struct prop *prop, Gfx *gdl, bool xlupass) || chr->headnum == HEAD_ELVIS || chr->headnum == HEAD_MAIAN_S || chr->headnum == HEAD_ELVIS_GOGS) { - if (model->filedata->skel == &g_SkelChr) { - struct modelnode *headspotnode = modelGetPart(model->filedata, MODELPART_CHR_HEADSPOT); + if (model->definition->skel == &g_SkelChr) { + struct modelnode *headspotnode = modelGetPart(model->definition, MODELPART_CHR_HEADSPOT); if (headspotnode && headspotnode->type == MODELNODETYPE_HEADSPOT) { union modelrwdata *headrwdata = modelGetNodeRwData(model, headspotnode); @@ -3609,7 +3609,7 @@ Gfx *chrRender(struct prop *prop, Gfx *gdl, bool xlupass) } } - mtxF2LBulk(model->matrices, model->filedata->nummatrices); + mtxF2LBulk(model->matrices, model->definition->nummatrices); if (USINGDEVICE(DEVICE_IRSCANNER)) { gdl = chrRenderShield(gdl, chr, 0x80); @@ -4393,7 +4393,7 @@ void chr0f0260c4(struct model *model, s32 hitpart, struct modelnode *node, struc // Do a pass over the entire model's tree, looking for vertices that share // the chosen vertex, and darken then. - curnode = model->filedata->rootnode; + curnode = model->definition->rootnode; while (curnode) { nodetype = curnode->type & 0xff; @@ -4675,7 +4675,7 @@ void chrBruise(struct model *model, s32 hitpart, struct modelnode *node, struct // Do a pass over the entire model's tree, looking for vertices that share // the chosen vertex, and darken then. - curnode = model->filedata->rootnode; + curnode = model->definition->rootnode; while (curnode) { nodetype = curnode->type & 0xff; @@ -4852,7 +4852,7 @@ void chrDisfigure(struct chrdata *chr, struct coord *exppos, f32 damageradius) } // Iterate the nodes in the chr model - node = model->filedata->rootnode; + node = model->definition->rootnode; while (node) { switch (node->type & 0xff) { @@ -5104,7 +5104,7 @@ void chr0f027994(struct prop *prop, struct shotdata *shotdata, bool arg2, bool a hitpart = modelTestForHit(model, &shotdata->unk00, &shotdata->unk0c, &node); if (hitpart > 0) { - if (func0f06bea0(model, model->filedata->rootnode, model->filedata->rootnode, &shotdata->unk00, + if (func0f06bea0(model, model->definition->rootnode, model->definition->rootnode, &shotdata->unk00, &shotdata->unk0c, &sp88.unk00, &sp70, &node, &hitpart, &sp84, &sp80)) { mtx4TransformVec(camGetProjectionMtxF(), &sp88.unk00, &spdc); mtx4RotateVec(camGetProjectionMtxF(), &sp88.unk0c, &spd0); @@ -5573,14 +5573,14 @@ bool chrCalculateAutoAim(struct prop *prop, struct coord *arg1, f32 *arg2, f32 * Mtxf *mtx1; Mtxf *mtx2; - if (model->filedata->skel == &g_SkelChr) { + if (model->definition->skel == &g_SkelChr) { mtx1 = &model->matrices[0]; mtx2 = &model->matrices[1]; arg1->z = mtx2->m[3][2] + (mtx1->m[3][2] - mtx2->m[3][2]) * 0.5f; - } else if (model->filedata->skel == &g_SkelSkedar) { + } else if (model->definition->skel == &g_SkelSkedar) { mtx2 = &model->matrices[0]; arg1->z = mtx2->m[3][2]; - } else if (model->filedata->skel == &g_SkelDrCaroll) { + } else if (model->definition->skel == &g_SkelDrCaroll) { mtx2 = &model->matrices[0]; arg1->z = mtx2->m[3][2]; } else { @@ -5588,13 +5588,13 @@ bool chrCalculateAutoAim(struct prop *prop, struct coord *arg1, f32 *arg2, f32 * } if (arg1->z < 0) { - if (model->filedata->skel == &g_SkelChr) { + if (model->definition->skel == &g_SkelChr) { arg1->x = mtx2->m[3][0] + (mtx1->m[3][0] - mtx2->m[3][0]) * 0.5f; arg1->y = mtx2->m[3][1] + (mtx1->m[3][1] - mtx2->m[3][1]) * 0.5f; - } else if (model->filedata->skel == &g_SkelSkedar) { + } else if (model->definition->skel == &g_SkelSkedar) { arg1->x = mtx2->m[3][0]; arg1->y = mtx2->m[3][1]; - } else if (model->filedata->skel == &g_SkelDrCaroll) { + } else if (model->definition->skel == &g_SkelDrCaroll) { arg1->x = mtx2->m[3][0]; arg1->y = mtx2->m[3][1]; } else { @@ -5621,7 +5621,7 @@ bool chr0f028d50(struct prop *arg0, struct prop *arg1, struct modelnode *node, s return true; } - *total += model->filedata->nummatrices; + *total += model->definition->nummatrices; if (arg0->child && chr0f028d50(arg0->child, arg1, node, model, total) > 0) { return true; @@ -5660,8 +5660,8 @@ bool chr0f028e6c(s32 arg0, struct prop *prop, struct prop **propptr, struct mode if (1); - if (arg0 >= model->filedata->nummatrices) { - arg0 -= model->filedata->nummatrices; + if (arg0 >= model->definition->nummatrices) { + arg0 -= model->definition->nummatrices; if (prop->child) { result = chr0f028e6c(arg0, prop->child, propptr, nodeptr, modelptr); @@ -5863,7 +5863,7 @@ s32 chr0f0293ec(struct prop *prop, s32 cmnum) if (model == parentmodel->attachedtomodel) { if (node == parentmodel->attachedtonode) { - result = chr0f028e18(child, parentmodel->filedata->rootnode, parentmodel, prop); + result = chr0f028e18(child, parentmodel->definition->rootnode, parentmodel, prop); break; } } @@ -5904,7 +5904,7 @@ s32 chr0f0294cc(struct prop *prop, s32 arg1) if (parent->attachedtomodel == model2->attachedtomodel) { if (parent->attachedtonode == model2->attachedtonode) { - result = chr0f028e18(child, parent->filedata->rootnode, parent, prop); + result = chr0f028e18(child, parent->definition->rootnode, parent, prop); break; } } @@ -6721,10 +6721,10 @@ Gfx *shieldhitRender(Gfx *gdl, struct prop *prop1, struct prop *prop2, s32 alpha model = chr->model; } else { model = prop2->obj->model; - specificnode = modelGetPart(model->filedata, MODELPART_BASIC_0067); + specificnode = modelGetPart(model->definition, MODELPART_BASIC_0067); } - node = model->filedata->rootnode; + node = model->definition->rootnode; while (node) { if ((node->type & 0xff) == MODELNODETYPE_BBOX) { @@ -6846,7 +6846,7 @@ Gfx *chrRenderCloak(Gfx *gdl, struct prop *chrprop, struct prop *thisprop) model = thisprop->chr->model; } else { model = thisprop->obj->model; - bbox = modelGetPart(model->filedata, MODELPART_BASIC_0067); + bbox = modelGetPart(model->definition, MODELPART_BASIC_0067); } if (thisprop->parent == NULL) { @@ -6875,7 +6875,7 @@ Gfx *chrRenderCloak(Gfx *gdl, struct prop *chrprop, struct prop *thisprop) } // Iterate nodes in the prop and render each - node = model->filedata->rootnode; + node = model->definition->rootnode; while (node) { if ((node->type & 0xff) == MODELNODETYPE_BBOX) { @@ -7165,8 +7165,8 @@ void chrSetDrCarollImages(struct chrdata *drcaroll, s32 imageleft, s32 imagerigh // Parts 0-5 are the left image // Parts 6-11 are the right image for (i = 0; i < 6; i++) { - nodes[0] = modelGetPart(model->filedata, i); - nodes[1] = modelGetPart(model->filedata, i + 6); + nodes[0] = modelGetPart(model->definition, i); + nodes[1] = modelGetPart(model->definition, i + 6); for (j = 0; j < 2; j++) { if (nodes[j]) { diff --git a/src/game/chraction.c b/src/game/chraction.c index 27a786499..7eeac7598 100644 --- a/src/game/chraction.c +++ b/src/game/chraction.c @@ -5710,7 +5710,7 @@ void chrNavTickMagic(struct chrdata *chr, struct waydata *waydata, f32 speed, st modelSetRootPosition(chr->model, &prop->pos); - rwdata = modelGetNodeRwData(chr->model, chr->model->filedata->rootnode); + rwdata = modelGetNodeRwData(chr->model, chr->model->definition->rootnode); rwdata->chrinfo.ground = ground; chr->chrflags |= CHRCFLAG_00000001; @@ -9138,7 +9138,7 @@ bool func0f03e9f4(struct chrdata *chr, struct attackanimconfig *animcfg, bool fi struct defaultobj *gun = gunprop->obj; gunmodel = gun->model; sp114 = 0; - burstnode = modelGetPart(gunmodel->filedata, MODELPART_CHRGUN_GUNFIRE); + burstnode = modelGetPart(gunmodel->definition, MODELPART_CHRGUN_GUNFIRE); if (burstnode) { sp108 = modelFindNodeMtx(gunmodel, burstnode, 0); @@ -9161,7 +9161,7 @@ bool func0f03e9f4(struct chrdata *chr, struct attackanimconfig *animcfg, bool fi sp118.z = spb8.z; } } else { - posnode = modelGetPart(gunmodel->filedata, MODELPART_CHRGUN_0001); + posnode = modelGetPart(gunmodel->definition, MODELPART_CHRGUN_0001); if (posnode) { spb0 = modelFindNodeMtx(gunmodel, posnode, 0); @@ -9203,7 +9203,7 @@ bool func0f03e9f4(struct chrdata *chr, struct attackanimconfig *animcfg, bool fi aimendsideback += M_BADTAU; } - chrrwdata = modelGetNodeRwData(chr->model, chr->model->filedata->rootnode); + chrrwdata = modelGetNodeRwData(chr->model, chr->model->definition->rootnode); if (chrrwdata->unk5c > 0.0f) { aimendsideback -= chrrwdata->unk5c * chrrwdata->unk58; @@ -9583,7 +9583,7 @@ bool chrGetGunPos(struct chrdata *chr, s32 handnum, struct coord *gunpos) model = obj->model; if ((chr->prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) && (weaponprop->flags & PROPFLAG_ONTHISSCREENTHISTICK)) { - if ((part0 = modelGetPart(model->filedata, MODELPART_0000))) { + if ((part0 = modelGetPart(model->definition, MODELPART_0000))) { spac = modelFindNodeMtx(model, part0, 0); rodata = &part0->rodata->chrgunfire; @@ -9594,7 +9594,7 @@ bool chrGetGunPos(struct chrdata *chr, s32 handnum, struct coord *gunpos) mtx00015be4(camGetProjectionMtxF(), spac, &sp6c); mtx4TransformVecInPlace(&sp6c, gunpos); result = true; - } else if ((part1 = modelGetPart(model->filedata, MODELPART_0001))) { + } else if ((part1 = modelGetPart(model->definition, MODELPART_0001))) { sp64 = modelFindNodeMtx(model, part1, 0); mtx00015be4(camGetProjectionMtxF(), sp64, &sp24); @@ -9660,7 +9660,7 @@ void chrCalculateShieldHit(struct chrdata *chr, struct coord *pos, struct coord mtx4RotateVec(worldtoscreenmtx, vector, &sp118); isdifferentmtx = (camGetWorldToScreenMtxf() != worldtoscreenmtx); - node = chr->model->filedata->rootnode; + node = chr->model->definition->rootnode; while (node) { if ((node->type & 0xff) == MODELNODETYPE_BBOX) { @@ -9747,7 +9747,7 @@ void chrCalculateShieldHit(struct chrdata *chr, struct coord *pos, struct coord // If no node was found above, search the model for the torso bbox // and return that. if (!done) { - node = chr->model->filedata->rootnode; + node = chr->model->definition->rootnode; while (node) { @@ -10793,7 +10793,7 @@ void robotSetMuzzleFlash(struct chrdata *chr, bool right, bool visible) partnum = MODELPART_ROBOT_LGUNFIRE; } - node = modelGetPart(chr->model->filedata, partnum); + node = modelGetPart(chr->model->definition, partnum); if (node) { rwdata = modelGetNodeRwData(chr->model, node); @@ -10879,7 +10879,7 @@ void chrTickRobotAttack(struct chrdata *chr) func0f0429d8(chr, 0.085f, invtheta); - if (chr->model->filedata->skel != &g_SkelRobot) { + if (chr->model->definition->skel != &g_SkelRobot) { act->finished = true; return; } @@ -10918,7 +10918,7 @@ void chrTickRobotAttack(struct chrdata *chr) Mtxf spa4; aimy = targetprop->pos.y - 20.0f; - rodata = modelGetPartRodata(chr->model->filedata, (i ? MODELPART_ROBOT_0000 : MODELPART_ROBOT_0001)); + rodata = modelGetPartRodata(chr->model->definition, (i ? MODELPART_ROBOT_0000 : MODELPART_ROBOT_0001)); act->pos[i].x = rodata->position.pos.x; act->pos[i].y = rodata->position.pos.y - 300.0f; @@ -11185,7 +11185,7 @@ void chrTickAttackRoll(struct chrdata *chr) } if (chr->act_attack.animcfg->unk0c != 0.0f) { - union modelrwdata *rwdata = modelGetNodeRwData(model, model->filedata->rootnode); + union modelrwdata *rwdata = modelGetNodeRwData(model, model->definition->rootnode); rwdata->chrinfo.unk5c = sp34; rwdata->chrinfo.unk58 = -chr->act_attack.animcfg->unk0c / sp34; @@ -15297,10 +15297,10 @@ bool chrMoveToPos(struct chrdata *chr, struct coord *pos, s16 *rooms, f32 angle, chr0f0220ac(chr); modelSetRootPosition(chr->model, &pos2); - nodetype = chr->model->filedata->rootnode->type; + nodetype = chr->model->definition->rootnode->type; if ((nodetype & 0xff) == MODELNODETYPE_CHRINFO) { - rwdata = modelGetNodeRwData(chr->model, chr->model->filedata->rootnode); + rwdata = modelGetNodeRwData(chr->model, chr->model->definition->rootnode); rwdata->chrinfo.ground = ground; } @@ -16088,8 +16088,8 @@ Gfx *chrsRenderChrStats(Gfx *gdl, s16 *rooms) void chrToggleModelPart(struct chrdata *chr, s32 partnum) { - if (chr && chr->model && chr->model->filedata) { - struct modelnode *node = modelGetPart(chr->model->filedata, partnum); + if (chr && chr->model && chr->model->definition) { + struct modelnode *node = modelGetPart(chr->model->definition, partnum); union modelrwdata *rwdata = NULL; if (node) { diff --git a/src/game/gunfx.c b/src/game/gunfx.c index 226709cd0..c79ca59e6 100644 --- a/src/game/gunfx.c +++ b/src/game/gunfx.c @@ -1765,7 +1765,7 @@ void beamTick(struct beam *beam) bool g_CasingsActive = false; -struct casing *casingCreate(struct modelfiledata *modeldef, Mtxf *mtx) +struct casing *casingCreate(struct modeldef *modeldef, Mtxf *mtx) { s32 i; s32 j; @@ -1814,7 +1814,7 @@ void casingCreateForHand(s32 handnum, f32 ground, Mtxf *mtx) struct weaponfunc *func = gsetGetWeaponFunction2(&player->hands[handnum].gset); struct weapon *weapondef = weaponFindById(player->gunctrl.weaponnum); struct weaponfunc_shoot *shootfunc = NULL; - struct modelfiledata *modeldef; + struct modeldef *modeldef; if ((func->type & 0xff) == INVENTORYFUNCTYPE_SHOOT) { shootfunc = (struct weaponfunc_shoot *)func; @@ -1959,7 +1959,7 @@ void casingCreateForHand(s32 handnum, f32 ground, Mtxf *mtx) void casingRender(struct casing *casing, Gfx **gdlptr) { Gfx *gdl = *gdlptr; - struct modelfiledata *modeldef = casing->modeldef; + struct modeldef *modeldef = casing->modeldef; Mtxf *matrices = gfxAllocate(modeldef->nummatrices * sizeof(Mtxf)); struct model model; struct modelrenderdata renderdata = { NULL, true, 3 }; diff --git a/src/game/modeldata/player.c b/src/game/modeldata/player.c index 203e8bae2..ad49e1c88 100644 --- a/src/game/modeldata/player.c +++ b/src/game/modeldata/player.c @@ -10,7 +10,7 @@ struct modelrodata_chrinfo var8007c124; struct modelrodata_position var8007c130; struct modelrodata_position var8007c148; -struct modelfiledata g_PlayerModelFileData = { +struct modeldef g_PlayerModeldef = { (struct modelnode *) &var8007c0dc, &g_Skel0B, NULL, diff --git a/src/game/modeldef.c b/src/game/modeldef.c index 565c03f72..560df33dd 100644 --- a/src/game/modeldef.c +++ b/src/game/modeldef.c @@ -106,7 +106,7 @@ struct skeleton *g_Skeletons[] = { &g_SkelBB, }; -void modeldef0f1a7560(struct modelfiledata *modeldef, u16 filenum, u32 arg2, struct modelfiledata *modeldef2, struct texpool *texpool, bool arg5) +void modeldef0f1a7560(struct modeldef *modeldef, u16 filenum, u32 arg2, struct modeldef *modeldef2, struct texpool *texpool, bool arg5) { s32 allocsize; s32 loadedsize; @@ -162,45 +162,45 @@ void modeldef0f1a7560(struct modelfiledata *modeldef, u16 filenum, u32 arg2, str } } -void modelPromoteTypeToPointer(struct modelfiledata *filedata) +void modelPromoteTypeToPointer(struct modeldef *modeldef) { s32 i; - if ((u32)filedata->skel < 0x10000) { + if ((u32)modeldef->skel < 0x10000) { for (i = 0; g_Skeletons[i] != NULL; i++) { - if ((s16)filedata->skel == g_Skeletons[i]->skel) { - filedata->skel = g_Skeletons[i]; + if ((s16)modeldef->skel == g_Skeletons[i]->skel) { + modeldef->skel = g_Skeletons[i]; return; } } } } -struct modelfiledata *modeldefLoad(u16 fileid, u8 *dst, s32 size, struct texpool *arg3) +struct modeldef *modeldefLoad(u16 fileid, u8 *dst, s32 size, struct texpool *arg3) { - struct modelfiledata *filedata; + struct modeldef *modeldef; g_LoadType = LOADTYPE_MODEL; if (dst) { - filedata = fileLoadToAddr(fileid, FILELOADMETHOD_EXTRAMEM, dst, size); + modeldef = fileLoadToAddr(fileid, FILELOADMETHOD_EXTRAMEM, dst, size); } else { - filedata = fileLoadToNew(fileid, FILELOADMETHOD_EXTRAMEM); + modeldef = fileLoadToNew(fileid, FILELOADMETHOD_EXTRAMEM); } - modelPromoteTypeToPointer(filedata); - modelPromoteOffsetsToPointers(filedata, 0x5000000, (u32) filedata); - modeldef0f1a7560(filedata, fileid, 0x5000000, filedata, arg3, dst == NULL); + modelPromoteTypeToPointer(modeldef); + modelPromoteOffsetsToPointers(modeldef, 0x5000000, (u32) modeldef); + modeldef0f1a7560(modeldef, fileid, 0x5000000, modeldef, arg3, dst == NULL); - return filedata; + return modeldef; } -struct modelfiledata *modeldefLoadToNew(u16 fileid) +struct modeldef *modeldefLoadToNew(u16 fileid) { return modeldefLoad(fileid, NULL, 0, NULL); } -struct modelfiledata *modeldefLoadToAddr(u16 fileid, u8 *dst, s32 size) +struct modeldef *modeldefLoadToAddr(u16 fileid, u8 *dst, s32 size) { return modeldefLoad(fileid, dst, size, NULL); } diff --git a/src/game/modelmgr.c b/src/game/modelmgr.c index 01c127260..0c57dc8c4 100644 --- a/src/game/modelmgr.c +++ b/src/game/modelmgr.c @@ -26,7 +26,7 @@ s32 g_ModelMostAnims = 0; #define NUMTYPE2() (IS4MB() ? 24 : 25) #define NUMTYPE3() (IS4MB() ? 0 : 20) -bool modelmgrCanSlotFitRwdata(struct model *modelslot, struct modelfiledata *modeldef) +bool modelmgrCanSlotFitRwdata(struct model *modelslot, struct modeldef *modeldef) { return modeldef->rwdatalen <= 0 || (modelslot->rwdatas != NULL && modelslot->rwdatalen >= modeldef->rwdatalen); @@ -60,7 +60,7 @@ void modelmgrPrintCounts(void) } for (i = 0; i < g_MaxModels; i++) { - if (g_ModelSlots[i].filedata) { + if (g_ModelSlots[i].definition) { nummodels++; } } @@ -102,7 +102,7 @@ void modelmgrPrintCounts(void) if (IS4MB()); } -struct model *modelmgrInstantiateModel(struct modelfiledata *modeldef, bool withanim) +struct model *modelmgrInstantiateModel(struct modeldef *modeldef, bool withanim) { struct model *model = NULL; union modelrwdata **rwdatas = NULL; @@ -113,7 +113,7 @@ struct model *modelmgrInstantiateModel(struct modelfiledata *modeldef, bool with // If it's being allocated mid-gameplay, look through all slots // and find any slot that's big enough. for (i = 0; i < g_MaxModels; i++) { - if (g_ModelSlots[i].filedata == NULL && modelmgrCanSlotFitRwdata(&g_ModelSlots[i], modeldef)) { + if (g_ModelSlots[i].definition == NULL && modelmgrCanSlotFitRwdata(&g_ModelSlots[i], modeldef)) { model = &g_ModelSlots[i]; rwdatas = g_ModelSlots[i].rwdatas; datalen = g_ModelSlots[i].rwdatalen; @@ -127,7 +127,7 @@ struct model *modelmgrInstantiateModel(struct modelfiledata *modeldef, bool with // Find any spare slot or allocate a new one for (i = 0; i < g_MaxModels; i++) { - if (g_ModelSlots[i].filedata == NULL) { + if (g_ModelSlots[i].definition == NULL) { model = &g_ModelSlots[i]; break; } @@ -249,9 +249,9 @@ struct model *modelmgrInstantiateModel(struct modelfiledata *modeldef, bool with return model; } -struct model *modelmgrInstantiateModelWithoutAnim(struct modelfiledata *modelfiledata) +struct model *modelmgrInstantiateModelWithoutAnim(struct modeldef *modeldef) { - return modelmgrInstantiateModel(modelfiledata, false); + return modelmgrInstantiateModel(modeldef, false); } void modelmgrFreeModel(struct model *model) @@ -311,17 +311,17 @@ void modelmgrFreeModel(struct model *model) model->anim = NULL; } - model->filedata = NULL; + model->definition = NULL; } -struct model *modelmgrInstantiateModelWithAnim(struct modelfiledata *modelfiledata) +struct model *modelmgrInstantiateModelWithAnim(struct modeldef *modeldef) { - return modelmgrInstantiateModel(modelfiledata, true); + return modelmgrInstantiateModel(modeldef, true); } -void modelmgrAttachHead(struct model *model, struct modelnode *node, struct modelfiledata *headmodeldef) +void modelmgrAttachHead(struct model *model, struct modelnode *node, struct modeldef *headmodeldef) { - modelAttachHead(model, model->filedata, node, headmodeldef); + modelAttachHead(model, model->definition, node, headmodeldef); modelInitRwData(model, headmodeldef->rootnode); } diff --git a/src/game/modelmgrreset.c b/src/game/modelmgrreset.c index b35585dcf..1d6600514 100644 --- a/src/game/modelmgrreset.c +++ b/src/game/modelmgrreset.c @@ -141,7 +141,7 @@ void modelmgrAllocateSlots(s32 numobjs, s32 numchrs) } for (i = 0; i < g_MaxModels; i++) { - g_ModelSlots[i].filedata = NULL; + g_ModelSlots[i].definition = NULL; g_ModelSlots[i].rwdatas = NULL; } diff --git a/src/game/mplayer/mplayer.c b/src/game/mplayer/mplayer.c index 125284319..4dd4513e9 100644 --- a/src/game/mplayer/mplayer.c +++ b/src/game/mplayer/mplayer.c @@ -42,7 +42,7 @@ struct mpsetup g_MpSetup; struct bossfile g_BossFile; u32 var800acc1c; struct mplockinfo g_MpLockInfo; -struct modelfiledata *var800acc28[18]; +struct modeldef *var800acc28[18]; // Forward declaractions struct mpweaponset g_MpWeaponSets[12]; @@ -3937,7 +3937,7 @@ void func0f18e558(void) } } -struct modelfiledata *func0f18e57c(s32 index, s32 *headnum) +struct modeldef *func0f18e57c(s32 index, s32 *headnum) { return var800acc28[index]; } diff --git a/src/game/player.c b/src/game/player.c index 9bdcaf5dc..61234d7d0 100644 --- a/src/game/player.c +++ b/src/game/player.c @@ -894,8 +894,8 @@ bool playerSpawnAnti(struct chrdata *hostchr, bool force) modelCopyAnimData(hostchr->model, playerchr->model); func0f02e9a0(playerchr, 12); - chrrootrwdata = modelGetNodeRwData(hostchr->model, hostchr->model->filedata->rootnode); - playerrootrwdata = modelGetNodeRwData(playerchr->model, playerchr->model->filedata->rootnode); + chrrootrwdata = modelGetNodeRwData(hostchr->model, hostchr->model->definition->rootnode); + playerrootrwdata = modelGetNodeRwData(playerchr->model, playerchr->model->definition->rootnode); playerrootrwdata->chrinfo = chrrootrwdata->chrinfo; @@ -1277,9 +1277,9 @@ void playerTickChrBody(void) if (g_Vars.currentplayer->haschrbody == false) { struct chrdata *chr; struct texpool texpool; - struct modelfiledata *bodyfiledata; - struct modelfiledata *headfiledata = NULL; - struct modelfiledata *weaponfiledata; + struct modeldef *bodymodeldef; + struct modeldef *headmodeldef = NULL; + struct modeldef *weaponmodeldef; s32 offset1 = 0; u8 *allocation; void *spe8; @@ -1399,21 +1399,21 @@ void playerTickChrBody(void) bgunCalculateGunMemCapacity(); spe8 = g_Vars.currentplayer->gunmem2 + offset2; texInitPool(&texpool, spe8, bgunCalculateGunMemCapacity() - offset2); - bodyfiledata = modeldefLoad(g_HeadsAndBodies[bodynum].filenum, allocation + offset1, offset2 - offset1, &texpool); + bodymodeldef = modeldefLoad(g_HeadsAndBodies[bodynum].filenum, allocation + offset1, offset2 - offset1, &texpool); offset1 = ALIGN64(fileGetLoadedSize(g_HeadsAndBodies[bodynum].filenum) + offset1); if (headnum >= 0) { - headfiledata = modeldefLoad(g_HeadsAndBodies[headnum].filenum, allocation + offset1, offset2 - offset1, &texpool); + headmodeldef = modeldefLoad(g_HeadsAndBodies[headnum].filenum, allocation + offset1, offset2 - offset1, &texpool); offset1 = ALIGN64(fileGetLoadedSize(g_HeadsAndBodies[headnum].filenum) + offset1); } - modelAllocateRwData(bodyfiledata); + modelAllocateRwData(bodymodeldef); - if (headfiledata != NULL) { - modelAllocateRwData(headfiledata); + if (headmodeldef != NULL) { + modelAllocateRwData(headmodeldef); } - modelInit(model, bodyfiledata, rwdatas, false); + modelInit(model, bodymodeldef, rwdatas, false); animInit(model->anim); model->rwdatalen = 256; @@ -1429,31 +1429,31 @@ void playerTickChrBody(void) texGetPoolLeftPos(&texpool); } else { // 2-4 players - if (g_HeadsAndBodies[bodynum].filedata == NULL) { - g_HeadsAndBodies[bodynum].filedata = modeldefLoadToNew(g_HeadsAndBodies[bodynum].filenum); + if (g_HeadsAndBodies[bodynum].modeldef == NULL) { + g_HeadsAndBodies[bodynum].modeldef = modeldefLoadToNew(g_HeadsAndBodies[bodynum].filenum); } - bodyfiledata = g_HeadsAndBodies[bodynum].filedata; + bodymodeldef = g_HeadsAndBodies[bodynum].modeldef; if (g_HeadsAndBodies[bodynum].unk00_01) { headnum = -1; } else if (sp60) { - headfiledata = func0f18e57c(headnum, &headnum); + headmodeldef = func0f18e57c(headnum, &headnum); } else if (g_Vars.normmplayerisrunning && IS8MB()) { - g_HeadsAndBodies[headnum].filedata = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); - headfiledata = g_HeadsAndBodies[headnum].filedata; + g_HeadsAndBodies[headnum].modeldef = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); + headmodeldef = g_HeadsAndBodies[headnum].modeldef; g_FileInfo[g_HeadsAndBodies[headnum].filenum].loadedsize = 0; - bodyCalculateHeadOffset(headfiledata, headnum, bodynum); + bodyCalculateHeadOffset(headmodeldef, headnum, bodynum); } else { - if (g_HeadsAndBodies[headnum].filedata == NULL) { - g_HeadsAndBodies[headnum].filedata = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); + if (g_HeadsAndBodies[headnum].modeldef == NULL) { + g_HeadsAndBodies[headnum].modeldef = modeldefLoadToNew(g_HeadsAndBodies[headnum].filenum); } - headfiledata = g_HeadsAndBodies[headnum].filedata; + headmodeldef = g_HeadsAndBodies[headnum].modeldef; } } - g_Vars.currentplayer->model00d4 = body0f02ce8c(bodynum, headnum, bodyfiledata, headfiledata, false, model, true, true); + g_Vars.currentplayer->model00d4 = body0f02ce8c(bodynum, headnum, bodymodeldef, headmodeldef, false, model, true, true); chr0f020b14(g_Vars.currentplayer->prop, g_Vars.currentplayer->model00d4, &g_Vars.currentplayer->prop->pos, g_Vars.currentplayer->prop->rooms, turnangle, 0); @@ -1501,15 +1501,15 @@ void playerTickChrBody(void) if (weaponmodelnum >= 0) { if (g_Vars.mplayerisrunning == false) { - weaponfiledata = modeldefLoad(g_ModelStates[weaponmodelnum].fileid, allocation + offset1, offset2 - offset1, &texpool); + weaponmodeldef = modeldefLoad(g_ModelStates[weaponmodelnum].fileid, allocation + offset1, offset2 - offset1, &texpool); fileGetLoadedSize(g_ModelStates[weaponmodelnum].fileid); - modelAllocateRwData(weaponfiledata); + modelAllocateRwData(weaponmodeldef); } else { weaponobj = NULL; - weaponfiledata = NULL; + weaponmodeldef = NULL; } - weaponCreateForChr(chr, weaponmodelnum, weaponnum, 0, weaponobj, weaponfiledata); + weaponCreateForChr(chr, weaponmodelnum, weaponnum, 0, weaponobj, weaponmodeldef); } chr->fireslots[0] = bgunAllocateFireslot(); @@ -5289,7 +5289,7 @@ s32 playerTickThirdPerson(struct prop *prop) chr0f0220ac(prop->chr); if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) { - if (player->model00d4->filedata->skel == &g_SkelChr) { + if (player->model00d4->definition->skel == &g_SkelChr) { spe8 = player->model00d4->matrices; } else { spe8 = player->model00d4->matrices; diff --git a/src/game/propobj.c b/src/game/propobj.c index b3f6ea2ac..c39948971 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -729,7 +729,7 @@ bool func0f06797c(struct coord *coord, f32 arg1, s32 padnum) bool func0f0679ac(struct model *model, f32 *max, f32 *min, f32 arg3[2], f32 arg4[2]) { - struct modelnode *node = model->filedata->rootnode; + struct modelnode *node = model->definition->rootnode; bool first = true; while (node) { @@ -786,7 +786,7 @@ bool func0f0679ac(struct model *model, f32 *max, f32 *min, f32 arg3[2], f32 arg4 void func0f067bc4(struct model *model, f32 *max, f32 *min, s32 axis) { - struct modelnode *node = model->filedata->rootnode; + struct modelnode *node = model->definition->rootnode; bool first = true; while (node) { @@ -848,7 +848,7 @@ bool modelGetScreenCoords2(struct model *model, f32 *x2, f32 *x1, f32 *y2, f32 * bool first = true; if (model) { - struct modelfiledata *modeldef = model->filedata; + struct modeldef *modeldef = model->definition; if (modeldef) { struct modelnode *node = modeldef->rootnode; @@ -1220,8 +1220,8 @@ s32 objGetDestroyedLevel(struct defaultobj *obj) struct modelnode *func0f0687e4(struct model *model) { - struct modelfiledata *filedata = model->filedata; - struct modelnode *node = filedata->rootnode; + struct modeldef *modeldef = model->definition; + struct modelnode *node = modeldef->rootnode; while (node) { u32 type = node->type & 0xff; @@ -1257,9 +1257,9 @@ struct modelnode *func0f0687e4(struct model *model) return NULL; } -struct modelnode *modelFileDataFindBboxNode(struct modelfiledata *filedata) +struct modelnode *modeldefFindBboxNode(struct modeldef *modeldef) { - struct modelnode *node = filedata->rootnode; + struct modelnode *node = modeldef->rootnode; while (node) { if ((node->type & 0xff) == MODELNODETYPE_BBOX) { @@ -1283,9 +1283,9 @@ struct modelnode *modelFileDataFindBboxNode(struct modelfiledata *filedata) return NULL; } -struct modelrodata_bbox *modelFileDataFindBboxRodata(struct modelfiledata *filedata) +struct modelrodata_bbox *modeldefFindBboxRodata(struct modeldef *modeldef) { - struct modelnode *node = modelFileDataFindBboxNode(filedata); + struct modelnode *node = modeldefFindBboxNode(modeldef); if (node) { return &node->rodata->bbox; @@ -1296,7 +1296,7 @@ struct modelrodata_bbox *modelFileDataFindBboxRodata(struct modelfiledata *filed struct modelnode *modelFindBboxNode(struct model *model) { - struct modelnode *node = model->filedata->rootnode; + struct modelnode *node = model->definition->rootnode; while (node) { u32 type = node->type & 0xff; @@ -1760,11 +1760,11 @@ void func0f069850(struct defaultobj *obj, struct coord *pos, f32 rot[3][3], stru mtx3ToMtx4(rot, &mtx); mtx4SetTranslation(pos, &mtx); - if (obj->model->filedata->skel == &g_SkelHoverbike - || obj->model->filedata->skel == &g_SkelBasic - || obj->model->filedata->skel == &g_SkelMaianUfo - || obj->model->filedata->skel == &g_SkelDropship) { - rodata19 = modelGetPartRodata(obj->model->filedata, MODELPART_HOVERBIKE_0064); + if (obj->model->definition->skel == &g_SkelHoverbike + || obj->model->definition->skel == &g_SkelBasic + || obj->model->definition->skel == &g_SkelMaianUfo + || obj->model->definition->skel == &g_SkelDropship) { + rodata19 = modelGetPartRodata(obj->model->definition, MODELPART_HOVERBIKE_0064); } if (obj->flags3 & OBJFLAG3_GEOCYL) { @@ -1820,7 +1820,7 @@ void func0f069b4c(struct defaultobj *obj) } } - rodata = modelGetPartRodata(obj->model->filedata, MODELPART_0065); + rodata = modelGetPartRodata(obj->model->definition, MODELPART_0065); if (rodata != NULL) { u32 flags = GEOFLAG_FLOOR1 | GEOFLAG_FLOOR2; @@ -1834,7 +1834,7 @@ void func0f069b4c(struct defaultobj *obj) ptr += 0x40; } - rodata = modelGetPartRodata(obj->model->filedata, MODELPART_0066); + rodata = modelGetPartRodata(obj->model->definition, MODELPART_0066); if (rodata != NULL) { func0f070ca0(obj, (struct geotilef *)ptr, GEOFLAG_WALL | GEOFLAG_BLOCK_SIGHT | GEOFLAG_BLOCK_SHOOT, NULL, &rodata->type19); @@ -1884,7 +1884,7 @@ void objInitToggleNodes(struct defaultobj *obj) s32 i; for (i = 0; i < 20; i++) { - struct modelnode *node = modelGetPart(model->filedata, 201 + i); + struct modelnode *node = modelGetPart(model->definition, 201 + i); if (!node) { return; @@ -1930,7 +1930,7 @@ void objCreateOneDebris(struct defaultobj *obj, s32 partindex, struct prop *prop *debris = tmp; debris->modelnum = obj->modelnum; - if (objInitWithModelDef(debris, g_ModelStates[debris->modelnum].filedata)) { + if (objInitWithModelDef(debris, g_ModelStates[debris->modelnum].modeldef)) { propReparent(debris->prop, obj->prop); objSetDropped(debris->prop, DROPTYPE_5); @@ -1978,7 +1978,7 @@ void objCreateOneDebris(struct defaultobj *obj, s32 partindex, struct prop *prop debris->flags2 |= OBJFLAG2_IMMUNETOGUNFIRE | OBJFLAG2_00200000; debris->flags3 |= OBJFLAG3_00000008; - node = modelGetPart(debris->model->filedata, MODELPART_BASIC_00C8); + node = modelGetPart(debris->model->definition, MODELPART_BASIC_00C8); { struct modelrwdata_toggle *rodata; @@ -1988,7 +1988,7 @@ void objCreateOneDebris(struct defaultobj *obj, s32 partindex, struct prop *prop rodata->visible = false; } - node = modelGetPart(debris->model->filedata, MODELPART_BASIC_00C9 + partindex); + node = modelGetPart(debris->model->definition, MODELPART_BASIC_00C9 + partindex); if (node) { rodata = modelGetNodeRwData(debris->model, node); @@ -2007,7 +2007,7 @@ void objCreateDebris(struct defaultobj *obj, struct prop *prop) if (prop); for (i = 0; i < 20; i++) { - if (modelGetPart(model->filedata, 201 + i) == NULL) { + if (modelGetPart(model->definition, 201 + i) == NULL) { break; } @@ -2015,14 +2015,14 @@ void objCreateDebris(struct defaultobj *obj, struct prop *prop) } } -struct prop *objInit(struct defaultobj *obj, struct modelfiledata *filedata, struct prop *prop, struct model *model) +struct prop *objInit(struct defaultobj *obj, struct modeldef *modeldef, struct prop *prop, struct model *model) { if (prop == NULL) { prop = propAllocate(); } if (model == NULL) { - model = modelmgrInstantiateModelWithoutAnim(filedata); + model = modelmgrInstantiateModelWithoutAnim(modeldef); } if (prop && model) { @@ -2030,11 +2030,11 @@ struct prop *objInit(struct defaultobj *obj, struct modelfiledata *filedata, str obj->model = model; - if (modelGetPartRodata(filedata, MODELPART_BASIC_0065)) { + if (modelGetPartRodata(modeldef, MODELPART_BASIC_0065)) { obj->geocount++; } - if (modelGetPartRodata(filedata, MODELPART_BASIC_0066)) { + if (modelGetPartRodata(modeldef, MODELPART_BASIC_0066)) { obj->geocount++; } @@ -2132,14 +2132,14 @@ struct prop *objInit(struct defaultobj *obj, struct modelfiledata *filedata, str return prop; } -struct prop *objInitWithModelDef(struct defaultobj *obj, struct modelfiledata *filedata) +struct prop *objInitWithModelDef(struct defaultobj *obj, struct modeldef *modeldef) { - return objInit(obj, filedata, NULL, NULL); + return objInit(obj, modeldef, NULL, NULL); } struct prop *objInitWithAutoModel(struct defaultobj *obj) { - return objInitWithModelDef(obj, g_ModelStates[obj->modelnum].filedata); + return objInitWithModelDef(obj, g_ModelStates[obj->modelnum].modeldef); } void func0f06a580(struct defaultobj *obj, struct coord *pos, Mtxf *matrix, s16 *rooms) @@ -2737,7 +2737,7 @@ bool func0f06b610(struct defaultobj *obj, struct coord *arg1, struct coord *arg2 } while (hitpart > 0); if (obj->flags3 & OBJFLAG3_HOVERBEDSHIELD) { - node = modelGetPart(model->filedata, MODELPART_BASIC_0067); + node = modelGetPart(model->definition, MODELPART_BASIC_0067); if (node && func0f084594(model, node, arg5, arg6, &thing2, &mtxindex2, &node2)) { if (hitpart <= 0 || @@ -2809,7 +2809,7 @@ bool func0f06b610(struct defaultobj *obj, struct coord *arg1, struct coord *arg2 if (func0f06b39c(arg1, arg3, &prop->pos, modelGetEffectiveScale(model)) && func0f06b488(prop, arg1, arg2, arg3, arg7, arg8, arg9)) { g_EmbedModel = model; - g_EmbedNode = model->filedata->rootnode; + g_EmbedNode = model->definition->rootnode; result = true; } } @@ -3061,7 +3061,7 @@ bool func0f06c28c(struct chrdata *chr, struct coord *arg1, struct coord *arg2, s hitpart = modelTestForHit(model, arg5, arg6, &spcc); if (hitpart > 0 - && func0f06bea0(model, model->filedata->rootnode, model->filedata->rootnode, arg5, arg6, &sp7c.unk00, &spec, &spcc, &hitpart, &sp78, &sp74) + && func0f06bea0(model, model->definition->rootnode, model->definition->rootnode, arg5, arg6, &sp7c.unk00, &spec, &spcc, &hitpart, &sp78, &sp74) && spec < *arg9) { *arg9 = spec; mtx4TransformVec(camGetProjectionMtxF(), &sp7c.unk00, arg7); @@ -4765,7 +4765,7 @@ void func0f07079c(struct prop *prop, bool fulltick) prop->flags |= PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK; mtx00015be4(mtx, &obj->embedment->matrix, &sp30); - renderdata.unk10 = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf)); + renderdata.unk10 = gfxAllocate(model->definition->nummatrices * sizeof(Mtxf)); renderdata.unk00 = &sp30; modelSetMatrices(&renderdata, model); @@ -5017,11 +5017,11 @@ void liftUpdateTiles(struct liftobj *lift, bool stationary) #endif // Look for a non-rectangular floor with fallback to rectangular - rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_FLOORNONRECT1); + rodata = modelGetPartRodata(lift->base.model->definition, MODELPART_LIFT_FLOORNONRECT1); if (rodata == NULL) { union modelrodata *tmp; - tmp = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_FLOORRECT); + tmp = modelGetPartRodata(lift->base.model->definition, MODELPART_LIFT_FLOORRECT); bbox = &tmp->bbox; if (bbox == NULL) { @@ -5030,13 +5030,13 @@ void liftUpdateTiles(struct liftobj *lift, bool stationary) } } else if (i == 1) { flags = GEOFLAG_WALL; - rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_WALL1); + rodata = modelGetPartRodata(lift->base.model->definition, MODELPART_LIFT_WALL1); } else if (i == 2) { flags = GEOFLAG_WALL; - rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_WALL2); + rodata = modelGetPartRodata(lift->base.model->definition, MODELPART_LIFT_WALL2); } else if (i == 3) { flags = GEOFLAG_WALL; - rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_WALL3); + rodata = modelGetPartRodata(lift->base.model->definition, MODELPART_LIFT_WALL3); } else if (i == 4) { // The doorblock model part exists in the dataDyne tower lifts. // It's a tile across the door that only applies while the lift @@ -5044,7 +5044,7 @@ void liftUpdateTiles(struct liftobj *lift, bool stationary) // the doorway while it's moving. if (!stationary) { flags = GEOFLAG_WALL; - rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_DOORBLOCK); + rodata = modelGetPartRodata(lift->base.model->definition, MODELPART_LIFT_DOORBLOCK); } } else if (i == 5) { #if VERSION >= VERSION_NTSC_1_0 @@ -5052,7 +5052,7 @@ void liftUpdateTiles(struct liftobj *lift, bool stationary) #else flags = GEOFLAG_FLOOR1 | GEOFLAG_FLOOR2 | GEOFLAG_LIFTFLOOR; #endif - rodata = modelGetPartRodata(lift->base.model->filedata, MODELPART_LIFT_FLOORNONRECT2); + rodata = modelGetPartRodata(lift->base.model->definition, MODELPART_LIFT_FLOORNONRECT2); } else { break; } @@ -7660,7 +7660,7 @@ void doorTick(struct prop *doorprop) } // Consider playing a sound effect - if (model->filedata->skel == &g_Skel13) { + if (model->definition->skel == &g_Skel13) { f32 soundpoint = door->maxfrac * 0.3f; if (door->frac > soundpoint) { @@ -7716,8 +7716,8 @@ void doorUpdatePortalIfWindowed(struct prop *doorprop, s32 playercount) canhide = false; } - if (model->filedata->skel == &g_SkelWindowedDoor) { - node = modelGetPart(model->filedata, MODELPART_WINDOWEDDOOR_0001); + if (model->definition->skel == &g_SkelWindowedDoor) { + node = modelGetPart(model->definition, MODELPART_WINDOWEDDOOR_0001); rwdata = modelGetNodeRwData(model, node); if (!rwdata->toggle.visible) { @@ -7748,20 +7748,20 @@ void doorInitMatrices(struct prop *prop) func0f08c424(door, matrices); mtx00015be0(camGetWorldToScreenMtxf(), matrices); - if (model->filedata->skel == &g_Skel11) { + if (model->definition->skel == &g_Skel11) { union modelrodata *rodata; f32 xrot = M_BADTAU - door->frac * 0.017450513318181f; - rodata = modelGetPartRodata(model->filedata, 1); + rodata = modelGetPartRodata(model->definition, 1); mtx4LoadXRotation(xrot, MTX(1)); mtx4SetTranslation(&rodata->position.pos, MTX(1)); mtx4MultMtx4InPlace(MTX(0), MTX(1)); - rodata = modelGetPartRodata(model->filedata, 2); + rodata = modelGetPartRodata(model->definition, 2); mtx4LoadXRotation(M_BADTAU - xrot, MTX(2)); mtx4SetTranslation(&rodata->position.pos, MTX(2)); mtx4MultMtx4InPlace(MTX(0), MTX(2)); - } else if (model->filedata->skel == &g_Skel13) { + } else if (model->definition->skel == &g_Skel13) { union modelrodata *rodata; f32 zrot1 = 0; f32 zrot2 = door->frac * 0.017450513318181f; @@ -7776,12 +7776,12 @@ void doorInitMatrices(struct prop *prop) s32 index1 = (i << 1) + 1; s32 index2 = (i << 1) + 2; - rodata = modelGetPartRodata(model->filedata, index1); + rodata = modelGetPartRodata(model->definition, index1); mtx4LoadZRotation(zrot1, MTX(index1)); mtx4SetTranslation(&rodata->position.pos, MTX(index1)); mtx4MultMtx4InPlace(MTX(0), MTX(index1)); - rodata = modelGetPartRodata(model->filedata, index2); + rodata = modelGetPartRodata(model->definition, index2); mtx4LoadZRotation(zrot2, MTX(index2)); mtx4SetTranslation(&rodata->position.pos, MTX(index2)); mtx4MultMtx4InPlace(MTX(index1), MTX(index2)); @@ -7846,10 +7846,10 @@ void platformDisplaceProps(struct prop *platform, s16 *propnums, struct coord *p chr0f0220ac(chr); modelSetRootPosition(chr->model, &prop->pos); - nodetype = chr->model->filedata->rootnode->type; + nodetype = chr->model->definition->rootnode->type; if ((nodetype & 0xff) == MODELNODETYPE_CHRINFO) { - struct modelrwdata_chrinfo *rwdata = modelGetNodeRwData(chr->model, chr->model->filedata->rootnode); + struct modelrwdata_chrinfo *rwdata = modelGetNodeRwData(chr->model, chr->model->definition->rootnode); rwdata->ground += newpos->y - prevpos->y; } } @@ -8365,7 +8365,7 @@ void cctvInitMatrices(struct prop *prop, Mtxf *mtx) struct cctvobj *cctv = (struct cctvobj *)prop->obj; struct model *model = cctv->base.model; Mtxf *matrices = model->matrices; - union modelrodata *rodata = modelGetPartRodata(model->filedata, MODELPART_CCTV_CASING); + union modelrodata *rodata = modelGetPartRodata(model->definition, MODELPART_CCTV_CASING); struct coord sp64; Mtxf sp24; f32 yrot = cctv->yrot; @@ -8928,7 +8928,7 @@ void autogunInitMatrices(struct prop *prop, Mtxf *mtx) yrot -= M_BADTAU; } - rodata = modelGetPartRodata(model->filedata, MODELPART_AUTOGUN_0001); + rodata = modelGetPartRodata(model->definition, MODELPART_AUTOGUN_0001); sp4c.x = rodata->position.pos.x; sp4c.y = rodata->position.pos.y; @@ -8940,7 +8940,7 @@ void autogunInitMatrices(struct prop *prop, Mtxf *mtx) mtx00015f04(autogun->base.model->scale, &matrices[1]); mtx00015be0(camGetWorldToScreenMtxf(), &matrices[1]); - node2 = modelGetPart(model->filedata, MODELPART_AUTOGUN_0002); + node2 = modelGetPart(model->definition, MODELPART_AUTOGUN_0002); rodata = node2->rodata; mtx4LoadZRotation(xrot, &matrices[2]); mtx4SetTranslation(&rodata->position.pos, &matrices[2]); @@ -8954,7 +8954,7 @@ void autogunInitMatrices(struct prop *prop, Mtxf *mtx) mtx00015be0(&matrices[1], tmp); } - node3 = modelGetPart(model->filedata, MODELPART_AUTOGUN_0003); + node3 = modelGetPart(model->definition, MODELPART_AUTOGUN_0003); if (node3 != NULL) { tmp = modelFindNodeMtx(model, node3, 0); @@ -8964,7 +8964,7 @@ void autogunInitMatrices(struct prop *prop, Mtxf *mtx) mtx00015be0(&matrices[2], tmp); } - node4 = modelGetPart(model->filedata, MODELPART_AUTOGUN_0004); + node4 = modelGetPart(model->definition, MODELPART_AUTOGUN_0004); if (node4 != NULL) { tmp = modelFindNodeMtx(model, node4, 0); @@ -8973,7 +8973,7 @@ void autogunInitMatrices(struct prop *prop, Mtxf *mtx) mtx00015be0(&matrices[2], tmp); } - node6 = modelGetPart(model->filedata, MODELPART_AUTOGUN_0006); + node6 = modelGetPart(model->definition, MODELPART_AUTOGUN_0006); if (node6 != NULL) { tmp = modelFindNodeMtx(model, node6, 0); @@ -9002,7 +9002,7 @@ void autogunTickShoot(struct prop *autogunprop) fireleft = (autogun->firecount % 2) == 0; - if (modelGetPart(model->filedata, MODELPART_AUTOGUN_FLASHLEFT)) { + if (modelGetPart(model->definition, MODELPART_AUTOGUN_FLASHLEFT)) { fireright = (autogun->firecount % 2) == 1; } @@ -9032,12 +9032,12 @@ void autogunTickShoot(struct prop *autogunprop) } if ((autogun->firecount & 7) - || (flashnode = modelGetPart(model->filedata, MODELPART_AUTOGUN_FLASHRIGHT)) == NULL) { - flashnode = modelGetPart(model->filedata, MODELPART_AUTOGUN_FLASHLEFT); + || (flashnode = modelGetPart(model->definition, MODELPART_AUTOGUN_FLASHRIGHT)) == NULL) { + flashnode = modelGetPart(model->definition, MODELPART_AUTOGUN_FLASHLEFT); } if (flashnode == NULL) { - posnode = modelGetPart(model->filedata, MODELPART_AUTOGUN_0003); + posnode = modelGetPart(model->definition, MODELPART_AUTOGUN_0003); } propSetPerimEnabled(autogunprop, false); @@ -9365,14 +9365,14 @@ void autogunTickShoot(struct prop *autogunprop) } } - node1 = modelGetPart(model->filedata, MODELPART_AUTOGUN_FLASHLEFT); + node1 = modelGetPart(model->definition, MODELPART_AUTOGUN_FLASHLEFT); if (node1) { union modelrwdata *rwdata = modelGetNodeRwData(model, node1); rwdata->chrgunfire.visible = fireleft; } - node2 = modelGetPart(model->filedata, MODELPART_AUTOGUN_FLASHRIGHT); + node2 = modelGetPart(model->definition, MODELPART_AUTOGUN_FLASHRIGHT); if (node2) { union modelrwdata *rwdata = modelGetNodeRwData(model, node2); @@ -9393,7 +9393,7 @@ void chopperInitMatrices(struct prop *prop) Mtxf sp68; Mtxf sp28; - rodata = modelGetPartRodata(model->filedata, MODELPART_CHOPPER_0001); + rodata = modelGetPartRodata(model->definition, MODELPART_CHOPPER_0001); mtx4LoadZRotation(M_BADTAU - chopper->gunrotx, &sp68); mtx4LoadYRotation(chopper->gunroty + 1.5707963705063f, &sp28); mtx00015be4(&sp28, &sp68, &spa8); @@ -9401,7 +9401,7 @@ void chopperInitMatrices(struct prop *prop) mtx4SetTranslation(&rodata->position.pos, &spa8); mtx00015be4(matrices, &spa8, &matrices[1]); - rodata = modelGetPartRodata(model->filedata, MODELPART_CHOPPER_0002); + rodata = modelGetPartRodata(model->definition, MODELPART_CHOPPER_0002); mtx4LoadXRotation(chopper->barrelrot, &spa8); mtx4SetTranslation(&rodata->position.pos, &spa8); mtx00015be4(&matrices[1], &spa8, &matrices[2]); @@ -9640,7 +9640,7 @@ void chopperIncrementBarrel(struct prop *chopperprop, bool firing) chopper->fireslotthing->unk01 = (chopper->fireslotthing->unk00 % 3) == 0; if (firing) { - rodata = modelGetPartRodata(model->filedata, MODELPART_CHOPPER_0001); + rodata = modelGetPartRodata(model->definition, MODELPART_CHOPPER_0001); gunaimy = targetprop->pos.y - 20.0f; gunpos.x = random() * random() * 0 * 30.0f + rodata->pos.x; @@ -9740,7 +9740,7 @@ void chopperIncrementBarrel(struct prop *chopperprop, bool firing) firing = false; } - node = modelGetPart(model->filedata, MODELPART_CHOPPER_GUNFLASH); + node = modelGetPart(model->definition, MODELPART_CHOPPER_GUNFLASH); if (node) { rwdata = modelGetNodeRwData(model, node); @@ -10718,7 +10718,7 @@ void dropshipUpdateInterior(struct prop *prop) struct defaultobj *obj = prop->obj; struct model *model = obj->model; - struct modelnode *node = modelGetPart(model->filedata, MODELPART_DROPSHIP_INTERIOR); + struct modelnode *node = modelGetPart(model->definition, MODELPART_DROPSHIP_INTERIOR); if (node) { union modelrwdata *data = modelGetNodeRwData(model, node); @@ -10757,7 +10757,7 @@ void weaponInitMatrices(struct prop *prop) Mtxf *mtxes = model->matrices; Mtxf *ptr = &mtxes[i]; - for (; i < model->filedata->nummatrices; i++) { + for (; i < model->definition->nummatrices; i++) { mtx4LoadIdentity(ptr); ptr++; } @@ -10779,19 +10779,19 @@ void hangingmonitorInitMatrices(struct prop *prop) Mtxf *matrices = model->matrices; union modelrodata *rodata; - rodata = modelGetPartRodata(model->filedata, MODELPART_0000); + rodata = modelGetPartRodata(model->definition, MODELPART_0000); mtx4LoadTranslation(&rodata->position.pos, &matrices[1]); mtx00015be0(matrices, &matrices[1]); - rodata = modelGetPartRodata(model->filedata, MODELPART_0001); + rodata = modelGetPartRodata(model->definition, MODELPART_0001); mtx4LoadTranslation(&rodata->position.pos, &matrices[2]); mtx00015be0(matrices, &matrices[2]); - rodata = modelGetPartRodata(model->filedata, MODELPART_0002); + rodata = modelGetPartRodata(model->definition, MODELPART_0002); mtx4LoadTranslation(&rodata->position.pos, &matrices[3]); mtx00015be0(matrices, &matrices[3]); - rodata = modelGetPartRodata(model->filedata, MODELPART_0003); + rodata = modelGetPartRodata(model->definition, MODELPART_0003); mtx4LoadTranslation(&rodata->position.pos, &matrices[4]); mtx00015be0(matrices, &matrices[4]); } @@ -10819,7 +10819,7 @@ void objInitMatrices(struct prop *prop) } else if (obj->type == OBJTYPE_HANGINGMONITORS) { hangingmonitorInitMatrices(prop); } else { - if (obj->model->filedata->nummatrices >= 2) { + if (obj->model->definition->nummatrices >= 2) { struct modelrenderdata thing = {NULL, 1, 3}; u32 stack; Mtxf sp28; @@ -11049,7 +11049,7 @@ s32 objTickPlayer(struct prop *prop) } sp556 = true; - sp476.unk10 = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf)); + sp476.unk10 = gfxAllocate(model->definition->nummatrices * sizeof(Mtxf)); sp476.unk00 = camGetWorldToScreenMtxf(); modelSetMatricesWithAnim(&sp476, model); @@ -11132,7 +11132,7 @@ s32 objTickPlayer(struct prop *prop) sp144 = floorf(model->anim->frame); for (i = sp148; i <= sp144; i++) { - anim00024b64(0, 0, model->filedata->skel, model->anim->animnum, i, &sp128, 0); + anim00024b64(0, 0, model->definition->skel, model->anim->animnum, i, &sp128, 0); sp116.x += sp128.x * 0.1f; sp112 = sp128.y * 0.1f; @@ -11147,7 +11147,7 @@ s32 objTickPlayer(struct prop *prop) mtx4MultMtx4(camGetWorldToScreenMtxf(), &sp248, &sp152); sp556 = true; - sp312.unk10 = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf)); + sp312.unk10 = gfxAllocate(model->definition->nummatrices * sizeof(Mtxf)); sp312.unk00 = &sp152; modelSetMatricesWithAnim(&sp312, model); @@ -11293,14 +11293,14 @@ s32 objTickPlayer(struct prop *prop) if (obj->type == OBJTYPE_FAN) { fanUpdateModel(prop); - } else if (obj->model->filedata->skel == &g_SkelDropship) { + } else if (obj->model->definition->skel == &g_SkelDropship) { dropshipUpdateInterior(prop); } if (sp556 == false) { - model->matrices = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf)); + model->matrices = gfxAllocate(model->definition->nummatrices * sizeof(Mtxf)); objInitMatrices(prop); - modelUpdateRelationsQuick(model, model->filedata->rootnode); + modelUpdateRelationsQuick(model, model->definition->rootnode); } prop->z = -model->matrices[0].m[3][2]; @@ -13342,7 +13342,7 @@ void objRenderProp(struct prop *prop, struct modelrenderdata *renderdata, bool x sp60 = 1; } - gdl = tvscreenRender(model, modelGetPart(model->filedata, MODELPART_0000), &monitor->screen, gdl, sp60, 1); + gdl = tvscreenRender(model, modelGetPart(model->definition, MODELPART_0000), &monitor->screen, gdl, sp60, 1); } } else if (obj->type == OBJTYPE_MULTIMONITOR) { if (renderdata->flags & 1) { @@ -13356,7 +13356,7 @@ void objRenderProp(struct prop *prop, struct modelrenderdata *renderdata, bool x sp60 = 1; } - gdl = tvscreenRender(model, modelGetPart(model->filedata, MODELPART_0000), &monitor->screens[0], gdl, sp60, 1); + gdl = tvscreenRender(model, modelGetPart(model->definition, MODELPART_0000), &monitor->screens[0], gdl, sp60, 1); if (obj->flags2 & OBJFLAG2_DRAWONTOP) { sp60 = 0; @@ -13366,9 +13366,9 @@ void objRenderProp(struct prop *prop, struct modelrenderdata *renderdata, bool x sp60 = 1; } - gdl = tvscreenRender(model, modelGetPart(model->filedata, MODELPART_0001), &monitor->screens[1], gdl, sp60, 1); - gdl = tvscreenRender(model, modelGetPart(model->filedata, MODELPART_0002), &monitor->screens[2], gdl, sp60, 1); - gdl = tvscreenRender(model, modelGetPart(model->filedata, MODELPART_0003), &monitor->screens[3], gdl, sp60, 1); + gdl = tvscreenRender(model, modelGetPart(model->definition, MODELPART_0001), &monitor->screens[1], gdl, sp60, 1); + gdl = tvscreenRender(model, modelGetPart(model->definition, MODELPART_0002), &monitor->screens[2], gdl, sp60, 1); + gdl = tvscreenRender(model, modelGetPart(model->definition, MODELPART_0003), &monitor->screens[3], gdl, sp60, 1); } } @@ -13442,9 +13442,9 @@ void objRenderProp(struct prop *prop, struct modelrenderdata *renderdata, bool x if (xlupass) { if (sp6c) { - player0f0c3320(model->matrices, model->filedata->nummatrices); + player0f0c3320(model->matrices, model->definition->nummatrices); } else { - mtxF2LBulk(model->matrices, model->filedata->nummatrices); + mtxF2LBulk(model->matrices, model->definition->nummatrices); } if ((obj->flags3 & (OBJFLAG3_SHOWSHIELD | OBJFLAG3_SHIELDHIT)) && objIsHealthy(obj)) { @@ -13798,19 +13798,19 @@ Gfx *objRender(struct prop *prop, Gfx *gdl, bool xlupass) return gdl; } -bool modelIsNodeNotTvscreen(struct modelfiledata *filedata, struct modelnode *node) +bool modelIsNodeNotTvscreen(struct modeldef *modeldef, struct modelnode *node) { - if (filedata->skel == &g_SkelTerminal) { - if (modelGetPart(filedata, MODELPART_TERMINAL_0000) == node) { + if (modeldef->skel == &g_SkelTerminal) { + if (modelGetPart(modeldef, MODELPART_TERMINAL_0000) == node) { return false; } } - if (filedata->skel == &g_SkelCiHub) { - if (modelGetPart(filedata, MODELPART_CIHUB_0000) == node - || modelGetPart(filedata, MODELPART_CIHUB_0001) == node - || modelGetPart(filedata, MODELPART_CIHUB_0002) == node - || modelGetPart(filedata, MODELPART_CIHUB_0003) == node) { + if (modeldef->skel == &g_SkelCiHub) { + if (modelGetPart(modeldef, MODELPART_CIHUB_0000) == node + || modelGetPart(modeldef, MODELPART_CIHUB_0001) == node + || modelGetPart(modeldef, MODELPART_CIHUB_0002) == node + || modelGetPart(modeldef, MODELPART_CIHUB_0003) == node) { return false; } } @@ -13835,7 +13835,7 @@ void objDeform(struct defaultobj *obj, s32 level) struct modelnode *node; struct modelnode *parent; struct model *model = obj->model; - struct modelfiledata *modeldef = model->filedata; + struct modeldef *modeldef = model->definition; volatile s32 salt; bool ok = true; f32 mult; @@ -15129,7 +15129,7 @@ void doorDestroyGlass(struct doorobj *door) union modelrwdata *rwdata; Mtxf matrix; - rodata = modelGetPartRodata(model->filedata, 2); + rodata = modelGetPartRodata(model->definition, 2); if (door->portalnum >= 0) { // @bug: Firing three shots at door glass is supposed to destroy it, @@ -15154,7 +15154,7 @@ void doorDestroyGlass(struct doorobj *door) SHARDTYPE_GLASS, prop); wallhitsFreeByProp(prop, 1); - node = modelGetPart(model->filedata, 1); + node = modelGetPart(model->definition, 1); rwdata = modelGetNodeRwData(model, node); rwdata->toggle.visible = false; } @@ -15169,8 +15169,8 @@ void cctvHandleLensShot(struct defaultobj *obj) Mtxf matrix; if (prop->flags & PROPFLAG_ONTHISSCREENTHISTICK) { - rodata = modelGetPartRodata(model->filedata, MODELPART_CCTV_0002); - sp7c = modelFindNodeMtx(model, modelGetPart(model->filedata, MODELPART_CCTV_LENS), 0); + rodata = modelGetPartRodata(model->definition, MODELPART_CCTV_0002); + sp7c = modelFindNodeMtx(model, modelGetPart(model->definition, MODELPART_CCTV_LENS), 0); mtx00015be4(camGetProjectionMtxF(), sp7c, &matrix); shardsCreate((struct coord *) matrix.m[3], matrix.m[0], matrix.m[1], matrix.m[2], @@ -15179,7 +15179,7 @@ void cctvHandleLensShot(struct defaultobj *obj) } wallhitsFreeByProp(prop, 1); - rwdata = modelGetNodeRwData(model, modelGetPart(model->filedata, MODELPART_CCTV_0003)); + rwdata = modelGetNodeRwData(model, modelGetPart(model->definition, MODELPART_CCTV_0003)); rwdata->toggle.visible = false; } @@ -15458,7 +15458,7 @@ void objDamage(struct defaultobj *obj, f32 damage, struct coord *pos, s32 weapon newcrate->base.modelnum = modelnum; newcrate->ammotype = i + 1; - if (objInitWithModelDef(&newcrate->base, g_ModelStates[modelnum].filedata)) { + if (objInitWithModelDef(&newcrate->base, g_ModelStates[modelnum].modeldef)) { propReparent(newcrate->base.prop, obj->prop); } @@ -15584,7 +15584,7 @@ void func0f0859a0(struct prop *prop, struct shotdata *shotdata) } if (obj->flags3 & OBJFLAG3_HOVERBEDSHIELD) { - node3 = modelGetPart(model->filedata, MODELPART_0067); + node3 = modelGetPart(model->definition, MODELPART_0067); if (node3 && func0f084594(model, node3, &shotdata->unk00, &shotdata->unk0c, &hitthing2, &sp90, &node4)) { if (lVar3 <= 0 || @@ -15610,8 +15610,8 @@ void func0f0859a0(struct prop *prop, struct shotdata *shotdata) if ((obj->flags & OBJFLAG_INVINCIBLE) == 0) { if (obj->type == OBJTYPE_GLASS || obj->type == OBJTYPE_TINTEDGLASS) { isnotglass = false; - } else if (obj->model->filedata->skel == &g_SkelWindowedDoor - && modelGetPart(obj->model->filedata, MODELPART_WINDOWEDDOOR_0003) == node2) { + } else if (obj->model->definition->skel == &g_SkelWindowedDoor + && modelGetPart(obj->model->definition, MODELPART_WINDOWEDDOOR_0003) == node2) { isnotglass = false; } } @@ -15759,7 +15759,7 @@ void objHit(struct shotdata *shotdata, struct hit *hit) && shotdata->gset.weaponnum != WEAPON_FARSIGHT) { if (hit->unk4c == 0) { struct prop *hitprop = hit->prop; - s8 iswindoweddoor = obj->model->filedata->skel == &g_SkelWindowedDoor ? true : false; + s8 iswindoweddoor = obj->model->definition->skel == &g_SkelWindowedDoor ? true : false; textureindex = WALLHITTEX_GLASS1 + (random() % 3); @@ -15791,8 +15791,8 @@ void objHit(struct shotdata *shotdata, struct hit *hit) spc4 = false; spcc = random() % surfacetype->numwallhittexes; - if ((obj->model->filedata->skel == &g_SkelWindowedDoor && hit->unk44 == modelGetPart(obj->model->filedata, MODELPART_WINDOWEDDOOR_0003)) - || (obj->model->filedata->skel == &g_SkelCctv && hit->unk44 == modelGetPart(obj->model->filedata, MODELPART_CCTV_LENS))) { + if ((obj->model->definition->skel == &g_SkelWindowedDoor && hit->unk44 == modelGetPart(obj->model->definition, MODELPART_WINDOWEDDOOR_0003)) + || (obj->model->definition->skel == &g_SkelCctv && hit->unk44 == modelGetPart(obj->model->definition, MODELPART_CCTV_LENS))) { spcb = true; } @@ -15823,8 +15823,8 @@ void objHit(struct shotdata *shotdata, struct hit *hit) damage *= g_AutogunDamageRxScale; } else if (obj->type == OBJTYPE_CCTV) { // Leftover from GE: shots to a CCTV's lens is a one hit kill - if (obj->model->filedata->skel == &g_SkelCctv) { - if (modelGetPart(obj->model->filedata, MODELPART_CCTV_LENS) == hit->unk44) { + if (obj->model->definition->skel == &g_SkelCctv) { + if (modelGetPart(obj->model->definition, MODELPART_CCTV_LENS) == hit->unk44) { damage *= 100.0f; cctvHandleLensShot(obj); } @@ -15841,7 +15841,7 @@ void objHit(struct shotdata *shotdata, struct hit *hit) objTakeGunfire(obj, damage, &sp110, shotdata->gset.weaponnum, g_Vars.currentplayernum); - if (obj->model->filedata->skel == &g_SkelWindowedDoor && !hit->unk4c) { + if (obj->model->definition->skel == &g_SkelWindowedDoor && !hit->unk4c) { struct doorobj *door = (struct doorobj *)obj; door->glasshits++; @@ -17665,7 +17665,7 @@ bool func0f0899dc(struct prop *prop, struct coord *arg1, f32 *arg2, f32 *arg3) void modelFreeVertices(s32 vtxstoretype, struct model *model) { - struct modelfiledata *modeldef = model->filedata; + struct modeldef *modeldef = model->definition; struct modelnode *node = modeldef->rootnode; while (node) { @@ -17724,10 +17724,10 @@ void modelFreeVertices(s32 vtxstoretype, struct model *model) } } -struct prop *hatApplyToChr(struct hatobj *hat, struct chrdata *chr, struct modelfiledata *filedata, struct prop *prop, struct model *model) +struct prop *hatApplyToChr(struct hatobj *hat, struct chrdata *chr, struct modeldef *modeldef, struct prop *prop, struct model *model) { - if (chr->model->filedata->skel == &g_SkelChr) { - prop = objInit(&hat->base, filedata, prop, model); + if (chr->model->definition->skel == &g_SkelChr) { + prop = objInit(&hat->base, modeldef, prop, model); if (prop && hat->base.model) { f32 scale = hat->base.extrascale * (1.0f / 256.0f); @@ -17735,7 +17735,7 @@ struct prop *hatApplyToChr(struct hatobj *hat, struct chrdata *chr, struct model modelSetScale(hat->base.model, scale * hat->base.model->scale); hat->base.model->attachedtomodel = chr->model; - hat->base.model->attachedtonode = modelGetPart(chr->model->filedata, MODELPART_CHR_0006); + hat->base.model->attachedtonode = modelGetPart(chr->model->definition, MODELPART_CHR_0006); propReparent(prop, chr->prop); @@ -17755,7 +17755,7 @@ void hatLoadAndApplyToChr(struct hatobj *hat, struct chrdata *chr) setupLoadModeldef(modelnum); - hatApplyToChr(hat, chr, g_ModelStates[modelnum].filedata, NULL, NULL); + hatApplyToChr(hat, chr, g_ModelStates[modelnum].modeldef, NULL, NULL); } void hatAssignToChr(struct hatobj *hat, struct chrdata *chr) @@ -17765,23 +17765,23 @@ void hatAssignToChr(struct hatobj *hat, struct chrdata *chr) struct prop *hatCreateForChr(struct chrdata *chr, s32 modelnum, u32 flags) { - struct modelfiledata *filedata; + struct modeldef *modeldef; struct prop *prop; struct model *model; struct hatobj *obj; setupLoadModeldef(modelnum); - filedata = g_ModelStates[modelnum].filedata; + modeldef = g_ModelStates[modelnum].modeldef; prop = propAllocate(); - model = modelmgrInstantiateModelWithoutAnim(filedata); - obj = hatCreate(prop == NULL, model == NULL, filedata); + model = modelmgrInstantiateModelWithoutAnim(modeldef); + obj = hatCreate(prop == NULL, model == NULL, modeldef); if (prop == NULL) { prop = propAllocate(); } if (model == NULL) { - model = modelmgrInstantiateModelWithoutAnim(filedata); + model = modelmgrInstantiateModelWithoutAnim(modeldef); } if (obj && prop && model) { @@ -17816,7 +17816,7 @@ struct prop *hatCreateForChr(struct chrdata *chr, s32 modelnum, u32 flags) obj->base.flags = flags | OBJFLAG_ASSIGNEDTOCHR; obj->base.pad = chr->chrnum; - prop = hatApplyToChr(obj, chr, filedata, prop, model); + prop = hatApplyToChr(obj, chr, modeldef, prop, model); } else { if (model) { modelmgrFreeModel(model); @@ -17836,7 +17836,7 @@ struct prop *hatCreateForChr(struct chrdata *chr, s32 modelnum, u32 flags) return prop; } -struct weaponobj *weaponCreate(bool musthaveprop, bool musthavemodel, struct modelfiledata *filedata) +struct weaponobj *weaponCreate(bool musthaveprop, bool musthavemodel, struct modeldef *modeldef) { s32 i; struct weaponobj *tmp; @@ -17875,7 +17875,7 @@ struct weaponobj *weaponCreate(bool musthaveprop, bool musthavemodel, struct mod } if (usable) { - if (!musthavemodel || modelmgrCanSlotFitRwdata(g_WeaponSlots[i].base.model, filedata)) { + if (!musthavemodel || modelmgrCanSlotFitRwdata(g_WeaponSlots[i].base.model, modeldef)) { if ((g_WeaponSlots[i].base.prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0 && sp40 < 0) { sp40 = i; } @@ -17898,7 +17898,7 @@ struct weaponobj *weaponCreate(bool musthaveprop, bool musthavemodel, struct mod return &g_WeaponSlots[sp44]; } - tmp = (struct weaponobj *)setupFindObjForReuse(OBJTYPE_WEAPON, (struct defaultobj **)&sp4c, (struct defaultobj **)&sp48, musthaveprop, musthavemodel, filedata); + tmp = (struct weaponobj *)setupFindObjForReuse(OBJTYPE_WEAPON, (struct defaultobj **)&sp4c, (struct defaultobj **)&sp48, musthaveprop, musthavemodel, modeldef); if (tmp) { return tmp; @@ -17946,7 +17946,7 @@ struct weaponobj *func0f08a364(void) return weaponCreate(false, false, NULL); } -struct hatobj *hatCreate(bool musthaveprop, bool musthavemodel, struct modelfiledata *filedata) +struct hatobj *hatCreate(bool musthaveprop, bool musthavemodel, struct modeldef *modeldef) { s32 i; struct hatobj *tmp; @@ -17964,7 +17964,7 @@ struct hatobj *hatCreate(bool musthaveprop, bool musthavemodel, struct modelfile } } else if ((g_HatSlots[i].base.hidden & OBJHFLAG_PROJECTILE) == 0 && g_HatSlots[i].base.prop->parent == NULL - && (!musthavemodel || modelmgrCanSlotFitRwdata(g_HatSlots[i].base.model, filedata))) { + && (!musthavemodel || modelmgrCanSlotFitRwdata(g_HatSlots[i].base.model, modeldef))) { if ((g_HatSlots[i].base.prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0 && sp40 < 0) { sp40 = i; } @@ -17986,7 +17986,7 @@ struct hatobj *hatCreate(bool musthaveprop, bool musthavemodel, struct modelfile return &g_HatSlots[sp44]; } - tmp = (struct hatobj *)setupFindObjForReuse(OBJTYPE_HAT, (struct defaultobj **)&sp4c, (struct defaultobj **)&sp48, musthaveprop, musthavemodel, filedata); + tmp = (struct hatobj *)setupFindObjForReuse(OBJTYPE_HAT, (struct defaultobj **)&sp4c, (struct defaultobj **)&sp48, musthaveprop, musthavemodel, modeldef); if (tmp) { return tmp; @@ -18243,9 +18243,9 @@ void propweaponSetDual(struct weaponobj *weapon1, struct weaponobj *weapon2) weapon2->dualweapon = weapon1; } -struct prop *func0f08adc8(struct weaponobj *weapon, struct modelfiledata *filedata, struct prop *prop, struct model *model) +struct prop *func0f08adc8(struct weaponobj *weapon, struct modeldef *modeldef, struct prop *prop, struct model *model) { - prop = objInit(&weapon->base, filedata, prop, model); + prop = objInit(&weapon->base, modeldef, prop, model); if (prop) { prop->type = PROPTYPE_WEAPON; @@ -18255,9 +18255,9 @@ struct prop *func0f08adc8(struct weaponobj *weapon, struct modelfiledata *fileda return prop; } -struct prop *func0f08ae0c(struct weaponobj *weapon, struct modelfiledata *filedata) +struct prop *func0f08ae0c(struct weaponobj *weapon, struct modeldef *modeldef) { - struct prop *prop = objInitWithModelDef(&weapon->base, filedata); + struct prop *prop = objInitWithModelDef(&weapon->base, modeldef); if (prop) { prop->type = PROPTYPE_WEAPON; @@ -18292,13 +18292,13 @@ bool chrEquipWeapon(struct weaponobj *weapon, struct chrdata *chr) } if (!chr->weapons_held[handnum]) { - if (chr->model->filedata->skel == &g_SkelChr) { + if (chr->model->definition->skel == &g_SkelChr) { weapon->base.model->attachedtomodel = chr->model; if (handnum == HAND_RIGHT) { - weapon->base.model->attachedtonode = modelGetPart(chr->model->filedata, MODELPART_CHR_RIGHTHAND); + weapon->base.model->attachedtonode = modelGetPart(chr->model->definition, MODELPART_CHR_RIGHTHAND); } else { - weapon->base.model->attachedtonode = modelGetPart(chr->model->filedata, MODELPART_CHR_LEFTHAND); + weapon->base.model->attachedtonode = modelGetPart(chr->model->definition, MODELPART_CHR_LEFTHAND); } chr->weapons_held[handnum] = weapon->base.prop; @@ -18306,13 +18306,13 @@ bool chrEquipWeapon(struct weaponobj *weapon, struct chrdata *chr) if ((weapon->base.flags & OBJFLAG_80000000) && chr->weapons_held[1 - handnum]) { propweaponSetDual(weapon, chr->weapons_held[1 - handnum]->weapon); } - } else if (chr->model->filedata->skel == &g_SkelSkedar) { + } else if (chr->model->definition->skel == &g_SkelSkedar) { weapon->base.model->attachedtomodel = chr->model; if (handnum == HAND_RIGHT) { - weapon->base.model->attachedtonode = modelGetPart(chr->model->filedata, MODELPART_SKEDAR_RIGHTHAND); + weapon->base.model->attachedtonode = modelGetPart(chr->model->definition, MODELPART_SKEDAR_RIGHTHAND); } else { - weapon->base.model->attachedtonode = modelGetPart(chr->model->filedata, MODELPART_SKEDAR_LEFTHAND); + weapon->base.model->attachedtonode = modelGetPart(chr->model->definition, MODELPART_SKEDAR_LEFTHAND); } chr->weapons_held[handnum] = weapon->base.prop; @@ -18334,9 +18334,9 @@ bool chrEquipWeapon(struct weaponobj *weapon, struct chrdata *chr) return true; } -struct prop *func0f08b108(struct weaponobj *weapon, struct chrdata *chr, struct modelfiledata *filedata, struct prop *prop, struct model *model) +struct prop *func0f08b108(struct weaponobj *weapon, struct chrdata *chr, struct modeldef *modeldef, struct prop *prop, struct model *model) { - prop = func0f08adc8(weapon, filedata, prop, model); + prop = func0f08adc8(weapon, modeldef, prop, model); if (prop && weapon->base.model) { f32 scale = weapon->base.extrascale * (1.0f / 256.0f); @@ -18373,7 +18373,7 @@ void func0f08b208(struct weaponobj *weapon, struct chrdata *chr) s32 modelnum = weapon->base.modelnum; setupLoadModeldef(modelnum); - func0f08b108(weapon, chr, g_ModelStates[modelnum].filedata, 0, 0); + func0f08b108(weapon, chr, g_ModelStates[modelnum].modeldef, 0, 0); } void func0f08b25c(struct weaponobj *weapon, struct chrdata *chr) @@ -18383,7 +18383,7 @@ void func0f08b25c(struct weaponobj *weapon, struct chrdata *chr) struct autogunobj *laptopDeploy(s32 modelnum, struct gset *gset, struct chrdata *chr) { - struct modelfiledata *filedata; + struct modeldef *modeldef; struct prop *prop; struct model *model; struct autogunobj *laptop = NULL; @@ -18397,7 +18397,7 @@ struct autogunobj *laptopDeploy(s32 modelnum, struct gset *gset, struct chrdata if (index >= 0 && index < g_MaxThrownLaptops) { setupLoadModeldef(modelnum); - filedata = g_ModelStates[modelnum].filedata; + modeldef = g_ModelStates[modelnum].modeldef; laptop = &g_ThrownLaptops[index]; if (laptop->base.prop) { @@ -18410,14 +18410,14 @@ struct autogunobj *laptopDeploy(s32 modelnum, struct gset *gset, struct chrdata } prop = propAllocate(); - model = modelmgrInstantiateModelWithoutAnim(filedata); + model = modelmgrInstantiateModelWithoutAnim(modeldef); if (prop == NULL) { prop = propAllocate(); } if (model == NULL) { - model = modelmgrInstantiateModelWithoutAnim(filedata); + model = modelmgrInstantiateModelWithoutAnim(modeldef); } if (laptop && prop && model) { @@ -18449,7 +18449,7 @@ struct autogunobj *laptopDeploy(s32 modelnum, struct gset *gset, struct chrdata laptop->base = tmp; laptop->base.modelnum = modelnum; - prop = objInit(&laptop->base, filedata, prop, model); + prop = objInit(&laptop->base, modeldef, prop, model); laptop->targetpad = -1; laptop->aimdist = 5000; @@ -18527,14 +18527,14 @@ struct autogunobj *laptopDeploy(s32 modelnum, struct gset *gset, struct chrdata struct weaponobj *weaponCreateProjectileFromGset(s32 modelnum, struct gset *gset, struct chrdata *chr) { - struct modelfiledata *modeldef; + struct modeldef *modeldef; struct prop *prop; struct model *model; struct weaponobj *weapon; setupLoadModeldef(modelnum); - modeldef = g_ModelStates[modelnum].filedata; + modeldef = g_ModelStates[modelnum].modeldef; prop = propAllocate(); model = modelmgrInstantiateModelWithoutAnim(modeldef); @@ -18656,21 +18656,21 @@ void weaponDeleteFromChr(struct chrdata *chr, s32 hand) } } -struct prop *weaponCreateForChr(struct chrdata *chr, s32 modelnum, s32 weaponnum, u32 flags, struct weaponobj *obj, struct modelfiledata *filedata) +struct prop *weaponCreateForChr(struct chrdata *chr, s32 modelnum, s32 weaponnum, u32 flags, struct weaponobj *obj, struct modeldef *modeldef) { struct prop *prop; struct model *model; - if (filedata == NULL) { + if (modeldef == NULL) { setupLoadModeldef(modelnum); - filedata = g_ModelStates[modelnum].filedata; + modeldef = g_ModelStates[modelnum].modeldef; } prop = propAllocate(); - model = modelmgrInstantiateModelWithoutAnim(filedata); + model = modelmgrInstantiateModelWithoutAnim(modeldef); if (obj == NULL) { - obj = weaponCreate(prop == NULL, model == NULL, filedata); + obj = weaponCreate(prop == NULL, model == NULL, modeldef); } if (prop == NULL) { @@ -18678,7 +18678,7 @@ struct prop *weaponCreateForChr(struct chrdata *chr, s32 modelnum, s32 weaponnum } if (model == NULL) { - model = modelmgrInstantiateModelWithoutAnim(filedata); + model = modelmgrInstantiateModelWithoutAnim(modeldef); } if (obj && prop && model) { @@ -18725,7 +18725,7 @@ struct prop *weaponCreateForChr(struct chrdata *chr, s32 modelnum, s32 weaponnum obj->base.flags = flags | OBJFLAG_ASSIGNEDTOCHR; obj->base.pad = chr->chrnum; - prop = func0f08b108(obj, chr, filedata, prop, model); + prop = func0f08b108(obj, chr, modeldef, prop, model); } else { if (model) { modelmgrFreeModel(model); @@ -18773,8 +18773,8 @@ void weaponSetGunfireVisible(struct prop *prop, bool visible, s16 room) if (obj && obj->type == OBJTYPE_WEAPON) { struct model *model = obj->model; - if (model && model->filedata->skel == &g_SkelChrGun) { - node1 = modelGetPart(model->filedata, MODELPART_CHRGUN_GUNFIRE); + if (model && model->definition->skel == &g_SkelChrGun) { + node1 = modelGetPart(model->definition, MODELPART_CHRGUN_GUNFIRE); if (node1) { rwdata1 = modelGetNodeRwData(model, node1); @@ -18785,7 +18785,7 @@ void weaponSetGunfireVisible(struct prop *prop, bool visible, s16 room) } } - node2 = modelGetPart(model->filedata, MODELPART_CHRGUN_0002); + node2 = modelGetPart(model->definition, MODELPART_CHRGUN_0002); if (node2) { rwdata2 = modelGetNodeRwData(model, node2); @@ -18809,15 +18809,15 @@ bool weaponIsGunfireVisible(struct prop *prop) struct model *model = obj->model; struct modelnode *node; - if (model && model->filedata->skel == &g_SkelChrGun) { - node = modelGetPart(model->filedata, MODELPART_CHRGUN_GUNFIRE); + if (model && model->definition->skel == &g_SkelChrGun) { + node = modelGetPart(model->definition, MODELPART_CHRGUN_GUNFIRE); if (node) { struct modelrwdata_chrgunfire *rwdata = modelGetNodeRwData(model, node); return rwdata->visible; } - node = modelGetPart(model->filedata, MODELPART_CHRGUN_0002); + node = modelGetPart(model->definition, MODELPART_CHRGUN_0002); if (node) { struct modelrwdata_toggle *rwdata = modelGetNodeRwData(model, node); @@ -21347,8 +21347,8 @@ void projectileCreate(struct prop *fromprop, struct fireslotthing *arg1, struct void objSetModelPartVisible(struct defaultobj *obj, s32 partnum, bool visible) { - if (obj && obj->model && obj->model->filedata) { - struct modelnode *node = modelGetPart(obj->model->filedata, partnum); + if (obj && obj->model && obj->model->definition) { + struct modelnode *node = modelGetPart(obj->model->definition, partnum); if (node) { union modelrwdata *rwdata = modelGetNodeRwData(obj->model, node); diff --git a/src/game/setup.c b/src/game/setup.c index 415ae1150..9e144733b 100644 --- a/src/game/setup.c +++ b/src/game/setup.c @@ -409,9 +409,9 @@ void setupCreateObject(struct defaultobj *obj, s32 cmdindex) if (obj->flags & OBJFLAG_INSIDEANOTHEROBJ) { if (obj->type == OBJTYPE_WEAPON) { - func0f08ae0c((struct weaponobj *)obj, g_ModelStates[modelnum].filedata); + func0f08ae0c((struct weaponobj *)obj, g_ModelStates[modelnum].modeldef); } else { - objInitWithModelDef(obj, g_ModelStates[modelnum].filedata); + objInitWithModelDef(obj, g_ModelStates[modelnum].modeldef); } modelSetScale(obj->model, obj->model->scale * scale); @@ -423,9 +423,9 @@ void setupCreateObject(struct defaultobj *obj, s32 cmdindex) if (chr && chr->prop && chr->model) { if (obj->type == OBJTYPE_WEAPON) { - prop = func0f08ae0c((struct weaponobj *)obj, g_ModelStates[modelnum].filedata); + prop = func0f08ae0c((struct weaponobj *)obj, g_ModelStates[modelnum].modeldef); } else { - prop = objInitWithModelDef(obj, g_ModelStates[modelnum].filedata); + prop = objInitWithModelDef(obj, g_ModelStates[modelnum].modeldef); } modelSetScale(obj->model, obj->model->scale * scale); @@ -434,9 +434,9 @@ void setupCreateObject(struct defaultobj *obj, s32 cmdindex) } else { if (obj->pad < 0) { if (obj->type == OBJTYPE_WEAPON) { - func0f08ae0c((struct weaponobj *)obj, g_ModelStates[modelnum].filedata); + func0f08ae0c((struct weaponobj *)obj, g_ModelStates[modelnum].modeldef); } else { - objInitWithModelDef(obj, g_ModelStates[modelnum].filedata); + objInitWithModelDef(obj, g_ModelStates[modelnum].modeldef); } modelSetScale(obj->model, obj->model->scale * scale); @@ -473,7 +473,7 @@ void setupCreateObject(struct defaultobj *obj, s32 cmdindex) } if (obj->type == OBJTYPE_WEAPON) { - prop2 = func0f08ae0c((struct weaponobj *)obj, g_ModelStates[modelnum].filedata); + prop2 = func0f08ae0c((struct weaponobj *)obj, g_ModelStates[modelnum].modeldef); } else { prop2 = objInitWithAutoModel(obj); } @@ -798,7 +798,7 @@ void setupCreateCctv(struct cctvobj *cctv, s32 cmdindex) if (cctv->lookatpadnum >= 0) { struct coord lenspos; - union modelrodata *lens = modelGetPartRodata(obj->model->filedata, MODELPART_CCTV_CASING); + union modelrodata *lens = modelGetPartRodata(obj->model->definition, MODELPART_CCTV_CASING); struct pad pad; f32 xdiff; f32 ydiff; @@ -936,13 +936,13 @@ void setupCreateSingleMonitor(struct singlemonitorobj *monitor, s32 cmdindex) monitor->base.model->attachedtomodel = owner->model; if (monitor->ownerpart == MODELPART_0000) { - monitor->base.model->attachedtonode = modelGetPart(owner->model->filedata, MODELPART_0000); + monitor->base.model->attachedtonode = modelGetPart(owner->model->definition, MODELPART_0000); } else if (monitor->ownerpart == MODELPART_0001) { - monitor->base.model->attachedtonode = modelGetPart(owner->model->filedata, MODELPART_0001); + monitor->base.model->attachedtonode = modelGetPart(owner->model->definition, MODELPART_0001); } else if (monitor->ownerpart == MODELPART_0002) { - monitor->base.model->attachedtonode = modelGetPart(owner->model->filedata, MODELPART_0002); + monitor->base.model->attachedtonode = modelGetPart(owner->model->definition, MODELPART_0002); } else { - monitor->base.model->attachedtonode = modelGetPart(owner->model->filedata, MODELPART_0003); + monitor->base.model->attachedtonode = modelGetPart(owner->model->definition, MODELPART_0003); } propReparent(prop, owner->prop); @@ -1098,7 +1098,7 @@ void setupCreateDoor(struct doorobj *door, s32 cmdindex) f32 zscale; struct modelrodata_bbox *bbox; - bbox = modelFileDataFindBboxRodata(g_ModelStates[modelnum].filedata); + bbox = modeldefFindBboxRodata(g_ModelStates[modelnum].modeldef); mtx00016d58(&sp110, 0, 0, 0, -pad.look.x, -pad.look.y, -pad.look.z, @@ -1307,7 +1307,7 @@ void setupLoadFiles(s32 stagenum) g_DoorScale = 1; for (i = 0; i < NUM_MODELS; i++) { - g_ModelStates[i].filedata = NULL; + g_ModelStates[i].modeldef = NULL; } if (stagenum < STAGE_TITLE) { @@ -1654,20 +1654,20 @@ void setupCreateProps(s32 stagenum) setupLoadModeldef(modelnum); modelstate = &g_ModelStates[modelnum]; - if (modelstate->filedata) { - if (modelGetPartRodata(modelstate->filedata, 1)) { + if (modelstate->modeldef) { + if (modelGetPartRodata(modelstate->modeldef, 1)) { obj->geocount++; } - if (modelGetPartRodata(modelstate->filedata, 2)) { + if (modelGetPartRodata(modelstate->modeldef, 2)) { obj->geocount++; } - if (modelGetPartRodata(modelstate->filedata, 3)) { + if (modelGetPartRodata(modelstate->modeldef, 3)) { obj->geocount++; } - if (modelGetPartRodata(modelstate->filedata, 4)) { + if (modelGetPartRodata(modelstate->modeldef, 4)) { obj->geocount++; } - if (modelGetPartRodata(modelstate->filedata, 6)) { + if (modelGetPartRodata(modelstate->modeldef, 6)) { obj->geocount++; } } @@ -1824,7 +1824,7 @@ void setupCreateProps(s32 stagenum) setupCreateObject(obj, index); if (obj->model) { - struct modelnode *node = modelGetPart(obj->model->filedata, 5); + struct modelnode *node = modelGetPart(obj->model->definition, 5); if (node) { union modelrwdata *rwdata = modelGetNodeRwData(obj->model, node); diff --git a/src/game/setuputils.c b/src/game/setuputils.c index 954e22a9d..6ababbdda 100644 --- a/src/game/setuputils.c +++ b/src/game/setuputils.c @@ -153,9 +153,9 @@ u32 setupGetCmdIndexByProp(struct prop *prop) bool setupLoadModeldef(s32 modelnum) { - if (g_ModelStates[modelnum].filedata == NULL) { - g_ModelStates[modelnum].filedata = modeldefLoadToNew(g_ModelStates[modelnum].fileid); - modelAllocateRwData(g_ModelStates[modelnum].filedata); + if (g_ModelStates[modelnum].modeldef == NULL) { + g_ModelStates[modelnum].modeldef = modeldefLoadToNew(g_ModelStates[modelnum].fileid); + modelAllocateRwData(g_ModelStates[modelnum].modeldef); return true; } @@ -301,7 +301,7 @@ struct defaultobj *setupGetObjByCmdIndex(u32 cmdindex) * hat caller is unreachable because hats don't exist in PD. So it's only used * for weapons which means the candidate logic isn't used. */ -struct defaultobj *setupFindObjForReuse(s32 wanttype, struct defaultobj **offscreenobjptr, struct defaultobj **anyobjptr, bool musthaveprop, bool musthavemodel, struct modelfiledata *filedata) +struct defaultobj *setupFindObjForReuse(s32 wanttype, struct defaultobj **offscreenobjptr, struct defaultobj **anyobjptr, bool musthaveprop, bool musthavemodel, struct modeldef *modeldef) { struct defaultobj *offscreenobj = NULL; struct defaultobj *anyobj = NULL; @@ -324,7 +324,7 @@ struct defaultobj *setupFindObjForReuse(s32 wanttype, struct defaultobj **offscr && (obj->flags & OBJFLAG_00800000) == 0 #endif && obj->prop->parent == NULL - && (!musthavemodel || modelmgrCanSlotFitRwdata(obj->model, filedata))) { + && (!musthavemodel || modelmgrCanSlotFitRwdata(obj->model, modeldef))) { if (offscreenobj == NULL && (obj->prop->flags & (PROPFLAG_ONTHISSCREENTHISTICK | PROPFLAG_ONANYSCREENTHISTICK | PROPFLAG_ONANYSCREENPREVTICK)) == 0) { offscreenobj = obj; } diff --git a/src/game/title.c b/src/game/title.c index e81828968..6c20d3cf1 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -556,39 +556,39 @@ void titleInitPdLogo(void) { struct coord coord = {0, 0, 0}; - g_ModelStates[MODEL_NLOGO].filedata = modeldefLoad(g_ModelStates[MODEL_NLOGO].fileid, nextaddr, 0x47800, 0); + g_ModelStates[MODEL_NLOGO].modeldef = modeldefLoad(g_ModelStates[MODEL_NLOGO].fileid, nextaddr, 0x47800, 0); size = ALIGN64(fileGetLoadedSize(g_ModelStates[MODEL_NLOGO].fileid)); nextaddr += size; remaining = 0x47800 - size; - modelAllocateRwData(g_ModelStates[MODEL_NLOGO].filedata); + modelAllocateRwData(g_ModelStates[MODEL_NLOGO].modeldef); - g_TitleModel = modelmgrInstantiateModelWithAnim(g_ModelStates[MODEL_NLOGO].filedata); + g_TitleModel = modelmgrInstantiateModelWithAnim(g_ModelStates[MODEL_NLOGO].modeldef); modelSetScale(g_TitleModel, 1); modelSetRootPosition(g_TitleModel, &coord); } { struct coord coord = {0, 0, 0}; - g_ModelStates[MODEL_NLOGO2].filedata = modeldefLoad(g_ModelStates[MODEL_NLOGO2].fileid, nextaddr, remaining, 0); + g_ModelStates[MODEL_NLOGO2].modeldef = modeldefLoad(g_ModelStates[MODEL_NLOGO2].fileid, nextaddr, remaining, 0); size = ALIGN64(fileGetLoadedSize(g_ModelStates[MODEL_NLOGO2].fileid)); nextaddr += size; remaining -= size; - modelAllocateRwData(g_ModelStates[MODEL_NLOGO2].filedata); + modelAllocateRwData(g_ModelStates[MODEL_NLOGO2].modeldef); - g_TitleModelNLogo2 = modelmgrInstantiateModelWithAnim(g_ModelStates[MODEL_NLOGO2].filedata); + g_TitleModelNLogo2 = modelmgrInstantiateModelWithAnim(g_ModelStates[MODEL_NLOGO2].modeldef); modelSetScale(g_TitleModelNLogo2, 1); modelSetRootPosition(g_TitleModelNLogo2, &coord); } { struct coord coord = {0, 0, 0}; - g_ModelStates[MODEL_PDTWO].filedata = modeldefLoad(g_ModelStates[MODEL_PDTWO].fileid, nextaddr, remaining, 0); + g_ModelStates[MODEL_PDTWO].modeldef = modeldefLoad(g_ModelStates[MODEL_PDTWO].fileid, nextaddr, remaining, 0); size = ALIGN64(fileGetLoadedSize(g_ModelStates[MODEL_PDTWO].fileid)); nextaddr += size; remaining -= size; - modelAllocateRwData(g_ModelStates[MODEL_PDTWO].filedata); + modelAllocateRwData(g_ModelStates[MODEL_PDTWO].modeldef); - g_TitleModelPdTwo = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_PDTWO].filedata); + g_TitleModelPdTwo = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_PDTWO].modeldef); modelSetScale(g_TitleModelPdTwo, 1); modelSetRootPosition(g_TitleModelPdTwo, &coord); } @@ -596,26 +596,26 @@ void titleInitPdLogo(void) #if VERSION == VERSION_JPN_FINAL { struct coord coord = {0, 0, 0}; - g_ModelStates[MODEL_JPNLOGO].filedata = modeldefLoad(g_ModelStates[MODEL_JPNLOGO].fileid, nextaddr, remaining, 0); + g_ModelStates[MODEL_JPNLOGO].modeldef = modeldefLoad(g_ModelStates[MODEL_JPNLOGO].fileid, nextaddr, remaining, 0); size = ALIGN64(fileGetLoadedSize(g_ModelStates[MODEL_JPNLOGO].fileid)); nextaddr += size; remaining -= size; - modelAllocateRwData(g_ModelStates[MODEL_JPNLOGO].filedata); + modelAllocateRwData(g_ModelStates[MODEL_JPNLOGO].modeldef); - g_TitleModelJpnLogo1 = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_JPNLOGO].filedata); - g_TitleModelJpnLogo2 = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_JPNLOGO].filedata); + g_TitleModelJpnLogo1 = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_JPNLOGO].modeldef); + g_TitleModelJpnLogo2 = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_JPNLOGO].modeldef); modelSetScale(g_TitleModelJpnLogo1, 1); modelSetScale(g_TitleModelJpnLogo2, 1); modelSetRootPosition(g_TitleModelJpnLogo1, &coord); modelSetRootPosition(g_TitleModelJpnLogo2, &coord); - g_ModelStates[MODEL_JPNPD].filedata = modeldefLoad(g_ModelStates[MODEL_JPNPD].fileid, nextaddr, remaining, 0); + g_ModelStates[MODEL_JPNPD].modeldef = modeldefLoad(g_ModelStates[MODEL_JPNPD].fileid, nextaddr, remaining, 0); size = ALIGN64(fileGetLoadedSize(g_ModelStates[MODEL_JPNPD].fileid)); nextaddr += size; remaining -= size; - modelAllocateRwData(g_ModelStates[MODEL_JPNPD].filedata); + modelAllocateRwData(g_ModelStates[MODEL_JPNPD].modeldef); - g_TitleModelJpnPd = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_JPNPD].filedata); + g_TitleModelJpnPd = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_JPNPD].modeldef); modelSetScale(g_TitleModelJpnPd, 1); modelSetRootPosition(g_TitleModelJpnPd, &coord); } @@ -623,19 +623,19 @@ void titleInitPdLogo(void) { struct coord coord = {0, 0, 0}; - g_ModelStates[MODEL_PDTHREE].filedata = modeldefLoad(g_ModelStates[MODEL_PDTHREE].fileid, nextaddr, remaining, 0); + g_ModelStates[MODEL_PDTHREE].modeldef = modeldefLoad(g_ModelStates[MODEL_PDTHREE].fileid, nextaddr, remaining, 0); size = ALIGN64(fileGetLoadedSize(g_ModelStates[MODEL_PDTHREE].fileid)); nextaddr += size; remaining -= size; - modelAllocateRwData(g_ModelStates[MODEL_PDTHREE].filedata); + modelAllocateRwData(g_ModelStates[MODEL_PDTHREE].modeldef); - g_TitleModelPdThree = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_PDTHREE].filedata); + g_TitleModelPdThree = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_PDTHREE].modeldef); modelSetScale(g_TitleModelPdThree, 1); modelSetRootPosition(g_TitleModelPdThree, &coord); } { - struct modelrodata_dl *rodata = (struct modelrodata_dl *)modelGetPartRodata(g_ModelStates[MODEL_PDTWO].filedata, MODELPART_LOGO_0002); + struct modelrodata_dl *rodata = (struct modelrodata_dl *)modelGetPartRodata(g_ModelStates[MODEL_PDTWO].modeldef, MODELPART_LOGO_0002); size = ALIGN8(rodata->numvertices * sizeof(struct gfxvtx)); @@ -760,10 +760,10 @@ Gfx *titleRenderPdLogoModel(Gfx *gdl, struct model *model, bool arg2, f32 arg3, struct colour *s2; Mtxf sp6c; - tmp = modelGetNodeRwData(model, modelGetPart(model->filedata, MODELPART_LOGO_0000)); + tmp = modelGetNodeRwData(model, modelGetPart(model->definition, MODELPART_LOGO_0000)); tmp->toggle.visible = arg2; - tmp = modelGetNodeRwData(model, modelGetPart(model->filedata, MODELPART_LOGO_0001)); + tmp = modelGetNodeRwData(model, modelGetPart(model->definition, MODELPART_LOGO_0001)); tmp->toggle.visible = !arg2; s6 = arg3 * 65536.0f; @@ -804,17 +804,17 @@ Gfx *titleRenderPdLogoModel(Gfx *gdl, struct model *model, bool arg2, f32 arg3, for (i = 0; i < 4; i++) { if (i == 0) { - node1 = modelGetPart(model->filedata, MODELPART_LOGO_0002); - node2 = modelGetPart(model->filedata, MODELPART_LOGO_0003); + node1 = modelGetPart(model->definition, MODELPART_LOGO_0002); + node2 = modelGetPart(model->definition, MODELPART_LOGO_0003); } else if (i == 1) { - node1 = modelGetPart(model->filedata, MODELPART_LOGO_0004); - node2 = modelGetPart(model->filedata, MODELPART_LOGO_0005); + node1 = modelGetPart(model->definition, MODELPART_LOGO_0004); + node2 = modelGetPart(model->definition, MODELPART_LOGO_0005); } else if (i == 2) { - node1 = modelGetPart(model->filedata, MODELPART_LOGO_0006); - node2 = modelGetPart(model->filedata, MODELPART_LOGO_0007); + node1 = modelGetPart(model->definition, MODELPART_LOGO_0006); + node2 = modelGetPart(model->definition, MODELPART_LOGO_0007); } else { - node1 = modelGetPart(model->filedata, MODELPART_LOGO_0008); - node2 = modelGetPart(model->filedata, MODELPART_LOGO_0009); + node1 = modelGetPart(model->definition, MODELPART_LOGO_0008); + node2 = modelGetPart(model->definition, MODELPART_LOGO_0009); } if (node1 && node2) { @@ -880,7 +880,7 @@ Gfx *titleRenderPdLogoModel(Gfx *gdl, struct model *model, bool arg2, f32 arg3, gDPSetPrimColor(gdl++, 0, 0, 0x00, 0x00, 0x00, alpha1); renderdata.unk00 = arg6; - renderdata.unk10 = gfxAllocate(model->filedata->nummatrices * sizeof(Mtxf)); + renderdata.unk10 = gfxAllocate(model->definition->nummatrices * sizeof(Mtxf)); mtx4Copy(arg6, renderdata.unk10); @@ -896,7 +896,7 @@ Gfx *titleRenderPdLogoModel(Gfx *gdl, struct model *model, bool arg2, f32 arg3, gdl = renderdata.gdl; - for (j = 0, k = 0; j < model->filedata->nummatrices; j++, k += sizeof(Mtxf)) { + for (j = 0, k = 0; j < model->definition->nummatrices; j++, k += sizeof(Mtxf)) { mtx4Copy((Mtxf *)((u32)model->matrices + k), &sp6c); mtxF2L(&sp6c, model->matrices + j); } @@ -7445,7 +7445,7 @@ Gfx *titleRenderPdLogo(Gfx *gdl) numvertices = 0; numcolours = 0; - node = modelGetPart(model->filedata, MODELPART_LOGO_0002); + node = modelGetPart(model->definition, MODELPART_LOGO_0002); if (node) { Gfx *tmp; @@ -7461,7 +7461,7 @@ Gfx *titleRenderPdLogo(Gfx *gdl) gSPBranchList(tmp++, rodata->primary); } - node = modelGetPart(model->filedata, MODELPART_LOGO_0004); + node = modelGetPart(model->definition, MODELPART_LOGO_0004); if (node) { Gfx *tmp; @@ -7481,7 +7481,7 @@ Gfx *titleRenderPdLogo(Gfx *gdl) } } - node = modelGetPart(model->filedata, MODELPART_LOGO_0006); + node = modelGetPart(model->definition, MODELPART_LOGO_0006); if (node) { Gfx *tmp; @@ -7501,7 +7501,7 @@ Gfx *titleRenderPdLogo(Gfx *gdl) } } - node = modelGetPart(model->filedata, MODELPART_LOGO_0008); + node = modelGetPart(model->definition, MODELPART_LOGO_0008); if (node) { Gfx *tmp; @@ -7566,7 +7566,7 @@ Gfx *titleRenderPdLogo(Gfx *gdl) mtx4Copy(&sp1b0, &sp2b0); renderdata.unk00 = &sp2b0; - renderdata.unk10 = gfxAllocate(g_TitleModelJpnLogo2->filedata->nummatrices * sizeof(Mtxf)); + renderdata.unk10 = gfxAllocate(g_TitleModelJpnLogo2->definition->nummatrices * sizeof(Mtxf)); mtx4Copy(&sp2b0, renderdata.unk10); @@ -7587,7 +7587,7 @@ Gfx *titleRenderPdLogo(Gfx *gdl) { s32 j; - for (sp19c = 0, j = 0; sp19c < g_TitleModelJpnLogo2->filedata->nummatrices; sp19c++, j += sizeof(Mtxf)) { + for (sp19c = 0, j = 0; sp19c < g_TitleModelJpnLogo2->definition->nummatrices; sp19c++, j += sizeof(Mtxf)) { mtx4Copy((Mtxf *)((u32)g_TitleModelJpnLogo2->matrices + j), &sp158); mtxF2L(&sp158, g_TitleModelJpnLogo2->matrices + sp19c); } @@ -7624,7 +7624,7 @@ Gfx *titleRenderPdLogo(Gfx *gdl) renderdata.unk00 = &sp230; - renderdata.unk10 = gfxAllocate(g_TitleModelJpnPd->filedata->nummatrices * sizeof(Mtxf)); + renderdata.unk10 = gfxAllocate(g_TitleModelJpnPd->definition->nummatrices * sizeof(Mtxf)); mtx4Copy(&sp230, renderdata.unk10); @@ -7648,7 +7648,7 @@ Gfx *titleRenderPdLogo(Gfx *gdl) { s32 j; - for (sp14c = 0, j = 0; sp14c < g_TitleModelJpnPd->filedata->nummatrices; sp14c++, j += sizeof(Mtxf)) { + for (sp14c = 0, j = 0; sp14c < g_TitleModelJpnPd->definition->nummatrices; sp14c++, j += sizeof(Mtxf)) { mtx4Copy((Mtxf *)((u32)g_TitleModelJpnPd->matrices + j), &spf4); mtxF2L(&spf4, g_TitleModelJpnPd->matrices + sp14c); } @@ -7661,7 +7661,7 @@ Gfx *titleRenderPdLogo(Gfx *gdl) mtx4Copy(&spb0, &sp2b0); renderdata.unk00 = &sp2b0; - renderdata.unk10 = gfxAllocate(g_TitleModelJpnLogo1->filedata->nummatrices * sizeof(Mtxf)); + renderdata.unk10 = gfxAllocate(g_TitleModelJpnLogo1->definition->nummatrices * sizeof(Mtxf)); mtx4Copy(&sp2b0, renderdata.unk10); @@ -7682,7 +7682,7 @@ Gfx *titleRenderPdLogo(Gfx *gdl) { s32 j; - for (sp9c = 0, j = 0; sp9c < g_TitleModelJpnLogo1->filedata->nummatrices; sp9c++, j += sizeof(Mtxf)) { + for (sp9c = 0, j = 0; sp9c < g_TitleModelJpnLogo1->definition->nummatrices; sp9c++, j += sizeof(Mtxf)) { mtx4Copy((Mtxf *)((u32)g_TitleModelJpnLogo1->matrices + j), &sp5c); mtxF2L(&sp5c, g_TitleModelJpnLogo1->matrices + sp9c); } @@ -7867,10 +7867,10 @@ void titleInitNintendoLogo(void) { struct coord coord = {0, 0, 0}; - g_ModelStates[MODEL_NINTENDOLOGO].filedata = modeldefLoad(g_ModelStates[MODEL_NINTENDOLOGO].fileid, nextaddr, 0x47800, 0); + g_ModelStates[MODEL_NINTENDOLOGO].modeldef = modeldefLoad(g_ModelStates[MODEL_NINTENDOLOGO].fileid, nextaddr, 0x47800, 0); - modelAllocateRwData(g_ModelStates[MODEL_NINTENDOLOGO].filedata); - g_TitleModel = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_NINTENDOLOGO].filedata); + modelAllocateRwData(g_ModelStates[MODEL_NINTENDOLOGO].modeldef); + g_TitleModel = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_NINTENDOLOGO].modeldef); modelSetScale(g_TitleModel, 1); modelSetRootPosition(g_TitleModel, &coord); var800624f4 = 1; @@ -7994,7 +7994,7 @@ Gfx *titleRenderNintendoLogo(Gfx *gdl) mtx4Copy(&spa8, &sp108); renderdata.unk00 = &sp108; - renderdata.unk10 = gfxAllocate(g_TitleModel->filedata->nummatrices * sizeof(Mtxf)); + renderdata.unk10 = gfxAllocate(g_TitleModel->definition->nummatrices * sizeof(Mtxf)); mtx4Copy(&sp108, renderdata.unk10); g_TitleModel->matrices = renderdata.unk10; @@ -8008,7 +8008,7 @@ Gfx *titleRenderNintendoLogo(Gfx *gdl) gdl = renderdata.gdl; - for (i = 0, j = 0; i < g_TitleModel->filedata->nummatrices; i++, j += sizeof(Mtxf)) { + for (i = 0, j = 0; i < g_TitleModel->definition->nummatrices; i++, j += sizeof(Mtxf)) { mtx4Copy((Mtxf *)((u32)g_TitleModel->matrices + j), &sp54); mtxF2L(&sp54, g_TitleModel->matrices + i); } @@ -8026,10 +8026,10 @@ void titleInitRareLogo(void) { struct coord coord = {0, 0, 0}; - g_ModelStates[MODEL_RARELOGO].filedata = modeldefLoad(g_ModelStates[MODEL_RARELOGO].fileid, nextaddr, 0x47800, 0); + g_ModelStates[MODEL_RARELOGO].modeldef = modeldefLoad(g_ModelStates[MODEL_RARELOGO].fileid, nextaddr, 0x47800, 0); - modelAllocateRwData(g_ModelStates[MODEL_RARELOGO].filedata); - g_TitleModel = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_RARELOGO].filedata); + modelAllocateRwData(g_ModelStates[MODEL_RARELOGO].modeldef); + g_TitleModel = modelmgrInstantiateModelWithoutAnim(g_ModelStates[MODEL_RARELOGO].modeldef); modelSetScale(g_TitleModel, 1); modelSetRootPosition(g_TitleModel, &coord); @@ -8191,26 +8191,26 @@ Gfx *titleRenderRareLogo(Gfx *gdl) mtx4Copy(&spc0, &sp118); renderdata.unk00 = &sp118; - renderdata.unk10 = gfxAllocate(g_TitleModel->filedata->nummatrices * sizeof(Mtxf)); + renderdata.unk10 = gfxAllocate(g_TitleModel->definition->nummatrices * sizeof(Mtxf)); mtx4Copy(&sp118, renderdata.unk10); g_TitleModel->matrices = renderdata.unk10; modelUpdateRelations(g_TitleModel); - rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->filedata, MODELPART_RARELOGO_000B)); + rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->definition, MODELPART_RARELOGO_000B)); if (rwdata) { rwdata->visible = false; } - rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->filedata, MODELPART_RARELOGO_000D)); + rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->definition, MODELPART_RARELOGO_000D)); if (rwdata) { rwdata->visible = true; } - rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->filedata, MODELPART_RARELOGO_000C)); + rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->definition, MODELPART_RARELOGO_000C)); if (rwdata) { rwdata->visible = false; @@ -8226,19 +8226,19 @@ Gfx *titleRenderRareLogo(Gfx *gdl) gdl = renderdata.gdl; - rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->filedata, MODELPART_RARELOGO_000B)); + rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->definition, MODELPART_RARELOGO_000B)); if (rwdata) { rwdata->visible = true; } - rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->filedata, MODELPART_RARELOGO_000D)); + rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->definition, MODELPART_RARELOGO_000D)); if (rwdata) { rwdata->visible = false; } - rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->filedata, MODELPART_RARELOGO_000C)); + rwdata = modelGetNodeRwData(g_TitleModel, modelGetPart(g_TitleModel->definition, MODELPART_RARELOGO_000C)); if (rwdata) { rwdata->visible = true; @@ -8254,7 +8254,7 @@ Gfx *titleRenderRareLogo(Gfx *gdl) gdl = renderdata.gdl; - for (i = 0, j = 0; i < g_TitleModel->filedata->nummatrices; i++, j += sizeof(Mtxf)) { + for (i = 0, j = 0; i < g_TitleModel->definition->nummatrices; i++, j += sizeof(Mtxf)) { Mtxf sp58; mtx4Copy((Mtxf *)((u32)g_TitleModel->matrices + j), &sp58); mtxF2L(&sp58, g_TitleModel->matrices + i); diff --git a/src/game/vtxstore.c b/src/game/vtxstore.c index 3314c9efe..442ebc9f0 100644 --- a/src/game/vtxstore.c +++ b/src/game/vtxstore.c @@ -55,8 +55,8 @@ void vtxstoreFixRefs(union modelrwdata *find, union modelrwdata *replacement) if (prop->type == PROPTYPE_OBJ) { struct defaultobj *obj = prop->obj; struct model *model = obj->model; - struct modelfiledata *filedata = model->filedata; - struct modelnode *node = filedata->rootnode; + struct modeldef *modeldef = model->definition; + struct modelnode *node = modeldef->rootnode; struct modelrodata_dl *rodata; while (node) { diff --git a/src/include/data.h b/src/include/data.h index 7a90fec4d..e86fd84d3 100644 --- a/src/include/data.h +++ b/src/include/data.h @@ -349,7 +349,7 @@ extern s8 g_PropExplosionTypes[]; extern struct skeleton g_SkelBasic; extern struct skeleton g_SkelChrGun; extern struct skeleton g_Skel0B; -extern struct modelfiledata g_PlayerModelFileData; +extern struct modeldef g_PlayerModeldef; extern struct skeleton g_Skel0A; extern struct skeleton g_Skel20; extern struct skeleton g_SkelClassicGun; diff --git a/src/include/game/body.h b/src/include/game/body.h index 120598cbd..e913574ef 100644 --- a/src/include/game/body.h +++ b/src/include/game/body.h @@ -10,13 +10,13 @@ void bodiesReset(s32 stagenum); u32 bodyGetRace(s32 bodynum); bool bodyLoad(s32 bodynum); -struct model *body0f02ce8c(s32 bodynum, s32 headnum, struct modelfiledata *bodyfiledata, struct modelfiledata *headfiledata, bool sunglasses, struct model *model, bool isplayer, u8 varyheight); -struct model *body0f02d338(s32 bodynum, s32 headnum, struct modelfiledata *bodyfiledata, struct modelfiledata *headfiledata, bool sunglasses, u8 varyheight); +struct model *body0f02ce8c(s32 bodynum, s32 headnum, struct modeldef *bodymodeldef, struct modeldef *headmodeldef, bool sunglasses, struct model *model, bool isplayer, u8 varyheight); +struct model *body0f02d338(s32 bodynum, s32 headnum, struct modeldef *bodymodeldef, struct modeldef *headmodeldef, bool sunglasses, u8 varyheight); struct model *bodyAllocateModel(s32 bodynum, s32 headnum, u32 spawnflags); s32 body0f02d3f8(void); s32 bodyChooseHead(s32 bodynum); void bodyAllocateChr(s32 stagenum, struct packedchr *packed, s32 cmdindex); struct prop *bodyAllocateEyespy(struct pad *pad, s16 room); -void bodyCalculateHeadOffset(struct modelfiledata *headfiledata, s32 headnum, s32 bodynum); +void bodyCalculateHeadOffset(struct modeldef *headmodeldef, s32 headnum, s32 bodynum); #endif diff --git a/src/include/game/bondgun.h b/src/include/game/bondgun.h index 96eecfd0c..5c1b91ea7 100644 --- a/src/include/game/bondgun.h +++ b/src/include/game/bondgun.h @@ -12,11 +12,11 @@ void bgunRumble(s32 handnum, s32 weaponnum); s32 bgunGetUnequippedReloadIndex(s32 weaponnum); void bgunTickUnequippedReload(void); bool bgunTestGunVisCommand(struct gunviscmd *cmd, struct hand *hand); -void bgunSetPartVisible(s16 partnum, bool visible, struct hand *hand, struct modelfiledata *filedata); -void bgunExecuteGunVisCommands(struct hand *hand, struct modelfiledata *arg1, struct gunviscmd *command); -void bgun0f098030(struct hand *hand, struct modelfiledata *arg1); +void bgunSetPartVisible(s16 partnum, bool visible, struct hand *hand, struct modeldef *modeldef); +void bgunExecuteGunVisCommands(struct hand *hand, struct modeldef *arg1, struct gunviscmd *command); +void bgun0f098030(struct hand *hand, struct modeldef *arg1); f32 bgun0f09815c(struct hand *hand); -void bgun0f0981e8(struct hand *hand, struct modelfiledata *modeldef); +void bgun0f0981e8(struct hand *hand, struct modeldef *modeldef); bool bgun0f098884(struct guncmd *cmd, struct gset *gset); void bgunStartAnimation(struct guncmd *cmd, s32 handnum, struct hand *hand); bool bgun0f098a44(struct hand *hand, s32 time); @@ -72,7 +72,7 @@ void bgunTickGunLoad(void); void bgunTickMasterLoad(void); void bgunTickLoad(void); bool bgun0f09eae4(void); -struct modelfiledata *bgunGetCartModeldef(void); +struct modeldef *bgunGetCartModeldef(void); void bgun0f09ebcc(struct defaultobj *obj, struct coord *coord, s16 *rooms, Mtxf *matrix1, struct coord *velocity, Mtxf *matrix2, struct prop *prop, struct coord *pos); void bgun0f09ed2c(struct defaultobj *obj, struct coord *coord, Mtxf *arg2, struct coord *velocity, Mtxf *arg4); struct defaultobj *bgunCreateThrownProjectile2(struct chrdata *chr, struct gset *gset, struct coord *pos, s16 *rooms, Mtxf *arg4, struct coord *velocity); @@ -123,18 +123,18 @@ s32 bgunCreateModelCmdList(struct model *model, struct modelnode *node, s32 *ptr void bgunStartDetonateAnimation(s32 playernum); void bgunUpdateGangsta(struct hand *hand, s32 handnum, struct coord *arg2, struct weaponfunc *funcdef, Mtxf *arg4, Mtxf *arg5); void bgunUpdateSmoke(struct hand *hand, s32 handnum, s32 weaponnum, struct weaponfunc *funcdef); -void bgunUpdateLasersight(struct hand *hand, struct modelfiledata *modeldef, s32 handnum, u8 *allocation); -void bgunUpdateReaper(struct hand *hand, struct modelfiledata *modeldef); -void bgunUpdateSniperRifle(struct modelfiledata *modeldef, u8 *allocation); -void bgunUpdateDevastator(struct hand *hand, u8 *allocation, struct modelfiledata *modeldef); -void bgunUpdateShotgun(struct hand *hand, u8 *allocation, bool *arg2, struct modelfiledata *modeldef); +void bgunUpdateLasersight(struct hand *hand, struct modeldef *modeldef, s32 handnum, u8 *allocation); +void bgunUpdateReaper(struct hand *hand, struct modeldef *modeldef); +void bgunUpdateSniperRifle(struct modeldef *modeldef, u8 *allocation); +void bgunUpdateDevastator(struct hand *hand, u8 *allocation, struct modeldef *modeldef); +void bgunUpdateShotgun(struct hand *hand, u8 *allocation, bool *arg2, struct modeldef *modeldef); void bgunUpdateLaser(struct hand *hand); -void bgunUpdateMagnum(struct hand *hand, s32 handnum, struct modelfiledata *modeldef, Mtxf *mtx); +void bgunUpdateMagnum(struct hand *hand, s32 handnum, struct modeldef *modeldef, Mtxf *mtx); void bgunUpdateRocketLauncher(struct hand *hand, s32 handnum, struct weaponfunc_shootprojectile *func); -void bgun0f0a45d0(struct hand *hand, struct modelfiledata *modeldef, bool isdetonator); -void bgunTickEject(struct hand *hand, struct modelfiledata *modeldef, bool isdetonator); -void bgun0f0a4e44(struct hand *hand, struct weapon *weapondef, struct modelfiledata *modeldef, struct weaponfunc *funcdef, s32 maxburst, u8 *allocation, s32 weaponnum, bool **arg7, s32 mtxindex, Mtxf *arg9, Mtxf *arg10); -void bgunCreateFx(struct hand *hand, s32 handnum, struct weaponfunc *funcdef, s32 weaponnum, struct modelfiledata *modeldef, u8 *allocation); +void bgun0f0a45d0(struct hand *hand, struct modeldef *modeldef, bool isdetonator); +void bgunTickEject(struct hand *hand, struct modeldef *modeldef, bool isdetonator); +void bgun0f0a4e44(struct hand *hand, struct weapon *weapondef, struct modeldef *modeldef, struct weaponfunc *funcdef, s32 maxburst, u8 *allocation, s32 weaponnum, bool **arg7, s32 mtxindex, Mtxf *arg9, Mtxf *arg10); +void bgunCreateFx(struct hand *hand, s32 handnum, struct weaponfunc *funcdef, s32 weaponnum, struct modeldef *modeldef, u8 *allocation); void bgun0f0a5550(s32 handnum); void bgunTickMaulerCharge(void); void bgunTickGameplay2(void); diff --git a/src/include/game/gunfx.h b/src/include/game/gunfx.h index 78e453145..2d97b9cdb 100644 --- a/src/include/game/gunfx.h +++ b/src/include/game/gunfx.h @@ -13,7 +13,7 @@ Gfx *beamRenderGeneric(Gfx *gdl, struct textureconfig *arg1, f32 arg2, struct co Gfx *beamRender(Gfx *gdl, struct beam *beam, bool arg2, u8 arg3); void beamTick(struct beam *beam); -struct casing *casingCreate(struct modelfiledata *modeldef, Mtxf *mtx); +struct casing *casingCreate(struct modeldef *modeldef, Mtxf *mtx); void casingCreateForHand(s32 handnum, f32 ground, Mtxf *mtx); void casingRender(struct casing *casing, Gfx **gdlptr); void casingsRender(Gfx **gdlptr); diff --git a/src/include/game/modeldef.h b/src/include/game/modeldef.h index ab609e1a0..4cf142756 100644 --- a/src/include/game/modeldef.h +++ b/src/include/game/modeldef.h @@ -4,9 +4,9 @@ #include "data.h" #include "types.h" -void modeldef0f1a7560(struct modelfiledata *modeldef, u16 filenum, u32 arg2, struct modelfiledata *modeldef2, struct texpool *texpool, bool arg5); -void modelPromoteTypeToPointer(struct modelfiledata *filedata); -struct modelfiledata *modeldefLoad(u16 fileid, u8 *arg1, s32 arg2, struct texpool *arg3); -struct modelfiledata *modeldefLoadToNew(u16 fileid); +void modeldef0f1a7560(struct modeldef *modeldef, u16 filenum, u32 arg2, struct modeldef *modeldef2, struct texpool *texpool, bool arg5); +void modelPromoteTypeToPointer(struct modeldef *modeldef); +struct modeldef *modeldefLoad(u16 fileid, u8 *arg1, s32 arg2, struct texpool *arg3); +struct modeldef *modeldefLoadToNew(u16 fileid); #endif diff --git a/src/include/game/modelmgr.h b/src/include/game/modelmgr.h index 557c093ee..136f64720 100644 --- a/src/include/game/modelmgr.h +++ b/src/include/game/modelmgr.h @@ -4,13 +4,13 @@ #include "data.h" #include "types.h" -bool modelmgrCanSlotFitRwdata(struct model *modelslot, struct modelfiledata *filedata); +bool modelmgrCanSlotFitRwdata(struct model *modelslot, struct modeldef *modeldef); void modelmgrPrintCounts(void); -struct model *modelmgrInstantiateModel(struct modelfiledata *modelfiledata, bool arg1); -struct model *modelmgrInstantiateModelWithoutAnim(struct modelfiledata *modelfiledata); +struct model *modelmgrInstantiateModel(struct modeldef *modeldef, bool arg1); +struct model *modelmgrInstantiateModelWithoutAnim(struct modeldef *modeldef); void modelmgrFreeModel(struct model *model); -struct model *modelmgrInstantiateModelWithAnim(struct modelfiledata *modelfiledata); -void modelmgrAttachHead(struct model *model, struct modelnode *node, struct modelfiledata *headfiledata); +struct model *modelmgrInstantiateModelWithAnim(struct modeldef *modeldef); +void modelmgrAttachHead(struct model *model, struct modelnode *node, struct modeldef *headmodeldef); struct anim *modelmgrInstantiateAnim(void); void modelmgrFreeAnim(struct anim *anim); diff --git a/src/include/game/mplayer/mplayer.h b/src/include/game/mplayer/mplayer.h index ac8332163..c4ecdd4a6 100644 --- a/src/include/game/mplayer/mplayer.h +++ b/src/include/game/mplayer/mplayer.h @@ -118,6 +118,6 @@ void mpsetupfileGetOverview(char *arg0, char *filename, u16 *numsims, u16 *stage s32 mpsetupfileSave(s32 device, s32 filenum, u16 deviceserial); s32 mpsetupfileLoad(s32 device, s32 filenum, u16 deviceserial); void func0f18e558(void); -struct modelfiledata *func0f18e57c(s32 index, s32 *headnum); +struct modeldef *func0f18e57c(s32 index, s32 *headnum); #endif diff --git a/src/include/game/propobj.h b/src/include/game/propobj.h index b53064d30..8472a59c0 100644 --- a/src/include/game/propobj.h +++ b/src/include/game/propobj.h @@ -76,8 +76,8 @@ struct embedment *embedmentAllocate(void); s32 objGetShotsTaken(struct defaultobj *obj); s32 objGetDestroyedLevel(struct defaultobj *obj); struct modelnode *func0f0687e4(struct model *model); -struct modelnode *modelFileDataFindBboxNode(struct modelfiledata *filedata); -struct modelrodata_bbox *modelFileDataFindBboxRodata(struct modelfiledata *filedata); +struct modelnode *modeldefFindBboxNode(struct modeldef *modeldef); +struct modelrodata_bbox *modeldefFindBboxRodata(struct modeldef *modeldef); struct modelnode *modelFindBboxNode(struct model *model); struct modelrodata_bbox *modelFindBboxRodata(struct model *model); struct modelnode *objFindBboxNode(struct defaultobj *obj); @@ -96,8 +96,8 @@ void func0f069c70(struct defaultobj *obj, bool arg1, bool arg2); void objInitToggleNodes(struct defaultobj *obj); void objCreateOneDebris(struct defaultobj *obj, s32 partindex, struct prop *prop); void objCreateDebris(struct defaultobj *obj, struct prop *prop); -struct prop *objInit(struct defaultobj *obj, struct modelfiledata *filedata, struct prop *prop, struct model *model); -struct prop *objInitWithModelDef(struct defaultobj *obj, struct modelfiledata *modelfiledata); +struct prop *objInit(struct defaultobj *obj, struct modeldef *modeldef, struct prop *prop, struct model *model); +struct prop *objInitWithModelDef(struct defaultobj *obj, struct modeldef *modeldef); struct prop *objInitWithAutoModel(struct defaultobj *obj); void func0f06a580(struct defaultobj *obj, struct coord *pos, Mtxf *matrix, s16 *rooms); f32 func0f06a620(struct defaultobj *obj); @@ -210,7 +210,7 @@ void objRenderProp(struct prop *prop, struct modelrenderdata *renderdata, bool x Gfx *gfxRenderRadialShadow(Gfx *gdl, f32 x, f32 y, f32 z, f32 angle, f32 radius, u32 colour); Gfx *objRenderShadow(struct defaultobj *obj, Gfx *gdl); Gfx *objRender(struct prop *prop, Gfx *gdl, bool xlupass); -bool modelIsNodeNotTvscreen(struct modelfiledata *filedata, struct modelnode *node); +bool modelIsNodeNotTvscreen(struct modeldef *modeldef, struct modelnode *node); void objDeform(struct defaultobj *obj, s32 level); void objBounce(struct defaultobj *obj, struct coord *arg1); void objSetDropped(struct prop *prop, u32 droptype); @@ -261,12 +261,12 @@ s32 propPickupByPlayer(struct prop *prop, bool showhudmsg); s32 objTestForPickup(struct prop *prop); bool func0f0899dc(struct prop *prop, struct coord *arg1, f32 *arg2, f32 *arg3); void modelFreeVertices(s32 vtxstoretype, struct model *model); -struct prop *hatApplyToChr(struct hatobj *hat, struct chrdata *chr, struct modelfiledata *filedata, struct prop *prop, struct model *model); +struct prop *hatApplyToChr(struct hatobj *hat, struct chrdata *chr, struct modeldef *modeldef, struct prop *prop, struct model *model); void hatLoadAndApplyToChr(struct hatobj *hat, struct chrdata *chr); void hatAssignToChr(struct hatobj *hat, struct chrdata *chr); struct prop *hatCreateForChr(struct chrdata *chr, s32 modelnum, u32 flags); -struct weaponobj *weaponCreate(bool musthaveprop, bool musthavemodel, struct modelfiledata *filedata); -struct hatobj *hatCreate(bool musthaveprop, bool musthavemodel, struct modelfiledata *filedata); +struct weaponobj *weaponCreate(bool musthaveprop, bool musthavemodel, struct modeldef *modeldef); +struct hatobj *hatCreate(bool musthaveprop, bool musthavemodel, struct modeldef *modeldef); struct ammocrateobj *ammocrateAllocate(void); struct defaultobj *debrisAllocate(void); void playerActivateRemoteMineDetonator(s32 playernum); @@ -277,17 +277,17 @@ void weaponUnregisterProxy(struct weaponobj *weapon); void coordTriggerProxies(struct coord *pos, bool arg1); void chrsTriggerProxies(void); void propweaponSetDual(struct weaponobj *weapon1, struct weaponobj *weapon2); -struct prop *func0f08adc8(struct weaponobj *weapon, struct modelfiledata *filedata, struct prop *prop, struct model *model); -struct prop *func0f08ae0c(struct weaponobj *weapon, struct modelfiledata *filedata); +struct prop *func0f08adc8(struct weaponobj *weapon, struct modeldef *modeldef, struct prop *prop, struct model *model); +struct prop *func0f08ae0c(struct weaponobj *weapon, struct modeldef *modeldef); bool chrEquipWeapon(struct weaponobj *weapon, struct chrdata *chr); -struct prop *func0f08b108(struct weaponobj *weapon, struct chrdata *chr, struct modelfiledata *modelfiledata, struct prop *prop, struct model *model); +struct prop *func0f08b108(struct weaponobj *weapon, struct chrdata *chr, struct modeldef *modeldef, struct prop *prop, struct model *model); void func0f08b208(struct weaponobj *weapon, struct chrdata *chr); void func0f08b25c(struct weaponobj *weapon, struct chrdata *chr); struct autogunobj *laptopDeploy(s32 modelnum, struct gset *gset, struct chrdata *chr); struct weaponobj *weaponCreateProjectileFromGset(s32 modelnum, struct gset *gset, struct chrdata *chr); struct weaponobj *weaponCreateProjectileFromWeaponNum(s32 modelnum, s32 weaponnum, struct chrdata *chr); void weaponDeleteFromChr(struct chrdata *chr, s32 hand); -struct prop *weaponCreateForChr(struct chrdata *chr, s32 modelnum, s32 weaponnum, u32 flags, struct weaponobj *obj, struct modelfiledata *filedata); +struct prop *weaponCreateForChr(struct chrdata *chr, s32 modelnum, s32 weaponnum, u32 flags, struct weaponobj *obj, struct modeldef *modeldef); struct prop *chrGiveWeapon(struct chrdata *chr, s32 model, s32 weaponnum, u32 flags); s32 weaponTestForPickup(struct prop *prop); void weaponSetGunfireVisible(struct prop *prop, bool visible, s16 room); diff --git a/src/include/game/setuputils.h b/src/include/game/setuputils.h index 0eaf8cad1..4d4fcb77a 100644 --- a/src/include/game/setuputils.h +++ b/src/include/game/setuputils.h @@ -14,6 +14,6 @@ bool setup0f092304(struct defaultobj *obj, struct coord *arg1, struct coord *arg void setup0f09233c(struct defaultobj *obj, struct coord *pos, f32 realrot[3][3], s16 *rooms); void setup0f0923d4(struct defaultobj *obj); struct defaultobj *setupGetObjByCmdIndex(u32 cmdindex); -struct defaultobj *setupFindObjForReuse(s32 type, struct defaultobj **arg1, struct defaultobj **arg2, bool musthaveprop, bool musthavemodel, struct modelfiledata *filedata); +struct defaultobj *setupFindObjForReuse(s32 type, struct defaultobj **arg1, struct defaultobj **arg2, bool musthaveprop, bool musthavemodel, struct modeldef *modeldef); #endif diff --git a/src/include/lib/model.h b/src/include/lib/model.h index 4930b5093..d34b64df2 100644 --- a/src/include/lib/model.h +++ b/src/include/lib/model.h @@ -19,8 +19,8 @@ struct modelnode *modelNodeFindMtxNode(struct modelnode *node); struct modelnode *modelNodeFindParentMtxNode(struct modelnode *node); struct modelnode *modelNodeFindChildMtxNode(struct modelnode *node); struct modelnode *modelNodeFindChildOrParentMtxNode(struct modelnode *node); -struct modelnode *modelGetPart(struct modelfiledata *arg0, s32 partnum); -void *modelGetPartRodata(struct modelfiledata *modelfiledata, s32 partnum); +struct modelnode *modelGetPart(struct modeldef *arg0, s32 partnum); +void *modelGetPartRodata(struct modeldef *modeldef, s32 partnum); f32 modelGetScreenDistance(struct model *model); void *modelGetNodeRwData(struct model *model, struct modelnode *node); void modelNodeGetPosition(struct model *model, struct modelnode *node, struct coord *pos); @@ -97,14 +97,14 @@ void modelRender(struct modelrenderdata *renderdata, struct model *model); bool modelTestBboxNodeForHit(struct modelrodata_bbox *bbox, Mtxf *mtx, struct coord *arg2, struct coord *arg3); s32 modelTestForHit(struct model *model, struct coord *arg1, struct coord *arg2, struct modelnode **startnode); void modelPromoteNodeOffsetsToPointers(struct modelnode *node, u32 vma, u32 fileramaddr); -void modelPromoteOffsetsToPointers(struct modelfiledata *filedata, u32 arg1, u32 arg2); +void modelPromoteOffsetsToPointers(struct modeldef *modeldef, u32 arg1, u32 arg2); s32 modelCalculateRwDataIndexes(struct modelnode *node); -void modelAllocateRwData(struct modelfiledata *filedata); +void modelAllocateRwData(struct modeldef *modeldef); void modelInitRwData(struct model *model, struct modelnode *node); -void modelInit(struct model *model, struct modelfiledata *filedata, union modelrwdata **rwdatas, bool resetanim); +void modelInit(struct model *model, struct modeldef *modeldef, union modelrwdata **rwdatas, bool resetanim); void animInit(struct anim *anim); -void modelAttachHead(struct model *model, struct modelfiledata *arg1, struct modelnode *node, struct modelfiledata *arg3); -void modelIterateDisplayLists(struct modelfiledata *filedata, struct modelnode **nodeptr, Gfx **gdlptr); -void modelNodeReplaceGdl(struct modelfiledata *modeldef, struct modelnode *node, Gfx *find, Gfx *replacement); +void modelAttachHead(struct model *model, struct modeldef *arg1, struct modelnode *node, struct modeldef *arg3); +void modelIterateDisplayLists(struct modeldef *modeldef, struct modelnode **nodeptr, Gfx **gdlptr); +void modelNodeReplaceGdl(struct modeldef *modeldef, struct modelnode *node, Gfx *find, Gfx *replacement); #endif diff --git a/src/include/types.h b/src/include/types.h index 119fcdca2..5b6bec2fe 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -574,7 +574,7 @@ struct modelnode { /*0x14*/ struct modelnode *child; }; -struct modelfiledata { +struct modeldef { struct modelnode *rootnode; struct skeleton *skel; @@ -599,7 +599,7 @@ struct model { struct chrdata *chr; struct defaultobj *obj; }; - /*0x08*/ struct modelfiledata *filedata; + /*0x08*/ struct modeldef *definition; /*0x0c*/ Mtxf *matrices; /*0x10*/ union modelrwdata **rwdatas; /*0x14*/ f32 scale; @@ -654,7 +654,7 @@ struct modelrwdata_toggle { // type 0x12 }; struct modelrwdata_headspot { // type 0x17 - struct modelfiledata *headmodeldef; + struct modeldef *headmodeldef; void *rwdatas; }; @@ -2331,9 +2331,9 @@ struct gunctrl { /*0x1584*/ s32 gunmemnew; // a weapon number, -1 when not changing guns /*0x1588*/ s32 gunmemtype; // also a weapon number /*0x158c*/ u8 *gunmem; - /*0x1590*/ struct modelfiledata *gunmodeldef; - /*0x1594*/ struct modelfiledata *handmodeldef; - /*0x1598*/ struct modelfiledata *cartmodeldef; + /*0x1590*/ struct modeldef *gunmodeldef; + /*0x1594*/ struct modeldef *handmodeldef; + /*0x1598*/ struct modeldef *cartmodeldef; /*0x159c*/ u16 handfilenum; /*0x15a0*/ u8 *unk15a0; /*0x15a4*/ s32 unk15a4; @@ -2342,7 +2342,7 @@ struct gunctrl { /*0x15b0*/ u8 masterloadstate; /*0x15b1*/ u8 gunloadstate; /*0x15b2*/ u16 loadfilenum; - /*0x15b4*/ struct modelfiledata **loadtomodeldef; + /*0x15b4*/ struct modeldef **loadtomodeldef; /*0x15b8*/ u32 *loadmemptr; /*0x15bc*/ u32 *loadmemremaining; /*0x15c0*/ struct texpool unk15c0; @@ -3067,7 +3067,7 @@ struct headorbody { /*0x02*/ u16 filenum; /*0x04*/ f32 scale; /*0x08*/ f32 animscale; - /*0x0c*/ void *filedata; + /*0x0c*/ struct modeldef *modeldef; /*0x10*/ u16 handfilenum; }; @@ -3826,8 +3826,8 @@ struct menu840 { /*0x00c*/ u32 unk00c; /*0x010*/ s32 unk010; /*0x014*/ Mtxf unk014; - /*0x054*/ struct modelfiledata *bodymodeldef; - /*0x058*/ struct modelfiledata *headmodeldef; + /*0x054*/ struct modeldef *bodymodeldef; + /*0x058*/ struct modeldef *headmodeldef; /*0x05c*/ s16 unk05c; /*0x05e*/ s16 unk05e; /*0x060*/ struct model bodymodel; @@ -4775,7 +4775,7 @@ struct chrnumaction { }; struct modelstate { - struct modelfiledata *filedata; + struct modeldef *modeldef; u16 fileid; u16 scale; }; @@ -5398,7 +5398,7 @@ struct casing { /*0x10*/ struct coord speed; /*0x1c*/ s16 rot[3][3]; /*0x28*/ s16 rotspeed[3][3]; - /*0x40*/ struct modelfiledata *modeldef; + /*0x40*/ struct modeldef *modeldef; }; struct mplockinfo { diff --git a/src/lib/model.c b/src/lib/model.c index 3646c9065..22b5c6cf1 100644 --- a/src/lib/model.c +++ b/src/lib/model.c @@ -98,12 +98,12 @@ Mtxf *modelFindNodeMtx(struct model *model, struct modelnode *node, s32 arg2) Mtxf *modelGetRootMtx(struct model *model) { - return modelFindNodeMtx(model, model->filedata->rootnode, 0); + return modelFindNodeMtx(model, model->definition->rootnode, 0); } struct modelnode *modelFindNodeByMtxIndex(struct model *model, s32 mtxindex) { - struct modelnode *node = model->filedata->rootnode; + struct modelnode *node = model->definition->rootnode; union modelrodata *rodata1; union modelrodata *rodata2; union modelrodata *rodata3; @@ -263,26 +263,26 @@ struct modelnode *modelNodeFindChildOrParentMtxNode(struct modelnode *basenode) return node; } -struct modelnode *modelGetPart(struct modelfiledata *modelfiledata, s32 partnum) +struct modelnode *modelGetPart(struct modeldef *modeldef, s32 partnum) { s32 upper; s32 lower; u32 i; s16 *partnums; - if (modelfiledata->numparts == 0) { + if (modeldef->numparts == 0) { return NULL; } - partnums = (s16 *)&modelfiledata->parts[modelfiledata->numparts]; + partnums = (s16 *)&modeldef->parts[modeldef->numparts]; lower = 0; - upper = modelfiledata->numparts; + upper = modeldef->numparts; while (upper >= lower) { i = (lower + upper) / 2; if (partnum == partnums[i]) { - return modelfiledata->parts[i]; + return modeldef->parts[i]; } if (partnum < partnums[i]) { @@ -295,9 +295,9 @@ struct modelnode *modelGetPart(struct modelfiledata *modelfiledata, s32 partnum) return NULL; } -void *modelGetPartRodata(struct modelfiledata *modelfiledata, s32 partnum) +void *modelGetPartRodata(struct modeldef *modeldef, s32 partnum) { - struct modelnode *node = modelGetPart(modelfiledata, partnum); + struct modelnode *node = modelGetPart(modeldef, partnum); if (node) { return node->rodata; @@ -442,12 +442,12 @@ void modelNodeSetPosition(struct model *model, struct modelnode *node, struct co void modelGetRootPosition(struct model *model, struct coord *pos) { - modelNodeGetPosition(model, model->filedata->rootnode, pos); + modelNodeGetPosition(model, model->definition->rootnode, pos); } void modelSetRootPosition(struct model *model, struct coord *pos) { - modelNodeSetPosition(model, model->filedata->rootnode, pos); + modelNodeSetPosition(model, model->definition->rootnode, pos); } void modelNodeGetModelRelativePosition(struct model *model, struct modelnode *node, struct coord *pos) @@ -475,8 +475,8 @@ void modelNodeGetModelRelativePosition(struct model *model, struct modelnode *no f32 modelGetChrRotY(struct model *model) { - if ((model->filedata->rootnode->type & 0xff) == MODELNODETYPE_CHRINFO) { - union modelrwdata *rwdata = modelGetNodeRwData(model, model->filedata->rootnode); + if ((model->definition->rootnode->type & 0xff) == MODELNODETYPE_CHRINFO) { + union modelrwdata *rwdata = modelGetNodeRwData(model, model->definition->rootnode); return rwdata->chrinfo.yrot; } @@ -485,8 +485,8 @@ f32 modelGetChrRotY(struct model *model) void modelSetChrRotY(struct model *model, f32 angle) { - if ((model->filedata->rootnode->type & 0xff) == MODELNODETYPE_CHRINFO) { - struct modelrwdata_chrinfo *rwdata = modelGetNodeRwData(model, model->filedata->rootnode); + if ((model->definition->rootnode->type & 0xff) == MODELNODETYPE_CHRINFO) { + struct modelrwdata_chrinfo *rwdata = modelGetNodeRwData(model, model->definition->rootnode); f32 diff = angle - rwdata->yrot; if (diff < 0) { @@ -523,7 +523,7 @@ void modelSetAnimScale(struct model *model, f32 scale) f32 modelGetEffectiveScale(struct model *model) { - return model->filedata->scale * model->scale; + return model->definition->scale * model->scale; } void modelTweenPos(struct coord *curpos, struct coord *goalpos, f32 frac) @@ -655,7 +655,7 @@ void modelUpdateChrInfo(struct model *model, struct modelnode *node) void modelUpdateInfo(struct model *model) { - struct modelnode *node = model->filedata->rootnode; + struct modelnode *node = model->definition->rootnode; if (node && (node->type & 0xff) == MODELNODETYPE_CHRINFO) { modelUpdateChrInfo(model, node); @@ -674,7 +674,7 @@ void modelUpdateChrNodeMtx(struct modelrenderdata *arg0, struct model *model, st u32 stack1; Mtxf *mtx = &model->matrices[rodata->chrinfo.mtxindex]; s32 sp240 = rodata->chrinfo.unk00; - struct skeleton *skel = model->filedata->skel; + struct skeleton *skel = model->definition->skel; struct coord sp230; struct coord sp224; struct coord sp218; @@ -1018,10 +1018,10 @@ void modelUpdatePositionNodeMtx(struct modelrenderdata *renderdata, struct model if (anim != NULL) { partnum = rodata->part; - skel = model->filedata->skel; + skel = model->definition->skel; if (anim->animnum != 0) { - sp128 = (g_Anims[anim->animnum].flags & ANIMFLAG_02) && node == model->filedata->rootnode; + sp128 = (g_Anims[anim->animnum].flags & ANIMFLAG_02) && node == model->definition->rootnode; anim00024050(partnum, anim->flip, skel, anim->animnum, anim->unk04, &sp144, &sp138, &sp12c); @@ -1074,14 +1074,14 @@ void modelUpdatePositionNodeMtx(struct modelrenderdata *renderdata, struct model sp138.y *= anim->animscale; sp138.z *= anim->animscale; - if (node != model->filedata->rootnode) { + if (node != model->definition->rootnode) { sp138.x += rodata->pos.x; sp138.y += rodata->pos.y; sp138.z += rodata->pos.z; } modelPositionJointUsingQuatRot(renderdata, model, node, sp68, &sp138, &sp12c); - } else if (node != model->filedata->rootnode) { + } else if (node != model->definition->rootnode) { modelPositionJointUsingQuatRot(renderdata, model, node, sp68, &rodata->pos, &sp12c); } else { modelPositionJointUsingQuatRot(renderdata, model, node, sp68, &sp138, &sp12c); @@ -1099,14 +1099,14 @@ void modelUpdatePositionNodeMtx(struct modelrenderdata *renderdata, struct model sp138.y *= anim->animscale; sp138.z *= anim->animscale; - if (node != model->filedata->rootnode) { + if (node != model->definition->rootnode) { sp138.x += rodata->pos.x; sp138.y += rodata->pos.y; sp138.z += rodata->pos.z; } modelPositionJointUsingVecRot(renderdata, model, node, &sp144, &sp138, false, &sp12c); - } else if (node != model->filedata->rootnode) { + } else if (node != model->definition->rootnode) { modelPositionJointUsingVecRot(renderdata, model, node, &sp144, &rodata->pos, false, &sp12c); } else { modelPositionJointUsingVecRot(renderdata, model, node, &sp144, &sp138, false, &sp12c); @@ -1399,7 +1399,7 @@ void modelUpdateRelationsQuick(struct model *model, struct modelnode *parent) */ void modelUpdateRelations(struct model *model) { - struct modelnode *node = model->filedata->rootnode; + struct modelnode *node = model->definition->rootnode; while (node) { u32 type = node->type & 0xff; @@ -1440,7 +1440,7 @@ void modelUpdateRelations(struct model *model) void modelUpdateMatrices(struct modelrenderdata *arg0, struct model *model) { - struct modelnode *node = model->filedata->rootnode; + struct modelnode *node = model->definition->rootnode; while (node) { u32 type = node->type & 0xff; @@ -1491,7 +1491,7 @@ void modelSetMatrices(struct modelrenderdata *renderdata, struct model *model) { model->matrices = renderdata->unk10; - renderdata->unk10 += model->filedata->nummatrices; + renderdata->unk10 += model->definition->nummatrices; #if VERSION >= VERSION_PAL_BETA if (var8005efb0_2 || !model00018680(renderdata, model)) { @@ -1681,7 +1681,7 @@ void modelCopyAnimForMerge(struct model *model, f32 merge) return; } - node = model->filedata->rootnode; + node = model->definition->rootnode; nodetype = node->type & 0xff; anim->frame2 = anim->frame; @@ -1740,14 +1740,14 @@ void modelSetAnimation2(struct model *model, s16 animnum, s32 flip, f32 fstartfr anim->looping = false; - type = model->filedata->rootnode->type & 0xff; + type = model->definition->rootnode->type & 0xff; if (type == MODELNODETYPE_CHRINFO) { u32 stack; - struct modelrodata_chrinfo *rodata = &model->filedata->rootnode->rodata->chrinfo; - struct modelrwdata_chrinfo *rwdata = (struct modelrwdata_chrinfo *) modelGetNodeRwData(model, model->filedata->rootnode); + struct modelrodata_chrinfo *rodata = &model->definition->rootnode->rodata->chrinfo; + struct modelrwdata_chrinfo *rwdata = (struct modelrwdata_chrinfo *) modelGetNodeRwData(model, model->definition->rootnode); s32 spa4 = rodata->unk00; - struct skeleton *skel = model->filedata->skel; + struct skeleton *skel = model->definition->skel; f32 scale; f32 sp98; f32 sp94; @@ -2099,7 +2099,7 @@ void modelSetAnimFrame2WithChrStuff(struct model *model, f32 curframe, f32 endfr struct anim *anim = model->anim; if (anim != NULL) { - struct modelnode *rootnode = model->filedata->rootnode; + struct modelnode *rootnode = model->definition->rootnode; u16 nodetype = rootnode->type; if ((nodetype & 0xff) == MODELNODETYPE_CHRINFO) { @@ -2108,7 +2108,7 @@ void modelSetAnimFrame2WithChrStuff(struct model *model, f32 curframe, f32 endfr if (rwdata->unk00 == 0) { s32 sp118 = rodata->unk00; - struct skeleton *skel = model->filedata->skel; + struct skeleton *skel = model->definition->skel; f32 scale = model->scale * anim->animscale; f32 sine; f32 cosine; @@ -3441,7 +3441,7 @@ void modelRender(struct modelrenderdata *renderdata, struct model *model) union modelrodata *rodata; union modelrwdata *rwdata; u32 type; - struct modelnode *node = model->filedata->rootnode; + struct modelnode *node = model->definition->rootnode; gSPSegment(renderdata->gdl++, SPSEGMENT_MODEL_MTX, osVirtualToPhysical(model->matrices)); @@ -3718,7 +3718,7 @@ s32 modelTestForHit(struct model *model, struct coord *arg1, struct coord *arg2, node = *startnode; *startnode = NULL; } else { - node = model->filedata->rootnode; + node = model->definition->rootnode; } while (node) { @@ -3886,26 +3886,26 @@ void modelPromoteNodeOffsetsToPointers(struct modelnode *node, u32 vma, u32 file * Offsets in model files are based from virtual memory address 0x0f000000. * This vma address is specified as an argument to the function. */ -void modelPromoteOffsetsToPointers(struct modelfiledata *filedata, u32 vma, u32 fileramaddr) +void modelPromoteOffsetsToPointers(struct modeldef *modeldef, u32 vma, u32 fileramaddr) { s32 diff = fileramaddr - vma; s32 i; s16 *partnums; - PROMOTE(filedata->rootnode); - PROMOTE(filedata->parts); - PROMOTE(filedata->texconfigs); + PROMOTE(modeldef->rootnode); + PROMOTE(modeldef->parts); + PROMOTE(modeldef->texconfigs); - for (i = 0; i < filedata->numparts; i++) { - PROMOTE(filedata->parts[i]); + for (i = 0; i < modeldef->numparts; i++) { + PROMOTE(modeldef->parts[i]); } - modelPromoteNodeOffsetsToPointers(filedata->rootnode, vma, fileramaddr); + modelPromoteNodeOffsetsToPointers(modeldef->rootnode, vma, fileramaddr); // Sort parts by part number so they can be bisected during lookup - partnums = (s16 *)&filedata->parts[filedata->numparts]; + partnums = (s16 *)&modeldef->parts[modeldef->numparts]; - if (filedata->numparts) { + if (modeldef->numparts) { struct modelnode *tmpnode; s16 tmpnum; bool changed; @@ -3913,15 +3913,15 @@ void modelPromoteOffsetsToPointers(struct modelfiledata *filedata, u32 vma, u32 do { changed = false; - for (i = 0; i < filedata->numparts - 1; i++) { + for (i = 0; i < modeldef->numparts - 1; i++) { if (partnums[i] > partnums[i + 1]) { tmpnum = partnums[i]; partnums[i] = partnums[i + 1]; partnums[i + 1] = tmpnum; - tmpnode = filedata->parts[i]; - filedata->parts[i] = filedata->parts[i + 1]; - filedata->parts[i + 1] = tmpnode; + tmpnode = modeldef->parts[i]; + modeldef->parts[i] = modeldef->parts[i + 1]; + modeldef->parts[i + 1] = tmpnode; changed = true; } @@ -4010,9 +4010,9 @@ s32 modelCalculateRwDataIndexes(struct modelnode *basenode) return len; } -void modelAllocateRwData(struct modelfiledata *filedata) +void modelAllocateRwData(struct modeldef *modeldef) { - filedata->rwdatalen = modelCalculateRwDataIndexes(filedata->rootnode); + modeldef->rwdatalen = modelCalculateRwDataIndexes(modeldef->rootnode); } void modelInitRwData(struct model *model, struct modelnode *startnode) @@ -4120,19 +4120,19 @@ void modelInitRwData(struct model *model, struct modelnode *startnode) } } -void modelInit(struct model *model, struct modelfiledata *filedata, union modelrwdata **rwdatas, bool resetanim) +void modelInit(struct model *model, struct modeldef *modeldef, union modelrwdata **rwdatas, bool resetanim) { struct modelnode *node; model->unk00 = 0; - model->filedata = filedata; + model->definition = modeldef; model->rwdatas = rwdatas; model->rwdatalen = -1; model->scale = 1; model->attachedtomodel = NULL; model->attachedtonode = NULL; - node = filedata->rootnode; + node = modeldef->rootnode; while (node) { u32 type = node->type & 0xff; @@ -4145,7 +4145,7 @@ void modelInit(struct model *model, struct modelfiledata *filedata, union modelr node = node->child; } else { while (node) { - if (node == filedata->rootnode->parent) { + if (node == modeldef->rootnode->parent) { node = NULL; break; } @@ -4161,7 +4161,7 @@ void modelInit(struct model *model, struct modelfiledata *filedata, union modelr } if (rwdatas != NULL) { - modelInitRwData(model, filedata->rootnode); + modelInitRwData(model, modeldef->rootnode); } if (resetanim) { @@ -4193,7 +4193,7 @@ void animInit(struct anim *anim) anim->animscale = 1; } -void modelAttachHead(struct model *bodymode, struct modelfiledata *bodymodeldef, struct modelnode *headspotnode, struct modelfiledata *headmodeldef) +void modelAttachHead(struct model *bodymode, struct modeldef *bodymodeldef, struct modelnode *headspotnode, struct modeldef *headmodeldef) { struct modelrwdata_headspot *rwdata = modelGetNodeRwData(bodymode, headspotnode); struct modelnode *node; @@ -4225,14 +4225,14 @@ void modelAttachHead(struct model *bodymode, struct modelfiledata *bodymodeldef, * Note that some node types support multiple display lists, so the function * may return the same node while it iterates the display lists for that node. */ -void modelIterateDisplayLists(struct modelfiledata *filedata, struct modelnode **nodeptr, Gfx **gdlptr) +void modelIterateDisplayLists(struct modeldef *modeldef, struct modelnode **nodeptr, Gfx **gdlptr) { struct modelnode *node = *nodeptr; union modelrodata *rodata; Gfx *gdl = NULL; if (node == NULL) { - node = filedata->rootnode; + node = modeldef->rootnode; } while (node) { @@ -4299,7 +4299,7 @@ void modelIterateDisplayLists(struct modelfiledata *filedata, struct modelnode * *nodeptr = node; } -void modelNodeReplaceGdl(struct modelfiledata *modeldef, struct modelnode *node, Gfx *find, Gfx *replacement) +void modelNodeReplaceGdl(struct modeldef *modeldef, struct modelnode *node, Gfx *find, Gfx *replacement) { union modelrodata *rodata; u32 type = node->type & 0xff;