BigTreasure progress

This commit is contained in:
HeartPiece 2023-01-16 00:33:34 +11:00
parent 0ad94391ea
commit f192c353fb
9 changed files with 814 additions and 5538 deletions

View File

@ -93,7 +93,7 @@
| ---- | ---- | ---- | ---- |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiUtility.cpp">ebiUtility.cpp</a> | 3779 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiGeometry.cpp">ebiGeometry.cpp</a> | 5821 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiP2TitleLight.cpp">ebiP2TitleLight.cpp</a> | 6205 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiP2TitleCoordMgr.cpp">ebiP2TitleCoordMgr.cpp</a> | 9330 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiScreenPushStart.cpp">ebiScreenPushStart.cpp</a> | 10875 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiCardEReader.cpp">ebiCardEReader.cpp</a> | 13664 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiScreenPushStart.cpp">ebiScreenPushStart.cpp</a> | 10505 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiCardEReader.cpp">ebiCardEReader.cpp</a> | 13664 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiFileSelectMgr.cpp">ebiFileSelectMgr.cpp</a> | 14258 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/efx2dEffect.cpp">efx2dEffect.cpp</a> | 17805 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/efxObject.cpp">efxObject.cpp</a> | 18287 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/particle2dMgr.cpp">particle2dMgr.cpp</a> | 18593 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebi2DGraph.cpp">ebi2DGraph.cpp</a> | 19240 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectEbisawaU/ebiScreenOmakeCardE.cpp">ebiScreenOmakeCardE.cpp</a> | 21682 |

View File

