mirror of
https://github.com/projectPiki/pikmin2.git
synced 2024-12-01 01:00:33 +00:00
BigTreasure progress
This commit is contained in:
parent
0ad94391ea
commit
f192c353fb
@ -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 |
|
||||
|
@ -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
|
||||
|
||||
|
@ -249,6 +249,7 @@ struct CellIterator {
|
||||
u32 _1C; // _1C
|
||||
u32 m_passID; // _20
|
||||
CellIteratorArg m_arg; // _24
|
||||
u32 _44; // _44
|
||||
};
|
||||
|
||||
extern CellPyramid* cellMgr;
|
||||
|
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user