Second ebisawa walkthrough

This commit is contained in:
HeartPiece 2023-09-20 01:18:10 +10:00
parent 873ce021bb
commit da626db383
34 changed files with 835 additions and 6175 deletions

View File

@ -1457,7 +1457,7 @@ LIBS = [
["plugProjectEbisawaU/efx2dBase", True],
"plugProjectEbisawaU/efx2dEffect",
"plugProjectEbisawaU/particleMgr",
"plugProjectEbisawaU/ebiP2Title",
["plugProjectEbisawaU/ebiP2Title", False, {"cflags" : "$cflags_pikmin"}],
"plugProjectEbisawaU/ebiP2TitleUnit",
["plugProjectEbisawaU/ebiUtility", True],
["plugProjectEbisawaU/ebiP2TitleCamera", True],
@ -1470,29 +1470,29 @@ LIBS = [
["plugProjectEbisawaU/ebi2DGraph", False, {"cflags" : "$cflags_pikmin"}],
"plugProjectEbisawaU/ebiScreenOption",
"plugProjectEbisawaU/ebiScreenProgre",
"plugProjectEbisawaU/ebiOptionMgr",
["plugProjectEbisawaU/ebiOptionMgr", False, {"cflags" : "$cflags_pikmin"}],
"plugProjectEbisawaU/ebi2DCallBack",
"plugProjectEbisawaU/ebiCardMgr",
["plugProjectEbisawaU/ebiCardMgr", False, {"cflags" : "$cflags_pikmin"}],
["plugProjectEbisawaU/ebiScreenFramework", True],
["plugProjectEbisawaU/ebiScreenPushStart", True],
"plugProjectEbisawaU/ebiScreenFileSelect",
["plugProjectEbisawaU/ebiScreenFileSelect", False, {"cflags" : "$cflags_pikmin"}],
"plugProjectEbisawaU/ebiScreenTitleMenu",
"plugProjectEbisawaU/ebiSaveMgr",
["plugProjectEbisawaU/ebiSaveMgr", False, {"cflags" : "$cflags_pikmin"}],
"plugProjectEbisawaU/ebiScreenSaveMenu",
"plugProjectEbisawaU/ebiScreenFileSelect_Mgr",
"plugProjectEbisawaU/ebiFileSelectMgr",
["plugProjectEbisawaU/ebiFileSelectMgr", False, {"cflags" : "$cflags_pikmin"}],
["plugProjectEbisawaU/ebiCardMgr_Load", True],
["plugProjectEbisawaU/ebiP2TitleCoordMgr", True],
"plugProjectEbisawaU/ebiP2TitlePikmin",
["plugProjectEbisawaU/ebiP2TitleKogane", True],
["plugProjectEbisawaU/ebiP2TitleChappy", True],
["plugProjectEbisawaU/ebiScreenTMBack", True],
"plugProjectEbisawaU/ebiMainTitleMgr",
["plugProjectEbisawaU/ebiMainTitleMgr", False, {"cflags" : "$cflags_pikmin"}],
["plugProjectEbisawaU/ebiP2TitleFog", True],
"plugProjectEbisawaU/efxEnemyBoss",
"plugProjectEbisawaU/ebiCardEReader",
"plugProjectEbisawaU/ebiScreenOmake",
"plugProjectEbisawaU/ebiOmakeMgr",
["plugProjectEbisawaU/ebiOmakeMgr", False, {"cflags" : "$cflags_pikmin"}],
"plugProjectEbisawaU/ebiScreenOmakeCardE",
"plugProjectEbisawaU/ebiScreenOmakeGame",
["plugProjectEbisawaU/ebiScreenInfoWindow", True],

View File

@ -70,14 +70,14 @@
### <section id="plugProjectEbisawaU">plugProjectEbisawaU</section>
| File | Size (bytes) | File | Size (bytes) |
| ---- | ---- | ---- | ---- |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebi2DGraph.cpp">ebi2DGraph.cpp</a> | 4227 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiScreenOmakeCardE.cpp">ebiScreenOmakeCardE.cpp</a> | 5774 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiGeometry.cpp">ebiGeometry.cpp</a> | 5804 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiOmakeMgr.cpp">ebiOmakeMgr.cpp</a> | 7755 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiCardEReader.cpp">ebiCardEReader.cpp</a> | 9655 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebi2DCallBack.cpp">ebi2DCallBack.cpp</a> | 10813 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebi2DGraph.cpp">ebi2DGraph.cpp</a> | 4227 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiGeometry.cpp">ebiGeometry.cpp</a> | 5220 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiScreenOmakeCardE.cpp">ebiScreenOmakeCardE.cpp</a> | 5774 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiOmakeMgr.cpp">ebiOmakeMgr.cpp</a> | 7786 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiCardEReader.cpp">ebiCardEReader.cpp</a> | 9641 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebi2DCallBack.cpp">ebi2DCallBack.cpp</a> | 10813 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiScreenSaveMenu.cpp">ebiScreenSaveMenu.cpp</a> | 11850 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiScreenTitleMenu.cpp">ebiScreenTitleMenu.cpp</a> | 11996 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiScreenOmakeGame.cpp">ebiScreenOmakeGame.cpp</a> | 12403 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiP2TitleUnit.cpp">ebiP2TitleUnit.cpp</a> | 13361 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiFileSelectMgr.cpp">ebiFileSelectMgr.cpp</a> | 14168 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiSaveMgr.cpp">ebiSaveMgr.cpp</a> | 15281 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/efxTPkEffectMgr.cpp">efxTPkEffectMgr.cpp</a> | 15831 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/efx2dEffect.cpp">efx2dEffect.cpp</a> | 17839 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/efxObject.cpp">efxObject.cpp</a> | 18240 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/particle2dMgr.cpp">particle2dMgr.cpp</a> | 20520 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiScreenOmakeGame.cpp">ebiScreenOmakeGame.cpp</a> | 12403 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiMainTitleMgr.cpp">ebiMainTitleMgr.cpp</a> | 12858 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiP2TitleUnit.cpp">ebiP2TitleUnit.cpp</a> | 13380 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiFileSelectMgr.cpp">ebiFileSelectMgr.cpp</a> | 14168 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiSaveMgr.cpp">ebiSaveMgr.cpp</a> | 15440 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/efxTPkEffectMgr.cpp">efxTPkEffectMgr.cpp</a> | 15831 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/efx2dEffect.cpp">efx2dEffect.cpp</a> | 17839 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/efxObject.cpp">efxObject.cpp</a> | 18240 |
### <section id="plugProjectHikinoU">plugProjectHikinoU</section>
| File | Size (bytes) | File | Size (bytes) |

View File

@ -20,8 +20,10 @@ struct J3DAnmLoaderDataBase {
void setResource(J3DAnmBase*, const void*);
};
enum J3DMtxCalcFlag {};
J3DMtxCalcAnmBase* J3DNewMtxCalcAnm(u32, J3DAnmTransform*);
J3DMtxCalc* J3DUNewMtxCalcAnm(unsigned long, J3DAnmTransform*, J3DAnmTransform*, J3DAnmTransform*, J3DAnmTransform*, int);
J3DMtxCalc* J3DUNewMtxCalcAnm(unsigned long, J3DAnmTransform*, J3DAnmTransform*, J3DAnmTransform*, J3DAnmTransform*, J3DMtxCalcFlag);
struct J3DAnmLoader {
virtual J3DAnmBase* load(const void*) = 0; // _08

View File

@ -97,6 +97,12 @@ struct J3DModelData {
mat->mTevBlock->setTevColor(0, J3DGXColorS10(r, g, b, a));
}
inline void doMakeShared()
{
newSharedDisplayList(0x40000);
makeSharedDL();
}
J3DVertexData* getVertexData() { return &mVertexData; }
J3DJoint* getJointNodePointer(u16 idx) const { return mJointTree.getJointNodePointer(idx); }
J3DMaterialTable& getMaterialTable() { return mMaterialTable; }

View File

@ -4,6 +4,7 @@
#include "types.h"
#include "sqrt.h"
#include "JSystem/JGeometry.h"
#include "Dolphin/math.h"
template <typename T>
struct Vector2 {
@ -42,8 +43,11 @@ struct Vector2 {
operator JGeometry::TVec2f() { return JGeometry::TVec2f(x, y); }
inline f32 sqrMagnitude() const { return x * x + y * y; }
inline f32 length() const;
inline f32 normalise();
inline f32 distance(Vector2&);
T x, y;
};
@ -71,12 +75,9 @@ inline f32 _lenVec2D(Vector2f& vec)
template <>
inline f32 Vector2f::length() const
{
Vector2f vec(x, y);
f32 x2 = x * x;
f32 y2 = y * y;
if (x2 + y2 > 0.0f) {
f32 sqrLen = vec.x * vec.x + y * y;
if (sqrMagnitude() > 0.0f) {
Vector2f vec = Vector2f(x, y);
f32 sqrLen = SQUARE(vec.x) + SQUARE(y);
return sqrtf(sqrLen);
} else {
return 0.0f;
@ -97,4 +98,13 @@ inline f32 Vector2f::normalise()
return 0.0f;
}
template <>
inline f32 Vector2f::distance(Vector2f& them)
{
f32 diffX = this->x - them.x;
f32 diffY = this->y - them.y;
return Vector2f(diffX, diffY).length();
}
#endif

View File

@ -55,7 +55,7 @@ struct TMgr : public JKRDisposer {
OSCond mCond;
};
} // namespace CardEReader
CardEReader::TMgr* gCardEMgr;
extern CardEReader::TMgr* gCardEMgr;
} // namespace ebi
#endif

View File

@ -53,50 +53,25 @@ struct FSMStateMachine : public Game::StateMachine<TMgr> {
////////////////////////////////////////////////////////////
// BASE STATES
struct FSMState : public Game::FSMState<TMgr> {
inline FSMState(int stateID)
inline FSMState(int stateID, char* name)
: Game::FSMState<TMgr>(stateID)
{
mName = name;
}
virtual void init(TMgr*, Game::StateArg*); // _08 (weak)
virtual void exec(TMgr*); // _0C (weak)
virtual void do_init(TMgr*, Game::StateArg*); // _20 (weak)
virtual void do_exec(TMgr*); // _24 (weak)
virtual void init(TMgr* mgr, Game::StateArg* arg); // _08
virtual void exec(TMgr* mgr); // _0C
virtual void do_init(TMgr*, Game::StateArg*) { } // _20 (weak)
virtual void do_exec(TMgr*) { } // _24 (weak)
// _00 = VTBL
// _00-_0C = Game::FSMState
char* mName;
};
struct FSMState_Standby : public FSMState {
FSMState_Standby()
: FSMState(CARDERROR_Standby)
{
mName = "Standby";
}
// doesnt have its own vtable?
// _00 = VTBL
// _00-_10 = FSMState
};
struct FSMState_EmptyScreen : public FSMState {
FSMState_EmptyScreen()
: FSMState(CARDERROR_EmptyScreen)
{
mName = "EmptyScreen";
}
// doesnt have its own vtable?
// _00 = VTBL
// _00-_10 = FSMState
};
struct FSMState_NoCard : public FSMState {
FSMState_NoCard(int id)
: FSMState(id)
FSMState_NoCard(int id, char* name)
: FSMState(id, name)
{
}
@ -112,8 +87,8 @@ struct FSMState_NoCard : public FSMState {
};
struct FSMState_CardRequest : public FSMState {
FSMState_CardRequest(int id)
: FSMState(id)
FSMState_CardRequest(int id, char* name)
: FSMState(id, name)
{
}
@ -140,8 +115,8 @@ struct FSMState_CardRequest : public FSMState {
};
struct FSMState_Question : public FSMState {
inline FSMState_Question(int id)
: FSMState(id)
inline FSMState_Question(int id, char* name)
: FSMState(id, name)
{
}
@ -157,8 +132,8 @@ struct FSMState_Question : public FSMState {
};
struct FSMState_Warning : public FSMState {
inline FSMState_Warning(int id)
: FSMState(id)
inline FSMState_Warning(int id, char* name)
: FSMState(id, name)
{
}
@ -179,9 +154,8 @@ struct FSMState_Warning : public FSMState {
// QUESTION STATES
struct FSMState_Q00_DataBrokenAndDoYouFormat : public FSMState_Question {
inline FSMState_Q00_DataBrokenAndDoYouFormat()
: FSMState_Question(CARDERROR_DataBrokenAndDoYouFormat)
: FSMState_Question(CARDERROR_DataBrokenAndDoYouFormat, "Q00_DataBrokenAndDoYouFormat")
{
mName = "Q00_DataBrokenAndDoYouFormat";
}
virtual void do_open(TMgr*); // _28
@ -194,9 +168,8 @@ struct FSMState_Q00_DataBrokenAndDoYouFormat : public FSMState_Question {
struct FSMState_Q01_DoYouOpenIPL : public FSMState_Question {
inline FSMState_Q01_DoYouOpenIPL()
: FSMState_Question(CARDERROR_DoYouOpenIPL)
: FSMState_Question(CARDERROR_DoYouOpenIPL, "FSMState_Q01_DoYouOpenIPL")
{
mName = "Q01_DoYouOpenIPL";
}
virtual void do_open(TMgr*); // _28
@ -209,9 +182,8 @@ struct FSMState_Q01_DoYouOpenIPL : public FSMState_Question {
struct FSMState_Q02_DoYouFormat : public FSMState_Question {
inline FSMState_Q02_DoYouFormat()
: FSMState_Question(CARDERROR_DoYouFormat)
: FSMState_Question(CARDERROR_DoYouFormat, "Q02_DoYouFormat")
{
mName = "Q02_DoYouFormat";
}
virtual void do_open(TMgr*); // _28
@ -224,9 +196,8 @@ struct FSMState_Q02_DoYouFormat : public FSMState_Question {
struct FSMState_Q03_DoYouCreateNewFile : public FSMState_Question {
inline FSMState_Q03_DoYouCreateNewFile()
: FSMState_Question(CARDERROR_DoYouCreateNewFile)
: FSMState_Question(CARDERROR_DoYouCreateNewFile, "Q03_DoYouCreateNewFile")
{
mName = "Q03_DoYouCreateNewFile";
}
virtual void do_open(TMgr*); // _28
@ -239,9 +210,8 @@ struct FSMState_Q03_DoYouCreateNewFile : public FSMState_Question {
struct FSMState_Q04_DoYouStartGameWithoutSave : public FSMState_Question {
inline FSMState_Q04_DoYouStartGameWithoutSave()
: FSMState_Question(CARDERROR_DoYouStartGameWithoutSave)
: FSMState_Question(CARDERROR_DoYouStartGameWithoutSave, "Q04_DoYouStartGameWithoutSave")
{
mName = "Q04_DoYouStartGameWithoutSave";
}
virtual void do_open(TMgr*); // _28
@ -254,9 +224,8 @@ struct FSMState_Q04_DoYouStartGameWithoutSave : public FSMState_Question {
struct FSMState_Q05_GameCantSave : public FSMState_Question {
inline FSMState_Q05_GameCantSave()
: FSMState_Question(CARDERROR_GameCantSave)
: FSMState_Question(CARDERROR_GameCantSave, "Q05_GameCantSave")
{
mName = "Q05_GameCantSave";
}
virtual void do_open(TMgr*); // _28
@ -272,9 +241,8 @@ struct FSMState_Q05_GameCantSave : public FSMState_Question {
// WARNING STATES
struct FSMState_W00_NoCard : public FSMState_NoCard {
inline FSMState_W00_NoCard()
: FSMState_NoCard(CARDERROR_NoCard)
: FSMState_NoCard(CARDERROR_NoCard, "W00_NoCard")
{
mName = "W00_NoCard";
}
virtual void do_open(TMgr*); // _28
@ -287,9 +255,8 @@ struct FSMState_W00_NoCard : public FSMState_NoCard {
struct FSMState_W01_IOError : public FSMState_Warning {
inline FSMState_W01_IOError()
: FSMState_Warning(CARDERROR_IOError)
: FSMState_Warning(CARDERROR_IOError, "W01_IOError")
{
mName = "W01_IOError";
}
virtual void do_open(TMgr*); // _28
@ -301,9 +268,8 @@ struct FSMState_W01_IOError : public FSMState_Warning {
struct FSMState_W02_WrongDevice : public FSMState_Warning {
inline FSMState_W02_WrongDevice()
: FSMState_Warning(CARDERROR_WrongDevice)
: FSMState_Warning(CARDERROR_WrongDevice, "W02_WrongDevice")
{
mName = "W02_WrongDevice";
}
virtual void do_open(TMgr*); // _28
@ -315,9 +281,8 @@ struct FSMState_W02_WrongDevice : public FSMState_Warning {
struct FSMState_W03_WrongSector : public FSMState_Warning {
inline FSMState_W03_WrongSector()
: FSMState_Warning(CARDERROR_WrongSector)
: FSMState_Warning(CARDERROR_WrongSector, "W03_WrongSector")
{
mName = "W03_WrongSector";
}
virtual void do_open(TMgr*); // _28
@ -329,9 +294,8 @@ struct FSMState_W03_WrongSector : public FSMState_Warning {
struct FSMState_W04_OverCapacity : public FSMState_Warning {
inline FSMState_W04_OverCapacity()
: FSMState_Warning(CARDERROR_OverCapacity)
: FSMState_Warning(CARDERROR_OverCapacity, "W04_OverCapacity")
{
mName = "W04_OverCapacity";
}
virtual void do_open(TMgr*); // _28
@ -343,9 +307,8 @@ struct FSMState_W04_OverCapacity : public FSMState_Warning {
struct FSMState_W05_InitCardOnIPL : public FSMState_Warning {
inline FSMState_W05_InitCardOnIPL()
: FSMState_Warning(CARDERROR_InitCardOnIPL)
: FSMState_Warning(CARDERROR_InitCardOnIPL, "W05_InitCardOnIPL")
{
mName = "W05_InitCardOnIPL";
}
virtual void do_open(TMgr*); // _28
@ -357,9 +320,8 @@ struct FSMState_W05_InitCardOnIPL : public FSMState_Warning {
struct FSMState_W06_CardNotUsable : public FSMState_Warning {
inline FSMState_W06_CardNotUsable()
: FSMState_Warning(CARDERROR_CardNotUsable)
: FSMState_Warning(CARDERROR_CardNotUsable, "W06_CardNotUsable")
{
mName = "W06_CardNotUsable";
}
virtual void do_open(TMgr*); // _28
@ -371,9 +333,8 @@ struct FSMState_W06_CardNotUsable : public FSMState_Warning {
struct FSMState_W07_NoFileForSave : public FSMState_Warning {
inline FSMState_W07_NoFileForSave()
: FSMState_Warning(CARDERROR_NoFileForSave)
: FSMState_Warning(CARDERROR_NoFileForSave, "W07_NoFileForSave")
{
mName = "W07_NoFileForSave";
}
virtual void do_open(TMgr*); // _28
@ -385,9 +346,8 @@ struct FSMState_W07_NoFileForSave : public FSMState_Warning {
struct FSMState_W08_FinishFormat : public FSMState_Warning {
inline FSMState_W08_FinishFormat()
: FSMState_Warning(CARDERROR_FinishFormat)
: FSMState_Warning(CARDERROR_FinishFormat, "W08_FinishFormat")
{
mName = "W08_FinishFormat";
}
virtual void do_open(TMgr*); // _28
@ -399,9 +359,8 @@ struct FSMState_W08_FinishFormat : public FSMState_Warning {
struct FSMState_W09_FinishCreateNewFile : public FSMState_Warning {
inline FSMState_W09_FinishCreateNewFile()
: FSMState_Warning(CARDERROR_FinishCreateNewFile)
: FSMState_Warning(CARDERROR_FinishCreateNewFile, "W09_FinishCreateNewFile")
{
mName = "W09_FinishCreateNewFile";
}
virtual void do_open(TMgr*); // _28
@ -413,9 +372,8 @@ struct FSMState_W09_FinishCreateNewFile : public FSMState_Warning {
struct FSMState_W10_SerialNoError : public FSMState_Warning {
inline FSMState_W10_SerialNoError()
: FSMState_Warning(CARDERROR_SerialNoError)
: FSMState_Warning(CARDERROR_SerialNoError, "W10_SerialNoError")
{
mName = "W10_SerialNoError";
}
virtual void do_open(TMgr*); // _28
@ -430,9 +388,8 @@ struct FSMState_W10_SerialNoError : public FSMState_Warning {
// WARNING FAIL STATES
struct FSMState_WF0_FailToFormat_NoCard : public FSMState_Warning {
inline FSMState_WF0_FailToFormat_NoCard()
: FSMState_Warning(CARDERROR_FailToFormat_NoCard)
: FSMState_Warning(CARDERROR_FailToFormat_NoCard, "WF0_FailToFormat_NoCard")
{
mName = "WF0_FailToFormat_NoCard";
}
virtual void do_open(TMgr*); // _28
@ -444,9 +401,8 @@ struct FSMState_WF0_FailToFormat_NoCard : public FSMState_Warning {
struct FSMState_WF1_FailToFormat_IOError : public FSMState_Warning {
inline FSMState_WF1_FailToFormat_IOError()
: FSMState_Warning(CARDERROR_FailToFormat_IOError)
: FSMState_Warning(CARDERROR_FailToFormat_IOError, "WF1_FailToFormat_IOError")
{
mName = "WF1_FailToFormat_IOError";
}
virtual void do_open(TMgr*); // _28
@ -458,9 +414,8 @@ struct FSMState_WF1_FailToFormat_IOError : public FSMState_Warning {
struct FSMState_WF2_FailToCreateNewFile_NoCard : public FSMState_Warning {
inline FSMState_WF2_FailToCreateNewFile_NoCard()
: FSMState_Warning(CARDERROR_FailToCreateNewFile_NoCard)
: FSMState_Warning(CARDERROR_FailToCreateNewFile_NoCard, "WF2_FailToCreateNewFile_NoCard")
{
mName = "WF2_FailToCreateNewFile_NoCard";
}
virtual void do_open(TMgr*); // _28
@ -472,9 +427,8 @@ struct FSMState_WF2_FailToCreateNewFile_NoCard : public FSMState_Warning {
struct FSMState_WF3_FailToCreateNewFile_IOError : public FSMState_Warning {
inline FSMState_WF3_FailToCreateNewFile_IOError()
: FSMState_Warning(CARDERROR_FailToCreateNewFile_IOError)
: FSMState_Warning(CARDERROR_FailToCreateNewFile_IOError, "WF3_FailToCreateNewFile_IOError")
{
mName = "WF3_FailToCreateNewFile_IOError";
}
virtual void do_open(TMgr*); // _28
@ -486,9 +440,8 @@ struct FSMState_WF3_FailToCreateNewFile_IOError : public FSMState_Warning {
struct FSMState_WF4_FailToSave_NoCard : public FSMState_Warning {
inline FSMState_WF4_FailToSave_NoCard()
: FSMState_Warning(CARDERROR_FailToSave_NoCard)
: FSMState_Warning(CARDERROR_FailToSave_NoCard, "WF4_FailToSave_NoCard")
{
mName = "WF4_FailToSave_NoCard";
}
virtual void do_open(TMgr*); // _28
@ -500,9 +453,8 @@ struct FSMState_WF4_FailToSave_NoCard : public FSMState_Warning {
struct FSMState_WF5_FailToSave_IOError : public FSMState_Warning {
inline FSMState_WF5_FailToSave_IOError()
: FSMState_Warning(CARDERROR_FailToSave_IOError)
: FSMState_Warning(CARDERROR_FailToSave_IOError, "WF5_FailToSave_IOError")
{
mName = "WF5_FailToSave_IOError";
}
virtual void do_open(TMgr*); // _28
@ -517,9 +469,8 @@ struct FSMState_WF5_FailToSave_IOError : public FSMState_Warning {
// CARD REQUEST STATES
struct FSMState_WN0_NowFormat : public FSMState_CardRequest {
inline FSMState_WN0_NowFormat()
: FSMState_CardRequest(CARDERROR_NowFormat)
: FSMState_CardRequest(CARDERROR_NowFormat, "WN0_NowFormat")
{
mName = "WN0_NowFormat";
}
virtual void do_open(TMgr*); // _28
@ -534,9 +485,8 @@ struct FSMState_WN0_NowFormat : public FSMState_CardRequest {
struct FSMState_WN1_NowCreateNewFile : public FSMState_CardRequest {
inline FSMState_WN1_NowCreateNewFile()
: FSMState_CardRequest(CARDERROR_NowCreateNewFile)
: FSMState_CardRequest(CARDERROR_NowCreateNewFile, "WN1_NowCreateNewFile")
{
mName = "WN1_NowCreateNewFile";
}
virtual void do_open(TMgr*); // _28
@ -585,7 +535,7 @@ struct TMgr : Screen::TMemoryCard {
int getStateID();
TMgr();
~TMgr() { }
~TMgr();
// _00-_298 = TMemoryCard
u32 mCounter; // _298

View File

@ -16,6 +16,7 @@ struct E2DCallBack_Base : public P2DScreen::CallBackNode {
: mIsEnabled(true)
{
}
virtual ~E2DCallBack_Base() { } // _08 (weak)
virtual void update(); // _10 (weak)
virtual void draw(Graphics&, J2DGrafContext&); // _14 (weak)
@ -74,7 +75,14 @@ struct E2DCallBack_BlinkAlpha : public E2DCallBack_Base {
// Size: 0x4C
struct E2DCallBack_BlinkFontColor : public E2DCallBack_Base {
E2DCallBack_BlinkFontColor();
E2DCallBack_BlinkFontColor()
: mColor1Weight(0.0f)
, mSpeed(0.03333f)
, mIsTowardColor1(true)
, _49(0)
{
mIsEnabled = false;
}
virtual ~E2DCallBack_BlinkFontColor() { } // _08 (weak)
virtual void do_update(); // _1C

View File

@ -6,7 +6,13 @@
namespace ebi {
// @size{0x10}
struct E2DFullFontColor {
E2DFullFontColor();
E2DFullFontColor()
: mCol1(0xFFFFFFFF)
, mCol2(0xFFFFFFFF)
, mWhite(0xFFFFFFFF)
, mBlack(0xFFFFFFFF)
{
}
JUtility::TColor mCol1; // _00
JUtility::TColor mCol2; // _04

View File

@ -9,6 +9,12 @@
struct Controller;
namespace Game {
namespace MemoryCard {
struct PlayerFileInfo;
}
} // namespace Game
namespace ebi {
namespace FS {
struct TMgr;
@ -223,6 +229,8 @@ struct FSMState10_FinishCopy : public FSMState_Warning {
};
struct TMgr {
enum enumEnd {};
TMgr();
~TMgr() { }
@ -233,6 +241,9 @@ struct TMgr {
void update();
void draw();
void setController(Controller*);
void goEnd_(enumEnd);
void checkAndTransitNoCard_();
int getStateID();
Screen::FileSelect::TMainScreen mMainScreen; // _00
u32 _BF8; // _BF8

View File

@ -14,7 +14,7 @@ struct EGEBox2f : JGeometry::TBox2f {
bool isIn(Vector2f&, f32);
bool isOut(Vector2f&);
bool isOut(Vector2f&, f32);
bool in(Vector2f*, f32);
void in(Vector2f*, f32);
// Unused/inlined:
bool isIn(Vector2f&);

View File

@ -0,0 +1,32 @@
#ifndef _EBI_SCREEN_FILESELECT_TFILEDATA_H
#define _EBI_SCREEN_FILESELECT_TFILEDATA_H
#include "ebi/Screen/TScreenBase.h"
namespace ebi {
namespace Screen {
namespace FileSelect {
struct TFileData {
TFileData();
bool mIsBrokenFile; // _00
bool mIsNewFile; // _01
u32 _04; // _04
u32 _08; // _08
u32 _0C; // _0C
u32 _10; // _10
u32 _14; // _14
u32 _18; // _18
int _1C; // _1C
u32 _20; // _20
u32 _24; // _24
u32 _28; // _28
u32 _2C; // _2C
u32 _30; // _30
};
} // namespace FileSelect
} // namespace Screen
} // namespace ebi
#endif

View File

@ -2,6 +2,10 @@
#define _EBI_SCREEN_FILESELECT_TMAINSCREEN_H
#include "ebi/Screen/TScreenBase.h"
#include "og/Screen/callbackNodes.h"
#include "efx2d/FileSelect.h"
#include "ebi/Screen/TFileData.h"
#include "ebi/Screen/TScreenDataWindow.h"
namespace ebi {
namespace Screen {
@ -23,25 +27,25 @@ struct TMainScreen : public TScreenBase {
virtual char* getName(); // _48 (weak)
void loadResource();
void inDataBall(long);
void outDataBall(long);
void decideDataBall(long);
void createFiledecide(long);
void isFinishOutDataBall(long);
void isFinishDecideDataBall(long);
void createCopyCursor(long);
void inDataBall(s32);
void outDataBall(s32);
void decideDataBall(s32);
void createFiledecide(s32);
void isFinishOutDataBall(s32);
void isFinishDecideDataBall(s32);
void createCopyCursor(s32);
void fadeCopyCursor();
void moveLeftCopyCursor();
void moveRightCopyCursor();
void createFilecopyEffect(long, long);
void createFilecopyEffect(s32, s32);
void fadeFilecopyEffect();
void createFiledeletingEffect(long);
void createFiledeletingEffect(s32);
void fadeFiledeletingEffect();
void openDataWindow(long);
void openDataWindow(s32);
void closeDataWindow();
void decideDataWindow();
void isFinishCloseDataWindow();
void openMSG(long);
void openMSG(s32);
void closeMSG();
void isFinishCloseMSG();
void setYesNo(bool);
@ -51,18 +55,104 @@ struct TMainScreen : public TScreenBase {
void outCopyErase();
void inYesNo_();
void outYesNo_();
void setDataBallCopyResult(long, long);
void setDataBallNew(long);
void setDataBallBroken(long);
void setDataBallCopyResult(s32, s32);
void setDataBallNew(s32);
void setDataBallBroken(s32);
void initDataBalls_();
void setColorTimgDataBall_(long);
void getDataBallColor_(long);
void setColorTimgDataBall_(s32);
void getDataBallColor_(s32);
void calcDataBallColor_(u32, u32, u32, u32, u32);
void setIconColorAlpha_(u8);
// _00 = VTBL
// _00-_0C = TScreenBase
u8 _0C[0xBEC]; // _0C, unknown
P2DScreen::Mgr_tuning* _0C; // _00C
J2DPictureEx* _10[3]; // _010
J2DPane* _1C; // _01C
J2DPane* _20[2][3]; // _020
J2DPicture* _38[3]; // _038
J2DPicture* _44[3]; // _044
J2DPane* _50[3]; // _050
J2DPane* _5C[3]; // _05C
J2DPicture* _68[3]; // _068
J2DPicture* _74[3]; // _074
J2DPane* _80[3]; // _080
J2DPane* _8C[3]; // _08C
J2DPane* _98; // _098
J2DPane* _9C; // _09C
J2DTextBox* _A0; // _0A0
J2DPane* _A4; // _0A4
J2DPane* _A8; // _0A8
J2DPane* _AC; // _0AC
J2DPane* _B0; // _0B0
J2DPane* _B4; // _0B4
J2DPane* _B8; // _0B8
J2DPane* _BC; // _0BC
E2DFullFontColor _C0; // _0C0
E2DFullFontColor _D0; // _0D0
E2DCallBack_AnmBase _E0; // _0E0
E2DCallBack_AnmBase _11C; // _11C
E2DCallBack_AnmBase _158[3]; // _158
E2DCallBack_AnmBase _20C[3]; // _20C
E2DCallBack_AnmBase _2C0; // _2C0
E2DCallBack_AnmBase _2FC; // _2FC
E2DCallBack_AnmBase _338; // _338
E2DCallBack_AnmBase _374; // _374
E2DCallBack_AnmBase _3B0[3]; // _3B0
E2DCallBack_AnmBase _464[3]; // _464
E2DCallBack_AnmBase _518[3]; // _518
E2DCallBack_AnmBase _5CC; // _5CC
E2DCallBack_AnmBase _608; // _608
E2DCallBack_AnmBase _644; // _644
E2DCallBack_AnmBase _680; // _680
E2DCallBack_AnmBase _6BC; // _6BC
E2DCallBack_AnmBase _6F8; // _6F8
E2DCallBack_AnmBase _734; // _734
E2DCallBack_AnmBase _770; // _770
E2DCallBack_AnmBase _7AC; // _7AC
E2DCallBack_AnmBase _7E8; // _7E8
E2DCallBack_AnmBase _824; // _824
E2DCallBack_AnmBase _860; // _860
E2DCallBack_CalcAnimation _89C; // _89C
E2DCallBack_BlinkFontColor _8BC; // _8BC
E2DCallBack_BlinkFontColor _908; // _908
E2DCallBack_Purupuru _954[2]; // _954
og::Screen::CallBack_CounterDay* _9D4; // _9D4
og::Screen::CallBack_CounterDay* _9D8; // _9D8
og::Screen::CallBack_CounterDay* _9DC; // _9DC
og::Screen::CallBack_CounterDay* _9E0; // _9E0
og::Screen::CallBack_CounterDay* _9E4; // _9E4
og::Screen::CallBack_CounterDay* _9E8; // _9E8
TYesNoCursor _9EC; // _9EC
TYesNoCursor _A24; // _A24
efx2d::FileSelect::T2DFilecopy _A5C; // _A5C
efx2d::FileSelect::T2DFilecopyM _A70; // _A5C
efx2d::FileSelect::T2DFilesel* _A84[3]; // _A84
efx2d::FileSelect::T2DFileselM* _A90[3]; // _A90
efx2d::FileSelect::T2DFiledeleting _A9C; // _A9C
efx2d::FileSelect::T2DFiledeletingM _AB0; // _AB0
Vector2f _AC4[3]; // _AC4
Vector2f _ADC[3]; // _ADC
JPAResourceManager* _AF4; // _AF4
u8 _AF8; // _AF8
u8 _AF9; // _AF9
u8 _AFA; // _AFA
u8 _AFB; // _AFB
JUtility::TColor _AFC; // _AFC
TFileData _B00[3]; // _B00
int _B9C; // _B9C
P2DScreen::Mgr* _BA0; // _BA0
u8 _BA4; // _BA4
TScreenDataWindow_data _BA8; // _BA8
JUtility::TColor _BD4; // _BD4
u8 _BD8; // _BD8
int _BDC; // _BDC
int _BE0; // _BE0
u32 _BE4; // _BE4
int _BE8; // _BE8
u32 _BEC; // _BEC
u32 _BF0; // _BF0
u32 _BF4; // _BF4
};
} // namespace FileSelect
} // namespace Screen

View File

@ -87,8 +87,8 @@ struct TMemoryCard {
inline void doSetSelect(f32 p1, bool check)
{
// needs tweaking
mBlinkFont[0].setPaneColors();
mBlinkFont[1].setPaneColors();
mBlinkFont1.setPaneColors();
mBlinkFont2.setPaneColors();
mCursor1.mTimer = p1;
mCursor1.mSelected = check;
@ -96,29 +96,34 @@ struct TMemoryCard {
mCursor2.mSelected = check;
}
int mState; // _00, unknown
Controller* mController; // _04
uint mInputDelay; // _08
uint _0C; // _0C
u32 mMsgAlpha; // _10
int mAlphaMod; // _14
u8 mCurrSel; // _18
u8 mCanExit; // _19
P2DScreen::Mgr_tuning* mScreenMain; // _1C
J2DTextBox* mPaneMsg1; // _20
J2DTextBox* mPaneMsg2; // _24
J2DTextBox* mPaneMsg3; // _28
J2DTextBox* mPaneMsg4; // _2C
J2DPane* mPane_il00; // _30
J2DPane* mPane_il01; // _34
J2DPane* mPane_ir00; // _38
J2DPane* mPane_ir01; // _3C
E2DCallBack_BlinkFontColor mBlinkFont[2]; // _40
E2DCallBack_AnmBase mAnims[5]; // _D8
E2DCallBack_CalcAnimation mCalcAnim; // _204
TYesNoCursor mCursor1; // _224
TYesNoCursor mCursor2; // _25C
bool mIsPlaySavingSE; // _294
int mState; // _00, unknown
Controller* mController; // _04
uint mInputDelay; // _08
uint _0C; // _0C
u32 mMsgAlpha; // _10
int mAlphaMod; // _14
u8 mCurrSel; // _18
u8 mCanExit; // _19
P2DScreen::Mgr_tuning* mScreenMain; // _1C
J2DTextBox* mPaneMsg1; // _20
J2DTextBox* mPaneMsg2; // _24
J2DTextBox* mPaneMsg3; // _28
J2DTextBox* mPaneMsg4; // _2C
J2DPane* mPane_il00; // _30
J2DPane* mPane_il01; // _34
J2DPane* mPane_ir00; // _38
J2DPane* mPane_ir01; // _3C
E2DCallBack_BlinkFontColor mBlinkFont1; // _40
E2DCallBack_BlinkFontColor mBlinkFont2; // _8C
E2DCallBack_AnmBase mAnim1; // _D8
E2DCallBack_AnmBase mAnim2; // _D8
E2DCallBack_AnmBase mAnim3; // _D8
E2DCallBack_AnmBase mAnim4; // _D8
E2DCallBack_AnmBase mAnim5; // _D8
E2DCallBack_CalcAnimation mCalcAnim; // _204
TYesNoCursor mCursor1; // _224
TYesNoCursor mCursor2; // _25C
bool mIsPlaySavingSE; // _294
};
} // namespace Screen
} // namespace ebi

View File

@ -14,7 +14,26 @@ struct TSaveMenu : public TScreenBase {
enum enumMsgState { MSG_Kill, MSG_Open, MSG_Idle, MSG_Close };
enum MsgType { MESSAGE_SaveOption, MESSAGE_Saving, MESSAGE_SaveSuccess, MESSAGE_NoSaveOption };
TSaveMenu();
TSaveMenu()
: _14(0, 0, 0, 255)
, mAlpha(255)
, mDrawState(0)
, mOpenCloseCounter(0)
, mOpenCloseCounterMax(0)
, mStateID(0)
, mTextCounter(0)
, mTextCounterMax(0)
, mCursor1()
, mCursor2()
{
for (int i = 0; i < 4; i++) {
mCursorEfxPane[i] = nullptr;
}
mPaneYesText = nullptr;
mPaneNoText = nullptr;
mPaneQuestionText = nullptr;
}
virtual void doSetArchive(JKRArchive*); // _24
virtual void doOpenScreen(ArgOpen*); // _28
@ -36,9 +55,9 @@ struct TSaveMenu : public TScreenBase {
// _00 = VTBL
// _00-_08 = TScreenBase
Controller* mController; // _0C
int _10;
int _14;
Controller* mController; // _0C
int _10; // _10
JUtility::TColor _14; // _14
u8 mAlpha; // _18
int mDrawState; // _1C
u32 mOpenCloseCounter; // _20

View File

@ -65,7 +65,7 @@ struct ArgOpen {
struct ArgOpenOmake : public ArgOpen {
virtual char* getName() { return "ArgOpenOmake"; } // _08 (weak)
ArgOpenOmake(u8 a1, u8 a2, u8 a3)
ArgOpenOmake(u8 a1, u8 a2, bool a3)
{
mFlag1 = a1;
mFlag2 = a2;
@ -75,7 +75,7 @@ struct ArgOpenOmake : public ArgOpen {
// _00 = VTBL
u8 mFlag1;
u8 mFlag2;
u8 mFlag3;
bool mFlag3;
int _08;
};

View File

@ -0,0 +1,47 @@
#ifndef _EBI_SCREEN_FILESELECT_TSCREENDATAWINDOW_H
#define _EBI_SCREEN_FILESELECT_TSCREENDATAWINDOW_H
#include "ebi/Screen/TScreenBase.h"
#include "og/Screen/callbackNodes.h"
namespace ebi {
namespace Screen {
namespace FileSelect {
struct TScreenDataWindow_data {
TScreenDataWindow_data()
: _00(nullptr)
, _0C(0)
, _10(0)
, _14(0)
, _18(0)
, _24(0)
, _28(0)
{
}
void setArchive(JKRArchive*);
void setData(s32, u32, u32, u32, u32, u32, u32);
P2DScreen::Mgr* _00; // _00
og::Screen::CallBack_CounterRV* _04; // _04
og::Screen::CallBack_CounterRV* _08; // _08
u8 _0C; // _0C
u32 _10; // _10
u32 _14; // _14
int _18; // _18
u32 _1C; // _1C
u32 _20; // _20
u32 _24; // _24
u32 _28; // _28
};
// unused struct
struct TScreenDataWindow_new {
void setArchive(JKRArchive*);
void setData(s32, u64);
};
} // namespace FileSelect
} // namespace Screen
} // namespace ebi
#endif

View File

@ -33,14 +33,15 @@ struct TMainTitleMgr {
void draw();
void showInfo();
inline f32 getAlpha() const { return mAlpha; }
inline u8 calcAlpha(f32 factor) { return getAlpha() * factor; }
Screen::TTitleMenu mTitleMenu; // _0000
Screen::TPressStart mPressStart; // _137C
Screen::TTMBack mTMBack; // _160C
Screen::TNintendoLogo mLogo; // _1624
u8 _1634; // _1634
u8 _1635; // _1634
u8 _1636; // _1634
u8 _1637; // _1634
JUtility::TColor _1634; // _1634
u8 mAlpha; // _1638
int mDrawState; // _163C
u32 mOpenMenuCounter; // _1640
@ -54,8 +55,8 @@ struct TMainTitleMgr {
u32 mExitMenuCounter; // _165C
u32 mExitMenuCounterMax; // _1660
static f32 kFadeoutTime; // 1.0f
static f32 kFadeTime; // 0.5f
static const f32 kFadeOutTime; // 1.0f
static f32 kFadeTime; // 0.5f
};
} // namespace ebi

View File

@ -2,13 +2,16 @@
#define _EBI_TYESNOCURSOR_H
#include "efx2d/T2DCursor.h"
#include "System.h"
struct J2DPane;
namespace ebi {
struct TYesNoCursor : public efx2d::T2DCursor {
struct TYesNoCursor {
TYesNoCursor()
: T2DCursor(&mPos)
: mCursor(&mPos)
, mSpeed(5.0f * sys->mDeltaTime)
, mTimer(0.0f)
{
mPane1 = nullptr;
mPane2 = nullptr;
@ -22,14 +25,13 @@ struct TYesNoCursor : public efx2d::T2DCursor {
mPane2 = pane2;
}
// _00 = VTBL
// _00-_1C = T2DCursor
Vector2f mPos; // _1C
f32 mSpeed; // _24
f32 mTimer; // _28
bool mSelected; // _2C
J2DPane* mPane1; // _30
J2DPane* mPane2; // _34
efx2d::T2DCursor mCursor; // _00
Vector2f mPos; // _1C
f32 mSpeed; // _24
f32 mTimer; // _28
bool mSelected; // _2C
J2DPane* mPane1; // _30
J2DPane* mPane2; // _34
};
} // namespace ebi

View File

@ -120,7 +120,7 @@ struct TBoidParam : public Parameters {
: Parameters(nullptr, "TTitleStateParameters")
, mTurnMag(this, 'tsp0', "向き変えベクトルの大きさ", 0.2f, 0.0f, 10.0f)
, mMaxTurnVec(this, 'tsp1', "向き変えベクトル最大", 0.4f, 0.0f, 10.0f)
, mMaxWalkSpeed(this, 'tsp2', "向き変えベクトル最大", 2.0f, 0.0f, 10.0f)
, mMaxWalkSpeed(this, 'tsp2', "最大歩く速度", 2.0f, 0.0f, 10.0f)
, mBoidColl(this, 'tsp5', "BOID衝突回避係数", 800.0f, 0.0f, 10000.0f)
, mBoidSpeedMatch(this, 'tsp6', "BOID速度合わせ係数", 4.5f, 0.0f, 100.0f)
, mBoidCenter(this, 'tsp7', "BOID中心集合係数", 0.005f, 0.0f, 100.0f)
@ -154,8 +154,7 @@ Size = 1712 Actual Alignment = 1
struct TBoidParamMgr : public CNode {
// TBoidParamMgr();
inline TBoidParamMgr()
: CNode("TBoidParamMgr") {};
TBoidParamMgr();
virtual ~TBoidParamMgr() { } // _08 (weak)
// _00 = VTBL

View File

@ -67,12 +67,12 @@ struct TTitleCameraMgr : public LookAtCamera {
Parms()
: Parameters(nullptr, "TTitleCameraParameters")
, mYOffset(this, 'cam1', "カメラ距離ロゴ", 15.0f, -1000.0f, 10000.0f) // "camera distance logo"
, mFOVY(this, 'cam2', "Fovy", 35.0f, 1.0f, 180.0f)
, mFOVY(this, 'cam4', "Fovy", 35.0f, 1.0f, 180.0f)
{
}
Parm<f32> mYOffset; // _1A4
Parm<f32> mFOVY; // _1CC
Parm<f32> mYOffset; // _1A4, cam1
Parm<f32> mFOVY; // _1CC, cam4
};
virtual ~TTitleCameraMgr() { } // _08 (weak)
@ -124,7 +124,7 @@ struct TTitleFogMgr : public FogMgr {
};
struct TTitleLightSetting {
TTitleLightSetting();
TTitleLightSetting() { }
struct TAmbParms : public Parameters {
inline TAmbParms()
@ -210,6 +210,7 @@ struct TTitleLightMgr : public LightMgr {
: LightMgr("LightMgr")
, mLightObjMain("メインライト", GX_LIGHT0, TYPE_2, JUtility::TColor(255, 255, 255, 255))
, mLightObjSpec("スペキュラライト", GX_LIGHT7, TYPE_4, JUtility::TColor(255, 255, 255, 255))
, mSetting()
{
registLightObj(&mLightObjMain);
registLightObj(&mLightObjSpec);

View File

@ -19,14 +19,26 @@ struct ArgFilecopy : public Arg {
};
struct T2DFilecopyBase : public TForever {
virtual bool create(Arg*); // _08
virtual ~T2DFilecopyBase(); // _34 (weak)
inline T2DFilecopyBase(u16 effectID)
: TForever(effectID)
{
_04 = 1;
}
virtual bool create(Arg*); // _08
virtual ~T2DFilecopyBase() { } // _34 (weak)
// _00 = VTBL
// _00-_14 = TForever
};
struct T2DFilecopy : public T2DFilecopyBase {
inline T2DFilecopy()
: T2DFilecopyBase(0)
{
_04 = 1;
}
virtual ~T2DFilecopy(); // _34 (weak)
// _00 = VTBL
@ -34,6 +46,12 @@ struct T2DFilecopy : public T2DFilecopyBase {
};
struct T2DFilecopyM : public T2DFilecopyBase {
inline T2DFilecopyM()
: T2DFilecopyBase(1)
{
_04 = 1;
}
virtual ~T2DFilecopyM(); // _34 (weak)
// _00 = VTBL
@ -67,6 +85,12 @@ struct T2DFiledeleteM : public TSimple1 {
};
struct T2DFiledeleting : public TForever {
inline T2DFiledeleting()
: TForever(10)
{
_04 = 1;
}
virtual ~T2DFiledeleting(); // _34 (weak)
// _00 = VTBL
@ -74,6 +98,12 @@ struct T2DFiledeleting : public TForever {
};
struct T2DFiledeletingM : public TForever {
inline T2DFiledeletingM()
: TForever(11)
{
_04 = 1;
}
virtual ~T2DFiledeletingM(); // _34 (weak)
// _00 = VTBL
@ -81,6 +111,12 @@ struct T2DFiledeletingM : public TForever {
};
struct T2DFilesel : public TChasePos {
inline T2DFilesel(Vector2f* pos)
: TChasePos(6, pos)
{
_04 = 1;
}
virtual ~T2DFilesel(); // _34 (weak)
// _00 = VTBL
@ -88,6 +124,12 @@ struct T2DFilesel : public TChasePos {
};
struct T2DFileselM : public TChasePos {
inline T2DFileselM(Vector2f* pos)
: TChasePos(7, pos)
{
_04 = 1;
}
virtual ~T2DFileselM(); // _34 (weak)
// _00 = VTBL

View File

@ -711,12 +711,17 @@ struct DispMemberVs : public DispMemberBase {
// size 0x28
struct DispMemberWorldMapInfoWin0 : public DispMemberBase {
inline DispMemberWorldMapInfoWin0()
: mResult(0)
, mMsgIDYes('4710_00')
, mMsgIDNo('4711_00')
, _20(180)
, mStartSelection(0)
{
mResult = 0;
mMsgIDYes = '4710_00'; // "Continue"
mMsgIDNo = '4711_00'; // "Return to Title Screen"
_20 = 180;
mStartSelection = 0;
// mResult = 0;
// mMsgIDYes = '4710_00'; // "Continue"
// mMsgIDNo = '4711_00'; // "Return to Title Screen"
// _20 = 180;
// mStartSelection = 0;
}
virtual u32 getSize() { return sizeof(DispMemberWorldMapInfoWin0); } // _08 (weak)

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,6 @@
#include "Vector2.h"
#include "ebi/Geometry.h"
#include "sysMath.h"
#include "types.h"
/*
Generated from dpostproc
.section .sdata2, "a" # 0x80516360 - 0x80520E40
.global lbl_8051F9F0
lbl_8051F9F0:
.4byte 0x00000000
.global lbl_8051F9F4
lbl_8051F9F4:
.float 1.0
*/
namespace ebi {
@ -66,7 +53,7 @@ void EGEBox2f::in(Vector2f*)
* Address: 803CA04C
* Size: 000070
*/
bool EGEBox2f::isIn(Vector2f& point, float pointSize)
bool EGEBox2f::isIn(Vector2f& point, f32 pointSize)
{
if (point.x - pointSize < i.x) {
return false;
@ -86,7 +73,7 @@ bool EGEBox2f::isIn(Vector2f& point, float pointSize)
* Address: 803CA0BC
* Size: 000068
*/
bool EGEBox2f::isOut(Vector2f& point, float pointSize)
bool EGEBox2f::isOut(Vector2f& point, f32 pointSize)
{
if (point.x + pointSize < i.x) {
return true;
@ -108,9 +95,9 @@ bool EGEBox2f::isOut(Vector2f& point, float pointSize)
* Address: 803CA124
* Size: 000064
*/
void EGEBox2f::in(Vector2f* point, float margin)
void EGEBox2f::in(Vector2f* point, f32 margin)
{
float x = i.x + margin;
f32 x = i.x + margin;
if (point->x < x) {
point->x = x;
} else {
@ -119,7 +106,7 @@ void EGEBox2f::in(Vector2f* point, float margin)
point->x = x;
}
}
float y = i.y + margin;
f32 y = i.y + margin;
if (point->y < y) {
point->y = y;
} else {
@ -150,15 +137,13 @@ bool ebi::EGECircle2f::isOut(Vector2f& point)
*/
bool EGECircle2f::in(Vector2f* point)
{
Vector2f di = Vector2f(point->x - mCenter.x, point->y - mCenter.y);
if (_lenVec2D(di) < mRadius) {
f32 fVar1 = _lenVec2D(di);
if (fVar1 != 0.0f) {
di.x *= (1.0f / fVar1);
di.y *= (1.0f / fVar1);
}
point->x = mCenter.x - di.x * mRadius;
point->y = mCenter.y - di.y * mRadius;
Vector2f di = mCenter - *point;
f32 length = di.length();
if (mRadius < length) {
di.normalise();
di *= mRadius;
*point = mCenter - di;
return true;
}
return false;
@ -232,17 +217,13 @@ lbl_803CA294:
*/
bool EGECircle2f::out(Vector2f* point)
{
Vector2f di = Vector2f(point->x - mCenter.x, point->y - mCenter.y);
if (_lenVec2D(di) <= mRadius) {
Vector2f di = mCenter - *point;
if (mRadius <= di.length()) {
return false;
}
f32 fVar1 = _lenVec2D(di);
if (fVar1 != 0.0f) {
di.x *= (1.0f / fVar1);
di.y *= (1.0f / fVar1);
}
point->x = mCenter.x - di.x * mRadius;
point->y = mCenter.y - di.y * mRadius;
di.normalise();
di *= mRadius;
*point = mCenter - di;
return true;
/*
lfs f7, 4(r3)

View File

@ -11,16 +11,15 @@ static const char name[] = "ebiMainTitleMgr";
namespace ebi {
const f32 TMainTitleMgr::kFadeOutTime = 1.0f;
/*
* --INFO--
* Address: 803EA170
* Size: 0003B4
*/
TMainTitleMgr::TMainTitleMgr()
: _1634(0)
, _1635(0)
, _1636(0)
, _1637(-1)
: _1634(0, 0, 0, -1)
, mAlpha(-1)
, mDrawState(0)
, mOpenMenuCounter(0)
@ -327,357 +326,6 @@ void TMainTitleMgr::update()
if (mDrawState && mOpenMenuCounter) {
mOpenMenuCounter--;
}
/*
stwu r1, -0x30(r1)
mflr r0
stw r0, 0x34(r1)
li r0, 0
stw r31, 0x2c(r1)
mr r31, r3
stw r30, 0x28(r1)
stb r0, 0x1654(r3)
lwz r0, 0x1650(r3)
cmpwi r0, 3
beq lbl_803EAC48
bge lbl_803EAA10
cmpwi r0, 1
beq lbl_803EAA1C
bge lbl_803EAA50
b lbl_803EADF0
lbl_803EAA10:
cmpwi r0, 5
bge lbl_803EADF0
b lbl_803EADC8
lbl_803EAA1C:
lwz r3, titleMgr__Q23ebi5title@sda21(r13)
bl isPressStart__Q33ebi5title9TTitleMgrFv
clrlwi. r0, r3, 0x18
beq lbl_803EADF0
addi r3, r31, 0x137c
li r4, 0
lwz r12, 0x137c(r31)
lwz r12, 0xc(r12)
mtctr r12
bctrl
li r0, 2
stw r0, 0x1650(r31)
b lbl_803EADF0
lbl_803EAA50:
lwz r3, titleMgr__Q23ebi5title@sda21(r13)
bl isControllerOK__Q33ebi5title9TTitleMgrFv
clrlwi. r0, r3, 0x18
beq lbl_803EAA6C
li r0, 1
stb r0, 0x138c(r31)
b lbl_803EAA74
lbl_803EAA6C:
li r0, 0
stb r0, 0x138c(r31)
lbl_803EAA74:
lis r3, gGameConfig__4Game@ha
addi r30, r3, gGameConfig__4Game@l
lwz r0, 0x238(r30)
cmpwi r0, 0
beq lbl_803EAAA4
lwz r3, 0x1648(r31)
lwz r0, 0x1c(r3)
rlwinm. r0, r0, 0, 0x16, 0x16
beq lbl_803EAAA4
lwz r3, sys@sda21(r13)
li r4, 0
bl resetOn__6SystemFb
lbl_803EAAA4:
addi r3, r31, 0x137c
lwz r12, 0x137c(r31)
lwz r12, 0x20(r12)
mtctr r12
bctrl
clrlwi. r0, r3, 0x18
beq lbl_803EADF0
lis r3, gGameConfig__4Game@ha
addi r3, r3, gGameConfig__4Game@l
lwz r0, 0x228(r3)
cmpwi r0, 0
beq lbl_803EAB2C
li r0, 1
lfs f1, lbl_8051FE1C@sda21(r2)
stw r0, 0x1658(r31)
stb r0, 0x1654(r31)
lwz r3, sys@sda21(r13)
lfs f0, 0x54(r3)
fdivs f1, f1, f0
bl __cvt_fp2unsigned
stw r3, 0x165c(r31)
lfs f1, lbl_8051FE1C@sda21(r2)
stw r3, 0x1660(r31)
lwz r3, sys@sda21(r13)
lfs f0, 0x54(r3)
fdivs f1, f1, f0
bl __cvt_fp2unsigned
stw r3, 0x1640(r31)
li r4, 2
li r0, 4
stw r3, 0x1644(r31)
stw r4, 0x163c(r31)
stw r0, 0x1650(r31)
b lbl_803EADF0
lbl_803EAB2C:
lwz r0, 0x238(r30)
cmpwi r0, 0
beq lbl_803EAB90
li r0, 1
lfs f1, lbl_8051FE1C@sda21(r2)
stw r0, 0x1658(r31)
stb r0, 0x1654(r31)
lwz r3, sys@sda21(r13)
lfs f0, 0x54(r3)
fdivs f1, f1, f0
bl __cvt_fp2unsigned
stw r3, 0x165c(r31)
lfs f1, lbl_8051FE1C@sda21(r2)
stw r3, 0x1660(r31)
lwz r3, sys@sda21(r13)
lfs f0, 0x54(r3)
fdivs f1, f1, f0
bl __cvt_fp2unsigned
stw r3, 0x1640(r31)
li r4, 2
li r0, 4
stw r3, 0x1644(r31)
stw r4, 0x163c(r31)
stw r0, 0x1650(r31)
b lbl_803EADF0
lbl_803EAB90:
lwz r0, 0x1c8(r3)
cmpwi r0, 0
beq lbl_803EABE4
lis r3, __vt__Q33ebi6Screen7ArgOpen@ha
li r0, 1
addi r4, r3, __vt__Q33ebi6Screen7ArgOpen@l
lis r3, __vt__Q33ebi6Screen16ArgOpenTitleMenu@ha
stw r4, 0x1c(r1)
addi r5, r3, __vt__Q33ebi6Screen16ArgOpenTitleMenu@l
mr r3, r31
addi r4, r1, 0x1c
stw r5, 0x1c(r1)
stw r0, 0x20(r1)
stw r0, 0x24(r1)
lwz r12, 0(r31)
lwz r12, 0xc(r12)
mtctr r12
bctrl
li r0, 3
stw r0, 0x1650(r31)
b lbl_803EADF0
lbl_803EABE4:
lwz r3, sys@sda21(r13)
bl getPlayCommonData__6SystemFv
bl isChallengeGamePlayable__Q24Game14PlayCommonDataFv
clrlwi r6, r3, 0x18
lis r4, __vt__Q33ebi6Screen7ArgOpen@ha
neg r5, r6
lis r3, __vt__Q33ebi6Screen16ArgOpenTitleMenu@ha
addi r4, r4, __vt__Q33ebi6Screen7ArgOpen@l
li r0, 0
or r5, r5, r6
stw r4, 0x10(r1)
srwi r5, r5, 0x1f
addi r3, r3, __vt__Q33ebi6Screen16ArgOpenTitleMenu@l
stw r3, 0x10(r1)
mr r3, r31
addi r4, r1, 0x10
stw r5, 0x14(r1)
stw r0, 0x18(r1)
lwz r12, 0(r31)
lwz r12, 0xc(r12)
mtctr r12
bctrl
li r0, 3
stw r0, 0x1650(r31)
b lbl_803EADF0
lbl_803EAC48:
bl isDecide__Q33ebi6Screen10TTitleMenuFv
clrlwi. r0, r3, 0x18
beq lbl_803EAD5C
lbz r0, 0x1655(r31)
cmplwi r0, 0
bne lbl_803EAD5C
li r3, 1
stb r3, 0x1655(r31)
lwz r0, 0x3c(r31)
cmpwi r0, 3
beq lbl_803EACC0
bge lbl_803EAC90
cmpwi r0, 1
beq lbl_803EACAC
bge lbl_803EACB8
cmpwi r0, 0
bge lbl_803EACA0
b lbl_803EACE0
lbl_803EAC90:
cmpwi r0, 5
beq lbl_803EACD8
bge lbl_803EACE0
b lbl_803EACCC
lbl_803EACA0:
li r0, 0
stw r0, 0x1658(r31)
b lbl_803EACE0
lbl_803EACAC:
li r0, 2
stw r0, 0x1658(r31)
b lbl_803EACE0
lbl_803EACB8:
stw r3, 0x1658(r31)
b lbl_803EACE0
lbl_803EACC0:
li r0, 3
stw r0, 0x1658(r31)
b lbl_803EACE0
lbl_803EACCC:
li r0, 4
stw r0, 0x1658(r31)
b lbl_803EACE0
lbl_803EACD8:
li r0, 5
stw r0, 0x1658(r31)
lbl_803EACE0:
lwz r3, titleMgr__Q23ebi5title@sda21(r13)
bl breakup__Q33ebi5title9TTitleMgrFv
lis r3, __vt__Q33ebi6Screen8ArgClose@ha
lfs f0, lbl_8051FE1C@sda21(r2)
addi r0, r3, __vt__Q33ebi6Screen8ArgClose@l
lis r3, __vt__Q33ebi6Screen14ArgCloseTMBack@ha
stw r0, 8(r1)
addi r0, r3, __vt__Q33ebi6Screen14ArgCloseTMBack@l
addi r3, r31, 0x160c
addi r4, r1, 8
stw r0, 8(r1)
stfs f0, 0xc(r1)
lwz r12, 0x160c(r31)
lwz r12, 0x10(r12)
mtctr r12
bctrl
mr r3, r31
bl isCancel__Q33ebi6Screen10TTitleMenuFv
clrlwi. r0, r3, 0x18
bne lbl_803EAD5C
lwz r3, sys@sda21(r13)
lfs f1, lbl_8051FE1C@sda21(r2)
lfs f0, 0x54(r3)
fdivs f1, f1, f0
bl __cvt_fp2unsigned
stw r3, 0x1640(r31)
li r4, 2
li r0, 1
stw r3, 0x1644(r31)
stw r4, 0x163c(r31)
stb r0, 0x1654(r31)
lbl_803EAD5C:
mr r3, r31
lwz r12, 0(r31)
lwz r12, 0x20(r12)
mtctr r12
bctrl
mr r30, r3
mr r3, r31
bl isCancel__Q33ebi6Screen10TTitleMenuFv
clrlwi. r0, r30, 0x18
beq lbl_803EADF0
clrlwi. r0, r3, 0x18
beq lbl_803EADB0
addi r3, r31, 0x137c
li r4, 0
lwz r12, 0x137c(r31)
lwz r12, 0xc(r12)
mtctr r12
bctrl
li r0, 2
stw r0, 0x1650(r31)
b lbl_803EADF0
lbl_803EADB0:
lwz r0, 0x1640(r31)
cmplwi r0, 0
bne lbl_803EADF0
li r0, 0
stw r0, 0x1650(r31)
b lbl_803EADF0
lbl_803EADC8:
lwz r3, 0x165c(r31)
cmplwi r3, 0
beq lbl_803EADDC
addi r0, r3, -1
stw r0, 0x165c(r31)
lbl_803EADDC:
lwz r0, 0x165c(r31)
cmplwi r0, 0
bne lbl_803EADF0
li r0, 0
stw r0, 0x1650(r31)
lbl_803EADF0:
mr r3, r31
lwz r12, 0(r31)
lwz r12, 0x18(r12)
mtctr r12
bctrl
addi r3, r31, 0x137c
lwz r12, 0x137c(r31)
lwz r12, 0x18(r12)
mtctr r12
bctrl
addi r3, r31, 0x160c
lwz r12, 0x160c(r31)
lwz r12, 0x18(r12)
mtctr r12
bctrl
addi r3, r31, 0x1624
lwz r12, 0x1624(r31)
lwz r12, 0x18(r12)
mtctr r12
bctrl
lwz r3, titleMgr__Q23ebi5title@sda21(r13)
bl update__Q33ebi5title9TTitleMgrFv
lwz r0, 0x163c(r31)
cmpwi r0, 0
beq lbl_803EAE68
lwz r3, 0x1640(r31)
cmplwi r3, 0
beq lbl_803EAE68
addi r0, r3, -1
stw r0, 0x1640(r31)
lbl_803EAE68:
lwz r0, 0x34(r1)
lwz r31, 0x2c(r1)
lwz r30, 0x28(r1)
mtlr r0
addi r1, r1, 0x30
blr
*/
}
/*
@ -697,33 +345,39 @@ void TMainTitleMgr::draw()
if (mDrawState != 0) {
J2DPerspGraph* graf = &sys->mGfx->mPerspGraph;
graf->setPort();
JUtility::TColor color(-1);
JUtility::TColor color(_1634);
switch (mDrawState) {
f32 calc;
case 1:
u32 count = mOpenMenuCounterMax;
if (count) {
calc = (f32)mOpenMenuCounter / count;
case 1: {
u32 count1 = mOpenMenuCounterMax;
f32 calc1;
if (count1) {
calc1 = (f32)mOpenMenuCounter / count1;
} else {
calc = 0.0f;
calc1 = 0.0f;
}
color.a = mAlpha * calc;
break;
case 2:
count = mOpenMenuCounterMax;
if (count) {
calc = (f32)mOpenMenuCounter / count;
} else {
calc = 0.0f;
}
color.a = mAlpha * (1.0f - calc);
color.a = calcAlpha(calc1);
break;
}
case 2: {
u32 count2 = mOpenMenuCounterMax;
f32 calc2;
if (count2) {
calc2 = (f32)mOpenMenuCounter / count2;
} else {
calc2 = 0.0f;
}
f32 factor = 1.0f;
factor -= calc2;
color.a = calcAlpha(factor);
break;
}
}
graf->setColor(color);
u32 y = System::getRenderModeObj()->efbHeight;
u32 x = System::getRenderModeObj()->fbWidth;
f32 zero = 0.0f;
JGeometry::TBox2f box(0.0f, zero + x, 0.0f, zero + y);
JGeometry::TBox2f box(0.0f, 0.0f, zero + x, zero + y);
graf->fillBox(box);
}
}

View File

@ -4,10 +4,9 @@
#include "PSSystem/PSSystemIF.h"
#include "og/newScreen/ogUtil.h"
static const char name[] = "ebiOmakeMgr.cpp";
static void _Print(char* format, ...) { OSReport(format, __FILE__); }
namespace ebi {
namespace Omake {
/*
@ -33,6 +32,7 @@ void FSMStateMachine::init(TMgr* mgr)
void FSMState_OmakeScreen::do_init(TMgr* mgr, Game::StateArg*)
{
if (!mgr->mStateMachine.mCurrentID) {
Screen::ArgOpenOmake arg(sys->getPlayCommonData()->_00 & 1, sys->getPlayCommonData()->_00 >> 1 & 1,
sys->getPlayCommonData()->isPerfectChallenge());
arg._08 = -1;
@ -290,7 +290,7 @@ void TMgr::update()
mOmakeGame.update();
gCardEMgr->update();
if (!close && mOmake.isCloseScreen()) {
_890 = true;
mIsFinished = true;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -10,9 +10,11 @@ static const char idk[] = "\0\0\0\0\0\0\0\0\0";
static const char name[] = "ebiP2Title";
namespace ebi {
namespace title {
TTitleMgr* titleMgr;
TTitleMgr* TTitleMgr::_instance;
/*
* --INFO--
* Address: 803BCD18
@ -28,6 +30,7 @@ TTitleMgr::TTitleMgr()
, mCounterControlMax(0)
, mCounterPressStart(0)
, mCounterPressStartMax(0)
, mLightMgr()
{
_F54 = true;
mState = 0;
@ -132,7 +135,7 @@ void TTitleMgr::init()
mCameraMgr.mLookAtPosition = mCameraMgr.mPosition;
mCameraMgr.mLookAtPosition.y -= 1.0f;
mCameraMgr.mViewAngle = mCameraMgr.mParms.mFOVY.mValue;
mCameraMgr.updateMatrix();
mCameraMgr.LookAtCamera::updateMatrix();
Graphics* gfx = sys->mGfx;
gfx->allocateViewports(1);
@ -398,7 +401,7 @@ bool TTitleMgr::inViewField(TObjBase* obj)
if (obj->isCalc()) {
EGEBox2f bounds(mTitleParms.mBoundsMinX.mValue, mTitleParms.mBoundsMinY.mValue, mTitleParms.mBoundsMaxX.mValue,
mTitleParms.mBoundsMaxY.mValue);
return bounds.in(&obj->mPos, obj->mParms[4]);
bounds.in(&obj->mPos, obj->mParms[4]);
}
}

View File

@ -5,388 +5,21 @@
#include "nans.h"
#include "Dolphin/rand.h"
/*
Generated from dpostproc
.section .ctors, "wa" # 0x80472F00 - 0x804732C0
.4byte __sinit_ebiP2TitlePikmin_cpp
.section .rodata # 0x804732E0 - 0x8049E220
.global lbl_80497158
lbl_80497158:
.4byte 0x00000000
.4byte 0x00000000
.4byte 0x00000000
.4byte 0x65626950
.4byte 0x32546974
.4byte 0x6C655069
.4byte 0x6B6D696E
.4byte 0x00000000
.global lbl_80497178
lbl_80497178:
.4byte 0x54426F69
.4byte 0x64506172
.4byte 0x616D4D67
.4byte 0x72000000
.4byte 0x54546974
.4byte 0x6C655374
.4byte 0x61746550
.4byte 0x6172616D
.4byte 0x65746572
.4byte 0x73000000
.4byte 0x8CFC82AB
.4byte 0x95CF82A6
.4byte 0x8378834E
.4byte 0x8367838B
.4byte 0x82CC91E5
.4byte 0x82AB82B3
.4byte 0x00000000
.4byte 0x8CFC82AB
.4byte 0x95CF82A6
.4byte 0x8378834E
.4byte 0x8367838B
.4byte 0x8DC591E5
.4byte 0x00000000
.4byte 0x8DC591E5
.4byte 0x95E082AD
.4byte 0x91AC9378
.4byte 0x00000000
.4byte 0x424F4944
.4byte 0x8FD593CB
.4byte 0x89F194F0
.4byte 0x8C579094
.4byte 0x00000000
.4byte 0x424F4944
.4byte 0x91AC9378
.4byte 0x8D8782ED
.4byte 0x82B98C57
.4byte 0x90940000
.4byte 0x424F4944
.4byte 0x92869053
.4byte 0x8F578D87
.4byte 0x8C579094
.4byte 0x00000000
.4byte 0x424F4944
.4byte 0x8CC291CC
.4byte 0x82CC8BDF
.4byte 0x8F8A8354
.4byte 0x815B8360
.4byte 0x94BC8C61
.4byte 0x00000000
.4byte 0x8C5182CC
.4byte 0x92869053
.4byte 0x82C68CC2
.4byte 0x91CC82CC
.4byte 0x96DA9349
.4byte 0x926E82CC
.4byte 0x8A848D87
.4byte 0x00000000
.4byte 0x70696B6D
.4byte 0x696E2F74
.4byte 0x69746C65
.4byte 0x5F726564
.4byte 0x5F70696B
.4byte 0x692E626D
.4byte 0x64000000
.global lbl_80497278
lbl_80497278:
.4byte 0x65626950
.4byte 0x32546974
.4byte 0x6C655069
.4byte 0x6B6D696E
.4byte 0x2E637070
.4byte 0x00000000
.global lbl_80497290
lbl_80497290:
.asciz "P2Assert"
.skip 3
.4byte 0x70696B6D
.4byte 0x696E2F74
.4byte 0x69746C65
.4byte 0x5F79656C
.4byte 0x6C6F775F
.4byte 0x70696B69
.4byte 0x2E626D64
.4byte 0x00000000
.4byte 0x70696B6D
.4byte 0x696E2F74
.4byte 0x69746C65
.4byte 0x5F626C75
.4byte 0x655F7069
.4byte 0x6B692E62
.4byte 0x6D640000
.4byte 0x70696B6D
.4byte 0x696E2F74
.4byte 0x69746C65
.4byte 0x5F626C61
.4byte 0x636B5F70
.4byte 0x696B692E
.4byte 0x626D6400
.4byte 0x70696B6D
.4byte 0x696E2F74
.4byte 0x69746C65
.4byte 0x5F776869
.4byte 0x74655F70
.4byte 0x696B692E
.4byte 0x626D6400
.4byte 0x70696B6D
.4byte 0x696E2F77
.4byte 0x6169742E
.4byte 0x62636B00
.4byte 0x70696B6D
.4byte 0x696E2F77
.4byte 0x6176652E
.4byte 0x62636B00
.global lbl_80497330
lbl_80497330:
.4byte 0x50696B6D
.4byte 0x696E4D67
.4byte 0x72000000
.4byte 0x8A438A4F
.4byte 0x94C58358
.4byte 0x8350815B
.4byte 0x838B0000
.4byte 0x93FA967B
.4byte 0x8CEA94C5
.4byte 0x83588350
.4byte 0x815B838B
.4byte 0x00000000
.4byte 0x8352838A
.4byte 0x83578387
.4byte 0x839394BC
.4byte 0x8C610000
.4byte 0x92E28E7E
.4byte 0x8B9797A3
.4byte 0x00000000
.4byte 0x8EFB91A9
.4byte 0x8B9797A3
.4byte 0x00000000
.4byte 0x896582B8
.4byte 0x82E782B5
.4byte 0x58000000
.4byte 0x896582B8
.4byte 0x82E782B5
.4byte 0x5A000000
.4byte 0x8341836A
.4byte 0x83818358
.4byte 0x8373815B
.4byte 0x836895E0
.4byte 0x82AD8169
.4byte 0x91AC9378
.4byte 0x94E497E1
.4byte 0x816A0000
.4byte 0x8341836A
.4byte 0x83818358
.4byte 0x8373815B
.4byte 0x83689597
.4byte 0x00000000
.4byte 0x8341836A
.4byte 0x83818358
.4byte 0x8373815B
.4byte 0x83685741
.4byte 0x49548DC5
.4byte 0x91E50000
.4byte 0x8341836A
.4byte 0x83818358
.4byte 0x8373815B
.4byte 0x83685741
.4byte 0x49548DC5
.4byte 0x8FAC0000
.4byte 0x8352834B
.4byte 0x836C8D44
.4byte 0x82AB8D44
.4byte 0x82AB8C57
.4byte 0x90940000
.4byte 0x83608383
.4byte 0x83628373
.4byte 0x815B82A9
.4byte 0x82E793A6
.4byte 0x82B082E9
.4byte 0x8C579094
.4byte 0x00000000
.4byte 0x92C782A2
.4byte 0x82A982AF
.4byte 0x82A082AB
.4byte 0x82E782DF
.4byte 0x94BC8C61
.4byte 0x00000000
.4byte 0x9597835E
.4byte 0x8343837D
.4byte 0x815B2895
.4byte 0x62290000
.4byte 0x8B9797A3
.4byte 0x94E497E1
.4byte 0x91AC9378
.4byte 0x8C579094
.4byte 0x00000000
.global lbl_80497470
lbl_80497470:
.4byte 0x70617261
.4byte 0x6D2F7061
.4byte 0x72616D5F
.4byte 0x70696B6D
.4byte 0x696E2E74
.4byte 0x78740000
.global lbl_80497488
lbl_80497488:
.4byte 0x70617261
.4byte 0x6D2F7061
.4byte 0x72616D5F
.4byte 0x626F6964
.4byte 0x2E747874
.4byte 0x00000000
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.global lbl_804E9DF0
lbl_804E9DF0:
.4byte 0x00000000
.4byte 0x00000000
.4byte 0x00000000
.global __vt__Q43ebi5title6Pikmin5TUnit
__vt__Q43ebi5title6Pikmin5TUnit:
.4byte 0
.4byte 0
.4byte getCreatureType__Q43ebi5title6Pikmin5TUnitFv
.4byte isCalc__Q43ebi5title6Pikmin5TUnitFv
.4byte 0
.section .sbss # 0x80514D80 - 0x80516360
.global lbl_805160E8
lbl_805160E8:
.skip 0x4
.global lbl_805160EC
lbl_805160EC:
.skip 0x4
.global boidCalcTimer$4026
boidCalcTimer$4026:
.skip 0x4
.global init$4027
init$4027:
.skip 0x4
.section .sdata2, "a" # 0x80516360 - 0x80520E40
.global lbl_8051FC60
lbl_8051FC60:
.4byte 0x00000000
.global lbl_8051FC64
lbl_8051FC64:
.4byte 0x3E4CCCCD
.global lbl_8051FC68
lbl_8051FC68:
.4byte 0x41200000
.global lbl_8051FC6C
lbl_8051FC6C:
.4byte 0x3ECCCCCD
.global lbl_8051FC70
lbl_8051FC70:
.4byte 0x40000000
.global lbl_8051FC74
lbl_8051FC74:
.4byte 0x44480000
.global lbl_8051FC78
lbl_8051FC78:
.4byte 0x461C4000
.global lbl_8051FC7C
lbl_8051FC7C:
.4byte 0x40900000
.global lbl_8051FC80
lbl_8051FC80:
.4byte 0x42C80000
.global lbl_8051FC84
lbl_8051FC84:
.4byte 0x3BA3D70A
.global lbl_8051FC88
lbl_8051FC88:
.4byte 0x41F00000
.global lbl_8051FC8C
lbl_8051FC8C:
.4byte 0x43FA0000
.global lbl_8051FC90
lbl_8051FC90:
.float 1.0
.4byte 0x00000000
.global lbl_8051FC98
lbl_8051FC98:
.4byte 0x43300000
.4byte 0x00000000
.global lbl_8051FCA0
lbl_8051FCA0:
.4byte 0xBF800000
.global lbl_8051FCA4
lbl_8051FCA4:
.4byte 0x5061726D
.4byte 0x73000000
.global lbl_8051FCAC
lbl_8051FCAC:
.4byte 0x4019999A
.global lbl_8051FCB0
lbl_8051FCB0:
.4byte 0x40266666
.global lbl_8051FCB4
lbl_8051FCB4:
.4byte 0x40A00000
.global lbl_8051FCB8
lbl_8051FCB8:
.4byte 0x41A00000
.global lbl_8051FCBC
lbl_8051FCBC:
.4byte 0x42480000
.global lbl_8051FCC0
lbl_8051FCC0:
.float 0.5
.global lbl_8051FCC4
lbl_8051FCC4:
.4byte 0xC1200000
.global lbl_8051FCC8
lbl_8051FCC8:
.4byte 0xC0A00000
.global lbl_8051FCCC
lbl_8051FCCC:
.4byte 0x43C80000
.global lbl_8051FCD0
lbl_8051FCD0:
.4byte 0x40C00000
.4byte 0x00000000
.global lbl_8051FCD8
lbl_8051FCD8:
.4byte 0x43300000
.4byte 0x80000000
.global lbl_8051FCE0
lbl_8051FCE0:
.4byte 0x46FFFE00
.global lbl_8051FCE4
lbl_8051FCE4:
.4byte 0x3F4CCCCD
.global lbl_8051FCE8
lbl_8051FCE8:
.4byte 0x3ECCCCCE
.global lbl_8051FCEC
lbl_8051FCEC:
.4byte 0x42700000
.global lbl_8051FCF0
lbl_8051FCF0:
.float 0.1
.global lbl_8051FCF4
lbl_8051FCF4:
.4byte 0xC0000000
.global lbl_8051FCF8
lbl_8051FCF8:
.4byte 0x73686164
.4byte 0x6F773100
*/
namespace ebi {
namespace title {
static const int unusedArray[] = { 0, 0, 0 };
static const char unusedPikminTitleName[] = "ebiP2TitlePikmin";
/*
* --INFO--
* Address: ........
* Size: 0000D4
*/
/* Pikmin::TBoidParamMgr::TBoidParamMgr()
Pikmin::TBoidParamMgr::TBoidParamMgr()
: CNode("TBoidParamMgr")
{
// UNUSED FUNCTION
} */
}
/*
* --INFO--
@ -428,19 +61,19 @@ void Pikmin::TAnimator::setArchive(JKRArchive* arc)
void* file;
file = arc->getResource("pikmin/title_red_piki.bmd");
P2ASSERTLINE(0xb0, file);
pModelDataRed = J3DModelLoaderDataBase::load(file, 0x40200000);
pModelDataRed = J3DModelLoaderDataBase::load(file, 0x20100000);
file = arc->getResource("pikmin/title_yellow_piki.bmd");
P2ASSERTLINE(0xba, file);
pModelDataYellow = J3DModelLoaderDataBase::load(file, 0x40200000);
pModelDataYellow = J3DModelLoaderDataBase::load(file, 0x20100000);
file = arc->getResource("pikmin/title_blue_piki.bmd");
P2ASSERTLINE(0xc4, file);
pModelDataBlue = J3DModelLoaderDataBase::load(file, 0x40200000);
pModelDataBlue = J3DModelLoaderDataBase::load(file, 0x20100000);
file = arc->getResource("pikmin/title_black_piki.bmd");
P2ASSERTLINE(0xce, file);
pModelDataPurple = J3DModelLoaderDataBase::load(file, 0x40200000);
pModelDataPurple = J3DModelLoaderDataBase::load(file, 0x20100000);
file = arc->getResource("pikmin/title_white_piki.bmd");
P2ASSERTLINE(0xd8, file);
pModelDataWhite = J3DModelLoaderDataBase::load(file, 0x40200000);
pModelDataWhite = J3DModelLoaderDataBase::load(file, 0x20100000);
file = arc->getResource("pikmin/wait.bck");
P2ASSERTLINE(0xe4, file);
_14 = (J3DAnmTransform*)J3DAnmLoaderDataBase::load(file);
@ -448,22 +81,13 @@ void Pikmin::TAnimator::setArchive(JKRArchive* arc)
P2ASSERTLINE(0xe9, file);
_18 = (J3DAnmTransform*)J3DAnmLoaderDataBase::load(file);
_1C = J3DNewMtxCalcAnm(pModelDataRed->mJointTree.mFlags & 0xf, _14);
_20 = J3DUNewMtxCalcAnm(pModelDataRed->mJointTree.mFlags & 0xf, _14, _18, nullptr, nullptr, 0);
_20 = J3DUNewMtxCalcAnm(pModelDataRed->mJointTree.mFlags & 0xf, _14, _18, nullptr, nullptr, (J3DMtxCalcFlag)0);
J3DModelData* model = pModelDataBlue;
model->newSharedDisplayList(0x40000);
model->makeSharedDL();
model = pModelDataRed;
model->newSharedDisplayList(0x40000);
model->makeSharedDL();
model = pModelDataYellow;
model->newSharedDisplayList(0x40000);
model->makeSharedDL();
model = pModelDataPurple;
model->newSharedDisplayList(0x40000);
model->makeSharedDL();
model = pModelDataWhite;
model->newSharedDisplayList(0x40000);
model->makeSharedDL();
model->doMakeShared();
pModelDataRed->doMakeShared();
pModelDataYellow->doMakeShared();
pModelDataPurple->doMakeShared();
pModelDataWhite->doMakeShared();
}
/*

View File

@ -16,17 +16,18 @@ namespace title {
*/
void E3DModel_set2DCoordToBaseTRMatrix_(J3DModel* model, Vector2f& pos, Vector2f& angle, f32 scale)
{
Mtx& mtx = model->mPosMtx;
f32 y = -angle.y;
f32 x = angle.x;
f32 zero = 0.0f;
f32 one = 1.0f;
model->mPosMtx[0][0] = y * one - zero;
model->mPosMtx[0][0] = one * y - zero;
model->mPosMtx[0][1] = 0.0f;
model->mPosMtx[0][2] = x;
model->mPosMtx[0][3] = pos.x;
model->mPosMtx[1][0] = (zero * x) - (y * zero);
model->mPosMtx[1][0] = (zero * x) - (zero * y);
model->mPosMtx[1][1] = 1.0f;
model->mPosMtx[1][2] = 0.0f;
model->mPosMtx[1][3] = 0.0f;
@ -38,7 +39,7 @@ void E3DModel_set2DCoordToBaseTRMatrix_(J3DModel* model, Vector2f& pos, Vector2f
Mtx temp;
PSMTXScale(temp, scale, scale, scale);
PSMTXConcat(model->mPosMtx, temp, model->mPosMtx);
PSMTXConcat(mtx, temp, mtx);
}
/*
@ -114,7 +115,7 @@ void TMapBase::setArchive(JKRArchive* arc)
mAnimMtxCalcWait = J3DNewMtxCalcAnm(mMainModelData->mJointTree.mFlags & 15, mAnimWait);
mAnimMtxCalcWind = static_cast<J3DMtxCalcAnmBase*>(
J3DUNewMtxCalcAnm(mMainModelData->mJointTree.mFlags & 15, mAnimWait, mAnimWind, nullptr, nullptr, 0));
J3DUNewMtxCalcAnm(mMainModelData->mJointTree.mFlags & 15, mAnimWait, mAnimWind, nullptr, nullptr, (J3DMtxCalcFlag)0));
mParms[0] = 0.0f;
@ -176,13 +177,9 @@ void TMapBase::update()
} else {
calc = 0.0f;
}
f32 calc2 = 1.0f;
calc = 1.0f - calc;
if (calc <= 0.2f) {
calc2 = calc / 0.2f;
} else if (calc <= 0.8f) {
calc2 = calc * -(5.0f) + 5.0f;
}
f32 calc2 = (calc <= 0.2f) ? calc / 0.2f : (calc <= 0.8f) ? 1.0f : calc * -5.0f + 5.0f;
anm->setWeight(0, 1.0f - calc2);
anm->setWeight(1, calc2);
mModel->mModelData->mJointTree.mJoints[0]->mMtxCalc = anm;
@ -276,10 +273,10 @@ void TBlackPlane::setArchive(JKRArchive* arc)
mAnimColor->searchUpdateMaterialID(mModel->mModelData);
for (u16 i = 0; i < (u32)mModel->mModelData->mMaterialTable.mMaterialNum; i++) {
for (u16 i = 0; i < (u16)(int)mModel->mModelData->getMaterialNum(); i++) {
J3DMaterialAnm* anm = new J3DMaterialAnm;
mModel->mModelData->mMaterialTable.mMaterials[i]->change();
mModel->mModelData->mMaterialTable.mMaterials[i]->mAnm = anm;
mModel->mModelData->getMaterialNodePointer(i)->change();
mModel->mModelData->getMaterialNodePointer(i)->mAnm = anm;
}
j3dSys.ErrorReport(mModel->mModelData->mMaterialTable.entryTevRegAnimator(mAnimColor));
@ -536,8 +533,8 @@ void TBlackPlane::updateAfterCamera()
*/
void TBlackPlane::setLogo()
{
mFrameCtrl.mCurrTime = mFrameCtrl._08;
mFrameCtrlColor.mCurrTime = mFrameCtrlColor._08;
mFrameCtrl.mCurrTime = mFrameCtrl.mEndFrame;
mFrameCtrlColor.mCurrTime = mFrameCtrlColor.mEndFrame;
}
/*
@ -547,9 +544,10 @@ void TBlackPlane::setLogo()
*/
Vector3f TBlackPlane::getCameraPos()
{
int id = mModel->mModelData->mJointTree.mNametab->getIndex("black_plane");
Mtx* mtx = &mModel->mMtxBuffer->mWorldMatrices[id];
return Vector3f((*mtx)[0][3], (*mtx)[1][3], (*mtx)[2][3]);
int id = mModel->mModelData->mJointTree.mNametab->getIndex("black_plane");
Mtx* mtx = &mModel->mMtxBuffer->mWorldMatrices[id];
Vector3f result = Vector3f((*mtx)[0][3], (*mtx)[1][3], (*mtx)[2][3]);
return result;
}
} // namespace title

View File

@ -7,6 +7,8 @@ namespace ebi {
namespace Save {
TMgr* TMgr::msInstance;
/*
* --INFO--
* Address: 803DB190
@ -578,7 +580,16 @@ TMgr::~TMgr()
{ // fake inheritence happening perchance?
msInstance = nullptr;
}
} // namespace Save
/*
* --INFO--
* Address: 803DC6D0
* Size: 00014C
*/
CardError::TMgr::~TMgr() { }
namespace Save {
/*
* --INFO--
* Address: 803DC870

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
#include "types.h"
#include "ebi/FS.h"
#include "Game/MemoryCard/PlayerFileInfo.h"
/*
Generated from dpostproc
@ -3107,7 +3108,7 @@ void FS::TMgr::setController(Controller*)
* Address: 803E0078
* Size: 0000FC
*/
void FS::TMgr::perseInfo(Game::MemoryCard::PlayerFileInfo&)
void FS::TMgr::perseInfo(::Game::MemoryCard::PlayerFileInfo&)
{
/*
stwu r1, -0x60(r1)
@ -3326,7 +3327,7 @@ void FS::TMgr::forceQuitSeq()
* Address: 803E02F0
* Size: 000028
*/
void FS::TMgr::isFinish()
bool FS::TMgr::isFinish()
{
/*
stwu r1, -0x10(r1)
@ -3453,7 +3454,7 @@ lbl_803E0430:
* Address: 803E0448
* Size: 000058
*/
void FS::TMgr::getStateID()
int FS::TMgr::getStateID()
{
/*
stwu r1, -0x10(r1)
@ -3523,7 +3524,7 @@ void FS::FSMState_CardTask::do_close(ebi::FS::TMgr*) { }
* Address: 803E04B4
* Size: 000030
*/
void transit__Q24Game24FSMState<ebi::FS::TMgr> FPQ33ebi2FS4TMgriPQ24Game8StateArg()
void Game::FSMState<ebi::FS::TMgr>::transit(ebi::FS::TMgr*, int, Game::StateArg*)
{
/*
.loc_0x0:
@ -3542,31 +3543,6 @@ void transit__Q24Game24FSMState<ebi::FS::TMgr> FPQ33ebi2FS4TMgriPQ24Game8StateAr
*/
}
/*
* --INFO--
* Address: 803E04E4
* Size: 000034
*/
void start__Q24Game28StateMachine<ebi::FS::TMgr> FPQ33ebi2FS4TMgriPQ24Game8StateArg()
{
/*
.loc_0x0:
stwu r1, -0x10(r1)
mflr r0
stw r0, 0x14(r1)
li r0, 0
stw r0, 0xC5C(r4)
lwz r12, 0x0(r3)
lwz r12, 0x14(r12)
mtctr r12
bctrl
lwz r0, 0x14(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
namespace Screen {
/*
@ -4442,7 +4418,7 @@ blr
* Address: 803E110C
* Size: 000004
*/
void init__Q24Game24FSMState<ebi::FS::TMgr> FPQ33ebi2FS4TMgrPQ24Game8StateArg() { }
void Game::FSMState<ebi::FS::TMgr>::init(ebi::FS::TMgr*, Game::StateArg*) { }
} // namespace Screen
@ -4453,42 +4429,42 @@ void init__Q24Game24FSMState<ebi::FS::TMgr> FPQ33ebi2FS4TMgrPQ24Game8StateArg()
* Address: 803E1110
* Size: 000004
*/
void exec__Q24Game24FSMState<ebi::FS::TMgr> FPQ33ebi2FS4TMgr() { }
void Game::FSMState<ebi::FS::TMgr>::exec(ebi::FS::TMgr*) { }
/*
* --INFO--
* Address: 803E1114
* Size: 000004
*/
void cleanup__Q24Game24FSMState<ebi::FS::TMgr> FPQ33ebi2FS4TMgr() { }
void Game::FSMState<ebi::FS::TMgr>::cleanup(ebi::FS::TMgr*) { }
/*
* --INFO--
* Address: 803E1118
* Size: 000004
*/
void resume__Q24Game24FSMState<ebi::FS::TMgr> FPQ33ebi2FS4TMgr() { }
void Game::FSMState<ebi::FS::TMgr>::resume(ebi::FS::TMgr*) { }
/*
* --INFO--
* Address: 803E111C
* Size: 000004
*/
void restart__Q24Game24FSMState<ebi::FS::TMgr> FPQ33ebi2FS4TMgr() { }
void Game::FSMState<ebi::FS::TMgr>::restart(ebi::FS::TMgr*) { }
/*
* --INFO--
* Address: 803E1120
* Size: 000004
*/
void init__Q24Game28StateMachine<ebi::FS::TMgr> FPQ33ebi2FS4TMgr() { }
void Game::StateMachine<ebi::FS::TMgr>::init(ebi::FS::TMgr*) { }
/*
* --INFO--
* Address: 803E1124
* Size: 000038
*/
void exec__Q24Game28StateMachine<ebi::FS::TMgr> FPQ33ebi2FS4TMgr()
void Game::StateMachine<ebi::FS::TMgr>::exec(ebi::FS::TMgr*)
{
/*
stwu r1, -0x10(r1)
@ -4515,7 +4491,7 @@ lbl_803E114C:
* Address: 803E115C
* Size: 000064
*/
void create__Q24Game28StateMachine<ebi::FS::TMgr> Fi()
void Game::StateMachine<ebi::FS::TMgr>::create(int)
{
/*
stwu r1, -0x10(r1)
@ -4551,7 +4527,7 @@ void create__Q24Game28StateMachine<ebi::FS::TMgr> Fi()
* Address: 803E11C0
* Size: 00009C
*/
void transit__Q24Game28StateMachine<ebi::FS::TMgr> FPQ33ebi2FS4TMgriPQ24Game8StateArg()
void Game::StateMachine<ebi::FS::TMgr>::transit(ebi::FS::TMgr*, int, Game::StateArg*)
{
/*
.loc_0x0:
@ -4608,7 +4584,7 @@ void transit__Q24Game28StateMachine<ebi::FS::TMgr> FPQ33ebi2FS4TMgriPQ24Game8Sta
* Address: 803E125C
* Size: 000084
*/
void registerState__Q24Game28StateMachine<ebi::FS::TMgr> FPQ24Game24FSMState<ebi::FS::TMgr>()
void Game::StateMachine<ebi::FS::TMgr>::registerState(Game::FSMState<ebi::FS::TMgr>*)
{
/*
.loc_0x0: