MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / initVertMap

Function initVertMap

src/SB/Game/zLasso.cpp:443–500  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

441}
442
443static void initVertMap(zLassoGuide* guide)
444{
445 RpGeometry* geom = guide->poly->Data->geometry;
446 RpTriangle* tris = geom->triangles;
447 S32 numTri = geom->numTriangles;
448
449 S32 center = tris->vertIndex[0];
450 S32 init = tris->vertIndex[0];
451
452 if (((init != tris->vertIndex[4] && init != tris->vertIndex[5] && init != tris->vertIndex[6]) ||
453 (init != tris->vertIndex[8] && init != tris->vertIndex[9] && init != tris->vertIndex[10])) &&
454 ((init = tris->vertIndex[1], init != tris->vertIndex[4] && init != tris->vertIndex[5] && init != tris->vertIndex[6]) ||
455 (init != tris->vertIndex[8] && init != tris->vertIndex[9] && init != tris->vertIndex[10])))
456 {
457 init = tris->vertIndex[2];
458 }
459
460 if (init == tris->vertIndex[0]) {
461 init = tris->vertIndex[1];
462 }
463
464 S32 vertIdx = 0;
465 S32 curr = init;
466 S32 currTri;
467 ushort* puVar5;
468
469 do {
470 vertIdx = vertIdx + 1;
471 guide->vertMap[vertIdx - 1] = curr;
472
473 if (vertIdx == numTri) {
474 vertIdx = 0;
475 }
476
477 while (true) {
478 puVar5 = &tris->vertIndex[vertIdx];
479 currTri = puVar5[0];
480
481 if (curr == currTri || curr == puVar5[1] || curr == puVar5[2]) {
482 break;
483 }
484
485 vertIdx = vertIdx + 1;
486 if (vertIdx == numTri) {
487 vertIdx = 0;
488 }
489 }
490
491 if ((curr != currTri && center != currTri)) {
492 currTri = puVar5[1];
493 if ((curr != currTri && center != currTri)) {
494 currTri = puVar5[2];
495 }
496 }
497
498 curr = currTri;
499 } while (currTri != init);
500}

Callers 1

zLasso_AddGuideFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected