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 |
###
@@ -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
- */
}
/**