@ -52,8 +52,6 @@ struct Obj : public EnemyBase {
virtual void onInit(CreatureInitArg* settings); // _30
virtual void onKill(CreatureKillArg* settings); // _34
virtual void doDirectDraw(Graphics& gfx); // _50
virtual void inWaterCallback(WaterBox* wb); // _84 (weak)
virtual void outWaterCallback(); // _88 (weak)
virtual void getShadowParam(ShadowParam& settings); // _134
virtual ~Obj() { } // _1BC (weak)
virtual void setInitialSetting(EnemyInitialParamBase*); // _1C4
@ -63,18 +61,23 @@ struct Obj : public EnemyBase {
virtual void doAnimationCullingOff(); // _1DC
virtual void doDebugDraw(Graphics&); // _1EC
virtual void changeMaterial(); // _200
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID(); // _258 (weak)
virtual void getThrowupItemPosition(Vector3f*); // _268
virtual void getThrowupItemVelocity(Vector3f*); // _26C
virtual void throwupItemInDeathProcedure(); // _270 (weak)
virtual bool damageCallBack(Creature*, f32, CollPart*); // _278
virtual bool hipdropCallBack(Creature*, f32, CollPart*); // _284
virtual void doStartStoneState(); // _2A4
virtual void doFinishStoneState(); // _2A8
virtual f32 getDamageCoeStoneState(); // _2AC (weak)
virtual void doStartMovie(); // _2F0
virtual void doEndMovie(); // _2F4
virtual void setFSM(FSM*); // _2F8
virtual void inWaterCallback(WaterBox* wb) { } // _84 (weak)
virtual void outWaterCallback() { } // _88 (weak)
virtual f32 getDamageCoeStoneState() { return 0.5f; } // _2AC (weak)
virtual void throwupItemInDeathProcedure() { } // _270 (weak)
virtual EnemyTypeID::EEnemyTypeID getEnemyTypeID() // _258 (weak)
{
return EnemyTypeID::EnemyID_BigTreasure;
}
//////////////// VTABLE END
void resetAttackLimitTimer();
@ -95,8 +98,8 @@ struct Obj : public EnemyBase {
void startBlendMotion();
void finishBlendMotion();
void checkJointScaleOn();
void getTraceCentrePosition();
void getJointPositionPtr(int, int);
Vector3f getTraceCentrePosition();
Vector3f* getJointPositionPtr(int, int);
void createShadowSystem();
void setupShadowSystem();
void doAnimationShadowSystem();
@ -107,8 +110,8 @@ struct Obj : public EnemyBase {
void dropTreasure(int);
bool isCapturedTreasure();
bool isCapturedTreasure(int);
void getCapturedTreasureNum();
void addTreasureDamage(int, f32);
int getCapturedTreasureNum();
bool addTreasureDamage(int, f32);
void flickStickCollPartPikmin(CollPart*);
void releaseItemLoozy();
void createAttack();
@ -173,42 +176,48 @@ struct Obj : public EnemyBase {
// _00-_2BC = EnemyBase
FSM* m_fsm; // _2BC
f32 m_stateTimer; // _2C0
f32 _2C4; // _2C4, attack timer?
f32 m_attackLimitTimer; // _2C4
StateID m_nextState; // _2C8
Vector3f _2CC; // _2CC, target position?
f32 _2D8; // _2D8, timer of some sort?
Vector3f m_targetPosition; // _2CC
f32 m_shadowScale; // _2D8
u8 _2DC[0x8]; // _2DC, unknown
IKSystemMgr* m_IKSystemMgr; // _2E4
IKSystemParms* m_IKSystemParms; // _2E8
IKSystemMgr* m_ikSystemMgr; // _2E4
IKSystemParms* m_ikSystemParms; // _2E8
BigTreasureGroundCallBack* m_groundCallBack; // _2EC
BigTreasureShadowMgr* m_shadowMgr; // _2F0
BigTreasureAttackMgr* m_attackMgr; // _2F4
Vector3f _2F8; // _2F8, kosi joint pos?
Vector3f _304[16]; // _304, joint positions?
Creature* m_treasures[4]; // _3C4, elec / fire / gas / water
Creature* m_louie; // _3D4, King of Bugs
Vector3f m_kosiJointPos; // _2F8
Vector3f m_jointPositions[4][4]; // _304
Pellet* m_treasures[4]; // _3C4, elec / fire / gas / water
Pellet* m_louie; // _3D4, King of Bugs
f32 m_treasureHealth[4]; // _3D8, elec / fire / gas / water
f32 _3E8; // _3E8
u8 _3EC[0xC]; // _3EC, unknown
CollPart* _3F8; // _3F8
u8 _3FC[0xC]; // _3FC
CollPart* m_treasureCollParts[4]; // _3F8, elec / fire / gas / water
int m_attackIndex; // _408, enum TitanDweevilAttack?
u8 _40C[0x8]; // _40C, unknown
J3DGXColorS10 _414; // _414
int _41C; // _41C
u8 _420[0x60]; // _420, unknown
efx::TChasePos2* _480[4]; // _480
efx::TDamaFootw* _490[4]; // _490
efx::TDamaSmoke* _4A0[4]; // _4A0
efx::TOootaStartBody* _4B0; // _4B0
efx::TOootaStartOta* _4B4[4]; // _4B4
efx::TOootaStartLeg* _4C4[3][4]; // _4C4
efx::TChasePosPosLocalYScale3* _4F4[4][4]; // _4F4
efx::TChaseMtx3* _534; // _534
efx::TOootaDeadAwa* _538; // _538
efx::TOootaChangeLeg* _53C[4][4]; // _53C
efx::TOootaChangeBody* _57C; // _57C
efx::TOootaParticle* _580; // _580
u8 _420[0x30]; // _420, unknown
f32 _450; // _450
f32 _454; // _454
f32 _458; // _458
u8 _45C[0x18]; // _45C, unknown
f32 _474; // _474
f32 _478; // _478
f32 _47C; // _47C
efx::TOootaFoot* m_footFX[4]; // _480
efx::TDamaFootw* m_footWFX[4]; // _490
efx::TDamaSmoke* m_treasureSmokeFX[4]; // _4A0
efx::TOootaStartBody* m_startBodyFX; // _4B0
efx::TOootaStartOta* m_startTreasureFX[4]; // _4B4
efx::TOootaStartLeg* m_startLegFX[4][3]; // _4C4
efx::TOootaDeadLeg* m_deadLegFX[4][4]; // _4F4, leg bubble effect on death
efx::TOootaDeadBody* m_deadBodyFX; // _534, body bubble effect on death
efx::TOootaDeadAwa* m_deadAwaFX; // _538, mouth bubble effect on death
efx::TOootaChangeLeg* m_changeLegFX[4][4]; // _53C
efx::TOootaChangeBody* m_changeBodyFX; // _57C
efx::TOootaParticle* m_shineParticleFX; // _580
// _584 = PelletView
};
@ -393,16 +402,32 @@ struct Parms : public EnemyParmsBase {
ProperParms m_properParms; // _7F8
};
struct ProperAnimator : public EnemyAnimatorBase {
virtual ~ProperAnimator(); // _08 (weak)
struct ProperAnimator : public EnemyBlendAnimatorBase {
virtual ~ProperAnimator() { } // _08 (weak)
// _00 = VTBL
// _00-_10 = EnemyAnimatorBase
// _00-_60 = EnemyBlendAnimatorBase
};
struct BigTreasureShadowMgr;
struct BigTreasureShadowMgr {
BigTreasureShadowMgr(Obj*);
void init();
void setJointPosPtr(int, int, Vector3f*);
void setKosiJointPosPtr(Vector3f*);
void update();
Matrixf* _00; // _00
Obj* _04; // _04
u8 _08[0x168]; // _08, to fill in
};
struct BigTreasureGroundCallBack : public JointGroundCallBack {
inline BigTreasureGroundCallBack(Obj* obj)
: m_obj(obj)
{
}
virtual void invokeOnGround(int, WaterBox*); // _08
virtual void invokeOffGround(int, WaterBox*); // _0C

View File

@ -249,6 +249,7 @@ struct CellIterator {
u32 _1C; // _1C
u32 m_passID; // _20
CellIteratorArg m_arg; // _24
u32 _44; // _44
};
extern CellPyramid* cellMgr;

View File

@ -11,6 +11,7 @@
#include "JSystem/J3D/J3DVertexBuffer.h"
#include "JSystem/JGeometry.h"
#include "JSystem/J3D/J3DPacket.h"
#include "JSystem/JUT/JUTNameTab.h"
struct J3DDeformData;
struct J3DMatPacket;
@ -50,6 +51,20 @@ struct J3DModelData {
m_shapeTable.initShapeNodes(&m_jointTree.m_mtxData, &m_vertexData);
}
inline void setTevColor(char* name, J3DGXColorS10& color)
{
u16 idx = m_materialTable._0C->getIndex(name);
J3DMaterial* mat = m_materialTable.m_materials1[idx];
mat->m_tevBlock->setTevColor(0, color);
}
inline void setTevColor(char* name, u16 r, u16 g, u16 b, u16 a)
{
u16 idx = m_materialTable._0C->getIndex(name);
J3DMaterial* mat = m_materialTable.m_materials1[idx];
mat->m_tevBlock->setTevColor(0, J3DGXColorS10(r, g, b, a));
}
// VTBL _00
const void* m_bmd; // _04
u32 m_modelLoaderFlags; // _08
@ -104,6 +119,8 @@ struct J3DModel {
void calcBBoardMtx();
void prepareShapePackets();
inline J3DModelData* getModelData() { return m_modelData; }
// _00 VTBL
J3DModelData* m_modelData; // _04
u32 _08; // _08 /* bitfield of some sort */

View File

@ -72,6 +72,8 @@ struct Model : public MtxObject {
}
}
inline J3DModel* getJ3DModel() { return m_j3dModel; }
// VTBL _00
bool m_isAnimating; // _04, assumed name
u8 _05; // _05

View File

@ -243,12 +243,22 @@ struct ArgPosPos : public Arg {
{
}
ArgPosPos(Vector3f pos1, Vector3f pos2)
: Arg()
{
m_pos1 = pos1;
m_pos2 = pos2;
}
virtual const char* getName() // _08 (weak)
{
return "ArgPosPos";
}
Vector3f m_pos1;
Vector3f m_pos2;
// _00 = VTBL
// _00-_10 = Arg
Vector3f m_pos1; // _10
Vector3f m_pos2; // _1C
};
struct ArgPrmColor : public Arg {

View File

@ -101,11 +101,26 @@ struct TChasePosPosLocalYScale : public TSync {
m_effectID = effectID;
}
inline TChasePosPosLocalYScale(u16 effectID, f32 scale)
: TSync()
, _10(nullptr)
, _14(nullptr)
, _18(scale)
{
m_effectID = effectID;
}
inline void setPosPosPtr(Vector3f* pos1, Vector3f* pos2)
{
_10 = pos1;
_14 = pos2;
}
// vtable 1 (TBase)
// _08-_14
// vtable 2 (JPAEmitterCallBack + self)
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38
virtual ~TChasePosPosLocalYScale(); // _48 (weak, thunk at _1C)
virtual ~TChasePosPosLocalYScale() { } // _48 (weak, thunk at _1C)
// _00 = VTBL
// _00-_10 = TSync

View File

@ -35,7 +35,7 @@ struct TOootaChangeBody : public TChaseMtx {
{
}
virtual ~TOootaChangeBody(); // _48 (weak)
virtual ~TOootaChangeBody() { } // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
@ -43,11 +43,11 @@ struct TOootaChangeBody : public TChaseMtx {
struct TOootaChangeLeg : public TChasePosPosLocalYScale {
inline TOootaChangeLeg()
: TChasePosPosLocalYScale(PID_OoOtaChangeLeg)
: TChasePosPosLocalYScale(PID_OoOtaChangeLeg, 100.0f)
{
}
virtual ~TOootaChangeLeg(); // _48 (weak)
virtual ~TOootaChangeLeg() { } // _48 (weak)
// _00 = VTBL
// _00-_1C = TChasePosPosLocalYScale
@ -59,7 +59,7 @@ struct TOootaDeadAwa : public TChaseMtx {
{
}
virtual ~TOootaDeadAwa(); // _48 (weak)
virtual ~TOootaDeadAwa() { } // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
@ -77,7 +77,7 @@ struct TOootaDeadBody : public TChaseMtx3 {
struct TOootaDeadLeg : public TChasePosPosLocalYScale3 {
inline TOootaDeadLeg()
: TChasePosPosLocalYScale3(nullptr, nullptr, 0.0f, PID_OoOtaDeadLeg_1, PID_OoOtaDeadLeg_2, PID_OoOtaDeadLeg_3)
: TChasePosPosLocalYScale3(nullptr, nullptr, 100.0f, PID_OoOtaDeadLeg_1, PID_OoOtaDeadLeg_2, PID_OoOtaDeadLeg_3)
{
}
@ -179,7 +179,7 @@ struct TOootaParticle : public TChasePos {
{
}
virtual ~TOootaParticle(); // _48 (weak)
virtual ~TOootaParticle() { } // _48 (weak)
void setGlobalDynamicsScale(f32);
@ -223,7 +223,7 @@ struct TOootaStartBody : public TChaseMtx {
{
}
virtual ~TOootaStartBody(); // _48 (weak)
virtual ~TOootaStartBody() { } // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
@ -231,11 +231,11 @@ struct TOootaStartBody : public TChaseMtx {
struct TOootaStartLeg : public TChasePosPosLocalYScale {
inline TOootaStartLeg()
: TChasePosPosLocalYScale(PID_OoOtaStartLeg)
: TChasePosPosLocalYScale(PID_OoOtaStartLeg, 100.0f)
{
}
virtual ~TOootaStartLeg(); // _48 (weak)
virtual ~TOootaStartLeg() { } // _48 (weak)
// _00 = VTBL
// _00-_1C = TChasePosPosLocalYScale
@ -247,7 +247,7 @@ struct TOootaStartOta : public TChaseMtxT {
{
}
virtual ~TOootaStartOta(); // _48 (weak)
virtual ~TOootaStartOta() { } // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtxT

File diff suppressed because it is too large Load Diff