mirror of
https://github.com/projectPiki/pikmin2.git
synced 2024-11-23 13:29:55 +00:00
Link tyre.cpp
This commit is contained in:
parent
5805593997
commit
2ce7e4b71f
File diff suppressed because it is too large
Load Diff
@ -1443,7 +1443,7 @@ LIBS = [
|
||||
["plugProjectMorimuraU/tyreState", True],
|
||||
["plugProjectMorimuraU/tyreAnimator", True],
|
||||
["plugProjectMorimuraU/tyreMgr", True],
|
||||
["plugProjectMorimuraU/tyre", False],
|
||||
["plugProjectMorimuraU/tyre", True],
|
||||
],
|
||||
},
|
||||
{
|
||||
|
@ -108,14 +108,13 @@
|
||||
| File | Size (bytes) | File | Size (bytes) |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/scrollList.cpp">scrollList.cpp</a> | 25920 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/dayEndCount.cpp">dayEndCount.cpp</a> | 26683 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/tyre.cpp">tyre.cpp</a> | 26831 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/hurryUp2D.cpp">hurryUp2D.cpp</a> | 27140 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/miulin.cpp">miulin.cpp</a> | 27520 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/jigumo.cpp">jigumo.cpp</a> | 42363 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/shijimiChou.cpp">shijimiChou.cpp</a> | 43362 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/panModoki.cpp">panModoki.cpp</a> | 49403 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/kingChappyState.cpp">kingChappyState.cpp</a> | 50795 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/umiMushi.cpp">umiMushi.cpp</a> | 60169 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/kingChappy.cpp">kingChappy.cpp</a> | 64703 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/hiScore2D.cpp">hiScore2D.cpp</a> | 103246 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/blackMan.cpp">blackMan.cpp</a> | 121665 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/zukan2D.cpp">zukan2D.cpp</a> | 133604 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/challengeResult2D.cpp">challengeResult2D.cpp</a> | 143586 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/challengeSelect2D.cpp">challengeSelect2D.cpp</a> | 185600 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/vsSelect2D.cpp">vsSelect2D.cpp</a> | 195832 | | |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/hurryUp2D.cpp">hurryUp2D.cpp</a> | 27140 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/miulin.cpp">miulin.cpp</a> | 27520 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/jigumo.cpp">jigumo.cpp</a> | 42363 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/shijimiChou.cpp">shijimiChou.cpp</a> | 43362 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/panModoki.cpp">panModoki.cpp</a> | 44941 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/kingChappyState.cpp">kingChappyState.cpp</a> | 50795 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/umiMushi.cpp">umiMushi.cpp</a> | 60169 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/kingChappy.cpp">kingChappy.cpp</a> | 64703 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/hiScore2D.cpp">hiScore2D.cpp</a> | 103246 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/blackMan.cpp">blackMan.cpp</a> | 121665 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/zukan2D.cpp">zukan2D.cpp</a> | 133604 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/challengeResult2D.cpp">challengeResult2D.cpp</a> | 143586 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/challengeSelect2D.cpp">challengeSelect2D.cpp</a> | 185600 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectMorimuraU/vsSelect2D.cpp">vsSelect2D.cpp</a> | 195832 |
|
||||
|
||||
### <section id="plugProjectNishimuraU">plugProjectNishimuraU</section>
|
||||
| File | Size (bytes) | File | Size (bytes) |
|
||||
|
@ -410,6 +410,31 @@ struct Creature : public CellObject {
|
||||
return Vector3f(x, y, z);
|
||||
}
|
||||
|
||||
inline f32 getSquarePositionTo(Vector3f& pos)
|
||||
{
|
||||
f32 z = getPosition().z;
|
||||
f32 x = getPosition().x;
|
||||
f32 targetZ = pos.z;
|
||||
f32 targetX = pos.x;
|
||||
f32 diffZ = targetZ - z;
|
||||
f32 diffX = targetX - x;
|
||||
return SQUARE(diffX) + SQUARE(diffZ);
|
||||
}
|
||||
|
||||
inline f32 getPositionTo(Vector3f& pos)
|
||||
{
|
||||
Vector3f sep = pos - Vector3f(getPosition().x, 0.0f, getPosition().z);
|
||||
// f32 z = getPosition().z;
|
||||
// f32 x = getPosition().x;
|
||||
// f32 targetZ = pos.z;
|
||||
// f32 targetX = pos.x;
|
||||
// f32 diffZ = targetZ - z;
|
||||
// f32 diffX = targetX - x;
|
||||
f32 sqrDist = SQUARE(sep.x) + SQUARE(sep.z);
|
||||
return sqrtf(sqrDist);
|
||||
// return sqrDist;
|
||||
}
|
||||
|
||||
void applyAirDrag(f32 drag, f32 horizontalDrag, f32 verticalDrag);
|
||||
f32 calcSphereDistance(Creature* other);
|
||||
int checkHell(Creature::CheckHellArg& hellArg);
|
||||
|
@ -674,6 +674,8 @@ struct EnemyBase : public Creature, public SysShape::MotionListener, virtual pub
|
||||
|
||||
inline void getPosition2D(Vector3f& pos) { pos = Vector3f(mPosition.x, 0.0f, mPosition.z); }
|
||||
|
||||
inline Vector3f getEBPosition2D() { return Vector3f(mPosition.x, 0.0f, mPosition.z); }
|
||||
|
||||
inline void forceMovePosition(Vector3f offset) { mPosition += offset; }
|
||||
|
||||
inline f32 getDamageAnimFrac(f32 scale) { return (mDamageAnimTimer / scale); }
|
||||
@ -721,6 +723,17 @@ struct EnemyBase : public Creature, public SysShape::MotionListener, virtual pub
|
||||
mTargetVelocity = Vector3f(speed * x, y, speed * z);
|
||||
}
|
||||
|
||||
inline f32 getSquareDistanceTo2D(Creature* target, Vector3f& position)
|
||||
{
|
||||
f32 z = position.z;
|
||||
f32 x = position.x;
|
||||
f32 targetZ = target->getPosition().z;
|
||||
f32 targetX = target->getPosition().x;
|
||||
f32 diffZ = targetZ - z;
|
||||
f32 diffX = targetX - x;
|
||||
return SQUARE(diffX) + SQUARE(diffZ);
|
||||
}
|
||||
|
||||
inline bool isAlertLife() { return bool(mHealth < static_cast<EnemyParmsBase*>(mParms)->mGeneral.mLifeBeforeAlert); }
|
||||
|
||||
inline bool isLongLegs()
|
||||
|
@ -323,6 +323,7 @@ struct Vector3 {
|
||||
f32 distance(Vector3&);
|
||||
f32 distance2D(Vector3&);
|
||||
f32 sqrDistance(Vector3&);
|
||||
f32 sqrDistance2D(Vector3&);
|
||||
f32 distance(JGeometry::TVec3f&);
|
||||
f32 normalise();
|
||||
f32 length2D() const;
|
||||
@ -607,6 +608,15 @@ inline f32 Vector3f::sqrDistance(Vector3f& them)
|
||||
return diffX * diffX + diffY * diffY + diffZ * diffZ;
|
||||
}
|
||||
|
||||
template <>
|
||||
inline f32 Vector3f::sqrDistance2D(Vector3f& them)
|
||||
{
|
||||
f32 diffX = this->x - them.x;
|
||||
f32 diffZ = this->z - them.z;
|
||||
|
||||
return diffX * diffX + diffZ * diffZ;
|
||||
}
|
||||
|
||||
// this is wacky and shows up in efxEnemy.cpp
|
||||
template <>
|
||||
inline f32 Vector3f::distance(JGeometry::TVec3f& them)
|
||||
|
@ -58,7 +58,7 @@ MORIMURA_FILES:=\
|
||||
$(BUILD_DIR)/src/plugProjectMorimuraU/tyreState.o\
|
||||
$(BUILD_DIR)/src/plugProjectMorimuraU/tyreAnimator.o\
|
||||
$(BUILD_DIR)/src/plugProjectMorimuraU/tyreMgr.o\
|
||||
$(BUILD_DIR)/asm/plugProjectMorimuraU/tyre.o\
|
||||
$(BUILD_DIR)/src/plugProjectMorimuraU/tyre.o\
|
||||
|
||||
DEPENDS += $(MORIMURA_FILES:.o=.d)
|
||||
|
||||
|
@ -235,16 +235,25 @@ void Obj::updateCaptureMatrix()
|
||||
Vector3f slotPos;
|
||||
calcSlotGlobalPos(slotPos);
|
||||
|
||||
Vector3f pelletPos1(pellet->getPosition().x, 0.0f, pellet->getPosition().z);
|
||||
Vector3f diff = slotPos - pelletPos1;
|
||||
diff.y = 0.0f;
|
||||
f32 dist2D = 0.0f;
|
||||
if (diff.sqrMagnitude2D() > 0.0f) {
|
||||
f32 dist = pellet->getSquarePositionTo(slotPos);
|
||||
// Vector3f pelletPos1(pellet->getPosition().x, 0.0f, pellet->getPosition().z);
|
||||
// Vector3f diff = slotPos - pelletPos1;
|
||||
// diff.y = 0.0f;
|
||||
f32 dist2D = 0.0f;
|
||||
if (dist > dist2D) {
|
||||
dist2D = getPositionTo(slotPos);
|
||||
// f32 z = pellet->getPosition().z;
|
||||
// f32 x = pellet->getPosition().x;
|
||||
// f32 slotX = slotPos.x;
|
||||
// f32 slotZ = slotPos.z;
|
||||
// f32 diffX = slotX - x;
|
||||
// f32 diffZ = slotZ - z;
|
||||
// dist2D = diffX * diffX + diffZ * diffZ;
|
||||
// sqrtf(dist2D);
|
||||
// dist2D =
|
||||
// THIS has to be an inline
|
||||
Vector3f pelletPos2(pellet->getPosition().x, 0.0f, pellet->getPosition().z);
|
||||
Vector3f diff2D = slotPos - pelletPos2;
|
||||
diff2D.y = 0.0f;
|
||||
dist2D = diff2D.length2D();
|
||||
// diff2D.y = 0.0f;
|
||||
// dist2D = diff2D.length2D();
|
||||
}
|
||||
|
||||
f32 pelletZ = mCarrySizeDiff * 0.2f + dist2D;
|
||||
@ -848,7 +857,7 @@ bool Obj::isCarryToGoal()
|
||||
homeRadius = 60.0f;
|
||||
}
|
||||
homeRadius *= homeRadius;
|
||||
// Vector3f diff = mPosition - mHomePosition;
|
||||
|
||||
Vector3f pos = mPosition;
|
||||
if (sqrDistanceXZ(pos, mHomePosition) < homeRadius) {
|
||||
releasePathFinder();
|
||||
@ -863,23 +872,13 @@ bool Obj::isCarryToGoal()
|
||||
rad2 *= rad2;
|
||||
rad3 *= rad3;
|
||||
|
||||
// Vector3f nextWPPos = mNextWayPointPosition;
|
||||
// nextWPPos = pos - nextWPPos;
|
||||
// f32 posZ = mNextWayPointPosition.z;
|
||||
// f32 posX = mNextWayPointPosition.x;
|
||||
f32 sqrDist = sqrDistanceXZ(pos, mNextWayPointPosition);
|
||||
// f32 cross = (posX * posX + posZ * posZ);
|
||||
Creature* creature = getCarryTarget();
|
||||
f32 something = -1.0f;
|
||||
f32 sqrDist = pos.sqrDistance2D(mNextWayPointPosition);
|
||||
Creature* pellet = getCarryTarget();
|
||||
f32 something = -1.0f;
|
||||
|
||||
// this is so a pellet inline.
|
||||
if (creature) {
|
||||
something = mNextWayPointPosition.z;
|
||||
f32 waypointX = mNextWayPointPosition.x;
|
||||
Vector3f creaturePos = creature->getPosition();
|
||||
f32 creaturePosZ = creaturePos.z;
|
||||
Vector3f creaturePos2 = creature->getPosition();
|
||||
something = (creaturePos2.x - waypointX) * (creaturePos2.x - waypointX) + (creaturePosZ - something) * (creaturePosZ - something);
|
||||
if (pellet) {
|
||||
something = getSquareDistanceTo2D(pellet, mNextWayPointPosition);
|
||||
}
|
||||
if ((sqrDist < rad2) || (something > 0.0f && (something < rad3))) {
|
||||
mMoveSpeedTimer = 0;
|
||||
@ -906,193 +905,6 @@ bool Obj::isCarryToGoal()
|
||||
}
|
||||
}
|
||||
return false;
|
||||
/*
|
||||
stwu r1, -0x90(r1)
|
||||
mflr r0
|
||||
stw r0, 0x94(r1)
|
||||
stfd f31, 0x80(r1)
|
||||
psq_st f31, 136(r1), 0, qr0
|
||||
stfd f30, 0x70(r1)
|
||||
psq_st f30, 120(r1), 0, qr0
|
||||
stfd f29, 0x60(r1)
|
||||
psq_st f29, 104(r1), 0, qr0
|
||||
stfd f28, 0x50(r1)
|
||||
psq_st f28, 88(r1), 0, qr0
|
||||
stfd f27, 0x40(r1)
|
||||
psq_st f27, 72(r1), 0, qr0
|
||||
stfd f26, 0x30(r1)
|
||||
psq_st f26, 56(r1), 0, qr0
|
||||
stw r31, 0x2c(r1)
|
||||
stw r30, 0x28(r1)
|
||||
mr r30, r3
|
||||
lbz r0, 0x2f0(r3)
|
||||
cmplwi r0, 0
|
||||
bne lbl_803511E4
|
||||
li r3, 0
|
||||
b lbl_803513B4
|
||||
|
||||
lbl_803511E4:
|
||||
lwz r0, 0x318(r30)
|
||||
lwz r3, 0xc0(r30)
|
||||
cmpwi r0, 0x64
|
||||
lfs f5, 0x384(r3)
|
||||
ble lbl_803511FC
|
||||
lfs f5, lbl_8051E508@sda21(r2)
|
||||
|
||||
lbl_803511FC:
|
||||
lfs f4, 0x194(r30)
|
||||
fmuls f5, f5, f5
|
||||
lfs f0, 0x1a0(r30)
|
||||
lfs f3, 0x18c(r30)
|
||||
fsubs f1, f4, f0
|
||||
lfs f0, 0x198(r30)
|
||||
fsubs f2, f3, f0
|
||||
fmuls f0, f1, f1
|
||||
fmadds f0, f2, f2, f0
|
||||
fcmpo cr0, f0, f5
|
||||
bge lbl_80351238
|
||||
mr r3, r30
|
||||
bl releasePathFinder__Q34Game13PanModokiBase3ObjFv
|
||||
li r3, 1
|
||||
b lbl_803513B4
|
||||
|
||||
lbl_80351238:
|
||||
cmpwi r0, 0x64
|
||||
lfs f26, lbl_8051E4DC@sda21(r2)
|
||||
lfs f31, lbl_8051E4D8@sda21(r2)
|
||||
ble lbl_80351250
|
||||
lfs f26, lbl_8051E508@sda21(r2)
|
||||
lfs f31, lbl_8051E50C@sda21(r2)
|
||||
|
||||
lbl_80351250:
|
||||
lfs f0, 0x2c4(r30)
|
||||
fmuls f26, f26, f26
|
||||
lfs f1, 0x2bc(r30)
|
||||
fmuls f31, f31, f31
|
||||
fsubs f0, f4, f0
|
||||
mr r3, r30
|
||||
fsubs f1, f3, f1
|
||||
fmuls f0, f0, f0
|
||||
fmadds f27, f1, f1, f0
|
||||
bl getCarryTarget__Q34Game13PanModokiBase3ObjFv
|
||||
or. r31, r3, r3
|
||||
lfs f1, lbl_8051E510@sda21(r2)
|
||||
beq lbl_803512D4
|
||||
mr r4, r31
|
||||
addi r3, r1, 8
|
||||
lwz r12, 0(r31)
|
||||
lfs f28, 0x2c4(r30)
|
||||
lwz r12, 8(r12)
|
||||
lfs f29, 0x2bc(r30)
|
||||
mtctr r12
|
||||
bctrl
|
||||
mr r4, r31
|
||||
addi r3, r1, 0x14
|
||||
lwz r12, 0(r31)
|
||||
lfs f30, 0x10(r1)
|
||||
lwz r12, 8(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
fsubs f0, f30, f28
|
||||
lfs f1, 0x14(r1)
|
||||
fsubs f1, f1, f29
|
||||
fmuls f0, f0, f0
|
||||
fmadds f1, f1, f1, f0
|
||||
|
||||
lbl_803512D4:
|
||||
fcmpo cr0, f27, f26
|
||||
blt lbl_803512F0
|
||||
lfs f0, lbl_8051E490@sda21(r2)
|
||||
fcmpo cr0, f1, f0
|
||||
ble lbl_803513B0
|
||||
fcmpo cr0, f1, f31
|
||||
bge lbl_803513B0
|
||||
|
||||
lbl_803512F0:
|
||||
li r0, 0
|
||||
stw r0, 0x318(r30)
|
||||
lha r3, 0x2e8(r30)
|
||||
lha r0, 0x2e6(r30)
|
||||
cmpw r3, r0
|
||||
bne lbl_80351330
|
||||
lfs f0, 0x198(r30)
|
||||
fcmpo cr0, f1, f31
|
||||
stfs f0, 0x2bc(r30)
|
||||
lfs f0, 0x19c(r30)
|
||||
stfs f0, 0x2c0(r30)
|
||||
lfs f0, 0x1a0(r30)
|
||||
stfs f0, 0x2c4(r30)
|
||||
bge lbl_803513B0
|
||||
li r3, 1
|
||||
b lbl_803513B4
|
||||
|
||||
lbl_80351330:
|
||||
lwz r4, 0x384(r30)
|
||||
b lbl_803513A8
|
||||
|
||||
lbl_80351338:
|
||||
lha r0, 0x20(r4)
|
||||
cmpw r0, r3
|
||||
bne lbl_803513A4
|
||||
sth r3, 0x2ea(r30)
|
||||
lwz r3, 0xc(r4)
|
||||
cmplwi r3, 0
|
||||
beq lbl_80351360
|
||||
lha r0, 0x20(r3)
|
||||
sth r0, 0x2e8(r30)
|
||||
b lbl_80351368
|
||||
|
||||
lbl_80351360:
|
||||
lha r0, 0x2e6(r30)
|
||||
sth r0, 0x2e8(r30)
|
||||
|
||||
lbl_80351368:
|
||||
lwz r3, mapMgr__4Game@sda21(r13)
|
||||
lha r4, 0x2e8(r30)
|
||||
lwz r3, 8(r3)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x2c(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
lfs f1, 0x50(r3)
|
||||
lfs f2, 0x54(r3)
|
||||
lfs f0, 0x4c(r3)
|
||||
li r3, 0
|
||||
stfs f0, 0x2bc(r30)
|
||||
stfs f1, 0x2c0(r30)
|
||||
stfs f2, 0x2c4(r30)
|
||||
b lbl_803513B4
|
||||
|
||||
lbl_803513A4:
|
||||
lwz r4, 0xc(r4)
|
||||
|
||||
lbl_803513A8:
|
||||
cmplwi r4, 0
|
||||
bne lbl_80351338
|
||||
|
||||
lbl_803513B0:
|
||||
li r3, 0
|
||||
|
||||
lbl_803513B4:
|
||||
psq_l f31, 136(r1), 0, qr0
|
||||
lfd f31, 0x80(r1)
|
||||
psq_l f30, 120(r1), 0, qr0
|
||||
lfd f30, 0x70(r1)
|
||||
psq_l f29, 104(r1), 0, qr0
|
||||
lfd f29, 0x60(r1)
|
||||
psq_l f28, 88(r1), 0, qr0
|
||||
lfd f28, 0x50(r1)
|
||||
psq_l f27, 72(r1), 0, qr0
|
||||
lfd f27, 0x40(r1)
|
||||
psq_l f26, 56(r1), 0, qr0
|
||||
lfd f26, 0x30(r1)
|
||||
lwz r31, 0x2c(r1)
|
||||
lwz r0, 0x94(r1)
|
||||
lwz r30, 0x28(r1)
|
||||
mtlr r0
|
||||
addi r1, r1, 0x90
|
||||
blr
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -448,8 +448,9 @@ void Obj::frontRollMtxCalc()
|
||||
mat.makeTR(translation, rotation);
|
||||
}
|
||||
|
||||
// WHY are these capitalised differently is2g
|
||||
mTyrePositions[0] = mModel->getJoint("tyreFL")->getWorldMatrix()->getColumn(3);
|
||||
mTyrePositions[1] = mModel->getJoint("tyreFR")->getWorldMatrix()->getColumn(3);
|
||||
mTyrePositions[1] = mModel->getJoint("TyreFR")->getWorldMatrix()->getColumn(3);
|
||||
PSMTXConcat(worldMat->mMatrix.mtxView, mat.mMatrix.mtxView, worldMat->mMatrix.mtxView);
|
||||
PSMTXConcat(J3DSys::mCurrentMtx, mat.mMatrix.mtxView, J3DSys::mCurrentMtx);
|
||||
|
||||
@ -599,10 +600,9 @@ void Obj::flick()
|
||||
{
|
||||
Piki* obj = *iterPiki;
|
||||
if (obj->isAlive() && obj->mFloorTriangle) {
|
||||
Vector3f pos = Vector3f(mPosition.x, mPosition.y, mPosition.z);
|
||||
Vector3f objPos = Vector3f(obj->getPosition().x, 0.0f, obj->getPosition().z);
|
||||
if (sqrDistanceXZ(objPos, pos) < 900.0f) {
|
||||
InteractPress act(this, C_GENERALPARMS.mAttackDamage, nullptr);
|
||||
f32 dist = getSquareDistanceTo2D(obj, mPosition);
|
||||
if (dist < 900.0f) {
|
||||
InteractPress act(this, C_GENERALPARMS.mAttackDamage(), nullptr);
|
||||
obj->stimulate(act);
|
||||
}
|
||||
}
|
||||
@ -611,434 +611,20 @@ void Obj::flick()
|
||||
Iterator<Navi> iterNavi(naviMgr);
|
||||
CI_LOOP(iterNavi)
|
||||
{
|
||||
Navi* obj = *iterNavi;
|
||||
Vector3f pos = Vector3f(mPosition.x, 0.0f, mPosition.z);
|
||||
Vector3f objPos = Vector3f(obj->getPosition().x, 0.0f, obj->getPosition().z);
|
||||
if (sqrDistanceXZ(objPos, pos) < 900.0f) {
|
||||
InteractPress act(this, C_GENERALPARMS.mAttackDamage, nullptr);
|
||||
Navi* obj = *iterNavi;
|
||||
f32 dist = getSquareDistanceTo2D(obj, mPosition);
|
||||
if (dist < 900.0f) {
|
||||
InteractPress act(this, C_GENERALPARMS.mAttackDamage(), nullptr);
|
||||
obj->stimulate(act);
|
||||
}
|
||||
}
|
||||
|
||||
f32 range = C_GENERALPARMS.mShakeChance.mValue;
|
||||
f32 knockback = C_GENERALPARMS.mShakeKnockback.mValue;
|
||||
f32 damage = C_GENERALPARMS.mShakeDamage.mValue;
|
||||
f32 range = C_GENERALPARMS.mShakeChance();
|
||||
f32 knockback = C_GENERALPARMS.mShakeKnockback();
|
||||
f32 damage = C_GENERALPARMS.mShakeDamage();
|
||||
|
||||
EnemyFunc::flickNearbyPikmin(this, C_GENERALPARMS.mShakeRange.mValue, knockback, damage, FLICK_BACKWARD_ANGLE, nullptr);
|
||||
EnemyFunc::flickNearbyPikmin(this, C_GENERALPARMS.mShakeRange(), knockback, damage, FLICK_BACKWARD_ANGLE, nullptr);
|
||||
EnemyFunc::flickStickPikmin(this, range, knockback, damage, FLICK_BACKWARD_ANGLE, nullptr);
|
||||
/*
|
||||
stwu r1, -0xc0(r1)
|
||||
mflr r0
|
||||
stw r0, 0xc4(r1)
|
||||
stfd f31, 0xb0(r1)
|
||||
psq_st f31, 184(r1), 0, qr0
|
||||
stfd f30, 0xa0(r1)
|
||||
psq_st f30, 168(r1), 0, qr0
|
||||
stfd f29, 0x90(r1)
|
||||
psq_st f29, 152(r1), 0, qr0
|
||||
stfd f28, 0x80(r1)
|
||||
psq_st f28, 136(r1), 0, qr0
|
||||
stw r31, 0x7c(r1)
|
||||
stw r30, 0x78(r1)
|
||||
mr r31, r3
|
||||
lwz r3, cameraMgr__4Game@sda21(r13)
|
||||
addi r5, r31, 0x18c
|
||||
li r4, 0xf
|
||||
li r6, 2
|
||||
bl "startVibration__Q24Game9CameraMgrFiR10Vector3<f>i"
|
||||
lwz r3, rumbleMgr__4Game@sda21(r13)
|
||||
addi r5, r31, 0x18c
|
||||
li r4, 0xd
|
||||
li r6, 2
|
||||
bl "startRumble__Q24Game9RumbleMgrFiR10Vector3<f>i"
|
||||
li r0, 0
|
||||
lwz r3, pikiMgr__4Game@sda21(r13)
|
||||
lis r4, "__vt__22Iterator<Q24Game4Piki>"@ha
|
||||
stw r0, 0x74(r1)
|
||||
addi r4, r4, "__vt__22Iterator<Q24Game4Piki>"@l
|
||||
cmplwi r0, 0
|
||||
stw r4, 0x68(r1)
|
||||
stw r0, 0x6c(r1)
|
||||
stw r3, 0x70(r1)
|
||||
bne lbl_803ADE64
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x18(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x6c(r1)
|
||||
b lbl_803AE08C
|
||||
|
||||
lbl_803ADE64:
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x18(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x6c(r1)
|
||||
b lbl_803ADED0
|
||||
|
||||
lbl_803ADE7C:
|
||||
lwz r3, 0x70(r1)
|
||||
lwz r4, 0x6c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x20(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
mr r4, r3
|
||||
lwz r3, 0x74(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 8(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
clrlwi. r0, r3, 0x18
|
||||
bne lbl_803AE08C
|
||||
lwz r3, 0x70(r1)
|
||||
lwz r4, 0x6c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x14(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x6c(r1)
|
||||
|
||||
lbl_803ADED0:
|
||||
lwz r12, 0x68(r1)
|
||||
addi r3, r1, 0x68
|
||||
lwz r12, 0x10(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
clrlwi. r0, r3, 0x18
|
||||
beq lbl_803ADE7C
|
||||
b lbl_803AE08C
|
||||
|
||||
lbl_803ADEF0:
|
||||
lwz r3, 0x70(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x20(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
lwz r12, 0(r3)
|
||||
mr r30, r3
|
||||
lwz r12, 0xa8(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
clrlwi. r0, r3, 0x18
|
||||
beq lbl_803ADFD0
|
||||
lwz r0, 0xc8(r30)
|
||||
cmplwi r0, 0
|
||||
beq lbl_803ADFD0
|
||||
mr r4, r30
|
||||
addi r3, r1, 0x20
|
||||
lwz r12, 0(r30)
|
||||
lfs f29, 0x194(r31)
|
||||
lwz r12, 8(r12)
|
||||
lfs f30, 0x18c(r31)
|
||||
mtctr r12
|
||||
bctrl
|
||||
mr r4, r30
|
||||
addi r3, r1, 0x2c
|
||||
lwz r12, 0(r30)
|
||||
lfs f31, 0x28(r1)
|
||||
lwz r12, 8(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
fsubs f1, f31, f29
|
||||
lfs f2, 0x2c(r1)
|
||||
lfs f0, lbl_8051F5D0@sda21(r2)
|
||||
fsubs f2, f2, f30
|
||||
fmuls f1, f1, f1
|
||||
fmadds f1, f2, f2, f1
|
||||
fcmpo cr0, f1, f0
|
||||
bge lbl_803ADFD0
|
||||
lwz r5, 0xc0(r31)
|
||||
lis r4, __vt__Q24Game11Interaction@ha
|
||||
lis r3, __vt__Q24Game13InteractPress@ha
|
||||
li r0, 0
|
||||
lfs f0, 0x604(r5)
|
||||
addi r4, r4, __vt__Q24Game11Interaction@l
|
||||
addi r5, r3, __vt__Q24Game13InteractPress@l
|
||||
mr r3, r30
|
||||
stw r4, 0x58(r1)
|
||||
addi r4, r1, 0x58
|
||||
stw r31, 0x5c(r1)
|
||||
stw r5, 0x58(r1)
|
||||
stfs f0, 0x60(r1)
|
||||
stw r0, 0x64(r1)
|
||||
lwz r12, 0(r30)
|
||||
lwz r12, 0x1a4(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
|
||||
lbl_803ADFD0:
|
||||
lwz r0, 0x74(r1)
|
||||
cmplwi r0, 0
|
||||
bne lbl_803ADFFC
|
||||
lwz r3, 0x70(r1)
|
||||
lwz r4, 0x6c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x14(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x6c(r1)
|
||||
b lbl_803AE08C
|
||||
|
||||
lbl_803ADFFC:
|
||||
lwz r3, 0x70(r1)
|
||||
lwz r4, 0x6c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x14(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x6c(r1)
|
||||
b lbl_803AE070
|
||||
|
||||
lbl_803AE01C:
|
||||
lwz r3, 0x70(r1)
|
||||
lwz r4, 0x6c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x20(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
mr r4, r3
|
||||
lwz r3, 0x74(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 8(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
clrlwi. r0, r3, 0x18
|
||||
bne lbl_803AE08C
|
||||
lwz r3, 0x70(r1)
|
||||
lwz r4, 0x6c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x14(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x6c(r1)
|
||||
|
||||
lbl_803AE070:
|
||||
lwz r12, 0x68(r1)
|
||||
addi r3, r1, 0x68
|
||||
lwz r12, 0x10(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
clrlwi. r0, r3, 0x18
|
||||
beq lbl_803AE01C
|
||||
|
||||
lbl_803AE08C:
|
||||
lwz r3, 0x70(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x1c(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
lwz r4, 0x6c(r1)
|
||||
cmplw r4, r3
|
||||
bne lbl_803ADEF0
|
||||
li r0, 0
|
||||
lwz r3, naviMgr__4Game@sda21(r13)
|
||||
lis r4, "__vt__22Iterator<Q24Game4Navi>"@ha
|
||||
stw r0, 0x54(r1)
|
||||
addi r4, r4, "__vt__22Iterator<Q24Game4Navi>"@l
|
||||
cmplwi r0, 0
|
||||
stw r4, 0x48(r1)
|
||||
stw r0, 0x4c(r1)
|
||||
stw r3, 0x50(r1)
|
||||
bne lbl_803AE0EC
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x18(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x4c(r1)
|
||||
b lbl_803AE174
|
||||
|
||||
lbl_803AE0EC:
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x18(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x4c(r1)
|
||||
b lbl_803AE158
|
||||
|
||||
lbl_803AE104:
|
||||
lwz r3, 0x50(r1)
|
||||
lwz r4, 0x4c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x20(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
mr r4, r3
|
||||
lwz r3, 0x54(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 8(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
clrlwi. r0, r3, 0x18
|
||||
bne lbl_803AE174
|
||||
lwz r3, 0x50(r1)
|
||||
lwz r4, 0x4c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x14(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x4c(r1)
|
||||
|
||||
lbl_803AE158:
|
||||
lwz r12, 0x48(r1)
|
||||
addi r3, r1, 0x48
|
||||
lwz r12, 0x10(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
clrlwi. r0, r3, 0x18
|
||||
beq lbl_803AE104
|
||||
|
||||
lbl_803AE174:
|
||||
lfs f31, lbl_8051F5D0@sda21(r2)
|
||||
b lbl_803AE2F0
|
||||
|
||||
lbl_803AE17C:
|
||||
lwz r3, 0x50(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x20(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
mr r30, r3
|
||||
addi r3, r1, 8
|
||||
lwz r12, 0(r30)
|
||||
mr r4, r30
|
||||
lfs f28, 0x194(r31)
|
||||
lwz r12, 8(r12)
|
||||
lfs f30, 0x18c(r31)
|
||||
mtctr r12
|
||||
bctrl
|
||||
mr r4, r30
|
||||
addi r3, r1, 0x14
|
||||
lwz r12, 0(r30)
|
||||
lfs f29, 0x10(r1)
|
||||
lwz r12, 8(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
fsubs f0, f29, f28
|
||||
lfs f1, 0x14(r1)
|
||||
fsubs f1, f1, f30
|
||||
fmuls f0, f0, f0
|
||||
fmadds f0, f1, f1, f0
|
||||
fcmpo cr0, f0, f31
|
||||
bge lbl_803AE234
|
||||
lwz r5, 0xc0(r31)
|
||||
lis r4, __vt__Q24Game11Interaction@ha
|
||||
lis r3, __vt__Q24Game13InteractPress@ha
|
||||
li r0, 0
|
||||
lfs f0, 0x604(r5)
|
||||
addi r4, r4, __vt__Q24Game11Interaction@l
|
||||
addi r5, r3, __vt__Q24Game13InteractPress@l
|
||||
mr r3, r30
|
||||
stw r4, 0x38(r1)
|
||||
addi r4, r1, 0x38
|
||||
stw r31, 0x3c(r1)
|
||||
stw r5, 0x38(r1)
|
||||
stfs f0, 0x40(r1)
|
||||
stw r0, 0x44(r1)
|
||||
lwz r12, 0(r30)
|
||||
lwz r12, 0x1a4(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
|
||||
lbl_803AE234:
|
||||
lwz r0, 0x54(r1)
|
||||
cmplwi r0, 0
|
||||
bne lbl_803AE260
|
||||
lwz r3, 0x50(r1)
|
||||
lwz r4, 0x4c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x14(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x4c(r1)
|
||||
b lbl_803AE2F0
|
||||
|
||||
lbl_803AE260:
|
||||
lwz r3, 0x50(r1)
|
||||
lwz r4, 0x4c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x14(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x4c(r1)
|
||||
b lbl_803AE2D4
|
||||
|
||||
lbl_803AE280:
|
||||
lwz r3, 0x50(r1)
|
||||
lwz r4, 0x4c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x20(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
mr r4, r3
|
||||
lwz r3, 0x54(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 8(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
clrlwi. r0, r3, 0x18
|
||||
bne lbl_803AE2F0
|
||||
lwz r3, 0x50(r1)
|
||||
lwz r4, 0x4c(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x14(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
stw r3, 0x4c(r1)
|
||||
|
||||
lbl_803AE2D4:
|
||||
lwz r12, 0x48(r1)
|
||||
addi r3, r1, 0x48
|
||||
lwz r12, 0x10(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
clrlwi. r0, r3, 0x18
|
||||
beq lbl_803AE280
|
||||
|
||||
lbl_803AE2F0:
|
||||
lwz r3, 0x50(r1)
|
||||
lwz r12, 0(r3)
|
||||
lwz r12, 0x1c(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
lwz r4, 0x4c(r1)
|
||||
cmplw r4, r3
|
||||
bne lbl_803AE17C
|
||||
lwz r5, 0xc0(r31)
|
||||
mr r3, r31
|
||||
lfs f4, lbl_8051F5C8@sda21(r2)
|
||||
li r4, 0
|
||||
lfs f29, 0x4c4(r5)
|
||||
lfs f30, 0x4ec(r5)
|
||||
fmr f2, f29
|
||||
lfs f28, 0x53c(r5)
|
||||
fmr f3, f30
|
||||
lfs f1, 0x514(r5)
|
||||
bl
|
||||
"flickNearbyPikmin__Q24Game9EnemyFuncFPQ24Game8CreatureffffP23Condition<Q24Game4Piki>"
|
||||
fmr f1, f28
|
||||
lfs f4, lbl_8051F5C8@sda21(r2)
|
||||
fmr f2, f29
|
||||
mr r3, r31
|
||||
fmr f3, f30
|
||||
li r4, 0
|
||||
bl
|
||||
"flickStickPikmin__Q24Game9EnemyFuncFPQ24Game8CreatureffffP23Condition<Q24Game4Piki>"
|
||||
psq_l f31, 184(r1), 0, qr0
|
||||
lfd f31, 0xb0(r1)
|
||||
psq_l f30, 168(r1), 0, qr0
|
||||
lfd f30, 0xa0(r1)
|
||||
psq_l f29, 152(r1), 0, qr0
|
||||
lfd f29, 0x90(r1)
|
||||
psq_l f28, 136(r1), 0, qr0
|
||||
lfd f28, 0x80(r1)
|
||||
lwz r31, 0x7c(r1)
|
||||
lwz r0, 0xc4(r1)
|
||||
lwz r30, 0x78(r1)
|
||||
mtlr r0
|
||||
addi r1, r1, 0xc0
|
||||
blr
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -979,3 +979,5 @@ You have 4472 out of 10000 Pokos and 112 out of 201 treasures.",2024-05-07 18:35
|
||||
You have 4490 out of 10000 Pokos and 112 out of 201 treasures.",2024-05-08 16:06:37.848797
|
||||
4507,2097208,0.4507844634283906,112,399139,0.5599153265175575,"
|
||||
You have 4507 out of 10000 Pokos and 112 out of 201 treasures.",2024-05-08 16:32:30.591874
|
||||
4528,2106872,0.452861692322507,112,400248,0.5614710404345338,"
|
||||
You have 4528 out of 10000 Pokos and 112 out of 201 treasures.",2024-05-08 18:40:42.806286
|
||||
|
|
Loading…
Reference in New Issue
Block a user