mirror of
https://github.com/projectPiki/pikmin2.git
synced 2024-11-23 21:39:44 +00:00
more itemPikihead and itemWeed
This commit is contained in:
parent
72a085545d
commit
57cc857ce0
@ -75,13 +75,13 @@
|
||||
### <section id="plugProjectKandoU">plugProjectKandoU</section>
|
||||
| File | Size (bytes) | File | Size (bytes) |
|
||||
| ---- | ---- | ---- | ---- |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/flockMgr.cpp">flockMgr.cpp</a> | 7469 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/cellIterator.cpp">cellIterator.cpp</a> | 9332 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/creatureLOD.cpp">creatureLOD.cpp</a> | 10127 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiEnter.cpp">aiEnter.cpp</a> | 10852 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/naviWhistle.cpp">naviWhistle.cpp</a> | 11601 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemHoney.cpp">itemHoney.cpp</a> | 12303 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemWeed.cpp">itemWeed.cpp</a> | 13922 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiBreakGate.cpp">aiBreakGate.cpp</a> | 13960 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/flockMgr.cpp">flockMgr.cpp</a> | 7475 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemWeed.cpp">itemWeed.cpp</a> | 9106 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/cellIterator.cpp">cellIterator.cpp</a> | 9332 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/creatureLOD.cpp">creatureLOD.cpp</a> | 10127 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiEnter.cpp">aiEnter.cpp</a> | 10852 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/naviWhistle.cpp">naviWhistle.cpp</a> | 11601 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemHoney.cpp">itemHoney.cpp</a> | 12303 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiBreakGate.cpp">aiBreakGate.cpp</a> | 13960 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameCaveInfo.cpp">gameCaveInfo.cpp</a> | 16141 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/texCaster.cpp">texCaster.cpp</a> | 16211 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_CaveResult.cpp">singleGS_CaveResult.cpp</a> | 19749 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemCave.cpp">itemCave.cpp</a> | 20301 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pathfinder.cpp">pathfinder.cpp</a> | 20409 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemPikihead.cpp">itemPikihead.cpp</a> | 23892 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pathfinder.cpp">pathfinder.cpp</a> | 20409 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemPikihead.cpp">itemPikihead.cpp</a> | 23940 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameCPlate.cpp">gameCPlate.cpp</a> | 24190 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/dynCreature.cpp">dynCreature.cpp</a> | 25766 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameDynamics.cpp">gameDynamics.cpp</a> | 27114 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/vsCardMgr.cpp">vsCardMgr.cpp</a> | 30814 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_MainGame.cpp">singleGS_MainGame.cpp</a> | 31727 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemBridge.cpp">itemBridge.cpp</a> | 32179 |
|
||||
|
@ -74,71 +74,12 @@ struct WaitState : public State {
|
||||
u32 _0C;
|
||||
};
|
||||
|
||||
struct Item : public FSMItem<Item, FSM, State> {
|
||||
struct DummyShape : public SysShape::MtxObject {
|
||||
virtual Matrixf* getMatrix(int); // _08 (weak)
|
||||
|
||||
// _00 VTBL
|
||||
Matrixf* mMatrix; // _04
|
||||
};
|
||||
|
||||
Item(); // unused/inlined
|
||||
|
||||
inline Item(int objTypeID) // probably
|
||||
: FSMItem(objTypeID)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void onInit(CreatureInitArg* initArg); // _30
|
||||
virtual BaseFlockMgr* getFlockMgr(); // _90 (weak)
|
||||
virtual bool isCollisionFlick(); // _B0 (weak)
|
||||
virtual bool ignoreAtari(Creature* toIgnore); // _190
|
||||
virtual char* getCreatureName(); // _1A8 (weak)
|
||||
virtual void makeTrMatrix(); // _1C4 (weak)
|
||||
virtual void doAI(); // _1C8
|
||||
virtual bool interactFlockAttack(InteractFlockAttack&); // _1EC
|
||||
virtual void updateBoundSphere(); // _210
|
||||
virtual void onSetPosition(); // _21C
|
||||
virtual void doSimpleDraw(Viewport* viewport); // _224
|
||||
|
||||
void setBoidTimer();
|
||||
|
||||
// _00 = VTABLE
|
||||
// _00-_1E0 = FSMItem
|
||||
DummyShape mDummyShape; // _1E0
|
||||
WeedMgr* mFlockMgr; // _1E8
|
||||
cWeedType mWeedType; // _1EC
|
||||
};
|
||||
|
||||
struct Mgr : public TNodeItemMgr {
|
||||
Mgr();
|
||||
|
||||
virtual void doSimpleDraw(Viewport* viewport); // _20
|
||||
virtual void onLoadResources(); // _48
|
||||
virtual u32 generatorGetID(); // _58 (weak)
|
||||
virtual BaseItem* generatorBirth(Vector3f&, Vector3f&, GenItemParm*); // _5C
|
||||
virtual void generatorWrite(Stream& output, GenItemParm* genItemParm); // _60
|
||||
virtual void generatorRead(Stream& input, GenItemParm* genItemParm, u32 version); // _64
|
||||
virtual u32 generatorLocalVersion(); // _68 (weak)
|
||||
virtual GenItemParm* generatorNewItemParm(); // _70
|
||||
virtual BaseItem* doNew(); // _A0 (weak)
|
||||
virtual ~Mgr(); // _B8 (weak)
|
||||
virtual char* getCaveName(int); // _BC
|
||||
virtual int getCaveID(char*); // _C0
|
||||
|
||||
// unused/inlined:
|
||||
Item* birth();
|
||||
|
||||
// _00 = VTBL
|
||||
// _00-_88 = TNodeItemMgr
|
||||
};
|
||||
|
||||
struct Weed : public TFlock {
|
||||
Weed();
|
||||
|
||||
virtual void makeMatrix(); // _08
|
||||
virtual bool isWeed(); // _10 (weak)
|
||||
virtual bool damaged(f32); // _1C
|
||||
virtual void makeMatrix(); // _08
|
||||
virtual bool isWeed() { return mModelIdx == 0; } // _10 (weak)
|
||||
virtual bool damaged(f32); // _1C
|
||||
|
||||
// unused/inlined:
|
||||
void init(ItemWeed::WeedMgr*, Vector3f&);
|
||||
@ -162,7 +103,7 @@ struct WeedMgr : public TFlockMgr<Weed> {
|
||||
|
||||
virtual void do_update(); // _1C
|
||||
virtual void do_update_boundSphere(); // _20
|
||||
virtual ~WeedMgr(); // _6C (weak)
|
||||
// virtual ~WeedMgr(); // _6C (weak)
|
||||
|
||||
// unused/inlined:
|
||||
void init(Sys::Sphere&, cWeedType);
|
||||
@ -172,6 +113,67 @@ struct WeedMgr : public TFlockMgr<Weed> {
|
||||
// _00-_6C = TFlockMgr
|
||||
};
|
||||
|
||||
struct Item : public FSMItem<Item, FSM, State> {
|
||||
struct DummyShape : public SysShape::MtxObject {
|
||||
virtual Matrixf* getMatrix(int) { return mMatrix; } // _08 (weak)
|
||||
|
||||
// _00 VTBL
|
||||
Matrixf* mMatrix; // _04
|
||||
};
|
||||
|
||||
Item(); // unused/inlined
|
||||
|
||||
inline Item(int objTypeID) // probably
|
||||
: FSMItem(objTypeID)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void onInit(CreatureInitArg* initArg); // _30
|
||||
virtual bool isCollisionFlick(); // _B0 (weak)
|
||||
virtual bool ignoreAtari(Creature* toIgnore); // _190
|
||||
virtual void doAI(); // _1C8
|
||||
virtual bool interactFlockAttack(InteractFlockAttack&); // _1EC
|
||||
virtual void updateBoundSphere(); // _210
|
||||
virtual void onSetPosition(); // _21C
|
||||
virtual void doSimpleDraw(Viewport* viewport); // _224
|
||||
virtual char* getCreatureName() { return "Weed"; } // _1A8 (weak)
|
||||
virtual BaseFlockMgr* getFlockMgr() { return mFlockMgr; } // _90 (weak)
|
||||
virtual void makeTrMatrix() { } // _1C4 (weak)
|
||||
|
||||
void setBoidTimer();
|
||||
|
||||
inline WeedMgr* getWeedMgr() { return mFlockMgr; }
|
||||
|
||||
// _00 = VTABLE
|
||||
// _00-_1E0 = FSMItem
|
||||
DummyShape mDummyShape; // _1E0
|
||||
WeedMgr* mFlockMgr; // _1E8
|
||||
cWeedType mWeedType; // _1EC
|
||||
};
|
||||
|
||||
struct Mgr : public TNodeItemMgr {
|
||||
Mgr();
|
||||
|
||||
virtual void doSimpleDraw(Viewport* viewport); // _20
|
||||
virtual void onLoadResources(); // _48
|
||||
virtual BaseItem* generatorBirth(Vector3f&, Vector3f&, GenItemParm*); // _5C
|
||||
virtual void generatorWrite(Stream& output, GenItemParm* genItemParm); // _60
|
||||
virtual void generatorRead(Stream& input, GenItemParm* genItemParm, u32 version); // _64
|
||||
virtual GenItemParm* generatorNewItemParm(); // _70
|
||||
virtual ~Mgr(); // _B8 (weak)
|
||||
virtual char* getCaveName(int); // _BC
|
||||
virtual int getCaveID(char*); // _C0
|
||||
virtual BaseItem* doNew() { return new Item; } // _A0 (weak)
|
||||
virtual u32 generatorGetID() { return 'weed'; } // _58 (weak)
|
||||
virtual u32 generatorLocalVersion() { return '0001'; } // _68 (weak)
|
||||
|
||||
// unused/inlined:
|
||||
Item* birth();
|
||||
|
||||
// _00 = VTBL
|
||||
// _00-_88 = TNodeItemMgr
|
||||
};
|
||||
|
||||
extern Mgr* mgr;
|
||||
|
||||
} // namespace ItemWeed
|
||||
|
@ -13,7 +13,7 @@ struct J3DModelData;
|
||||
namespace Game {
|
||||
struct TFlock : public Vector3f {
|
||||
inline TFlock()
|
||||
: _40(0)
|
||||
: mModelIdx(0)
|
||||
{
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ struct TFlock : public Vector3f {
|
||||
// _00 - _0C Vector3f
|
||||
// _0C VTBL
|
||||
Matrixf mTransformationMtx; // _10
|
||||
u8 _40; // _40
|
||||
u8 mModelIdx; // _40
|
||||
};
|
||||
|
||||
struct BaseFlockMgr {
|
||||
|
@ -51,7 +51,7 @@ void ActWeed::init(ActionArg* arg)
|
||||
JUT_ASSERTLINE(124, arg, "no actweedarg");
|
||||
mWeed = weedArg->mWeed;
|
||||
JUT_ASSERTLINE(127, mWeed, "ActWeed:no target");
|
||||
mFlockMgr = mWeed->getFlockMgr();
|
||||
mFlockMgr = static_cast<Game::BaseItem*>(mWeed)->getFlockMgr();
|
||||
JUT_ASSERTLINE(130, mFlockMgr, "no flockmgr");
|
||||
mIsAttacking = false;
|
||||
|
||||
|
@ -340,7 +340,7 @@ void BaseFlockMgr::doSimpleDraw(Viewport* vp, J3DModelData** models, int p1)
|
||||
for (int j = 0; j < getMaxObjects(); j++) {
|
||||
TFlock* flock = getFlock(j);
|
||||
if (isFlagAlive(j)) {
|
||||
if (flock->isVisible() && flock->_40 == i) {
|
||||
if (flock->isVisible() && flock->mModelIdx == i) {
|
||||
Matrixf mtx;
|
||||
PSMTXConcat(vp->getMatrix(true)->mMatrix.mtxView, flock->mTransformationMtx.mMatrix.mtxView,
|
||||
mtx.mMatrix.mtxView);
|
||||
|
@ -460,25 +460,22 @@ void Item::cacheLoad(Stream& input)
|
||||
*/
|
||||
void Item::makeTrMatrix()
|
||||
{
|
||||
if (getStateID() == PIKIHEAD_Fall) {
|
||||
if (mVelocity.length() > 0.0f) {
|
||||
Vector3f xVec = mVelocity;
|
||||
_normalise2(xVec);
|
||||
xVec *= -1.0f;
|
||||
if (getStateID() == PIKIHEAD_Fall && mVelocity.length() > 0.0f) {
|
||||
Vector3f yVec = mVelocity;
|
||||
yVec.normalise();
|
||||
yVec = yVec * -1.0f;
|
||||
|
||||
Vector3f zAxis(0.0f, 0.0f, -5.0f);
|
||||
Vector3f yVec = cross(xVec, zAxis);
|
||||
_normalise2(yVec);
|
||||
Vector3f zAxis(0.0f, 0.0f, 1.0f);
|
||||
Vector3f xVec = yVec.cross(zAxis);
|
||||
xVec.normalise();
|
||||
|
||||
Vector3f xAxis(1.0f, 0.0f, 0.0f);
|
||||
Vector3f zVec = cross(yVec, xAxis);
|
||||
_normalise2(zVec);
|
||||
Vector3f zVec = xVec.cross(yVec);
|
||||
zVec.normalise();
|
||||
|
||||
mBaseTrMatrix.setColumn(0, xVec);
|
||||
mBaseTrMatrix.setColumn(1, yVec);
|
||||
mBaseTrMatrix.setColumn(2, zVec);
|
||||
mBaseTrMatrix.setTranslation(mPosition);
|
||||
}
|
||||
mBaseTrMatrix.setColumn(0, xVec);
|
||||
mBaseTrMatrix.setColumn(1, yVec);
|
||||
mBaseTrMatrix.setColumn(2, zVec);
|
||||
mBaseTrMatrix.setTranslation(mPosition);
|
||||
} else {
|
||||
BaseItem::makeTrMatrix();
|
||||
}
|
||||
@ -677,19 +674,20 @@ void Item::doAI()
|
||||
*/
|
||||
void Item::changeMaterial()
|
||||
{
|
||||
J3DMaterial* mat = mModel->mJ3dModel->getModelData()->getMaterialNodePointer(0);
|
||||
if (mat) {
|
||||
// J3DMaterial* mat = mModel->mJ3dModel->getModelData()->getMaterialNodePointer(0);
|
||||
if (mModel->mJ3dModel->getModelData()->getMaterialNodePointer(0)) {
|
||||
Color4 pikiColor = Piki::pikiColors[mColor];
|
||||
mat->getTevBlock()->setTevColor(0, J2DGXColorS10(pikiColor.r, pikiColor.g, pikiColor.b, pikiColor.a));
|
||||
mModel->mJ3dModel->getModelData()->getMaterialNodePointer(0)->getTevBlock()->setTevColor(
|
||||
0, J2DGXColorS10(pikiColor.r, pikiColor.g, pikiColor.b, pikiColor.a));
|
||||
}
|
||||
|
||||
mModel->mJ3dModel->calcMaterial();
|
||||
|
||||
for (u16 i = 0; i < mModel->mJ3dModel->getModelData()->getMaterialNum(); i++) {
|
||||
J3DMatPacket* packet = mModel->getJ3DModel()->getMatPacket(i);
|
||||
J3DMatPacket* packet = mModel->mJ3dModel->getMatPacket(i);
|
||||
if (packet->mInitShapePacket->mDisplayList) {
|
||||
packet->beginDiff();
|
||||
mModel->mJ3dModel->getModelData()->getMaterialNodePointer(i)->mTevBlock->diff(0x1000000);
|
||||
mModel->mJ3dModel->getModelData()->getMaterialNodePointer(i)->getTevBlock()->diff(0x1000000);
|
||||
packet->endDiff();
|
||||
}
|
||||
}
|
||||
|
@ -103,18 +103,19 @@ void WeedMgr::init(Sys::Sphere& sphere, cWeedType weedType)
|
||||
*/
|
||||
void WeedMgr::createWeeds(cWeedType weedType)
|
||||
{
|
||||
Weed* weed;
|
||||
for (int i = 0; i < getMaxObjects(); i++) {
|
||||
Weed* weed = mMonoObjectMgr.birth();
|
||||
weed = mMonoObjectMgr.birth();
|
||||
if (weed) {
|
||||
if (weedType == WEEDTYPE_Grass) {
|
||||
weed->_40 = 0;
|
||||
weed->mModelIdx = 0;
|
||||
} else {
|
||||
weed->_40 = (int)(randFloat() * 3.0f) + 1;
|
||||
weed->mModelIdx = (int)(randFloat() * 3.0f) + 1; // random between 1 and 4
|
||||
}
|
||||
f32 randRadius = mActivationSpherePosition.mRadius * randFloat();
|
||||
f32 randTheta = randFloat() * TAU;
|
||||
Vector3f weedPos
|
||||
= Vector3f(randRadius * sinf(randTheta), 0.0f, randRadius * cosf(randTheta)) + mActivationSpherePosition.mPosition;
|
||||
Vector3f weedPos(randRadius * sinf(randTheta), 0.0f, randRadius * cosf(randTheta));
|
||||
weedPos += mActivationSpherePosition.mPosition;
|
||||
weed->init(this, weedPos);
|
||||
}
|
||||
}
|
||||
@ -189,180 +190,9 @@ void Item::onInit(CreatureInitArg* initArg)
|
||||
void Item::onSetPosition()
|
||||
{
|
||||
mBaseTrMatrix.makeT(mPosition);
|
||||
Sys::Sphere sphere(mPosition, mBoundingSphere.mRadius);
|
||||
f32 radius = mBoundingSphere.mRadius;
|
||||
Sys::Sphere sphere(mPosition, radius);
|
||||
mFlockMgr->init(sphere, mWeedType);
|
||||
/*
|
||||
stwu r1, -0x50(r1)
|
||||
mflr r0
|
||||
stw r0, 0x54(r1)
|
||||
stfd f31, 0x40(r1)
|
||||
psq_st f31, 72(r1), 0, qr0
|
||||
stw r31, 0x3c(r1)
|
||||
stw r30, 0x38(r1)
|
||||
stw r29, 0x34(r1)
|
||||
stw r28, 0x30(r1)
|
||||
mr r28, r3
|
||||
addi r3, r28, 0x138
|
||||
addi r4, r28, 0x19c
|
||||
bl "makeT__7MatrixfFR10Vector3<f>"
|
||||
lfs f3, 0x1d0(r28)
|
||||
li r29, 0
|
||||
lfs f1, 0x1a0(r28)
|
||||
lfs f2, 0x1a4(r28)
|
||||
lwz r30, 0x1ec(r28)
|
||||
lwz r31, 0x1e8(r28)
|
||||
lfs f0, 0x19c(r28)
|
||||
stfs f0, 0xc(r31)
|
||||
stfs f1, 0x10(r31)
|
||||
stfs f2, 0x14(r31)
|
||||
stfs f3, 0x18(r31)
|
||||
b lbl_8020F9CC
|
||||
|
||||
lbl_8020F818:
|
||||
addi r3, r31, 0x3c
|
||||
lwz r12, 0x3c(r31)
|
||||
lwz r12, 0x7c(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
or. r28, r3, r3
|
||||
beq lbl_8020F9C8
|
||||
cmpwi r30, 1
|
||||
bne lbl_8020F848
|
||||
li r0, 0
|
||||
stb r0, 0x40(r28)
|
||||
b lbl_8020F88C
|
||||
|
||||
lbl_8020F848:
|
||||
bl rand
|
||||
xoris r3, r3, 0x8000
|
||||
lis r0, 0x4330
|
||||
stw r3, 0xc(r1)
|
||||
lfd f3, lbl_80519F08@sda21(r2)
|
||||
stw r0, 8(r1)
|
||||
lfs f1, lbl_80519F00@sda21(r2)
|
||||
lfd f2, 8(r1)
|
||||
lfs f0, lbl_80519F14@sda21(r2)
|
||||
fsubs f2, f2, f3
|
||||
fdivs f1, f2, f1
|
||||
fmuls f0, f0, f1
|
||||
fctiwz f0, f0
|
||||
stfd f0, 0x10(r1)
|
||||
lwz r3, 0x14(r1)
|
||||
addi r0, r3, 1
|
||||
stb r0, 0x40(r28)
|
||||
|
||||
lbl_8020F88C:
|
||||
bl rand
|
||||
xoris r3, r3, 0x8000
|
||||
lis r0, 0x4330
|
||||
stw r3, 0x14(r1)
|
||||
lfd f3, lbl_80519F08@sda21(r2)
|
||||
stw r0, 0x10(r1)
|
||||
lfs f1, lbl_80519F00@sda21(r2)
|
||||
lfd f2, 0x10(r1)
|
||||
lfs f0, 0x18(r31)
|
||||
fsubs f2, f2, f3
|
||||
fdivs f1, f2, f1
|
||||
fmuls f31, f0, f1
|
||||
bl rand
|
||||
xoris r3, r3, 0x8000
|
||||
lis r0, 0x4330
|
||||
stw r3, 0xc(r1)
|
||||
lfd f3, lbl_80519F08@sda21(r2)
|
||||
stw r0, 8(r1)
|
||||
lfs f2, lbl_80519F00@sda21(r2)
|
||||
lfd f0, 8(r1)
|
||||
lfs f1, lbl_80519F04@sda21(r2)
|
||||
fsubs f3, f0, f3
|
||||
lfs f0, lbl_80519EF8@sda21(r2)
|
||||
fdivs f2, f3, f2
|
||||
fmuls f3, f1, f2
|
||||
fmr f1, f3
|
||||
fcmpo cr0, f3, f0
|
||||
bge lbl_8020F900
|
||||
fneg f1, f3
|
||||
|
||||
lbl_8020F900:
|
||||
lfs f2, lbl_80519F18@sda21(r2)
|
||||
lis r3, sincosTable___5JMath@ha
|
||||
lfs f0, lbl_80519EF8@sda21(r2)
|
||||
addi r4, r3, sincosTable___5JMath@l
|
||||
fmuls f1, f1, f2
|
||||
fcmpo cr0, f3, f0
|
||||
fctiwz f0, f1
|
||||
stfd f0, 0x18(r1)
|
||||
lwz r0, 0x1c(r1)
|
||||
rlwinm r0, r0, 3, 0x12, 0x1c
|
||||
add r3, r4, r0
|
||||
lfs f0, 4(r3)
|
||||
fmuls f4, f31, f0
|
||||
bge lbl_8020F95C
|
||||
lfs f0, lbl_80519F1C@sda21(r2)
|
||||
fmuls f0, f3, f0
|
||||
fctiwz f0, f0
|
||||
stfd f0, 0x20(r1)
|
||||
lwz r0, 0x24(r1)
|
||||
rlwinm r0, r0, 3, 0x12, 0x1c
|
||||
lfsx f0, r4, r0
|
||||
fneg f1, f0
|
||||
b lbl_8020F974
|
||||
|
||||
lbl_8020F95C:
|
||||
fmuls f0, f3, f2
|
||||
fctiwz f0, f0
|
||||
stfd f0, 0x28(r1)
|
||||
lwz r0, 0x2c(r1)
|
||||
rlwinm r0, r0, 3, 0x12, 0x1c
|
||||
lfsx f1, r4, r0
|
||||
|
||||
lbl_8020F974:
|
||||
lfs f0, 0x14(r31)
|
||||
fmuls f3, f31, f1
|
||||
lfs f2, 0xc(r31)
|
||||
mr r3, r28
|
||||
lfs f1, 0x10(r31)
|
||||
fadds f4, f4, f0
|
||||
lfs f0, lbl_80519EFC@sda21(r2)
|
||||
stw r31, 0x50(r28)
|
||||
fadds f3, f3, f2
|
||||
lfs f2, lbl_80519EF8@sda21(r2)
|
||||
stfs f0, 0x44(r28)
|
||||
fadds f2, f2, f1
|
||||
stfs f0, 0x48(r28)
|
||||
stfs f0, 0x4c(r28)
|
||||
stfs f3, 0(r28)
|
||||
stfs f2, 4(r28)
|
||||
stfs f4, 8(r28)
|
||||
lwz r12, 0xc(r28)
|
||||
lwz r12, 8(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
|
||||
lbl_8020F9C8:
|
||||
addi r29, r29, 1
|
||||
|
||||
lbl_8020F9CC:
|
||||
mr r3, r31
|
||||
lwz r12, 0(r31)
|
||||
lwz r12, 8(r12)
|
||||
mtctr r12
|
||||
bctrl
|
||||
cmpw r29, r3
|
||||
blt lbl_8020F818
|
||||
lfs f1, lbl_80519F10@sda21(r2)
|
||||
mr r3, r31
|
||||
bl resolveCollision__Q24Game12BaseFlockMgrFf
|
||||
psq_l f31, 72(r1), 0, qr0
|
||||
lwz r0, 0x54(r1)
|
||||
lfd f31, 0x40(r1)
|
||||
lwz r31, 0x3c(r1)
|
||||
lwz r30, 0x38(r1)
|
||||
lwz r29, 0x34(r1)
|
||||
lwz r28, 0x30(r1)
|
||||
mtlr r0
|
||||
addi r1, r1, 0x50
|
||||
blr
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
@ -573,59 +403,5 @@ BaseItem* Mgr::generatorBirth(Vector3f& position, Vector3f& p2, GenItemParm* gen
|
||||
return item;
|
||||
}
|
||||
|
||||
/**
|
||||
* @note Address: 0x802105CC
|
||||
* @note Size: 0x134
|
||||
*/
|
||||
Mgr::~Mgr() { }
|
||||
|
||||
/**
|
||||
* @note Address: 0x80210700
|
||||
* @note Size: 0x148
|
||||
*/
|
||||
BaseItem* Mgr::doNew() { return new Item; }
|
||||
|
||||
/**
|
||||
* @note Address: 0x80210848
|
||||
* @note Size: 0xC
|
||||
*/
|
||||
u32 Mgr::generatorGetID() { return 'weed'; }
|
||||
|
||||
/**
|
||||
* @note Address: 0x80210854
|
||||
* @note Size: 0xC
|
||||
*/
|
||||
u32 Mgr::generatorLocalVersion() { return '0001'; }
|
||||
|
||||
/**
|
||||
* @note Address: 0x80210860
|
||||
* @note Size: 0x8
|
||||
*/
|
||||
char* Item::getCreatureName() { return "Weed"; }
|
||||
|
||||
/**
|
||||
* @note Address: 0x80210868
|
||||
* @note Size: 0x8
|
||||
*/
|
||||
BaseFlockMgr* Item::getFlockMgr() { return mFlockMgr; }
|
||||
|
||||
/**
|
||||
* @note Address: 0x80210870
|
||||
* @note Size: 0x4
|
||||
*/
|
||||
void Item::makeTrMatrix() { }
|
||||
|
||||
/**
|
||||
* @note Address: 0x80210874
|
||||
* @note Size: 0x8
|
||||
*/
|
||||
Matrixf* Item::DummyShape::getMatrix(int) { return mMatrix; }
|
||||
|
||||
/**
|
||||
* @note Address: 0x802108B0
|
||||
* @note Size: 0x118
|
||||
*/
|
||||
WeedMgr::~WeedMgr() { }
|
||||
|
||||
} // namespace ItemWeed
|
||||
} // namespace Game
|
||||
|
Loading…
Reference in New Issue
Block a user