MCPcopy Create free account
hub / github.com/doldecomp/mkdd / loadModelData

Method loadModelData

src/Kaneshige/Course/Course.cpp:708–874  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

706}
707
708void Course::loadModelData()
709{
710 SYSDBG_SetHeapGroup("COURSE MODEL", nullptr);
711 void *courseModel = ResMgr::getPtr(ResMgr::mcCourseBmd);
712 if (courseModel)
713 {
714 J3DModelData *modelData = J3DModelLoaderDataBase::load(courseModel, 0x19220010);
715 ExModel::patchModelData(modelData);
716 mTexModel.setModelData(modelData);
717 ExModel::setFogInfo(modelData, mFogType, mFogStartZ, mFogEndZ, mFogNearZ, mFogFarZ, &mFogColor);
718 mTexModel.setLODBias(TexLODControl::getGeographyLODBias());
719
720 for (int i = 0; i < 3; i++)
721 {
722 void *texSRTAnm = ResMgr::getPtr(cCourseTexSRTAnmTable[i]);
723 if (texSRTAnm)
724 {
725 J3DAnmObjMaterial::setupTexSRTAnmData(&mTexSRTKey[i], modelData, texSRTAnm);
726 mTexSRTAnm[i].setExModel(&mTexModel);
727 mTexSRTAnm[i].attach(mTexSRTKey[i]);
728 }
729 }
730
731 void *texPat = ResMgr::getPtr(ResMgr::mcCourseBtp);
732 if (texPat)
733 {
734 J3DAnmObjMaterial::setupTexPatternAnmData(&mTexPattern, modelData, texPat);
735 mTexPatAnm.setExModel(&mTexModel);
736 mTexPatAnm.attach(mTexPattern);
737 }
738
739 for (int i = 0; i < 1; i++)
740 {
741 void *tevReg = ResMgr::getPtr(cCourseTevRegAnmTable[i]);
742 if (tevReg)
743 {
744 J3DAnmObjMaterial::setupTevRegAnmData(mTevRegKey, modelData, tevReg);
745 mTevRegAnm[i].setExModel(&mTexModel);
746 mTevRegAnm[i].attach(mTevRegKey[i]);
747 }
748 }
749
750 modelData->newSharedDisplayList(0x40000);
751 smpCalcMaterial(modelData, modelData->getJointNodePointer(0), j3dDefaultMtx);
752 modelData->makeSharedDL();
753
754 mMatFlags = new u16[modelData->getMaterialNum() & 0xffff];
755 for (u16 i = 0; i < modelData->getMaterialNum(); i++)
756 mMatFlags[i] = 0;
757
758 mNormMatIDTable = new u32[modelData->getMaterialInitNum() & 0xffff];
759 mHighMatIDTable = new u32[modelData->getMaterialInitNum() & 0xffff];
760
761 for (int i = 0; i < modelData->getMaterialInitNum(); i++)
762 {
763 mNormMatIDTable[i] = 0xffffffff;
764 mHighMatIDTable[i] = 0xffffffff;
765 }

Callers

nothing calls this directly

Calls 15

getPtrFunction · 0.85
smpCalcMaterialFunction · 0.85
setModelDataMethod · 0.80
setLODBiasMethod · 0.80
isDrawModeOpaTexEdgeMethod · 0.80
getMaterialIDMethod · 0.80
isDrawModeXluMethod · 0.80
setSimpleTevRegMethod · 0.80
simpleCalcMaterialMethod · 0.80
setExModelMethod · 0.45
attachMethod · 0.45
getJointNodePointerMethod · 0.45

Tested by

no test coverage detected