diff --git a/docs/recommended_todo.md b/docs/recommended_todo.md index 3c0838162..7ad9a2b79 100644 --- a/docs/recommended_todo.md +++ b/docs/recommended_todo.md @@ -85,7 +85,7 @@ | pelletState.cpp | 63252 | itemUjamushi.cpp | 64521 | | itemPlant.cpp | 73541 | baseGameSection.cpp | 86125 | | aiPrimitives.cpp | 117179 | pelletMgr.cpp | 134458 | -| navi.cpp | 148740 | pikiState.cpp | 155809 | +| pikiState.cpp | 140997 | navi.cpp | 148740 | | naviState.cpp | 163222 | singleGS_Zukan.cpp | 163862 | | gameMapParts.cpp | 164114 | | | @@ -142,7 +142,7 @@ | File | Size (bytes) | File | Size (bytes) | | ---- | ---- | ---- | ---- | | ogCopyPane.cpp | 7678 | ogCounterSlot.cpp | 15278 | -| ogMenuMgr.cpp | 18723 | ogObjContena.cpp | 31506 | +| ogMenuMgr.cpp | 18723 | ogObjContena.cpp | 31493 | | ogObjVs.cpp | 44615 | ogObjSMenuMap.cpp | 53594 | ###
plugProjectYamashitaU
@@ -168,7 +168,7 @@ | File | Size (bytes) | File | Size (bytes) | | ---- | ---- | ---- | ---- | | aramMgr.cpp | 4254 | JSTObjectCamera.cpp | 7561 | -| section.cpp | 7740 | JSTObjectGameActor.cpp | 9275 | +| section.cpp | 7747 | JSTObjectGameActor.cpp | 9275 | | sysShapeModel.cpp | 15503 | titleSection.cpp | 19706 | | JSTObjectActor.cpp | 20176 | JSTObjectSystem.cpp | 22652 | | matMath.cpp | 26236 | moviePlayer.cpp | 26415 | diff --git a/include/Vector3.h b/include/Vector3.h index e44a30704..8f866fa1f 100644 --- a/include/Vector3.h +++ b/include/Vector3.h @@ -849,11 +849,7 @@ inline void addAccel(Vector3f& outputVec, const Vector3f& inputVec, f32 massRati inline Vector3f cross(Vector3f& vec1, Vector3f& vec2) { - Vector3f outVec; - outVec.x = vec1.y * vec2.z - vec1.z * vec2.y; - outVec.y = vec1.z * vec2.x - vec1.x * vec2.z; - outVec.z = vec1.x * vec2.y - vec1.y * vec2.x; - return outVec; + return Vector3f(vec1.y * vec2.z - vec1.z * vec2.y, vec1.z * vec2.x - vec1.x * vec2.z, vec1.x * vec2.y - vec1.y * vec2.x); } inline Vector3f scaleAndTranslate(const Vector3f& vec1, const Vector3f& vec2, f32 scale) diff --git a/src/plugProjectKandoU/pikiState.cpp b/src/plugProjectKandoU/pikiState.cpp index 21f79dcc0..4924f7aff 100644 --- a/src/plugProjectKandoU/pikiState.cpp +++ b/src/plugProjectKandoU/pikiState.cpp @@ -211,10 +211,10 @@ void PikiCarrotState::exec(Piki* piki) Vector3f pos = piki->mVelocity; f32 length = pos.normalise(); - if (length > 0.0f) { // regswaps here + if (length > 0.0f) { pos.negate(); Matrixf natMatrix; - natMatrix.makeNaturalPosture(pos); + natMatrix.makeNaturalPosture(pos, 0.0f); Matrixf matST; matST.makeST(piki->mScale, Vector3f::zero); Matrixf concatMtx; @@ -225,229 +225,6 @@ void PikiCarrotState::exec(Piki* piki) Vector3f newPos = piki->getPosition(); piki->mBaseTrMatrix.setTranslation(newPos); } - /* - stwu r1, -0x120(r1) - mflr r0 - stw r0, 0x124(r1) - stw r31, 0x11c(r1) - mr r31, r4 - stw r30, 0x118(r1) - stw r29, 0x114(r1) - stw r28, 0x110(r1) - mr r28, r3 - mr r3, r31 - lwz r12, 0(r31) - lwz r12, 0xa8(r12) - mtctr r12 - bctrl - clrlwi. r0, r3, 0x18 - beq lbl_8018A394 - lfs f0, lbl_80518DE0@sda21(r2) - stfs f0, 0x1e4(r31) - stfs f0, 0x1e8(r31) - stfs f0, 0x1ec(r31) - lbz r0, 0x14(r28) - cmplwi r0, 0 - beq lbl_8018A2CC - mr r3, r31 - addi r4, r28, 0x18 - li r5, 0 - bl "setPosition__Q24Game8CreatureFR10Vector3b" - lfs f0, lbl_80518DE0@sda21(r2) - stfs f0, 0x200(r31) - stfs f0, 0x204(r31) - stfs f0, 0x208(r31) - -lbl_8018A2CC: - lwz r3, sys@sda21(r13) - lfs f2, 0x10(r28) - lfs f1, 0x54(r3) - lfs f0, lbl_80518DE0@sda21(r2) - fsubs f1, f2, f1 - stfs f1, 0x10(r28) - lfs f1, 0x10(r28) - fcmpo cr0, f1, f0 - cror 2, 0, 2 - bne lbl_8018A38C - mr r4, r31 - addi r3, r1, 0x14 - lwz r12, 0(r31) - lwz r12, 8(r12) - mtctr r12 - bctrl - lis r4, __vt__Q23efx5TBase@ha - lis r3, __vt__Q23efx8TSimple1@ha - addi r0, r4, __vt__Q23efx5TBase@l - lfs f2, 0x14(r1) - stw r0, 0x2c(r1) - addi r0, r3, __vt__Q23efx8TSimple1@l - lfs f1, 0x18(r1) - lis r4, __vt__Q23efx3Arg@ha - lfs f0, 0x1c(r1) - lis r3, __vt__Q23efx9TPikuDead@ha - addi r4, r4, __vt__Q23efx3Arg@l - li r6, 0x276 - li r5, 0 - stw r0, 0x2c(r1) - addi r0, r3, __vt__Q23efx9TPikuDead@l - addi r3, r1, 0x2c - stw r4, 0x38(r1) - addi r4, r1, 0x38 - stfs f2, 0x3c(r1) - stfs f1, 0x40(r1) - stfs f0, 0x44(r1) - sth r6, 0x30(r1) - stw r5, 0x34(r1) - stw r0, 0x2c(r1) - bl create__Q23efx8TSimple1FPQ23efx3Arg - mr r3, r31 - li r4, 0x3857 - li r5, 0 - bl startSound__Q24Game4PikiFUlb - mr r3, r31 - li r4, 0 - bl kill__Q24Game8CreatureFPQ24Game15CreatureKillArg - -lbl_8018A38C: - lfs f0, lbl_80518DE0@sda21(r2) - stfs f0, 0x234(r31) - -lbl_8018A394: - lfs f3, 0x200(r31) - lfs f1, lbl_80518DE0@sda21(r2) - stfs f3, 0x20(r1) - fmuls f0, f3, f3 - lfs f2, 0x204(r31) - stfs f2, 0x24(r1) - fmuls f4, f2, f2 - lfs f2, 0x208(r31) - fadds f0, f0, f4 - fmuls f5, f2, f2 - stfs f2, 0x28(r1) - fadds f0, f5, f0 - fcmpo cr0, f0, f1 - ble lbl_8018A3E8 - fmadds f0, f3, f3, f4 - fadds f4, f5, f0 - fcmpo cr0, f4, f1 - ble lbl_8018A3EC - frsqrte f0, f4 - fmuls f4, f0, f4 - b lbl_8018A3EC - -lbl_8018A3E8: - fmr f4, f1 - -lbl_8018A3EC: - lfs f0, lbl_80518DE0@sda21(r2) - fcmpo cr0, f4, f0 - ble lbl_8018A428 - lfs f0, lbl_80518DE4@sda21(r2) - lfs f2, 0x20(r1) - fdivs f3, f0, f4 - lfs f1, 0x24(r1) - lfs f0, 0x28(r1) - fmuls f2, f2, f3 - fmuls f1, f1, f3 - fmuls f0, f0, f3 - stfs f2, 0x20(r1) - stfs f1, 0x24(r1) - stfs f0, 0x28(r1) - b lbl_8018A42C - -lbl_8018A428: - fmr f4, f0 - -lbl_8018A42C: - lfs f1, lbl_80518DE0@sda21(r2) - fcmpo cr0, f4, f1 - ble lbl_8018A564 - lfs f3, 0x20(r1) - addi r3, r1, 0xd8 - lfs f4, lbl_80518DE8@sda21(r2) - addi r4, r1, 0x20 - lfs f2, 0x24(r1) - lfs f0, 0x28(r1) - fmuls f3, f3, f4 - fmuls f2, f2, f4 - fmuls f0, f0, f4 - stfs f3, 0x20(r1) - stfs f2, 0x24(r1) - stfs f0, 0x28(r1) - bl "makeNaturalPosture__7MatrixfFR10Vector3f" - lis r4, "zero__10Vector3"@ha - addi r3, r1, 0xa8 - addi r5, r4, "zero__10Vector3"@l - addi r4, r31, 0x168 - bl "makeST__7MatrixfFR10Vector3R10Vector3" - lfs f1, lbl_80518DE0@sda21(r2) - addi r3, r1, 0xd8 - lfs f0, lbl_80518DEC@sda21(r2) - addi r4, r1, 0xa8 - stfs f1, 0xe4(r1) - addi r5, r1, 0x48 - stfs f0, 0xf4(r1) - stfs f1, 0x104(r1) - bl PSMTXConcat - lwz r12, 0x48(r1) - mr r4, r31 - lwz r28, 0x4c(r1) - addi r3, r1, 8 - lwz r29, 0x50(r1) - lwz r30, 0x54(r1) - lwz r11, 0x58(r1) - lwz r10, 0x5c(r1) - lwz r9, 0x60(r1) - lwz r8, 0x64(r1) - lwz r7, 0x68(r1) - lwz r6, 0x6c(r1) - lwz r5, 0x70(r1) - lwz r0, 0x74(r1) - stw r12, 0x78(r1) - stw r12, 0x138(r31) - stw r28, 0x13c(r31) - stw r29, 0x140(r31) - stw r30, 0x144(r31) - stw r11, 0x148(r31) - stw r10, 0x14c(r31) - stw r9, 0x150(r31) - stw r8, 0x154(r31) - stw r7, 0x158(r31) - stw r6, 0x15c(r31) - stw r5, 0x160(r31) - stw r0, 0x164(r31) - lwz r12, 0(r31) - stw r28, 0x7c(r1) - lwz r12, 8(r12) - stw r29, 0x80(r1) - stw r30, 0x84(r1) - stw r11, 0x88(r1) - stw r10, 0x8c(r1) - stw r9, 0x90(r1) - stw r8, 0x94(r1) - stw r7, 0x98(r1) - stw r6, 0x9c(r1) - stw r5, 0xa0(r1) - stw r0, 0xa4(r1) - mtctr r12 - bctrl - lfs f1, 0xc(r1) - lfs f2, 0x10(r1) - lfs f0, 8(r1) - stfs f0, 0x144(r31) - stfs f1, 0x154(r31) - stfs f2, 0x164(r31) - -lbl_8018A564: - lwz r0, 0x124(r1) - lwz r31, 0x11c(r1) - lwz r30, 0x118(r1) - lwz r29, 0x114(r1) - lwz r28, 0x110(r1) - mtlr r0 - addi r1, r1, 0x120 - blr - */ } /** @@ -2531,13 +2308,11 @@ void PikiHipDropState::exec(Piki* piki) if (closestEnemy) { Vector3f enemyPos = closestEnemy->getPosition(); - f32 dist = _distanceXZ(enemyPos, position); + enemyPos = enemyPos - position; + f32 dist = _sqrtf(enemyPos.x * enemyPos.x + enemyPos.z * enemyPos.z); if (dist > 0.0f) { - f32 norm = (1.0f / dist); - norm = 120.0f * norm; - enemyPos.x *= norm; - enemyPos.z *= norm; + enemyPos *= 120.0f * (1.0f / dist); piki->mVelocity.x = enemyPos.x; piki->mVelocity.z = enemyPos.z; } @@ -5904,7 +5679,7 @@ void PikiEscapeState::exec(Piki* piki) switch (mSubState) { case 1: case 2: - piki->mTargetVelocity *= 0.955f; + piki->mTargetVelocity = piki->mTargetVelocity * 0.955f; return; } @@ -5917,11 +5692,11 @@ void PikiEscapeState::exec(Piki* piki) Vector3f diff = pikiPos - targetPos; f32 dist = diff.normalise(); - f32 val = 1.0f; + + Vector3f axis(0.0f, 1.0f, 0.0f); if ((u8)mDoFinishAnim != (u8)0) { - val = -1.0f; + axis.y = -1.0f; } - Vector3f axis(0.0f, val, 0.0f); // cross product needs fixing. Vector3f vec = cross(diff, axis); @@ -5952,428 +5727,6 @@ void PikiEscapeState::exec(Piki* piki) mDoFinishAnim = (randFloat() > 0.5f) ? 1 : 0; } } - /* - stwu r1, -0x120(r1) - mflr r0 - stw r0, 0x124(r1) - stfd f31, 0x110(r1) - psq_st f31, 280(r1), 0, qr0 - stfd f30, 0x100(r1) - psq_st f30, 264(r1), 0, qr0 - stfd f29, 0xf0(r1) - psq_st f29, 248(r1), 0, qr0 - stw r31, 0xec(r1) - stw r30, 0xe8(r1) - stw r29, 0xe4(r1) - stw r28, 0xe0(r1) - mr r30, r3 - mr r31, r4 - lbz r0, 0x11(r3) - cmpwi r0, 3 - bge lbl_801922D4 - cmpwi r0, 1 - bge lbl_801922A8 - b lbl_801922D4 - -lbl_801922A8: - lfs f2, lbl_80518E8C@sda21(r2) - lfs f0, 0x1e4(r31) - lfs f1, 0x1e8(r31) - lfs f3, 0x1ec(r31) - fmuls f0, f0, f2 - fmuls f1, f1, f2 - fmuls f2, f3, f2 - stfs f0, 0x1e4(r31) - stfs f1, 0x1e8(r31) - stfs f2, 0x1ec(r31) - b lbl_801927E4 - -lbl_801922D4: - mr r4, r31 - addi r3, r1, 0x18 - lwz r12, 0(r31) - lwz r12, 8(r12) - mtctr r12 - bctrl - lfs f3, 0x18(r1) - addi r3, r1, 0x60 - lfs f2, 0x1c(r1) - addi r4, r1, 8 - lfs f1, 0x20(r1) - lfs f0, lbl_80518EA8@sda21(r2) - stfs f3, 8(r1) - stfs f2, 0xc(r1) - stfs f1, 0x10(r1) - stfs f0, 0x14(r1) - bl __ct__Q24Game15CellIteratorArgFRQ23Sys6Sphere - addi r3, r1, 0x80 - addi r4, r1, 0x60 - bl __ct__Q24Game12CellIteratorFRQ24Game15CellIteratorArg - lfs f31, lbl_80518EA8@sda21(r2) - addi r3, r1, 0x80 - li r28, 0 - bl first__Q24Game12CellIteratorFv - b lbl_80192418 - -lbl_80192338: - addi r3, r1, 0x80 - bl __ml__Q24Game12CellIteratorFv - lwz r12, 0(r3) - mr r29, r3 - lwz r12, 0x7c(r12) - mtctr r12 - bctrl - clrlwi. r0, r3, 0x18 - beq lbl_80192410 - mr r3, r29 - lwz r12, 0(r29) - lwz r12, 0xd4(r12) - mtctr r12 - bctrl - clrlwi. r0, r3, 0x18 - beq lbl_80192410 - mr r3, r29 - lwz r12, 0(r29) - lwz r12, 0xa8(r12) - mtctr r12 - bctrl - clrlwi. r0, r3, 0x18 - beq lbl_80192410 - mr r4, r29 - addi r3, r1, 0x24 - lwz r12, 0(r29) - lwz r12, 8(r12) - mtctr r12 - bctrl - lfs f1, 0x28(r1) - lfs f0, 0xc(r1) - lfs f3, 0x24(r1) - fsubs f4, f1, f0 - lfs f2, 8(r1) - lfs f1, 0x2c(r1) - lfs f0, 0x10(r1) - fsubs f3, f3, f2 - fmuls f4, f4, f4 - fsubs f2, f1, f0 - lfs f0, lbl_80518DE0@sda21(r2) - fmadds f1, f3, f3, f4 - fmuls f2, f2, f2 - fadds f1, f2, f1 - fcmpo cr0, f1, f0 - ble lbl_801923FC - ble lbl_80192400 - frsqrte f0, f1 - fmuls f1, f0, f1 - b lbl_80192400 - -lbl_801923FC: - fmr f1, f0 - -lbl_80192400: - fcmpo cr0, f1, f31 - bge lbl_80192410 - mr r28, r29 - fmr f31, f1 - -lbl_80192410: - addi r3, r1, 0x80 - bl next__Q24Game12CellIteratorFv - -lbl_80192418: - addi r3, r1, 0x80 - bl isDone__Q24Game12CellIteratorFv - clrlwi. r0, r3, 0x18 - beq lbl_80192338 - cmplwi r28, 0 - beq lbl_801927E4 - mr r4, r28 - addi r3, r1, 0x3c - lwz r12, 0(r28) - lwz r12, 8(r12) - mtctr r12 - bctrl - mr r4, r31 - addi r3, r1, 0x30 - lwz r12, 0(r31) - lfs f30, 0x3c(r1) - lwz r12, 8(r12) - lfs f31, 0x40(r1) - lfs f29, 0x44(r1) - mtctr r12 - bctrl - lfs f1, 0x30(r1) - lfs f0, 0x34(r1) - fsubs f3, f1, f30 - lfs f4, 0x38(r1) - fsubs f2, f0, f31 - lfs f1, lbl_80518DE0@sda21(r2) - fsubs f4, f4, f29 - fmuls f0, f3, f3 - fmuls f5, f2, f2 - stfs f3, 0x54(r1) - fmuls f6, f4, f4 - stfs f2, 0x58(r1) - fadds f0, f0, f5 - stfs f4, 0x5c(r1) - fadds f0, f6, f0 - fcmpo cr0, f0, f1 - ble lbl_801924CC - fmadds f0, f3, f3, f5 - fadds f31, f6, f0 - fcmpo cr0, f31, f1 - ble lbl_801924D0 - frsqrte f0, f31 - fmuls f31, f0, f31 - b lbl_801924D0 - -lbl_801924CC: - fmr f31, f1 - -lbl_801924D0: - lfs f0, lbl_80518DE0@sda21(r2) - fcmpo cr0, f31, f0 - ble lbl_8019250C - lfs f0, lbl_80518DE4@sda21(r2) - lfs f2, 0x54(r1) - fdivs f3, f0, f31 - lfs f1, 0x58(r1) - lfs f0, 0x5c(r1) - fmuls f2, f2, f3 - fmuls f1, f1, f3 - fmuls f0, f0, f3 - stfs f2, 0x54(r1) - stfs f1, 0x58(r1) - stfs f0, 0x5c(r1) - b lbl_80192510 - -lbl_8019250C: - fmr f31, f0 - -lbl_80192510: - lbz r0, 0x10(r30) - lfs f3, lbl_80518DE4@sda21(r2) - cmplwi r0, 0 - beq lbl_80192524 - lfs f3, lbl_80518DE8@sda21(r2) - -lbl_80192524: - lfs f4, 0x54(r1) - lfs f2, lbl_80518DE0@sda21(r2) - lfs f1, 0x58(r1) - fmuls f0, f4, f2 - lfs f5, 0x5c(r1) - fmuls f6, f1, f2 - fmsubs f0, f5, f2, f0 - fnmsubs f1, f5, f3, f6 - fmsubs f3, f4, f3, f6 - fmuls f4, f0, f0 - stfs f0, 0x4c(r1) - fmuls f0, f1, f1 - fmuls f5, f3, f3 - stfs f1, 0x48(r1) - fadds f0, f0, f4 - stfs f3, 0x50(r1) - fadds f0, f5, f0 - fcmpo cr0, f0, f2 - ble lbl_8019258C - fmadds f0, f1, f1, f4 - fadds f1, f5, f0 - fcmpo cr0, f1, f2 - ble lbl_80192590 - frsqrte f0, f1 - fmuls f1, f0, f1 - b lbl_80192590 - -lbl_8019258C: - fmr f1, f2 - -lbl_80192590: - lfs f0, lbl_80518DE0@sda21(r2) - fcmpo cr0, f1, f0 - ble lbl_801925C8 - lfs f0, lbl_80518DE4@sda21(r2) - lfs f2, 0x48(r1) - fdivs f3, f0, f1 - lfs f1, 0x4c(r1) - lfs f0, 0x50(r1) - fmuls f2, f2, f3 - fmuls f1, f1, f3 - fmuls f0, f0, f3 - stfs f2, 0x48(r1) - stfs f1, 0x4c(r1) - stfs f0, 0x50(r1) - -lbl_801925C8: - bl rand - xoris r3, r3, 0x8000 - lis r0, 0x4330 - stw r3, 0xcc(r1) - mr r3, r28 - lwz r12, 0(r28) - stw r0, 0xc8(r1) - lfd f2, lbl_80518DD8@sda21(r2) - lfd f1, 0xc8(r1) - lfs f0, lbl_80518DC8@sda21(r2) - fsubs f1, f1, f2 - lwz r12, 0x54(r12) - fdivs f30, f1, f0 - mtctr r12 - bctrl - lfs f2, lbl_80518E54@sda21(r2) - fsubs f1, f31, f1 - lfs f0, lbl_80518DCC@sda21(r2) - fmsubs f0, f2, f30, f0 - fcmpo cr0, f1, f0 - bge lbl_80192630 - lfs f1, lbl_80518E10@sda21(r2) - mr r3, r31 - addi r4, r1, 0x54 - bl "setSpeed__Q24Game4PikiFfR10Vector3" - b lbl_80192640 - -lbl_80192630: - lfs f1, lbl_80518E10@sda21(r2) - mr r3, r31 - addi r4, r1, 0x48 - bl "setSpeed__Q24Game4PikiFfR10Vector3" - -lbl_80192640: - bl rand - xoris r3, r3, 0x8000 - lis r0, 0x4330 - stw r3, 0xcc(r1) - lfd f3, lbl_80518DD8@sda21(r2) - stw r0, 0xc8(r1) - lfs f1, lbl_80518DC8@sda21(r2) - lfd f2, 0xc8(r1) - lfs f0, lbl_80518E5C@sda21(r2) - fsubs f2, f2, f3 - fdivs f1, f2, f1 - fcmpo cr0, f1, f0 - bge lbl_80192764 - bl rand - xoris r3, r3, 0x8000 - lis r0, 0x4330 - stw r3, 0xcc(r1) - lfd f3, lbl_80518DD8@sda21(r2) - stw r0, 0xc8(r1) - lfs f1, lbl_80518DC8@sda21(r2) - lfd f2, 0xc8(r1) - lfs f0, lbl_80518E04@sda21(r2) - fsubs f2, f2, f3 - fdivs f1, f2, f1 - fcmpo cr0, f1, f0 - bge lbl_801926E4 - cmplwi r31, 0 - mr r6, r31 - beq lbl_801926B8 - addi r6, r31, 0x178 - -lbl_801926B8: - lwz r12, 0(r31) - mr r3, r31 - li r4, 0x3c - li r5, 0x3c - lwz r12, 0x208(r12) - li r7, 0 - mtctr r12 - bctrl - li r0, 2 - stb r0, 0x11(r30) - b lbl_8019271C - -lbl_801926E4: - cmplwi r31, 0 - mr r6, r31 - beq lbl_801926F4 - addi r6, r31, 0x178 - -lbl_801926F4: - lwz r12, 0(r31) - mr r3, r31 - li r4, 0x1a - li r5, 0x1a - lwz r12, 0x208(r12) - li r7, 0 - mtctr r12 - bctrl - li r0, 1 - stb r0, 0x11(r30) - -lbl_8019271C: - bl rand - xoris r3, r3, 0x8000 - lis r0, 0x4330 - stw r3, 0xcc(r1) - lfd f3, lbl_80518DD8@sda21(r2) - stw r0, 0xc8(r1) - lfs f2, lbl_80518DC8@sda21(r2) - lfd f0, 0xc8(r1) - lfs f1, lbl_80518E88@sda21(r2) - fsubs f3, f0, f3 - lfs f0, lbl_80518DD0@sda21(r2) - fdivs f2, f3, f2 - fmadds f0, f1, f2, f0 - fctiwz f0, f0 - stfd f0, 0xd0(r1) - lwz r0, 0xd4(r1) - stb r0, 0x10(r30) - b lbl_801927E4 - -lbl_80192764: - bl rand - xoris r3, r3, 0x8000 - lis r0, 0x4330 - stw r3, 0xd4(r1) - lfd f3, lbl_80518DD8@sda21(r2) - stw r0, 0xd0(r1) - lfs f1, lbl_80518DC8@sda21(r2) - lfd f2, 0xd0(r1) - lfs f0, lbl_80518E2C@sda21(r2) - fsubs f2, f2, f3 - fdivs f1, f2, f1 - fcmpo cr0, f1, f0 - bge lbl_801927E4 - li r0, 0 - stb r0, 0x11(r30) - bl rand - xoris r3, r3, 0x8000 - lis r0, 0x4330 - stw r3, 0xd4(r1) - lfd f3, lbl_80518DD8@sda21(r2) - stw r0, 0xd0(r1) - lfs f1, lbl_80518DC8@sda21(r2) - lfd f2, 0xd0(r1) - lfs f0, lbl_80518DF4@sda21(r2) - fsubs f2, f2, f3 - fdivs f1, f2, f1 - fcmpo cr0, f1, f0 - ble lbl_801927DC - li r0, 1 - b lbl_801927E0 - -lbl_801927DC: - li r0, 0 - -lbl_801927E0: - stb r0, 0x10(r30) - -lbl_801927E4: - psq_l f31, 280(r1), 0, qr0 - lfd f31, 0x110(r1) - psq_l f30, 264(r1), 0, qr0 - lfd f30, 0x100(r1) - psq_l f29, 248(r1), 0, qr0 - lfd f29, 0xf0(r1) - lwz r31, 0xec(r1) - lwz r30, 0xe8(r1) - lwz r29, 0xe4(r1) - lwz r0, 0x124(r1) - lwz r28, 0xe0(r1) - mtlr r0 - addi r1, r1, 0x120 - blr - */ } /**