@@ -681,42 +681,45 @@ bool cM3d_InclusionCheckPosIn3PosBox3d(const Vec* pVecA, const Vec* pVecB, const
681681/* 80269D64-80269E18 2646A4 00B4+00 11/11 0/0 0/0 .text
682682 * cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff */
683683static bool cM3d_InclusionCheckPosIn3PosBox2d (f32 param_1, f32 param_2, f32 param_3,
684- f32 param_4, f32 param_5, f32 param_6,
685- f32 param_7, f32 param_8, f32 param_9) {
686- f32 dVar6 = param_9;
687- f32 dVar7;
684+ f32 param_4, f32 param_5, f32 param_6,
685+ f32 param_7, f32 param_8, f32 param_9) {
686+ f32 f31;
687+ f32 f30;
688+ f32 f29;
689+ f29 = param_9;
688690 if (param_1 < param_3) {
689- dVar7 = param_1;
691+ f31 = param_1;
692+ f30 = param_3;
690693 } else {
691- dVar7 = param_3;
692- param_3 = param_1;
694+ f31 = param_3;
695+ f30 = param_1;
693696 }
694697
695- if (dVar7 > param_5) {
696- dVar7 = param_5;
697- } else if (param_3 < param_5) {
698- param_3 = param_5;
698+ if (f31 > param_5) {
699+ f31 = param_5;
700+ } else if (f30 < param_5) {
701+ f30 = param_5;
699702 }
700703
701- if (dVar7 - dVar6 > param_7 || param_3 + dVar6 < param_7) {
704+ if (f31 - f29 > param_7 || f30 + f29 < param_7) {
702705 return false ;
703706 }
704707
705- f32 f1;
706708 if (param_2 < param_4) {
707- f1 = param_2;
709+ f31 = param_2;
710+ f30 = param_4;
708711 } else {
709- f1 = param_4;
710- param_4 = param_2;
712+ f31 = param_4;
713+ f30 = param_2;
711714 }
712715
713- if (f1 > param_6) {
714- f1 = param_6;
715- } else if (param_4 < param_6) {
716- param_4 = param_6;
716+ if (f31 > param_6) {
717+ f31 = param_6;
718+ } else if (f30 < param_6) {
719+ f30 = param_6;
717720 }
718721
719- if (f1 - dVar6 > param_8 || param_4 + dVar6 < param_8)
722+ if (f31 - f29 > param_8 || f30 + f29 < param_8)
720723 {
721724 return false ;
722725 }
@@ -1543,11 +1546,26 @@ bool cM3d_Cross_CylTri(cM3dGCyl const* cyl, cM3dGTri const* tri, Vec* param_2) {
15431546
15441547/* 8026C944-8026D044 267284 0700+00 1/1 2/2 1/1 .text
15451548 * cM3d_Cross_CylLin__FPC8cM3dGCylPC8cM3dGLinP3VecP3Vec */
1546- // NONMATCHING regalloc
15471549int cM3d_Cross_CylLin (cM3dGCyl const * cyl, cM3dGLin const * line, Vec* param_2, Vec* param_3) {
1548- f32 f1 = 0 .0f ;
1549- f32 f2 = 0 .0f ;
1550- u32 uVar11 = 0 ;
1550+ f32 ratio;
1551+ f32 f2;
1552+ f32 fVar5 ;
1553+ f32 fVar2 ;
1554+ f32 fVar1 ;
1555+ f32 fVar6 ;
1556+ f32 fVar4 ;
1557+ BOOL bVar4;
1558+ BOOL bVar3;
1559+ BOOL bVar6;
1560+ BOOL bVar5;
1561+ u32 uVar11;
1562+ f32 sp28;
1563+ f32 r_sq;
1564+ int count;
1565+
1566+ ratio = 0 .0f ;
1567+ f2 = 0 .0f ;
1568+ uVar11 = 0 ;
15511569
15521570 if (cM3d_Cross_CylPnt (cyl, &line->GetStartP ()) && cM3d_Cross_CylPnt (cyl, &line->GetEndP ())) {
15531571 *param_2 = line->GetStartP ();
@@ -1561,10 +1579,10 @@ int cM3d_Cross_CylLin(cM3dGCyl const* cyl, cM3dGLin const* line, Vec* param_2, V
15611579 VECSubtract (&line->GetStartP (), center, &vec1);
15621580 VECSubtract (&line->GetEndP (), center, &vec2);
15631581 VECSubtract (&vec2, &vec1, &vec3);
1564- f32 r_sq = cyl->GetR () * cyl->GetR ();
1582+ r_sq = cyl->GetR () * cyl->GetR ();
15651583
15661584 if (!cM3d_IsZero (vec3.y )) {
1567- f32 ratio = -vec1.y / vec3.y ;
1585+ ratio = -vec1.y / vec3.y ;
15681586 if (ratio >= 0 .0f && ratio <= 1 .0f ) {
15691587 f32 x = vec1.x + vec3.x * ratio;
15701588 f32 z = vec1.z + vec3.z * ratio;
@@ -1589,56 +1607,48 @@ int cM3d_Cross_CylLin(cM3dGCyl const* cyl, cM3dGLin const* line, Vec* param_2, V
15891607 }
15901608 }
15911609
1592- f32 fVar5 = vec3.x * vec3.x + vec3.z * vec3.z ;
1593- f32 fVar2 = (vec3.x * vec1.x + vec3.z * vec1.z ) * 2 .0f ;
1594- f32 fVar1 = vec1.x * vec1.x + vec1.z * vec1.z - r_sq;
1610+ bVar4 = false ;
1611+ bVar3 = false ;
1612+ fVar5 = vec3.x * vec3.x + vec3.z * vec3.z ;
1613+ fVar2 = (vec3.x * vec1.x + vec3.z * vec1.z ) * 2 .0f ;
1614+ fVar1 = vec1.x * vec1.x + vec1.z * vec1.z - r_sq;
15951615
1596- BOOL bVar4, bVar3 ;
1597- if (!cM3d_IsZero (fVar5 * 2 . 0f )) {
1598- f32 fVar6 = fVar2 * fVar2 - fVar5 * 4 .0f * fVar1 ;
1616+ f32 sp0C = fVar5 * 2 . 0f ;
1617+ if (!cM3d_IsZero (sp0C )) {
1618+ fVar6 = fVar2 * fVar2 - fVar5 * 4 .0f * fVar1 ;
15991619 if (fVar6 < 0 .0f ) {
16001620 return 0 ;
16011621 }
16021622 if (fVar6 > 0 .0f ) {
1603- bVar3 = true ;
1604- bVar4 = true ;
1623+ bVar4 = bVar3 = true ;
16051624 } else {
16061625 bVar4 = true ;
16071626 bVar3 = false ;
16081627 }
1609- f32 fVar4 = sqrtf (fVar6 );
1628+ fVar4 = sqrtf (fVar6 );
16101629 if (bVar4) {
1611- f1 = (-fVar2 + fVar4 ) / ( fVar5 * 2 . 0f ) ;
1630+ ratio = (-fVar2 + fVar4 ) / sp0C ;
16121631 }
16131632 if (bVar3) {
1614- f2 = (-fVar2 - fVar4 ) / ( fVar5 * 2 . 0f ) ;
1633+ f2 = (-fVar2 - fVar4 ) / sp0C ;
16151634 }
16161635 } else {
16171636 if (!cM3d_IsZero (fVar2 )) {
16181637 bVar4 = true ;
16191638 bVar3 = false ;
1620- f1 = -fVar1 / fVar2 ;
1639+ ratio = -fVar1 / fVar2 ;
16211640 } else {
16221641 return 0 ;
16231642 }
16241643 }
16251644
1626- BOOL bVar6, bVar5;
16271645 if (bVar4 && !bVar3) {
1628- if (0 .0f > f1 || f1 > 1 .0f ) {
1646+ if (0 .0f > ratio || ratio > 1 .0f ) {
16291647 return 0 ;
16301648 }
16311649 } else {
1632- bool tmp = false ;
1633- if (0 .0f > f1 || f1 > 1 .0f ) {
1634- tmp = true ;
1635- }
1636- bVar6 = tmp;
1637- tmp = false ;
1638- if (0 .0f > f2 || f2 > 1 .0f ) {
1639- tmp = true ;
1640- }
1641- bVar5 = tmp;
1650+ bVar6 = 0 .0f > ratio || ratio > 1 .0f ;
1651+ bVar5 = 0 .0f > f2 || f2 > 1 .0f ;
16421652 if (bVar6 && bVar5) {
16431653 return 0 ;
16441654 }
@@ -1651,14 +1661,14 @@ int cM3d_Cross_CylLin(cM3dGCyl const* cyl, cM3dGLin const* line, Vec* param_2, V
16511661 }
16521662
16531663 if (bVar4) {
1654- f32 tmp = vec1.y + f1 * vec3.y ;
1655- if (tmp < 0 .0f || tmp > cyl->GetH ()) {
1664+ sp28 = vec1.y + ratio * vec3.y ;
1665+ if (sp28 < 0 .0f || sp28 > cyl->GetH ()) {
16561666 bVar4 = false ;
16571667 }
16581668 }
16591669 if (bVar3) {
1660- f32 tmp = vec1.y + f2 * vec3.y ;
1661- if (tmp < 0 .0f || tmp > cyl->GetH ()) {
1670+ sp28 = vec1.y + f2 * vec3.y ;
1671+ if (sp28 < 0 .0f || sp28 > cyl->GetH ()) {
16621672 bVar3 = false ;
16631673 }
16641674 }
@@ -1670,15 +1680,16 @@ int cM3d_Cross_CylLin(cM3dGCyl const* cyl, cM3dGLin const* line, Vec* param_2, V
16701680 if (bVar4 && bVar3) {
16711681 Vec vec5, vec6;
16721682 VECAdd (&vec1, center, &vec5);
1673- VECScale (&vec3, &vec6, f1);
1683+ uVar11 |= 4 ;
1684+ VECScale (&vec3, &vec6, ratio);
16741685 VECAdd (&vec6, &vec5, &vec[2 ]);
1675- uVar11 |= 0xC ;
1686+ uVar11 |= 8 ;
16761687 VECScale (&vec3, &vec6, f2);
16771688 VECAdd (&vec6, &vec5, &vec[3 ]);
16781689 } else if (bVar4) {
16791690 uVar11 |= 4 ;
16801691 Vec vec5, vec6;
1681- VECScale (&vec3, &vec5, f1 );
1692+ VECScale (&vec3, &vec5, ratio );
16821693 VECAdd (&vec5, &vec1, &vec6);
16831694 VECAdd (&vec6, center, &vec[2 ]);
16841695 } else if (bVar3) {
@@ -1689,7 +1700,7 @@ int cM3d_Cross_CylLin(cM3dGCyl const* cyl, cM3dGLin const* line, Vec* param_2, V
16891700 VECAdd (&vec6, center, &vec[2 ]);
16901701 }
16911702
1692- int count = 0 ;
1703+ count = 0 ;
16931704 for (int i = 0 ; i < 4 ; i++) {
16941705 if (uVar11 & (1 << i)) {
16951706 if (count == 0 ) {
0 commit comments