mirror of
https://github.com/projectPiki/pikmin2.git
synced 2025-02-26 08:40:02 +00:00
Scaffold rest of singleGS_Zukan.cpp
This commit is contained in:
parent
3ea33e2ddb
commit
4946fede4f
@ -111,7 +111,7 @@
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gamePlayData.cpp">gamePlayData.cpp</a> | 66859 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemPlant.cpp">itemPlant.cpp</a> | 73145 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/baseGameSection.cpp">baseGameSection.cpp</a> | 91018 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiPrimitives.cpp">aiPrimitives.cpp</a> | 116997 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pelletMgr.cpp">pelletMgr.cpp</a> | 142647 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/navi.cpp">navi.cpp</a> | 153111 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pikiState.cpp">pikiState.cpp</a> | 153121 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_Zukan.cpp">singleGS_Zukan.cpp</a> | 157740 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pikiState.cpp">pikiState.cpp</a> | 153121 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/singleGS_Zukan.cpp">singleGS_Zukan.cpp</a> | 161134 |
|
||||
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gameMapParts.cpp">gameMapParts.cpp</a> | 168054 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/naviState.cpp">naviState.cpp</a> | 180513 |
|
||||
|
||||
### <section id="plugProjectKonoU">plugProjectKonoU</section>
|
||||
|
@ -112,7 +112,7 @@ struct EnemyTexMgr : public IconTexture::Mgr {
|
||||
IconTexture::Loader mLoader;
|
||||
|
||||
// Unused/inlined:
|
||||
unknown create(); // might be static?
|
||||
void create(); // might be static?
|
||||
};
|
||||
|
||||
struct CameraParms {
|
||||
|
@ -532,15 +532,15 @@ struct ZukanState : public State {
|
||||
* @real
|
||||
*/
|
||||
enum CMode {
|
||||
ModeStartTeki = 0,
|
||||
ModeStartPellet,
|
||||
ModeChangeToTeki,
|
||||
ModeTeki,
|
||||
ModeChangeTeki,
|
||||
ModeChangeToPellet,
|
||||
ModePellet,
|
||||
ModeChangePellet,
|
||||
ModeNone,
|
||||
ModeStartTeki = 0,
|
||||
ModeStartPellet = 1,
|
||||
ModeChangeToTeki = 2,
|
||||
ModeTeki = 3,
|
||||
ModeChangeTeki = 4,
|
||||
ModeChangeToPellet = 5,
|
||||
ModePellet = 6,
|
||||
ModeChangePellet = 7,
|
||||
ModeNone = 8,
|
||||
};
|
||||
|
||||
/**
|
||||
@ -561,7 +561,7 @@ struct ZukanState : public State {
|
||||
void clearHeapB_common();
|
||||
void clearHeapB_pellet();
|
||||
void clearHeapB_teki();
|
||||
unknown clearHeaps();
|
||||
void clearHeaps();
|
||||
static PelletList::cKind convertPelletID(int&, int);
|
||||
void createEnemy(int);
|
||||
void createPellet(int);
|
||||
@ -583,10 +583,10 @@ struct ZukanState : public State {
|
||||
static PelletConfig* getCurrentPelletConfig(int id);
|
||||
|
||||
// Unused/inlined:
|
||||
unknown startTekiMode(bool);
|
||||
unknown startPelletMode(bool);
|
||||
void startTekiMode(bool);
|
||||
void startPelletMode(bool);
|
||||
void createItem(int);
|
||||
unknown debugDraw(Graphics&);
|
||||
void debugDraw(Graphics&);
|
||||
void dvdloadB_common();
|
||||
|
||||
inline f32 getWindowWidth() { return mWindowBounds.p2.x - mWindowBounds.p1.x; }
|
||||
|
@ -71,7 +71,7 @@ EnemyTexMgr::EnemyTexMgr()
|
||||
* @note Address: N/A
|
||||
* @note Size: 0xF0
|
||||
*/
|
||||
unknown EnemyTexMgr::create()
|
||||
void EnemyTexMgr::create()
|
||||
{
|
||||
IconTexture::Mgr::create(EnemyTypeID::EnemyID_COUNT);
|
||||
mLoader.loadResource("/user/Yamashita/enemyTex/arc.szs");
|
||||
@ -1237,7 +1237,7 @@ static const u32 dumb[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
* @note Address: N/A
|
||||
* @note Size: 0xE4
|
||||
*/
|
||||
unknown ZukanState::startTekiMode(bool)
|
||||
void ZukanState::startTekiMode(bool)
|
||||
{
|
||||
// UNUSED FUNCTION
|
||||
}
|
||||
@ -1246,7 +1246,7 @@ unknown ZukanState::startTekiMode(bool)
|
||||
* @note Address: N/A
|
||||
* @note Size: 0xE4
|
||||
*/
|
||||
unknown ZukanState::startPelletMode(bool)
|
||||
void ZukanState::startPelletMode(bool)
|
||||
{
|
||||
// UNUSED FUNCTION
|
||||
}
|
||||
@ -3276,12 +3276,38 @@ void ZukanState::drawGradationEffect(SingleGameSection*, Graphics& gfx)
|
||||
void ZukanState::drawLightEffect(SingleGameSection* game, Graphics& gfx)
|
||||
{
|
||||
GXInvalidateTexAll();
|
||||
mTexture2->capture(0, 0, GX_TF_RGB565, true, GX_FALSE);
|
||||
mTexture->capture(0, 0, GX_TF_RGB565, true, GX_FALSE);
|
||||
gfx.setupJ2DOrthoGraphDefault();
|
||||
gfx.mOrthoGraph.setPort();
|
||||
|
||||
if (0.0f < _108) {
|
||||
mTexture2->load(GX_TEXMAP0);
|
||||
Vector3f sep = mCamera->mLookAtPosition - mCamera->mPosition;
|
||||
sep.normalise();
|
||||
|
||||
Color4 color; // r30, r29, r28, r27
|
||||
if (mCurrMode == ModePellet) {
|
||||
sep.y += JMath::sincosTable_.mTable[113].first;
|
||||
sep.y /= JMath::sincosTable_.mTable[56].first;
|
||||
sep.y += 0.1f;
|
||||
color = mParms->mColorSetting._5C;
|
||||
} else {
|
||||
sep.y += JMath::sincosTable_.mTable[85].first;
|
||||
sep.y /= JMath::sincosTable_.mTable[56].first;
|
||||
color = mParms->mColorSetting._5C;
|
||||
}
|
||||
|
||||
if (sep.y < 0.0f) {
|
||||
sep.y = 0.0f;
|
||||
} else if (sep.y > 1.0f) {
|
||||
sep.y = 1.0f;
|
||||
}
|
||||
|
||||
_108 += mDebugParms->_1C[0] * (sep.y - _108);
|
||||
|
||||
if (_108 > 0.0f) {
|
||||
f32 x = mWindowBounds.getWidth(); // f27
|
||||
f32 y = mWindowBounds.getHeight(); // f26
|
||||
|
||||
mTexture->load(GX_TEXMAP0);
|
||||
GXSetNumChans(1);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_C0, GX_CC_TEXC, GX_CC_ZERO);
|
||||
@ -3301,7 +3327,95 @@ void ZukanState::drawLightEffect(SingleGameSection* game, Graphics& gfx)
|
||||
GXSetZMode(GX_FALSE, GX_LESS, GX_FALSE);
|
||||
GXSetCurrentMtx(0);
|
||||
GXSetNumTexGens(1);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3X4, GX_TG_TEXCOORD0, 0x3c, GX_FALSE, 0x7d);
|
||||
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3X4, GX_TG_TEXCOORD0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY);
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
f32 thisFactor = (f32)i / 4;
|
||||
f32 nextFactor = (f32)(i + 1) / 4;
|
||||
f32 factor = (_108 - thisFactor) / (nextFactor); // f2
|
||||
if (factor > 1.0f) {
|
||||
factor = 1.0f;
|
||||
}
|
||||
|
||||
if (factor > 0.0f) {
|
||||
f32 alphaF = factor * (f32)color.a;
|
||||
color.a = (alphaF >= 0.0f) ? 0.5f + alphaF : alphaF - 0.5f;
|
||||
GXSetTevColor(GX_TEVREG0, color.toGXColor());
|
||||
|
||||
f32 u = 0.005f * (f32)(i + 1); // f22
|
||||
f32 v = -u; // f24
|
||||
f32 zero = 0.0f;
|
||||
f32 one = 1.0f;
|
||||
|
||||
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
|
||||
GXPosition3f32(zero, zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(u, v);
|
||||
|
||||
GXPosition3f32(x + zero, zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(one + u, v);
|
||||
|
||||
GXPosition3f32(zero, y + zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(u, one + v);
|
||||
|
||||
GXPosition3f32(x + zero, y + zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(one + u, one + v);
|
||||
|
||||
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
|
||||
GXPosition3f32(zero, zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(v, v);
|
||||
|
||||
GXPosition3f32(x + zero, zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(one + v, v);
|
||||
|
||||
GXPosition3f32(zero, y + zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(v, one + v);
|
||||
|
||||
GXPosition3f32(x + zero, y + zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(one + v, one + v);
|
||||
|
||||
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
|
||||
GXPosition3f32(zero, zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(u, u);
|
||||
|
||||
GXPosition3f32(x + zero, zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(one + u, u);
|
||||
|
||||
GXPosition3f32(zero, y + zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(u, one + u);
|
||||
|
||||
GXPosition3f32(x + zero, y + zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(one + u, one + u);
|
||||
|
||||
GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
|
||||
GXPosition3f32(zero, zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(v, u);
|
||||
|
||||
GXPosition3f32(x + zero, zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(1.0f + v, u);
|
||||
|
||||
GXPosition3f32(zero, y + zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(v, 1.0f + u);
|
||||
|
||||
GXPosition3f32(x + zero, y + zero, zero);
|
||||
GXColor4u8(255, 255, 255, 255);
|
||||
GXPosition2f32(1.0f + v, 1.0f + u);
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
.loc_0x0:
|
||||
@ -3834,7 +3948,7 @@ void ZukanState::drawLightEffect(SingleGameSection* game, Graphics& gfx)
|
||||
* @note Address: N/A
|
||||
* @note Size: 0x404
|
||||
*/
|
||||
unknown ZukanState::debugDraw(Graphics&)
|
||||
void ZukanState::debugDraw(Graphics&)
|
||||
{
|
||||
// UNUSED FUNCTION
|
||||
}
|
||||
@ -3847,7 +3961,7 @@ void ZukanState::dvdloadA()
|
||||
{
|
||||
mMainHeap = JKRExpHeap::create(mParentHeap->getFreeSize(), mParentHeap, true);
|
||||
mMainHeap->becomeCurrentHeap();
|
||||
char path[256];
|
||||
char path[256]; // 0x160
|
||||
sprintf(path, "user/Yamashita/zukan/%s/%s/arc.szs", "us", sDirName[mMapIndex]);
|
||||
JKRArchive* arc = JKRMountArchive(path, JKRArchive::EMM_Mem, nullptr, JKRArchive::EMD_Tail);
|
||||
P2ASSERTLINE(2457, arc);
|
||||
@ -3855,8 +3969,11 @@ void ZukanState::dvdloadA()
|
||||
mParms->loadFile(arc);
|
||||
mGameSect->addGenNode(mParms);
|
||||
PSSystem::SingletonBase<PSM::ObjMgr>::newInstance();
|
||||
Rectf bounds(0.0f, 0.0f, sys->getRenderModeObj()->fbWidth * 0.6f * 0.75f * 0.25f + 0.5f,
|
||||
sys->getRenderModeObj()->efbHeight * 0.75f * 0.25f + 0.5f);
|
||||
u16 width = sys->getRenderModeObj()->fbWidth;
|
||||
u16 height = sys->getRenderModeObj()->efbHeight;
|
||||
int newWidth = (int)((f32)width * 0.6f * 0.75f * 0.25f + 0.5f) * 4;
|
||||
int newHeight = (int)((f32)height * 0.75f * 0.25f + 0.5f) * 4;
|
||||
Rectf bounds(0.0f, 0.0f, newWidth, newHeight);
|
||||
mWindowBounds = bounds;
|
||||
mCameraAspect = 0.0f;
|
||||
|
||||
@ -3931,16 +4048,15 @@ void ZukanState::dvdloadA()
|
||||
void* file = arc->getResource("course.txt");
|
||||
P2ASSERTLINE(2603, file);
|
||||
RamStream stream(file, -1);
|
||||
stream.mMode = STREAM_MODE_TEXT;
|
||||
stream.resetPosition(1, 1);
|
||||
stream.resetPosition(true, 1);
|
||||
mCourseInfo = new CourseInfo;
|
||||
mCourseInfo->read(stream);
|
||||
mCourseInfo->dump();
|
||||
Stages::createMapMgr(mCourseInfo, nullptr);
|
||||
|
||||
cellMgr = new CellPyramid;
|
||||
platCellMgr = cellMgr;
|
||||
BoundBox2d bound(128000.0f, 128000.0f, -128000.0f, -128000.0f);
|
||||
platCellMgr = nullptr;
|
||||
BoundBox2d bound(12800000.0f, 12800000.0f, -12800000.0f, -12800000.0f);
|
||||
mapMgr->getBoundBox2d(bound);
|
||||
JKRGetCurrentHeap()->getFreeSize();
|
||||
cellMgr->create(bound, 64.0f);
|
||||
@ -6029,7 +6145,7 @@ void ZukanState::clearHeapB_pellet()
|
||||
* @note Address: 0x80226D50
|
||||
* @note Size: 0x3AC
|
||||
*/
|
||||
unknown ZukanState::clearHeaps()
|
||||
void ZukanState::clearHeaps()
|
||||
{
|
||||
pikiMgr->resetMgr();
|
||||
if (mCurrentEnemy) {
|
||||
@ -6093,7 +6209,7 @@ void ZukanState::cleanup(SingleGameSection* game)
|
||||
gameSystem->mMode = GSM_STORY_MODE;
|
||||
gameSystem->mTimeMgr->mSpeedFactor = 1.0f;
|
||||
mBackupHeap->becomeCurrentHeap();
|
||||
JUT_ASSERTLINE(3346, (int)mBackupHeap->getFreeSize() == sParentHeapFreeSize, "damek");
|
||||
JUT_ASSERTLINE(3346, (int)mBackupHeap->getFreeSize() == sParentHeapFreeSize, "damek\n");
|
||||
}
|
||||
|
||||
} // namespace SingleGame
|
||||
|
Loading…
x
Reference in New Issue
Block a user