| 1267 | } |
| 1268 | |
| 1269 | void Course::drawBase(u32 cameraNo, u32 *matTable, s16 matNum, bool checkZMode) |
| 1270 | { |
| 1271 | for (int i = 0; i < 3; i++) |
| 1272 | { |
| 1273 | if (isTexSRTAnmEnable(i)) |
| 1274 | mTexSRTAnm[i].anmFrameProc(); |
| 1275 | } |
| 1276 | |
| 1277 | if (isTexPatAnmEnable()) |
| 1278 | mTexPatAnm.anmFrameProc(); |
| 1279 | |
| 1280 | for (int i = 0; i < 1; i++) |
| 1281 | { |
| 1282 | if (isTevRegAnmEnable(i)) |
| 1283 | mTevRegAnm[i].anmFrameProc(); |
| 1284 | } |
| 1285 | |
| 1286 | if (mIsTextCourse25) |
| 1287 | return; |
| 1288 | |
| 1289 | J3DModelData *modeldata = mTexModel.getModelData(); |
| 1290 | if (modeldata) |
| 1291 | { |
| 1292 | modeldata->syncJ3DSys(); |
| 1293 | J3DJoint *node = modeldata->getJointNodePointer(0); |
| 1294 | const Mtx &baseTR = mTexModel.getBaseTRMtx(); |
| 1295 | |
| 1296 | Mtx viewPos; |
| 1297 | Mtx t_m; |
| 1298 | Mtx m; |
| 1299 | |
| 1300 | J3DGetTranslateRotateMtx(node->getTransformInfo(), t_m); |
| 1301 | PSMTXConcat(baseTR, t_m, m); |
| 1302 | const Mtx &viewMtx = j3dSys.getViewMtx(); |
| 1303 | |
| 1304 | PSMTXConcat(viewMtx, m, viewPos); |
| 1305 | GXLoadPosMtxImm(viewPos, 0); |
| 1306 | GXLoadNrmMtxImm(viewPos, 0); |
| 1307 | J3DShape::resetVcdVatCache(); |
| 1308 | |
| 1309 | for (u16 i = 0; i < matNum; i++) |
| 1310 | { |
| 1311 | bool unk = false; |
| 1312 | for (J3DMaterial *mat = node->getMesh(); mat != nullptr; mat = mat->getNext()) |
| 1313 | { |
| 1314 | #line 2818 |
| 1315 | JUT_MINMAX_ASSERT(0, mat->getIndex(), modeldata->getMaterialNum()) |
| 1316 | bool doUpdate = false; |
| 1317 | if (matTable[i] == mat->getMaterialID() && ((1 << cameraNo & mMatFlags[mat->getIndex()]) == 0)) |
| 1318 | { |
| 1319 | doUpdate = true; |
| 1320 | if (checkZMode && mat->getPEBlock()->getZMode()->getUpdateEnable() != 1) |
| 1321 | doUpdate = false; |
| 1322 | } |
| 1323 | |
| 1324 | if (!doUpdate) |
| 1325 | continue; |
| 1326 |
nothing calls this directly
no test coverage detected