some mapMgr progress

This commit is contained in:
HeartPiece 2023-11-18 02:27:25 +11:00
parent dc2085d751
commit 6c8be2949c
8 changed files with 119 additions and 1810 deletions

View File

@ -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 |

View File

@ -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;

View File

@ -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*,

View File

@ -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 {

View File

@ -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

View File

@ -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) {

View File

@ -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