mirror of
https://github.com/projectPiki/pikmin2.git
synced 2025-02-15 19:37:45 +00:00
some mapMgr progress
This commit is contained in:
parent
dc2085d751
commit
6c8be2949c
@ -125,14 +125,14 @@
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_DayEnd.cpp">singleGS_DayEnd.cpp</a> | 31831 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemBridge.cpp">itemBridge.cpp</a> | 32145 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gamePlayDataMemCard.cpp">gamePlayDataMemCard.cpp</a> | 36033 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/piki.cpp">piki.cpp</a> | 36101 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/routeMgr.cpp">routeMgr.cpp</a> | 39173 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameGeneratorCache.cpp">gameGeneratorCache.cpp</a> | 39960 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/collinfo.cpp">collinfo.cpp</a> | 41629 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_MainGame.cpp">singleGS_MainGame.cpp</a> | 46029 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameCaveInfo.cpp">gameCaveInfo.cpp</a> | 48322 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemGate.cpp">itemGate.cpp</a> | 49156 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/cellPyramid.cpp">cellPyramid.cpp</a> | 51300 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pikiMgr.cpp">pikiMgr.cpp</a> | 52271 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiFormation.cpp">aiFormation.cpp</a> | 52382 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/navi_demoCheck.cpp">navi_demoCheck.cpp</a> | 60086 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemWeed.cpp">itemWeed.cpp</a> | 62506 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pelletState.cpp">pelletState.cpp</a> | 62830 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_CaveGame.cpp">singleGS_CaveGame.cpp</a> | 64613 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/dynCreature.cpp">dynCreature.cpp</a> | 65156 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gamePlayData.cpp">gamePlayData.cpp</a> | 67504 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemPlant.cpp">itemPlant.cpp</a> | 73029 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/fakePiki.cpp">fakePiki.cpp</a> | 75901 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/mapMgr.cpp">mapMgr.cpp</a> | 79445 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/collinfo.cpp">collinfo.cpp</a> | 41448 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/mapMgr.cpp">mapMgr.cpp</a> | 42441 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_MainGame.cpp">singleGS_MainGame.cpp</a> | 46029 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameCaveInfo.cpp">gameCaveInfo.cpp</a> | 48322 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemGate.cpp">itemGate.cpp</a> | 49156 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/cellPyramid.cpp">cellPyramid.cpp</a> | 51300 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pikiMgr.cpp">pikiMgr.cpp</a> | 52271 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiFormation.cpp">aiFormation.cpp</a> | 52382 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/navi_demoCheck.cpp">navi_demoCheck.cpp</a> | 60086 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemWeed.cpp">itemWeed.cpp</a> | 62506 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pelletState.cpp">pelletState.cpp</a> | 62830 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_CaveGame.cpp">singleGS_CaveGame.cpp</a> | 64613 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/dynCreature.cpp">dynCreature.cpp</a> | 65156 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gamePlayData.cpp">gamePlayData.cpp</a> | 67504 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemPlant.cpp">itemPlant.cpp</a> | 73029 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/fakePiki.cpp">fakePiki.cpp</a> | 75901 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGameSection.cpp">singleGameSection.cpp</a> | 86420 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/baseGameSection.cpp">baseGameSection.cpp</a> | 92027 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemUjamushi.cpp">itemUjamushi.cpp</a> | 95820 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemMgr.cpp">itemMgr.cpp</a> | 102119 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiPrimitives.cpp">aiPrimitives.cpp</a> | 116955 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pelletMgr.cpp">pelletMgr.cpp</a> | 142712 |
|
||||
|
@ -32,6 +32,19 @@ struct WaterBox;
|
||||
|
||||
struct MapMgr : virtual public GenericObjectMgr {
|
||||
struct BeamCollisionArg {
|
||||
BeamCollisionArg(f32 p1, int p2, u8 p3)
|
||||
{
|
||||
_18 = p1;
|
||||
_1C = p2;
|
||||
_20 = p3;
|
||||
}
|
||||
|
||||
Vector3f _00; // _00
|
||||
Vector3f _0C; // _0C
|
||||
f32 _18; // _18
|
||||
int _1C; // _1C
|
||||
u8 _20; // _20
|
||||
f32 _24; // _24
|
||||
};
|
||||
|
||||
static bool traceMoveDebug;
|
||||
@ -49,18 +62,18 @@ struct MapMgr : virtual public GenericObjectMgr {
|
||||
virtual Matrixf* getDemoMatrix(); // _14
|
||||
virtual void getBoundBox2d(BoundBox2d&) = 0; // _18
|
||||
virtual void getBoundBox(BoundBox&) = 0; // _1C
|
||||
virtual bool findRayIntersection(Sys::RayIntersectInfo&); // _20 (weak)
|
||||
virtual bool findRayIntersection(Sys::RayIntersectInfo&) { return false; } // _20 (weak)
|
||||
virtual void traceMove(MoveInfo&, f32) = 0; // _24
|
||||
virtual f32 getMinY(Vector3f&) = 0; // _28
|
||||
virtual void getCurrTri(CurrTriInfo&) = 0; // _2C
|
||||
virtual void createTriangles(Sys::CreateTriangleArg& arg); // _30 (weak)
|
||||
virtual void setupJUTTextures() {}; // _34 (weak)
|
||||
virtual bool frozenable(); // _38 (weak)
|
||||
virtual void createTriangles(Sys::CreateTriangleArg& arg) { } // _30 (weak)
|
||||
virtual void setupJUTTextures() { } // _34 (weak)
|
||||
virtual bool frozenable() { return false; } // _38 (weak)
|
||||
virtual void update(); // _3C (weak)
|
||||
virtual void do_update(); // _40 (weak)
|
||||
virtual void do_update() { } // _40 (weak)
|
||||
virtual void drawCollision(Graphics& gfx, Sys::Sphere& boundingSphere) = 0; // _44
|
||||
virtual void doSimulation(f32 rate); // _48 (weak)
|
||||
virtual void doDirectDraw(Graphics& gfx); // _4C (weak)
|
||||
virtual void doSimulation(f32 rate) { } // _48 (weak)
|
||||
virtual void doDirectDraw(Graphics& gfx) { } // _4C (weak)
|
||||
|
||||
WaterBox* findWater(Sys::Sphere&);
|
||||
f32 getMapRotation();
|
||||
@ -73,8 +86,8 @@ struct MapMgr : virtual public GenericObjectMgr {
|
||||
// unused/inlined:
|
||||
void draw2d(Graphics&);
|
||||
|
||||
// _00: ptr to _0x24 (GenericObjectMgr)
|
||||
// _04: vtable 1
|
||||
// _00 = ptr to _24 (GenericObjectMgr)
|
||||
// _04 = VTBL
|
||||
RouteMgr* mRouteMgr; // _08
|
||||
CourseInfo* mCourseInfo; // _0C
|
||||
SeaMgr* mSeaMgr; // _10
|
||||
@ -82,8 +95,7 @@ struct MapMgr : virtual public GenericObjectMgr {
|
||||
u32 _18; // _18
|
||||
u32 _1C; // _1C
|
||||
u32 _20; // _20
|
||||
|
||||
// _24: GenericObjectMgr
|
||||
// _24: GenericObjectMgr
|
||||
};
|
||||
|
||||
struct ShapeMapMgr : public MapMgr {
|
||||
@ -126,12 +138,14 @@ struct ShapeMapMgr : public MapMgr {
|
||||
|
||||
void load(LoadArg&);
|
||||
|
||||
// _04 = VTBL
|
||||
// _00-_24 = MapMgr
|
||||
int mTexAnimCount; // _24
|
||||
Sys::MatTexAnimation* mTexAnims; // _28
|
||||
Sys::MatTexAnimation* _2C; // _2C
|
||||
Sys::MatLoopAnimator* _30; // _30
|
||||
SysShape::Model* mMapModel; // _34
|
||||
MapCollision _38; // _38
|
||||
MapCollision mMapCollision; // _38
|
||||
};
|
||||
|
||||
extern MapMgr* mapMgr;
|
||||
|
@ -29,10 +29,6 @@ enum WBFlags {
|
||||
struct WaterBox {
|
||||
WaterBox();
|
||||
|
||||
/**
|
||||
* @reifiedAddress{80106CE8}
|
||||
* @reifiedFile{plugProjectYamashitaU/enemyBase.cpp}
|
||||
*/
|
||||
virtual bool inWater(Sys::Sphere&) // _08 (weak)
|
||||
{
|
||||
return false;
|
||||
@ -44,10 +40,10 @@ struct WaterBox {
|
||||
virtual void startDown(f32) { } // _1C (weak)
|
||||
virtual void startUp(f32) { } // _20 (weak)
|
||||
virtual void directDraw(Graphics&) { } // _24 (weak)
|
||||
virtual void doAnimation(); // _28 (weak)
|
||||
virtual void doEntry(); // _2C (weak)
|
||||
virtual void doSetView(int viewportNumber); // _30 (weak)
|
||||
virtual void doViewCalc(); // _34 (weak)
|
||||
virtual void doAnimation() { } // _28 (weak)
|
||||
virtual void doEntry() { } // _2C (weak)
|
||||
virtual void doSetView(int viewportNumber) { } // _30 (weak)
|
||||
virtual void doViewCalc() { } // _34 (weak)
|
||||
virtual void doSimulation(f32) { } // _38 (weak)
|
||||
virtual void doDirectDraw(Graphics& gfx) { } // _3C (weak)
|
||||
virtual void attachModel(J3DModelData*, Sys::MatTexAnimation*,
|
||||
|
@ -78,23 +78,22 @@ struct CourseInfo : public CNode {
|
||||
ID32* getCaveID_FromIndex(int);
|
||||
int getCaveNum();
|
||||
|
||||
char* mFolder; // _18
|
||||
char* mAbeFolder; // _1C
|
||||
char* mModelPath; // _20
|
||||
char* mCollisionPath; // _24
|
||||
char* mWaterboxPath; // _28
|
||||
char* mMapcodePath; // _2C
|
||||
char* mFarmPath; // _30
|
||||
char* mRoutePath; // _34
|
||||
Vector3f mStartPosition; // _38
|
||||
f32 mStartAngle; // _44
|
||||
u32 mCourseIndex; // _48
|
||||
|
||||
char* mFolder; // _18
|
||||
char* mAbeFolder; // _1C
|
||||
char* mModelPath; // _20
|
||||
char* mCollisionPath; // _24
|
||||
char* mWaterboxPath; // _28
|
||||
char* mMapcodePath; // _2C
|
||||
char* mFarmPath; // _30
|
||||
char* mRoutePath; // _34
|
||||
Vector3f mStartPosition; // _38
|
||||
f32 mStartAngle; // _44
|
||||
u32 mCourseIndex; // _48
|
||||
LimitGenInfo mLimitGenInfo; // _4C
|
||||
LimitGenInfo mLoopGenInfo; // _78
|
||||
CaveOtakaraInfo mCaveOtakaraInfo; // _9C
|
||||
int mGroundOtakaraMax; // _CC
|
||||
Matrixf _D0; // _D0
|
||||
Matrixf mDemoMatrix; // _D0
|
||||
};
|
||||
|
||||
struct Stages {
|
||||
|
@ -10,16 +10,18 @@
|
||||
|
||||
struct MapCollision : public CNode {
|
||||
MapCollision() { }
|
||||
virtual ~MapCollision() {};
|
||||
|
||||
virtual void getBoundBox(BoundBox& bb) { mDivider->getBoundBox(bb); }
|
||||
virtual void getCurrTri(Game::CurrTriInfo&);
|
||||
virtual void createTriangles(Sys::CreateTriangleArg& arg);
|
||||
virtual ~MapCollision() { } // _08
|
||||
virtual void getBoundBox(BoundBox& bb) { mDivider->getBoundBox(bb); } // _10
|
||||
virtual void getCurrTri(Game::CurrTriInfo&); // _14
|
||||
virtual void createTriangles(Sys::CreateTriangleArg& arg) { mDivider->createTriangles(arg); } // _18
|
||||
|
||||
void read(Stream&);
|
||||
MapCollision* clone(Matrixf&);
|
||||
|
||||
Sys::GridDivider* mDivider; // _18
|
||||
// _00 = VTBL
|
||||
// _00-_18 = CNode
|
||||
Sys::TriDivider* mDivider; // _18
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -43,7 +43,7 @@ void Platform::setTriDivider(Sys::TriDivider* triDivider)
|
||||
* Address: 801336EC
|
||||
* Size: 000008
|
||||
*/
|
||||
Sys::TriDivider* Platform::getTriDivider() { return mTriDivider; }
|
||||
Sys::OBBTree* Platform::getTriDivider() { return mTriDivider; }
|
||||
|
||||
/*
|
||||
* read__8PlatformFR6Stream
|
||||
@ -608,7 +608,6 @@ int CollPart::getAllCollPartToArray(CollPart** partArray, int limit, int& count)
|
||||
* Address: 80136A04
|
||||
* Size: 000118
|
||||
*/
|
||||
// WIP: https://decomp.me/scratch/BSzdU - just regswaps in the dist calculation
|
||||
CollPart* CollTree::findCollPart(FindCollPartArg& findArg)
|
||||
{
|
||||
if (mPart) {
|
||||
@ -621,8 +620,7 @@ CollPart* CollTree::findCollPart(FindCollPartArg& findArg)
|
||||
for (int i = 0; i < numParts; i++) {
|
||||
CollPart* currPart = partArray[i];
|
||||
if (((findArg.mCondition == nullptr) || findArg.mCondition->satisfy(currPart)) && currPart->isSphere()) {
|
||||
Vector3f sep(findArg.mPosition.mPosition - currPart->mPosition);
|
||||
f32 dist = (sep).sqrMagnitude() - SQUARE(currPart->mRadius);
|
||||
f32 dist = findArg.mPosition.mPosition.sqrDistance(currPart->mPosition) - SQUARE(currPart->mRadius);
|
||||
if (dist < minDist) {
|
||||
foundPart = currPart;
|
||||
minDist = dist;
|
||||
@ -839,7 +837,6 @@ void CollPart::makeMatrixTo(Matrixf& p1)
|
||||
* Address: 8013739C
|
||||
* Size: 000214
|
||||
*/
|
||||
// WIP: https://decomp.me/scratch/b2SSt
|
||||
void CollPart::makeTubeTree()
|
||||
{
|
||||
if (getChild()) {
|
||||
@ -868,9 +865,8 @@ void CollPart::calcStickLocal(Vector3f& arg0, Vector3f& arg1)
|
||||
Matrixf inv;
|
||||
PSMTXInverse(mtx.mMatrix.mtxView, inv.mMatrix.mtxView);
|
||||
|
||||
Vector3f row1 = mtx.getRow(0);
|
||||
Vector3f row1 = Vector3f(mtx.getRow(0));
|
||||
|
||||
// this... doesn't use length()?
|
||||
f32 len = row1.length();
|
||||
|
||||
if (FABS(len) < 0.001f) {
|
||||
|
@ -177,7 +177,7 @@ CourseInfo::CourseInfo()
|
||||
|
||||
mCourseIndex = 0;
|
||||
|
||||
PSMTXIdentity(_D0.mMatrix.mtxView);
|
||||
PSMTXIdentity(mDemoMatrix.mMatrix.mtxView);
|
||||
mGroundOtakaraMax = 0;
|
||||
}
|
||||
|
||||
@ -267,8 +267,8 @@ void CourseInfo::read(Stream& stream)
|
||||
stream.readString(nullptr, 0);
|
||||
|
||||
// Convert angle to radians
|
||||
Vector3f vec(0.0f, 3.1415927f * (0.0055555557f * mStartAngle), 0.0f);
|
||||
_D0.makeTR(mStartPosition, vec);
|
||||
Vector3f vec(0.0f, TORADIANS(mStartAngle), 0.0f);
|
||||
mDemoMatrix.makeTR(mStartPosition, vec);
|
||||
}
|
||||
|
||||
mLimitGenInfo.read(stream);
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user