Unsorted header sorting, round 1 (#60)

* efx progress

* More efx and efx2d sorting

* Fix formatting
This commit is contained in:
HeartPiece 2022-09-15 13:00:12 +10:00 committed by GitHub
parent 73dd2e6907
commit c54b88f7fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
618 changed files with 2922 additions and 16272 deletions

View File

@ -5,8 +5,11 @@
struct AppThread : public JKRThread {
AppThread(u32 stackSize, int msgCount, int threadPriority);
virtual ~AppThread(); // _08
virtual u32 run(); // _0C
virtual ~AppThread(); // _08 (weak)
// _00 = VTBL
// _00-_7C = JKRThread
};
#endif

View File

@ -31,10 +31,13 @@ struct BootSection : public Game::BaseHIOSection {
};
BootSection(JKRHeap*);
~BootSection();
void doDraw(Graphics&);
virtual bool doUpdate();
virtual ~BootSection(); // _08
virtual void run(); // _0C
virtual void init(); // _18
virtual bool forceReset(); // _2C (weak)
virtual bool doUpdate(); // _3C
virtual void doDraw(Graphics&); // _40
void drawDolbyLogo(Graphics&);
void drawEpilepsy(Graphics&);
@ -43,14 +46,10 @@ struct BootSection : public Game::BaseHIOSection {
void drawSetInterlace(Graphics&);
void drawSetProgressive(Graphics&);
virtual bool forceReset();
void init();
void load2DResource();
void loadBootResource();
void loadResident();
void run();
void runWait(RunWaitCallback);
void setMode(int);

View File

@ -34,7 +34,7 @@ struct CullPlane : public ArrayContainer<Plane> {
virtual void writeObject(Stream&, Plane&) {}; // _2C (weak)
virtual void readObject(Stream&, Plane&) {}; // _30 (weak)
bool isPointVisible(Vector3f&, float);
bool isPointVisible(Vector3f&, f32);
bool isVisible(Sys::Sphere&);
bool isCylinderVisible(Sys::Cylinder&);
};
@ -63,8 +63,8 @@ struct CullFrustum : public CullPlane {
Vector3f getViewVector();
// CullPlane _00 - _24
float m_viewAngle; // _28
float m_aspectRatio; // _2C
f32 m_viewAngle; // _28
f32 m_aspectRatio; // _2C
Matrixf* m_viewMatrix; // _30
};
@ -78,7 +78,7 @@ struct Camera : public CullFrustum {
virtual void updatePlanes(); // _50
virtual void updateScreenConstants(); // _54
virtual Vector3f getLookAtPosition_(); // _58 (weak)
virtual float getTargetDistance(); // _5C (weak)
virtual f32 getTargetDistance(); // _5C (weak)
virtual Vector3f* getPositionPtr(); // _60
virtual Vector3f* on_getPositionPtr() { return nullptr; } // _64 (weak)
virtual Vector3f* getSoundPositionPtr() // _68 (weak)
@ -93,34 +93,34 @@ struct Camera : public CullFrustum {
virtual void updateMatrix() { } // _74 (weak)
virtual void doUpdate(); // _78 (weak)
void calcProperDistance(float, float);
float calcScreenSize(Sys::Sphere&);
void calcProperDistance(f32, f32);
f32 calcScreenSize(Sys::Sphere&);
void copyFrom(Camera*);
float getFar();
f32 getFar();
Vector3f getLookAtPosition();
float getNear();
void setFixNearFar(bool, float, float);
f32 getNear();
void setFixNearFar(bool, f32, f32);
void setProjection();
void update();
// void updatePlanes();
void updateSoundCamera(float);
void updateSoundCamera(f32);
inline bool isRunning() { return (m_jstObject && m_jstObject->isRunning()); }
// CullFrustum _00 - _34
Matrixf _34; // _034
float m_near; // _064 - distance to 'near' plane
float m_far; // _068 - distance to 'far' plane
f32 m_near; // _064 - distance to 'near' plane
f32 m_far; // _068 - distance to 'far' plane
bool isFixed; // _06C
float m_projectionNear; // _070 - projected distance to 'near' plane when not in fixed camera
float m_projectionFar; // _074 - projected distance to 'far' plane when not in fixed camera
f32 m_projectionNear; // _070 - projected distance to 'near' plane when not in fixed camera
f32 m_projectionFar; // _074 - projected distance to 'far' plane when not in fixed camera
Vector3f m_soundPosition; // _078
Matrixf m_soundMatrix; // _084
Mtx44 m_projectionMtx; // _0B4
Mtx44 _F4; // _0F4
float _134; // _134
float _138; // _138
float _13C; // _13C
f32 _134; // _134
f32 _138; // _138
f32 _13C; // _13C
Game::P2JST::ObjectCamera* m_jstObject; // _140
};
@ -141,12 +141,12 @@ struct LookAtCamera : public Camera {
};
struct BlendCamera : public Camera {
BlendCamera(int, struct Camera**);
BlendCamera(int, Camera**);
virtual ~BlendCamera() { } // _08 (weak)
virtual void doUpdate(); // _78
void setBlendFactor(float);
void setBlendFactor(f32);
void setCameras(Camera**);
// Camera _00 - _144

View File

@ -19,7 +19,7 @@ namespace Caption {
struct Node : public CNode {
Node();
virtual ~Node() { } // _08
virtual ~Node() { } // _08 (weak)
virtual void read(Stream&); // _10
u32 m_startFrame; // _18
@ -33,8 +33,8 @@ struct Node : public CNode {
struct Mgr : public CNode {
Mgr();
virtual ~Mgr(); // _00
virtual void read(Stream&); // _08
virtual ~Mgr(); // _08 (weak)
virtual void read(Stream&); // _10
void draw(Graphics&);
P2JME::Caption::TControl* getFreeMessage();

View File

@ -109,8 +109,6 @@ struct CollPart : public CNode {
struct CollPartMgr : public MonoObjectMgr<CollPart> {
virtual ~CollPartMgr() { } // _08 (weak)
// virtual void _2C() = 0; // _2C - need to work out
// virtual void _30() = 0; // _30 - need to work out
CollPart* createOne(SysShape::MtxObject*);
};
@ -152,7 +150,7 @@ struct AgeCollPart : public CollPart {
u8 _64; // _64
};
struct CollPartFactory : CollPart {
struct CollPartFactory : public CollPart {
inline CollPartFactory(Stream& input)
: CollPart()
{

View File

@ -19,11 +19,13 @@ struct HIORootNode : public Game::HIORootNode {
m_name = "THPセクション";
}
virtual ~HIORootNode() { } // _00
virtual ~HIORootNode() { } // _08 (weak)
};
// Size: 0x1B0
struct Section : public Game::BaseHIOSection {
Section(JKRHeap*);
virtual ~Section() { } // _08
virtual void init(); // _18
virtual void doExit(); // _24
@ -33,9 +35,10 @@ struct Section : public Game::BaseHIOSection {
virtual bool doUpdate(); // _3C
virtual void doDraw(Graphics&); // _40
Section(JKRHeap*);
void loadResource();
// _00 = VTBL
// _00-_48 = Game::BaseHIOSection
DvdThreadCommand m_threadCommand; // _048
Controller* _D8; // _0D8
float _DC; // _0DC

View File

@ -2,6 +2,7 @@
#define _DVDTHREADCOMMAND_H
#include "JSystem/JSupport/JSUList.h"
#include "AppThread.h"
#include "types.h"
struct JKRArchive;
@ -28,4 +29,25 @@ struct DvdThreadCommand {
JSUPtrLink m_link; // _5C
};
struct DvdThread : public AppThread {
struct ESyncBlockFlag {
// might be an enum? size 0x4?
};
DvdThread(u32, int, int);
virtual ~DvdThread(); // _08 (weak)
virtual void run(); // _0C
void loadArchive(DvdThreadCommand*);
void loadFile(DvdThreadCommand*);
void sendCommand(DvdThreadCommand*);
void sync(DvdThreadCommand*, ESyncBlockFlag);
void syncAll(ESyncBlockFlag);
// _00 = VTBL
// _00-_7C = AppThread
JSUPtrList _7C; // _7C
};
#endif

38
include/DynamicsParms.h Normal file
View File

@ -0,0 +1,38 @@
#ifndef _DYNAMICSPARMS_H
#define _DYNAMICSPARMS_H
#include "types.h"
#include "Parameters.h"
#include "JSystem/JKR/JKRDisposer.h"
// this has a really weird inheritance thing going on, idk.
// this is my best guess atm - HP
struct DynamicsParms : public Parameters, public JKRDisposer {
DynamicsParms();
// virtual void _08() = 0;
// virtual void _0C() = 0;
// then dtor thunk at _10?
virtual ~DynamicsParms(); // _14 (weak)
void globalInstance();
// _00-_0C = Parameters
// _0C-_24 = JKRDisposer
Parm<bool> _24; // _24, d009?
Parm<f32> _40; // _40, staParm/d011?
Parm<f32> _68; // _68, static/d010?
Parm<f32> _90; // _90, microCollision/d000?
Parm<bool> _B8; // _B8, d001?
Parm<f32> _D4; // _D4, elasticity/d002?
Parm<bool> _FC; // _FC, d003?
Parm<bool> _118; // _118, d004?
Parm<bool> _134; // _134, d005?
Parm<f32> _150; // _150, d006?
Parm<bool> _178; // _178, d007?
Parm<f32> _194; // _194, d008?
// _1BC = vtable??
// _1C0 = IParameters maybe??
};
#endif

View File

@ -8,15 +8,18 @@
struct Graphics;
struct FogMgr : public CNode {
~FogMgr();
FogMgr();
virtual ~FogMgr(); // _08 (weak)
void off(Graphics&);
void set(Graphics&);
void getColor(Color4&);
void setColor(Color4&);
// _00 = VTBL
// _00-_18 = CNode
GXFogType m_type; // _18
float m_nearZ; // _1C
float m_farZ; // _20

View File

@ -1,177 +0,0 @@
#ifndef _GAME_ARMOR_H
#define _GAME_ARMOR_H
namespace SysShape {
struct AnimMgr;
} // namespace SysShape
namespace Game {
struct StateArg;
struct Creature;
struct EnemyBase;
struct ShadowParam;
struct CreatureInitArg;
struct EnemyInitialParamBase;
struct Armor {
struct StateAppear {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateAttack1 {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateAttack2 {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateDead {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateDive {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateEat {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateFail {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateFlick {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateGoHome {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateMove {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateMoveCentre {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateMoveSide {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateMoveTop {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct StateStay {
void cleanup(Game::EnemyBase*);
void exec(Game::EnemyBase*);
void init(Game::EnemyBase*, Game::StateArg*);
};
struct Parms {
Parms();
void read(struct Stream&);
};
struct FSM {
void init(Game::EnemyBase*);
};
struct Mgr {
Mgr(int, unsigned char);
~Mgr();
void createObj(int);
void doAlloc();
void getEnemy(int);
void getEnemyTypeID();
};
struct Obj {
Obj();
~Obj();
void attackPikmin();
void breakTargetBridge();
void checkBreakOrMove();
void createAppearEffect();
void createAttackEffect();
void createBridgeEffect();
void createDisAppearEffect();
void createEffect();
void damageCallBack(Game::Creature*, float, struct CollPart*);
void doDebugDraw(struct Graphics&);
void doDirectDraw(Graphics&);
void doEndMovie();
void doFinishStoneState();
void doStartMovie();
void doStartStoneState();
void doUpdate();
void effectDrawOff();
void effectDrawOn();
void getDownSmokeScale();
void getEnemyTypeID();
void getMouthSlots();
void getShadowParam(Game::ShadowParam&);
void getSlotPikiNum();
void hipdropCallBack(Game::Creature*, float, CollPart*);
void initMouthSlots();
void isBreakBridge();
void killSlotPiki();
void lifeIncrement();
void moveBridgeCentre();
void moveBridgeSide();
void moveBridgeTop();
void onInit(Game::CreatureInitArg*);
void resetBridgeSearch();
void setBridgeSearch();
void setCullingCheck();
void setFSM(FSM*);
void setInitialSetting(Game::EnemyInitialParamBase*);
void setNearestBridge();
void setupEffect();
void startCarcassMotion();
};
struct ProperAnimator {
~ProperAnimator();
void getAnimator();
void getAnimator(int);
void setAnimator(SysShape::AnimMgr*);
};
};
} // namespace Game
#endif

View File

@ -11,7 +11,7 @@
#include "Game/GameMessage.h"
struct BlackFader;
struct BlendCamera;
struct Controller;
struct HorizonalSplitter;
struct WipeInFader;
struct WipeOutFader;
@ -59,99 +59,111 @@ struct BaseGameSection : public BaseHIOSection {
virtual ~ZoomCamera() { } // _08 (weak)
virtual void doUpdate(); // _78
void init(float, float, Vector3<float>&, Controller*);
void init(f32, f32, Vector3f&, Controller*);
void makeLookAt();
// _00 = VTBL
// _00-_198 = LookAtCamera
f32 _198; // _198, angleX?
f32 _19C; // _19C, angleY?
f32 _1A0; // _1A0, cameraDistance?
f32 _1A4; // _1A4
f32 _1A8; // _1A8, angle?
Controller* _1AC; // _1AC
};
virtual ~BaseGameSection(); // _08
virtual void init(); // _18
virtual void drawInit(Graphics& gfx, Section::EDrawInitMode); // _20
virtual bool forceFinish(); // _28 (weak)
virtual bool doUpdate(); // _3C
virtual void doDraw(Graphics& gfx); // _40
virtual void sendMessage(GameMessage&); // _50 (weak)
virtual void pre2dDraw(Graphics& gfx); // _54 (weak)
virtual void getCurrFloor(); // _58 (weak)
virtual void isDevelopSection(); // _5C (weak)
virtual void addChallengeScore(int); // _60 (weak)
virtual void startMainBgm(); // _64 (weak)
virtual void section_fadeout(); // _68 (weak)
virtual void goNextFloor(ItemHole::Item*); // _6C (weak)
virtual void goCave(ItemCave::Item*); // _70 (weak)
virtual void goMainMap(ItemBigFountain::Item*); // _74 (weak)
virtual void getCaveID(); // _78 (weak)
virtual void getCurrentCourseInfo(); // _7C (weak)
virtual void challengeDisablePelplant(); // _80 (weak)
virtual void getCaveFilename(); // _84 (weak)
virtual void getEditorFilename(); // _88 (weak)
virtual void getVsEditNumber(); // _8C (weak)
virtual void openContainerWindow(); // _90 (weak)
virtual void closeContainerWindow(); // _94 (weak)
virtual void playMovie_firstexperience(int, Creature*); // _98 (weak)
virtual void playMovie_bootup(Onyon*); // _9C (weak)
virtual void playMovie_helloPikmin(Piki*); // _A0 (weak)
virtual void enableTimer(float, unsigned long); // _A4 (weak)
virtual void disableTimer(unsigned long); // _A8 (weak)
virtual void getTimerType(); // _AC (weak)
virtual void onMovieStart(MovieConfig*, unsigned long, unsigned long); // _B0 (weak)
virtual void onMovieDone(MovieConfig*, unsigned long, unsigned long); // _B4 (weak)
virtual void onMovieCommand(int); // _B8
virtual void startFadeout(float); // _BC
virtual void startFadein(float); // _C0
virtual void startFadeoutin(float); // _C4
virtual void startFadeblack(); // _C8
virtual void startFadewhite(); // _CC
virtual void gmOrimaDown(int); // _D0 (weak)
virtual void gmPikminZero(); // _D4 (weak)
virtual void openCaveInMenu(ItemCave::Item*, int); // _D8 (weak)
virtual void openCaveMoreMenu(ItemHole::Item*, Controller*); // _DC (weak)
virtual void openKanketuMenu(ItemBigFountain::Item*, Controller*); // _E0 (weak)
virtual void on_setCamController(int); // _E4 (weak)
virtual void onTogglePlayer(); // _E8 (weak)
virtual void onPlayerJoin(); // _EC (weak)
virtual void onInit(); // _F0 (weak)
virtual void onUpdate(); // _F4 (weak)
virtual void initJ3D(); // _F8
virtual void initViewports(Graphics& gfx); // _FC
virtual void initResources(); // _100
virtual void initGenerators(); // _104
virtual void initLights(); // _108
virtual void draw3D(Graphics& gfx); // _10C
virtual void draw2D(Graphics& gfx); // _110
virtual void drawParticle(Graphics& gfx, int viewportIndex); // _114
virtual void draw_Ogawa2D(Graphics& gfx); // _118
virtual void do_drawOtakaraWindow(Graphics& gfx); // _11C
virtual void onSetupFloatMemory(); // _120 (weak)
virtual void postSetupFloatMemory(); // _124
virtual void onSetSoundScene(); // _128 (weak)
virtual void onStartHeap(); // _12C (weak)
virtual void onClearHeap(); // _130 (weak)
BaseGameSection(struct JKRHeap*);
/////////////////// VTABLE
virtual ~BaseGameSection(); // _08
virtual void init(); // _18
virtual void drawInit(Graphics& gfx, Section::EDrawInitMode); // _20
virtual bool forceFinish(); // _28 (weak)
virtual bool doUpdate(); // _3C
virtual void doDraw(Graphics& gfx); // _40
virtual void sendMessage(GameMessage&); // _50 (weak)
virtual void pre2dDraw(Graphics& gfx); // _54 (weak)
virtual void getCurrFloor(); // _58 (weak)
virtual void isDevelopSection(); // _5C (weak)
virtual void addChallengeScore(int); // _60 (weak)
virtual void startMainBgm(); // _64 (weak)
virtual void section_fadeout(); // _68 (weak)
virtual void goNextFloor(ItemHole::Item*); // _6C (weak)
virtual void goCave(ItemCave::Item*); // _70 (weak)
virtual void goMainMap(ItemBigFountain::Item*); // _74 (weak)
virtual void getCaveID(); // _78 (weak)
virtual void getCurrentCourseInfo(); // _7C (weak)
virtual void challengeDisablePelplant(); // _80 (weak)
virtual void getCaveFilename(); // _84 (weak)
virtual void getEditorFilename(); // _88 (weak)
virtual void getVsEditNumber(); // _8C (weak)
virtual void openContainerWindow(); // _90 (weak)
virtual void closeContainerWindow(); // _94 (weak)
virtual void playMovie_firstexperience(int, Creature*); // _98 (weak)
virtual void playMovie_bootup(Onyon*); // _9C (weak)
virtual void playMovie_helloPikmin(Piki*); // _A0 (weak)
virtual void enableTimer(f32, u32); // _A4 (weak)
virtual void disableTimer(u32); // _A8 (weak)
virtual void getTimerType(); // _AC (weak)
virtual void onMovieStart(MovieConfig*, u32, u32); // _B0 (weak)
virtual void onMovieDone(MovieConfig*, u32, u32); // _B4 (weak)
virtual void onMovieCommand(int); // _B8
virtual void startFadeout(f32); // _BC
virtual void startFadein(f32); // _C0
virtual void startFadeoutin(f32); // _C4
virtual void startFadeblack(); // _C8
virtual void startFadewhite(); // _CC
virtual void gmOrimaDown(int); // _D0 (weak)
virtual void gmPikminZero(); // _D4 (weak)
virtual void openCaveInMenu(ItemCave::Item*, int); // _D8 (weak)
virtual void openCaveMoreMenu(ItemHole::Item*, Controller*); // _DC (weak)
virtual void openKanketuMenu(ItemBigFountain::Item*, Controller*); // _E0 (weak)
virtual void on_setCamController(int); // _E4 (weak)
virtual void onTogglePlayer(); // _E8 (weak)
virtual void onPlayerJoin(); // _EC (weak)
virtual void onInit(); // _F0 (weak)
virtual void onUpdate(); // _F4 (weak)
virtual void initJ3D(); // _F8
virtual void initViewports(Graphics& gfx); // _FC
virtual void initResources(); // _100
virtual void initGenerators(); // _104
virtual void initLights(); // _108
virtual void draw3D(Graphics& gfx); // _10C
virtual void draw2D(Graphics& gfx); // _110
virtual void drawParticle(Graphics& gfx, int viewportIndex); // _114
virtual void draw_Ogawa2D(Graphics& gfx); // _118
virtual void do_drawOtakaraWindow(Graphics& gfx); // _11C
virtual void onSetupf32Memory(); // _120 (weak)
virtual void postSetupf32Memory(); // _124
virtual void onSetSoundScene(); // _128 (weak)
virtual void onStartHeap(); // _12C (weak)
virtual void onClearHeap(); // _130 (weak)
/////////////////// VTABLE END
void useSpecificFBTexture(JUTTexture*);
void restoreFBTexture();
void loadSync(IDelegate*, bool);
void waitSyncLoad(bool);
void dvdloadGameSystem();
void movieDone(Game::MovieConfig*, unsigned long, unsigned long);
void movieDone(Game::MovieConfig*, u32, u32);
void advanceDayCount();
void saveToGeneratorCache(Game::CourseInfo*);
void pmTogglePlayer();
void setPlayerMode(int);
void onCameraBlendFinished(Game::CameraArg*);
void setFixNearFar(bool, float, float);
void setFixNearFar(bool, f32, f32);
void setCamController();
void setDefaultPSSceneInfo(PSGame::SceneInfo&);
void prepareHoleIn(Vector3<float>&, bool);
void prepareFountainOn(Vector3<float>&);
void prepareHoleIn(Vector3f&, bool);
void prepareFountainOn(Vector3f&);
void test_draw_treasure_detector();
void directDraw(Graphics& gfx, Viewport*);
void directDrawPost(Graphics& gfx, Viewport*);
void j3dSetView(Viewport*, bool);
void doSimulation(float);
void doSimulation(f32);
void doSimpleDraw(Viewport*);
void doAnimation();
void changeGeneratorCursor(Vector3<float>&);
void changeGeneratorCursor(Vector3f&);
void doEntry();
void doSetView(int viewportIndex);
void doViewCalc();
@ -165,7 +177,7 @@ struct BaseGameSection : public BaseHIOSection {
void setupFixMemory_dvdload();
void enableAllocHalt();
void disableAllocHalt();
void setupFloatMemory();
void setupf32Memory();
void setDrawBuffer(int);
void createFallPikminSound();
void captureRadarmap(Graphics& gfx);
@ -178,59 +190,62 @@ struct BaseGameSection : public BaseHIOSection {
void setDraw2DCreature(Game::Creature*);
void startZoomWindow();
void startKantei2D();
void onKanteiDone(Rect<float>&);
void onKanteiDone(Rect<f32>&);
BlendCamera* m_blendCamera; // _50
float m_blendFactor; // _54
bool m_blendCameraActive; // _58
DvdThreadCommand m_dvdThreadCommand; // _5C
IDelegate3<MovieConfig*, unsigned long, unsigned long>* _C8; // _C8
IDelegate3<MovieConfig*, unkptr, unsigned long>* _CC; // _CC
BlackFader* m_blackFader; // _D0
WipeInFader* m_wipeInFader; // _D4
WipeOutFader* m_wipeOutFader; // _D8
WipeOutInFader* m_wipeOutInFader; // _DC
u32 _E0; // _E0
int m_lastActiveNaviIndex; // _E4
float m_vp2YScale; // _E8
float m_split; // _EC
u8 m_setSplit; // _F0
JUTTexture* m_mizuTexture; // _F4
TreasureLight::Mgr* m_treasureLightMgr; // _F8
JKRHeap* m_theExpHeap; // _FC
JKRHeap* _100; // _100
PlayCamera* _104; // _104
PlayCamera* _108; // _108
Controller* _10C; // _10C
Controller* _110; // _110
int m_playerMode; // _114
HorizonalSplitter* m_splitter; // _118
u8 _11C; // _11C
int _120; // _120
u32 _124; // _124
u32 _PADDING00; // STRUCTURE SIZE IS WRONG BY 8 BYTES!
u32 _PADDING01; // STRUCTURE SIZE IS WRONG BY 8 BYTES!
GameLightMgr* m_lightMgr; // _128
Sys::DrawBuffers* _12C; // _12C
Sys::DrawBuffers* _130; // _130
int m_treasureGetState; // _134
Viewport* m_treasureGetViewport; // _138
Pellet* m_draw2DCreature; // _13C
float m_draw2DCreatureScale; // _140
float _144; // _144
Delegate1<BaseGameSection, Rectf&>* m_kanteiDelegate; // _148
ZoomCamera* m_treasureZoomCamera; // _14C
u8 _150[4]; // _150
JUTTexture* m_xfbImage; // _154
JUTTexture* m_fbTexture; // _158
int m_xfbTexture1; // _15C
int m_xfbTexture2; // _160
u8 _164; // _164
JUTTexture* _168; // _168
int m_texData1; // _16C
int _170; // _170
u8 _174[0xA8]; // _174
PikiContainer m_container; // _214
// _00 = VTBL
// _00-_48 = BaseHIOSection
// should there not be another 0x4 here in USA (not demo)? ...
BlendCamera* m_blendCamera; // _50
f32 m_blendFactor; // _54
bool m_blendCameraActive; // _58
DvdThreadCommand m_dvdThreadCommand; // _5C
IDelegate3<MovieConfig*, u32, u32>* _C8; // _C8
IDelegate3<MovieConfig*, unkptr, u32>* _CC; // _CC
BlackFader* m_blackFader; // _D0
WipeInFader* m_wipeInFader; // _D4
WipeOutFader* m_wipeOutFader; // _D8
WipeOutInFader* m_wipeOutInFader; // _DC
u32 _E0; // _E0
int m_lastActiveNaviIndex; // _E4
f32 m_vp2YScale; // _E8
f32 m_split; // _EC
u8 m_setSplit; // _F0
JUTTexture* m_mizuTexture; // _F4
TreasureLight::Mgr* m_treasureLightMgr; // _F8
JKRHeap* m_theExpHeap; // _FC
JKRHeap* _100; // _100
PlayCamera* _104; // _104
PlayCamera* _108; // _108
Controller* _10C; // _10C
Controller* _110; // _110
int m_playerMode; // _114
HorizonalSplitter* m_splitter; // _118
u8 _11C; // _11C
int _120; // _120
u32 _124; // _124
u32 _PADDING00; // STRUCTURE SIZE IS WRONG BY 8 BYTES!
u32 _PADDING01; // STRUCTURE SIZE IS WRONG BY 8 BYTES!
GameLightMgr* m_lightMgr; // _128
Sys::DrawBuffers* _12C; // _12C
Sys::DrawBuffers* _130; // _130
int m_treasureGetState; // _134
Viewport* m_treasureGetViewport; // _138
Pellet* m_draw2DCreature; // _13C
f32 m_draw2DCreatureScale; // _140
f32 _144; // _144
Delegate1<BaseGameSection, Rectf&>* m_kanteiDelegate; // _148
ZoomCamera* m_treasureZoomCamera; // _14C
u8 _150[4]; // _150
JUTTexture* m_xfbImage; // _154
JUTTexture* m_fbTexture; // _158
int m_xfbTexture1; // _15C
int m_xfbTexture2; // _160
u8 _164; // _164
JUTTexture* _168; // _168
int m_texData1; // _16C
int _170; // _170
u8 _174[0xA8]; // _174
PikiContainer m_container; // _214
};
} // namespace Game

View File

@ -15,14 +15,15 @@ struct HIORootNode;
struct BaseHIOSection : public Section {
BaseHIOSection(JKRHeap*);
virtual ~BaseHIOSection(); // _00
virtual bool doUpdate(); // _34
virtual void initHIO(HIORootNode*); // _40
virtual void refreshHIO(); // _44
virtual ~BaseHIOSection(); // _08
virtual bool doUpdate(); // _3C
virtual void initHIO(HIORootNode*); // _48
virtual void refreshHIO(); // _4C
void addGenNode(CNode*);
void createScreenRootNode();
void setDisplay(JFWDisplay*, int);
#if BUILDTARGET == USADEMO1
u8 _DemoPadding1[0x1C];
#endif
@ -40,7 +41,7 @@ struct BaseHIOSection : public Section {
struct HIORootNode : public CNode {
HIORootNode(Section*);
virtual ~HIORootNode() { } // _00
virtual ~HIORootNode() { } // _08 (weak)
Section* m_section; // _18
};

View File

@ -6,15 +6,25 @@
#include "Parameters.h"
#include "IDelegate.h"
#include "Vector3.h"
#include "Camera.h"
struct LookAtCamera;
struct Viewport;
namespace Game {
struct CameraArg;
struct CameraParms;
struct PlayCamera;
struct VibrationParms;
struct Navi;
struct CameraData {
f32 _00; // _00, normalCam?
f32 _04; // _04, camAngle1?
f32 _08; // _08, zoom?
f32 _0C; // _0C, FOV?
f32 _10; // _10, near plane?
f32 _14; // _14, far plane?
Vector3f m_lookAtPosition; // _18
int _24; // _24, zoom level?
int _28; // _28, angle Z?
};
/**
* @size{0x998}
@ -22,67 +32,67 @@ struct VibrationParms;
struct CameraParms : public Parameters {
CameraParms();
Parm<float> m_cnld;
Parm<float> m_cnla;
Parm<float> m_cnlf;
Parm<float> m_cnlo;
Parm<float> m_cnlw;
Parm<float> m_nldt;
Parm<float> m_nlnc;
Parm<float> m_nlfc;
Parm<float> m_cmld;
Parm<float> m_cmla;
Parm<float> m_cmlf;
Parm<float> m_cmlo;
Parm<float> m_cmlw;
Parm<float> m_mldt;
Parm<float> m_mlnc;
Parm<float> m_mlfc;
Parm<float> m_cfld;
Parm<float> m_cfla;
Parm<float> m_cflf;
Parm<float> m_cflo;
Parm<float> m_cflw;
Parm<float> m_fldt;
Parm<float> m_flnc;
Parm<float> m_flfc;
Parm<float> m_cnhd;
Parm<float> m_cnha;
Parm<float> m_cnhf;
Parm<float> m_cnho;
Parm<float> m_cnhw;
Parm<float> m_nhdt;
Parm<float> m_nhnc;
Parm<float> m_nhfc;
Parm<float> m_cmhd;
Parm<float> m_cmha;
Parm<float> m_cmhf;
Parm<float> m_cmho;
Parm<float> m_cmhw;
Parm<float> m_mhdt;
Parm<float> m_mhnc;
Parm<float> m_mhfc;
Parm<float> m_cfhd;
Parm<float> m_cfha;
Parm<float> m_cfhf;
Parm<float> m_cfho;
Parm<float> m_cfhw;
Parm<float> m_fhdt;
Parm<float> m_fhnc;
Parm<float> m_fhfc;
Parm<float> m_zmdt;
Parm<float> m_zman;
Parm<float> m_zmfv;
Parm<float> m_clcr;
Parm<float> m_clms;
Parm<float> m_clmh;
Parm<float> m_clnh;
Parm<float> m_cpmd;
Parm<float> m_cmmt;
Parm<float> m_cmft;
Parm<float> m_cmta;
Parm<float> m_cmtm;
Parm<float> m_cmtb;
Parm<f32> m_cnld;
Parm<f32> m_cnla;
Parm<f32> m_cnlf;
Parm<f32> m_cnlo;
Parm<f32> m_cnlw;
Parm<f32> m_nldt;
Parm<f32> m_nlnc;
Parm<f32> m_nlfc;
Parm<f32> m_cmld;
Parm<f32> m_cmla;
Parm<f32> m_cmlf;
Parm<f32> m_cmlo;
Parm<f32> m_cmlw;
Parm<f32> m_mldt;
Parm<f32> m_mlnc;
Parm<f32> m_mlfc;
Parm<f32> m_cfld;
Parm<f32> m_cfla;
Parm<f32> m_cflf;
Parm<f32> m_cflo;
Parm<f32> m_cflw;
Parm<f32> m_fldt;
Parm<f32> m_flnc;
Parm<f32> m_flfc;
Parm<f32> m_cnhd;
Parm<f32> m_cnha;
Parm<f32> m_cnhf;
Parm<f32> m_cnho;
Parm<f32> m_cnhw;
Parm<f32> m_nhdt;
Parm<f32> m_nhnc;
Parm<f32> m_nhfc;
Parm<f32> m_cmhd;
Parm<f32> m_cmha;
Parm<f32> m_cmhf;
Parm<f32> m_cmho;
Parm<f32> m_cmhw;
Parm<f32> m_mhdt;
Parm<f32> m_mhnc;
Parm<f32> m_mhfc;
Parm<f32> m_cfhd;
Parm<f32> m_cfha;
Parm<f32> m_cfhf;
Parm<f32> m_cfho;
Parm<f32> m_cfhw;
Parm<f32> m_fhdt;
Parm<f32> m_fhnc;
Parm<f32> m_fhfc;
Parm<f32> m_zmdt;
Parm<f32> m_zman;
Parm<f32> m_zmfv;
Parm<f32> m_clcr;
Parm<f32> m_clms;
Parm<f32> m_clmh;
Parm<f32> m_clnh;
Parm<f32> m_cpmd;
Parm<f32> m_cmmt;
Parm<f32> m_cmft;
Parm<f32> m_cmta;
Parm<f32> m_cmtm;
Parm<f32> m_cmtb;
u32 _994;
};
@ -92,41 +102,131 @@ struct CameraParms : public Parameters {
struct VibrationParms : public Parameters {
VibrationParms();
Parm<float> m_elevationLightVib;
Parm<float> m_elevationMiddleVib;
Parm<float> m_elevationHardVib;
Parm<float> m_elevationSlowSpeed;
Parm<float> m_elevationMiddleSpeed;
Parm<float> m_elevationFastSpeed;
Parm<float> m_elevationShortTime;
Parm<float> m_elevationMiddleTime;
Parm<float> m_elevationLongTime;
Parm<float> m_elevationHardVib2;
Parm<float> m_elevationHardSpeed;
Parm<float> m_elevationHardTime;
Parm<float> m_zoomShortVib;
Parm<float> m_zoomShortSpeed;
Parm<float> m_zoomShortTime;
Parm<float> m_azimuthShortVib;
Parm<float> m_azimuthShortSpeed;
Parm<float> m_azimuthShortTime;
Parm<float> m_vibMaxDistance;
Parm<f32> m_elevationLightVib;
Parm<f32> m_elevationMiddleVib;
Parm<f32> m_elevationHardVib;
Parm<f32> m_elevationSlowSpeed;
Parm<f32> m_elevationMiddleSpeed;
Parm<f32> m_elevationFastSpeed;
Parm<f32> m_elevationShortTime;
Parm<f32> m_elevationMiddleTime;
Parm<f32> m_elevationLongTime;
Parm<f32> m_elevationHardVib2;
Parm<f32> m_elevationHardSpeed;
Parm<f32> m_elevationHardTime;
Parm<f32> m_zoomShortVib;
Parm<f32> m_zoomShortSpeed;
Parm<f32> m_zoomShortTime;
Parm<f32> m_azimuthShortVib;
Parm<f32> m_azimuthShortSpeed;
Parm<f32> m_azimuthShortTime;
Parm<f32> m_vibMaxDistance;
u32 _304;
};
struct PlayCamera : public LookAtCamera {
PlayCamera(Navi*);
virtual ~PlayCamera(); // _08 (weak)
virtual Vector3f getLookAtPosition_(); // _58 (weak)
virtual bool isSpecialCamera(); // _70
virtual void updateMatrix(); // _74
virtual void doUpdate(); // _78
virtual void startVibration(int); // _7C (weak)
virtual void init(); // _80
void setCameraParms(CameraParms*);
void setVibrationParms(VibrationParms*);
void setCameraAngle(f32);
void getCameraData(CameraData&);
void setCameraData(CameraData&);
void changePlayerMode(bool);
void noUpdate();
void isVibration();
void startVibration(int, f32);
void startDemoCamera(int);
void finishDemoCamera();
void updateCameraMode();
void startZoomCamera();
void startGameCamera(int);
void setTargetParms();
void setTargetThetaToWhistle();
void setFollowTime();
void setSmoothThetaSpeed();
void changeTargetTheta();
void changeTargetAtPosition();
void updateParms(int);
void updateVibration(int);
void otherVibFinished(int);
void isModCameraFinished();
void setCollisionCameraTargetPhi(int);
void getCollisionCameraTargetPhi(f32, f32);
// _00 = VTBL
// _00-_198 = LookAtCamera
Navi* m_navi; // _198
int _19C; // _19C
int _1A0; // _1A0
u32 _1A4; // _1A4
f32 _1A8; // _1A8
f32 _1AC; // _1AC
f32 _1B0; // _1B0
f32 _1B4; // _1B4
f32 _1B8; // _1B8
f32 _1BC; // _1BC
f32 _1C0; // _1C0
f32 _1C4; // _1C4
f32 _1C8; // _1C8
f32 _1CC; // _1CC
f32 _1D0; // _1D0
f32 _1D4; // _1D4
f32 _1D8; // _1D8
f32 _1DC; // _1DC, follow time?
f32 _1E0; // _1E0
Vector3f _1E4; // _1E4
u8 _1F0; // _1F0
u8 _1F1; // _1F1
u8 _1F2; // _1F2
f32 _1F4; // _1F4, vibration azimuth short speed?
f32 _1F8; // _1F8, vibration elevation speed?
f32 _1FC; // _1FC, vibration zoom short speed?
f32 _200; // _200
f32 _204; // _204
f32 _208; // _208
f32 _20C; // _20C
f32 _210; // _210
f32 _214; // _214
f32 _218; // _218
f32 _21C; // _21C
f32 _220; // _220
f32 _224; // _224, vibration azimuth short time?
f32 _228; // _228, vibration elevation time?
f32 _22C; // _22C, vibration zoom short time?
f32 _230; // _230
f32 _234; // _234
f32 _238; // _238
f32 _23C; // _23C, vibration azimuth short vib?
f32 _240; // _240, vibration elevation vib?
f32 _244; // _244, vibration zoom short vib?
u8 _248; // _248
u8 _249; // _249
CameraParms* m_cameraParms; // _24C
VibrationParms* m_vibrationParms; // _250
};
/**
* @size{0x3C}
*/
struct CameraMgr : public CNode {
CameraMgr();
virtual ~CameraMgr() {}; // _00
// virtual void _08() = 0; // _08
virtual ~CameraMgr() {}; // _08
// virtual void _10() = 0; // _10
void loadResource();
void setViewport(Viewport*, int);
void init(int);
void setCameraAngle(float, int);
void setCameraAngle(f32, int);
void update();
void startVibration(int, Vector3f&, int);
void startVibration(int, int);
@ -143,6 +243,8 @@ struct CameraMgr : public CNode {
void readCameraParms(char*);
void readParameter(Stream&);
// _00 = VTBL
// _00-_18 = CNode
int _18; // _18
void** _1C; // _1C
Viewport** _20; // _20

View File

@ -33,8 +33,8 @@ struct BaseGen : public CNode {
Type m_spawnType; // _18
Vector3f m_position; // _1C
float m_angle; // _28
float m_radius; // _2C
f32 m_angle; // _28
f32 m_radius; // _2C
int m_minimum; // _30
int m_maximum; // _34
};
@ -76,7 +76,7 @@ struct GateInfo : CNode {
virtual void read(Stream&); // _10
int m_caveID; // _18
float m_life; // _1C
f32 m_life; // _1C
int m_weight; // _20
};
@ -107,7 +107,7 @@ struct FloorInfo : CNode {
Parm<int> m_gateMax; // _0AC /* f004 */
Parm<int> m_capMax; // _0D4 /* f014 */
Parm<int> m_roomCount; // _0FC /* f005 */
Parm<float> m_routeRatio; // _124 /* f006 */
Parm<f32> m_routeRatio; // _124 /* f006 */
Parm<int> m_hasEscapeFountain; // _14C /* f007 */
ParmString m_caveUnitFile; // _174 /* f008 */
ParmString m_lightingFile; // _194 /* f009 */
@ -119,10 +119,10 @@ struct FloorInfo : CNode {
ParmEnum m_floorHidden; // _244 /* f013 */
Parm<int> m_version; // _268 /* f015 */
Parm<float> m_waterwraithTimer; // _290 /* f016 */
Parm<int> m_glitchySeesaw; // _2B8 /* f017 */
void* m_end; // _2E0
Parm<int> m_version; // _268 /* f015 */
Parm<f32> m_waterwraithTimer; // _290 /* f016 */
Parm<int> m_glitchySeesaw; // _2B8 /* f017 */
void* m_end; // _2E0
};
FloorInfo();
@ -150,7 +150,7 @@ struct FloorInfo : CNode {
CapInfo* getCapInfo(int);
int getRoomNum();
float getRouteRatio();
f32 getRouteRatio();
bool hasEscapeFountain(int);
bool hasHiddenCollision();
bool useKaidanBarrel();
@ -169,11 +169,13 @@ struct CaveInfo : CNode {
/* Erased? */
struct Parms : Parameters {
inline Parms();
Parm<int> m_floorMax; // _0C
void* m_end; // _34
};
CaveInfo();
virtual ~CaveInfo(); // _08 (weak)
virtual void read(Stream&); // _10

View File

@ -69,12 +69,12 @@ struct DoorNode : public CNode {
* @size{0x18}
*/
struct FixObjNode : public ObjectLayoutNode {
virtual ~FixObjNode() { } // _08 (weak)
virtual int getObjectId(); // _10 (weak)
virtual u32 getObjectType(); // _14 (weak)
virtual int getBirthCount(); // _18 (weak)
virtual float getDirection(); // _1C (weak)
virtual void getBirthPosition(float&, float&); // _24 (weak)
virtual ~FixObjNode() { } // _08 (weak)
virtual int getObjectId(); // _10 (weak)
virtual u32 getObjectType(); // _14 (weak)
virtual int getBirthCount(); // _18 (weak)
virtual f32 getDirection(); // _1C (weak)
virtual void getBirthPosition(f32&, f32&); // _24 (weak)
};
/**
@ -95,12 +95,12 @@ struct GateNode : public ObjectLayoutNode {
virtual int getObjectId(); // _10
virtual u32 getObjectType(); // _14
virtual int getBirthCount(); // _18
virtual float getDirection(); // _1C
virtual f32 getDirection(); // _1C
virtual int getBirthDoorIndex(); // _20
GateUnit* m_unit; // _18
float m_direction; // _1C
int m_index; // _20
GateUnit* m_unit; // _18
f32 m_direction; // _1C
int m_index; // _20
};
/**
@ -117,19 +117,19 @@ struct ItemNode : public ObjectLayoutNode {
ItemNode();
ItemNode(ItemUnit*, BaseGen*, int);
virtual ~ItemNode() { } // _08 (weak)
virtual int getObjectId(); // _10
virtual u32 getObjectType(); // _14
virtual int getBirthCount(); // _18
virtual float getDirection(); // _1C
virtual void getBirthPosition(float&, float&); // _24
virtual ~ItemNode() { } // _08 (weak)
virtual int getObjectId(); // _10
virtual u32 getObjectType(); // _14
virtual int getBirthCount(); // _18
virtual f32 getDirection(); // _1C
virtual void getBirthPosition(f32&, f32&); // _24
void makeGlobalData(MapNode*);
ItemUnit* m_unit; // _18
BaseGen* m_generator; // _1C
u32 m_birthCount; // _20
float m_direction; // _24
f32 m_direction; // _24
Vector3f m_position; // _28
};
@ -193,14 +193,14 @@ struct MapNode : public CNode {
void setNodeScore(int);
void copyNodeScoreToVersusScore();
void subNodeScoreToVersusScore();
void draw(float, float, float);
void draw(f32, f32, f32);
int getNodeOffsetX();
int getNodeOffsetY();
void getEnemyScore();
void getNodeScore();
void getVersusScore();
char* getUnitName();
void getNodeCentreOffset(float&, float&);
void getNodeCentreOffset(f32&, f32&);
void getDirection();
Vector3f getBaseGenGlobalPosition(BaseGen*);
void getDoorGlobalPosition(int);
@ -244,17 +244,17 @@ struct EnemyNode : public ObjectLayoutNode {
EnemyNode();
EnemyNode(EnemyUnit*, BaseGen*, int);
virtual ~EnemyNode() { } // _08 (weak)
virtual int getObjectId(); // _10
virtual u32 getObjectType(); // _14
virtual int getBirthCount(); // _18
virtual float getDirection(); // _1C
virtual int getBirthDoorIndex(); // _20
virtual void getBirthPosition(float&, float&); // _24
virtual u32 getExtraCode(); // _28
virtual ~EnemyNode() { } // _08 (weak)
virtual int getObjectId(); // _10
virtual u32 getObjectType(); // _14
virtual int getBirthCount(); // _18
virtual f32 getDirection(); // _1C
virtual int getBirthDoorIndex(); // _20
virtual void getBirthPosition(f32&, f32&); // _24
virtual u32 getExtraCode(); // _28
void makeGlobalData(Game::Cave::MapNode*);
void setGlobalData(Vector3f&, float);
void setGlobalData(Vector3f&, f32);
void setBirthDoorIndex(int);
inline TekiInfo* getTekiInfo() { return m_enemyUnit->m_tekiInfo; }
@ -263,7 +263,7 @@ struct EnemyNode : public ObjectLayoutNode {
BaseGen* m_baseGen; // _1C
int m_birthDoorIndex; // _20
int m_birthCount; // _24
float m_direction; // _28
f32 m_direction; // _28
Vector3f m_birthPos; // _2C
};
} // namespace Cave

View File

@ -12,15 +12,15 @@ namespace Game {
* @size{0x18}
*/
struct ObjectLayoutNode : public CNode {
virtual ~ObjectLayoutNode() { } // _08 (weak)
virtual int getObjectId() = 0; // _10
virtual u32 getObjectType() = 0; // _14
virtual int getBirthCount() = 0; // _18
virtual float getDirection() { return 0.0f; } // _1C (weak)
virtual int getBirthDoorIndex() { return -1; } // _20 (weak)
virtual void getBirthPosition(float&, float&) { } // _24 (weak)
virtual u32 getExtraCode() { return 0; } // _28 (weak)
virtual bool isFixedBattery() { return false; } // _2C (weak)
virtual ~ObjectLayoutNode() { } // _08 (weak)
virtual int getObjectId() = 0; // _10
virtual u32 getObjectType() = 0; // _14
virtual int getBirthCount() = 0; // _18
virtual f32 getDirection() { return 0.0f; } // _1C (weak)
virtual int getBirthDoorIndex() { return -1; } // _20 (weak)
virtual void getBirthPosition(f32&, f32&) { } // _24 (weak)
virtual u32 getExtraCode() { return 0; } // _28 (weak)
virtual bool isFixedBattery() { return false; } // _2C (weak)
};
/**
@ -57,7 +57,7 @@ struct UnitInfo {
int getUnitRotation();
DoorNode* getDoorNode(int doorNum);
BaseGen* getBaseGen();
void draw(float, float, float, float);
void draw(f32, f32, f32, f32);
DoorNode* m_doorNode; // _00
AdjustNode* m_doorCounts; // _04

View File

@ -80,12 +80,12 @@ struct RandMapMgr : public CNode {
void create();
int getNumRooms();
char* getUseUnitName(int);
char* getRoomData(int, float&, float&, int&);
char* getRoomData(int, f32&, f32&, int&);
RoomLink* makeRoomLink(int);
ObjectLayoutInfo* makeObjectLayoutInfo(int);
void getStartPosition(Vector3f&, int);
void getItemDropPosition(Vector3f&, float, float);
void getItemDropPosition(Vector3f*, int, float, float);
void getItemDropPosition(Vector3f&, f32, f32);
void getItemDropPosition(Vector3f*, int, f32, f32);
void setUnitTexture(int, JUTTexture*);
void setCaptureOn();
void captureRadarMap(Graphics&);
@ -93,8 +93,8 @@ struct RandMapMgr : public CNode {
void isVersusHiba();
void getRadarMapTexture();
void radarMapPartsOpen(Vector3f&);
void getPositionOnTex(Vector3f&, float&, float&);
void getBaseGenData(Vector3f*, float*);
void getPositionOnTex(Vector3f&, f32&, f32&);
void getBaseGenData(Vector3f*, f32*);
void drawFrameBuffer(Graphics&);
MapUnitGenerator* m_mapUnitGenerator; // _18
@ -118,7 +118,7 @@ struct RandMapDraw {
RandMapDraw(MapUnitGenerator* generator);
void radarMapPartsOpen(Vector3f& vec);
void draw(struct Graphics& gfx, float x, float y, float z);
void draw(struct Graphics& gfx, f32 x, f32 y, f32 z);
MapUnitGenerator* m_generator; // _00
};

View File

@ -100,11 +100,11 @@ struct RandMapUnit {
int m_doorCountMaybe; // _00
int m_roomCount; // _04
float m_routeRatio; // _08
f32 m_routeRatio; // _08
bool m_mapHasDiameter36; // _0C
bool m_needsLoopMapNodeCheck; // _0D
int m_capCandidateCount; // _10
float m_capMax; // _14, between 0.0 and 1.0
f32 m_capMax; // _14, between 0.0 and 1.0
MapNode** m_capCandidateNodes; // _18
int* m_capCandidateDoorIndices; // _1C
MapUnitGenerator* m_mapUnitGenerator; // _20

View File

@ -41,7 +41,6 @@ struct CellObject;
struct CollEvent;
struct Creature;
struct CreatureInitArg;
struct CreatureKillArg;
struct Footmarks;
struct Generator;
struct Interaction;
@ -67,16 +66,24 @@ enum CreatureFlags {
CF_IS_DEBUG_COLLISION = 0x80000000
};
struct CreatureInitArg {
virtual const char* getName() = 0; // _08
// _00 = VTBL
};
struct CreatureKillArg {
inline CreatureKillArg(int p1)
: _04(p1)
{
}
virtual const char* getName() // _00
virtual const char* getName() // _08 (weak)
{
return "CreatureKillArg";
}
// _00 = VTBL
int _04; // _04
};

View File

@ -60,7 +60,7 @@ struct CreatureParms {
CreatureProperty m_creatureProps;
virtual void read(Stream& input) // _00
virtual void read(Stream& input) // _08 (weak)
{
m_creatureProps.m_props.read(input);
};

View File

@ -1,7 +1,7 @@
#ifndef _GAME_FAKEPIKI_H
#define _GAME_FAKEPIKI_H
#include "Game/AABBWaterBox.h"
#include "Game/WaterBox.h"
#include "Game/Creature.h"
#include "SysShape/MotionListener.h"
#include "Game/shadowMgr.h"

104
include/Game/GameLight.h Normal file
View File

@ -0,0 +1,104 @@
#ifndef _GAME_GAMELIGHT_H
#define _GAME_GAMELIGHT_H
#include "types.h"
#include "Light.h"
#include "CNode.h"
#include "Game/GameLightSetting.h"
struct Color4;
namespace Game {
struct GameLightMgr;
struct GameLightEventArg {
u8 _00; // _00
u8 _01; // _01
f32 _04; // _04
f32 _08; // _08
f32 _0C; // _0C
f32 _10; // _10, start time?
f32 _14; // _14, end time?
f32 _18; // _18, start Z?
f32 _1C; // _1C, end Z?
u32 _20; // _20, unknown
f32 _24; // _24, distance?
};
struct GameLightEventNode : public CNode {
GameLightEventNode();
virtual ~GameLightEventNode(); // _08 (weak)
void update(GameLightMgr*);
void updateCommon(GameLightMgr*, bool);
void calcColor(Color4*);
// _00 = VTBL
// _00-_18 = CNode
u8 _18; // _18
u8 _19; // _19
f32 _1C; // _1C, color 1 scale?
f32 _20; // _20, color 2 scale?
f32 _24; // _24, color 3 scale?
f32 _28; // _28
f32 _2C; // _2C
f32 _30; // _30, nearZ?
f32 _34; // _34, farZ?
u32 _38; // _38, unknown
f32 _3C; // _3C
f32 _40; // _40, timer?
f32 _44; // _44, angle?
f32 _48; // _48
int _4C; // _4C
};
struct GameLightSpotSetting : public CNode {
GameLightSpotSetting(char*);
virtual ~GameLightSpotSetting(); // _08 (weak)
};
struct GameLightSunSetting : public CNode {
virtual ~GameLightSunSetting(); // _08 (weak)
};
struct GameLightTimeSetting : public CNode {
GameLightTimeSetting();
virtual ~GameLightTimeSetting(); // _08 (weak)
};
struct GameLightMgrSetting : public CNode {
GameLightMgrSetting();
virtual ~GameLightMgrSetting(); // _08 (weak)
virtual void read(Stream&); // _10
void updateNode();
void readOldVersion(ID32, Stream&);
};
struct GameLightMgr : public LightMgr {
GameLightMgr(char*);
virtual ~GameLightMgr(); // _08 (weak)
virtual void update(); // _10
virtual void set(Graphics&); // _14
void start();
void createEventLight(GameLightEventArg&);
void loadParm(Stream&);
void calcSetting(GameLightTimeSetting*, GameLightTimeSetting*, GameLightTimeSetting*);
void updateSunType();
void updateSpotType();
void updatePosition(Viewport*);
// _00 = VTBL
// _00-_50 = LightMgr
u8 _50[0x2344 - 0x50];
FogMgr* m_fogMgr; // _2344
};
} // namespace Game
#endif

View File

@ -0,0 +1,67 @@
#ifndef _GAME_GAMELIGHTSETTING_H
#define _GAME_GAMELIGHTSETTING_H
#include "types.h"
#include "Parameters.h"
#include "stream.h"
namespace Game {
struct GameLightSettingBase {
struct Settings : public Parameters {
inline Settings(); // probably
Parm<int> m_red; // _0C, u800
Parm<int> m_green; // _34, u801
Parm<int> m_blue; // _5C, u802
Parm<int> m_alpha; // _84, u803
};
Settings m_settings; // _00
// _B0 = VTBL
virtual void read(Stream&); // _08 (weak)
};
struct GameDiffuseLightSetting : public GameLightSettingBase {
// _B0 = VTBL
// _00-_B4 = GameLightSettingBase
};
struct GameFogSetting : public GameLightSettingBase {
GameFogSetting();
virtual void read(Stream&); // _08 (weak)
// _B0 = VTBL
// _00-_B4 = GameLightSettingBase
};
struct GameLightAmbientSetting : public GameLightSettingBase {
// _B0 = VTBL
// _00-_B4 = GameLightSettingBase
};
struct GameShadowSetting : public GameLightSettingBase {
virtual void read(Stream&); // _08 (weak)
// _B0 = VTBL
// _00-_B4 = GameLightSettingBase
};
struct GameSpecLightSetting : public GameLightSettingBase {
// _B0 = VTBL
// _00-_B4 = GameLightSettingBase
};
struct GameSpotLightSetting : public GameLightSettingBase {
virtual void read(Stream&); // _08 (weak)
// _B0 = VTBL
// _00-_B4 = GameLightSettingBase
};
} // namespace Game
#endif

View File

@ -5,13 +5,12 @@
namespace Game {
struct ItemGateMgr : public BaseItemMgr {
virtual void doAnimation(); // _08
virtual void doEntry(); // _0C
virtual void doSetView(int); // _10
virtual void doViewCalc(); // _14
virtual void doSimulation(float); // _18
virtual void doDirectDraw(Graphics&); // _1C
virtual void doAnimation(); // _08
virtual void doEntry(); // _0C
virtual void doSetView(int); // _10
virtual void doViewCalc(); // _14
virtual void doSimulation(float); // _18
virtual void doDirectDraw(Graphics&); // _1C
virtual void initDependency(); // _38
virtual u32 generatorGetID() = 0; // _58
virtual BaseItem* generatorBirth(Vector3f&, Vector3f&, GenItemParm*) = 0; // _5C
@ -24,6 +23,8 @@ struct ItemGateMgr : public BaseItemMgr {
// _00 VTBL
};
extern ItemGateMgr* itemGateMgr;
} // namespace Game
#endif

View File

@ -126,16 +126,10 @@ struct PelletIterator {
int m_index; // _0C
};
struct CreatureInitArg {
virtual const char* getName() = 0; // _08
// _00 VTBL
};
/**
* @size{0x28}
*/
struct PelletInitArg : CreatureInitArg {
struct PelletInitArg : public CreatureInitArg {
PelletInitArg()
{
_1C = 0;

View File

@ -1,15 +0,0 @@
#ifndef _GAME_PLAYDATA_H
#define _GAME_PLAYDATA_H
#include "types.h"
namespace Game {
typedef struct PlayData;
struct PlayData {
bool hasDope(int);
int getDopeCount(int);
void useDope(int);
int getCurrentCourseIndex();
};
extern PlayData* playData;
} // namespace Game
#endif

View File

@ -14,7 +14,7 @@ struct StateArg {
f32 f32;
void* ptr;
} _00; // _00 - EarthquakeState::init requires this to be a float - could be a union or bitflag?
// short _04; // _04
// short _04; // _04
};
template <typename T> struct FSMState {

View File

@ -1,16 +0,0 @@
#ifndef _GAME_TPOSITIONOBJECT_H
#define _GAME_TPOSITIONOBJECT_H
#include "Vector3.h"
#include "SweepPrune.h"
namespace Game {
struct TPositionObject {
virtual Vector3f getPosition() = 0; // _08
// VTBL _00
SweepPrune::Object m_sweepPruneObject; // _04
};
} // namespace Game
#endif

View File

@ -1,40 +1,224 @@
#ifndef _GAME_VSGAME_VSGAME_H
#define _GAME_VSGAME_VSGAME_H
#include "Graphics.h"
#include "Vector3.h"
#include "stream.h"
#include "CNode.h"
#include "Game/PikiContainer.h"
#include "Game/StateMachine.h"
#include "Game/VsGameSection.h"
namespace ItemHole {
struct Item;
}
struct JUTTexture;
struct LightObj;
namespace Game {
namespace ItemHole {
struct Item;
} // namespace ItemHole
struct MovieConfig;
namespace VsGame {
struct GameState : public FSMState<GameState> {
struct TekiNode : public CNode {
virtual ~TekiNode(); // _08 (weak)
// _00 = VTBL
// _00-_18 = CNode
u32 m_enemyID; // _18, probably EnemyTypeID?
int _1C; // _1C
int m_nodeID; // _20
};
struct TekiMgr {
TekiNode m_node; // _00
int m_nodeCount; // _24
};
struct CardMgr {
struct SlotMachine {
SlotMachine();
void clear();
void start();
void startStop();
void update();
void updateAppear();
void startZoomIn();
void startZoomUse();
void updateZoomIn();
void updateZoomUse();
f32 _00; // _00
u8 _04[0x8]; // _04, unknown
f32 _0C; // _0C
f32 _10; // _10
f32 _14; // _14
u8 _18[0x4]; // _18, unknown
u32 _1C; // _1C, unknown
int _20; // _20
u8 _24[0x8]; // _24, unknown
f32 _2C; // _2C
u8 _30[0xC]; // _30, unknown
f32 _3C; // _3C, timer?
f32 _40; // _40
f32 _44; // _44
f32 _48; // _48
int _4C; // _4C, maybe currentSlotIndex?
u8 _50; // _50, unknown
u8 _51; // _51
f32 _54; // _54
u8 _58[0x4]; // _58, unknown
int m_playerIndex; // _5C
CardMgr* _60; // _60
u32 _64; // _64
f32 _68; // _68
f32 _6C; // _6C
};
CardMgr(VsGameSection*, TekiMgr*);
void loadResource();
void update();
void draw(Graphics&);
void stopSlot(int);
void usePlayerCard(int, TekiMgr*);
void gotPlayerCard(int);
void initDraw();
void drawSlot(Graphics&, Vector3f&, SlotMachine&);
u32 _00; // _00, unknown
JUTTexture** _04; // _04, slot textures?
JUTTexture* _08; // _08
JUTTexture* _0C; // _0C
JUTTexture* _10; // _10
JUTTexture* _14; // _14
SlotMachine _18[2]; // _18
int _F8; // _F8
Vector3f* _FC; // _FC, array of 0x100 vectors?
Vector3f* _100; // _100, array of 0x100 vectors?
f32 _104; // _104
LightObj* m_lightObj; // _108
VsGameSection* m_section; // _10C
TekiMgr* m_tekiMgr; // _110
};
struct StageData : public CNode {
virtual ~StageData(); // _08 (weak)
// _00 = VTBL
// _00-_18 = CNode
PikiContainer m_pikiContainer; // _18
char m_caveInfoFilename[64]; // _20, default = "caveinfo.txt"
f32 m_timeLimit; // _60
int m_startNumBitter; // _64
int m_startNumSpicy; // _68
int m_index2D; // _6C
char m_stageLayoutFilePath[64]; // _70
int m_startNumYellowMarbles; // _B0
};
struct StageList : public CNode {
StageList();
virtual ~StageList(); // _08 (weak)
void read(Stream&);
void getStageData(int);
// _00 = VTBL
// _00-_18 = CNode
StageData m_stageData;
};
/////////////////////////////////////////////////////////////////
// STATE MACHINE DEFINITIONS
struct FSM : public StateMachine<VsGameSection> {
virtual void init(VsGameSection*); // _08
virtual void transit(VsGameSection*, int, StateArg*); // _14
};
struct State : public FSMState<VsGameSection> {
virtual void draw(VsGameSection*, Graphics&); // _20 (weak)
virtual void pre2dDraw(Graphics&, VsGameSection*); // _24 (weak)
virtual void onOrimaDown(VsGameSection*, int); // _28 (weak)
virtual void onMovieStart(VsGameSection*, MovieConfig*, u32, u32); // _2C (weak)
virtual void onMovieDone(VsGameSection*, MovieConfig*, u32, u32); // _30 (weak)
virtual void onNextFloor(VsGameSection*, ItemHole::Item*); // _34 (weak)
virtual void on_section_fadeout(VsGameSection*); // _38 (weak)
virtual void goingToCave(VsGameSection*); // _3C (weak)
virtual void onBattleFinished(VsGameSection*, int, bool); // _40 (weak)
virtual void onRedOrBlueSuckStart(VsGameSection*, int, bool); // _44 (weak)
virtual void isCardUsable(VsGameSection*); // _48 (weak)
};
struct GameState : public State {
GameState();
virtual void draw(VsGameSection*, struct Graphics&); // _00
virtual void pre2dDraw(Graphics&, VsGameSection*); // _04
virtual void onOrimaDown(VsGameSection*, int); // _08
virtual void onMovieStart(VsGameSection*, struct MovieConfig*, unsigned long,
unsigned long); // _0C
virtual void onMovieDone(VsGameSection*, MovieConfig*, unsigned long,
unsigned long); // _10
virtual void onNextFloor(VsGameSection*, ItemHole::Item*); // _14
virtual void on_section_fadeout(VsGameSection*); // _18
virtual void goingToCave(VsGameSection*); // _1C
virtual void onBattleFinished(VsGameSection*, int, bool); // _20
virtual void onRedOrBlueSuckStart(VsGameSection*, int, bool); // _24
virtual void isCardUsable(VsGameSection*); // _28
virtual void drawStatus(Graphics&, VsGameSection*); // _2C
virtual void do_init(VsGameSection*); // _30
virtual void draw(VsGameSection*, Graphics&); // _20
virtual void pre2dDraw(Graphics&, VsGameSection*); // _24
virtual void onOrimaDown(VsGameSection*, int); // _28
virtual void onMovieStart(VsGameSection*, MovieConfig*, u32, u32); // _2C
virtual void onMovieDone(VsGameSection*, MovieConfig*, u32, u32); // _30
virtual void onNextFloor(VsGameSection*, ItemHole::Item*); // _34
virtual void on_section_fadeout(VsGameSection*); // _38 (weak)
virtual void goingToCave(VsGameSection*); // _3C
virtual void onBattleFinished(VsGameSection*, int, bool); // _40
virtual void onRedOrBlueSuckStart(VsGameSection*, int, bool); // _44
virtual void isCardUsable(VsGameSection*); // _48
virtual void drawStatus(Graphics&, VsGameSection*); // _4C
virtual void do_init(VsGameSection*); // _50
void clearLoseCauses();
void checkFindKeyDemo(VsGameSection*);
void checkSMenu(VsGameSection*);
void checkPikminZero(VsGameSection*);
void open_GameChallenge(VsGameSection*, int);
void update_GameChallenge(VsGameSection*);
};
struct VSState : public GameState {
VSState();
virtual void do_init(VsGameSection*); // _30
virtual void do_init(VsGameSection*); // _50
};
struct LoadState : public State {
LoadState();
virtual void init(VsGameSection*, StateArg*); // _08
virtual void exec(VsGameSection*); // _0C
virtual void cleanup(VsGameSection*); // _10
virtual void draw(VsGameSection*, Graphics&); // _20
void dvdLoad();
};
struct ResultState : public State {
ResultState();
virtual void init(VsGameSection*, StateArg*); // _08
virtual void exec(VsGameSection*); // _0C
virtual void cleanup(VsGameSection*); // _10
virtual void draw(VsGameSection*, Graphics&); // _20
void prepareMorimuraInfo(VsGameSection*);
void dvdload();
};
struct TitleState : public State {
TitleState();
virtual void init(VsGameSection*, StateArg*); // _08
virtual void exec(VsGameSection*); // _0C
virtual void cleanup(VsGameSection*); // _10
virtual void draw(VsGameSection*, Graphics&); // _20
void dvdload();
void execChallenge(VsGameSection*);
void execVs(VsGameSection*);
};
/////////////////////////////////////////////////////////////////
} // namespace VsGame
} // namespace Game

View File

@ -1,5 +1,5 @@
#ifndef _GAME_AABBWATERBOX_H
#define _GAME_AABBWATERBOX_H
#ifndef _GAME_WATERBOX_H
#define _GAME_WATERBOX_H
#include "BoundBox.h"
#include "Graphics.h"
@ -37,21 +37,21 @@ struct WaterBox {
return false;
}
virtual bool inWater2d(Sys::Sphere&); // _0C (weak)
virtual float getSeaLevel() = 0; // _10
virtual float* getSeaHeightPtr() = 0; // _14
virtual bool update() = 0; // _18
virtual void startDown(float); // _1C (weak)
virtual void startUp(float); // _20 (weak)
virtual f32 getSeaLevel() = 0; // _10
virtual f32* getSeaHeightPtr() = 0; // _14
virtual bool update() = 0; // _18
virtual void startDown(f32); // _1C (weak)
virtual void startUp(f32); // _20 (weak)
virtual void directDraw(Graphics&); // _24 (weak)
virtual void doAnimation(); // _28 (weak)
virtual void doEntry(); // _2C (weak)
virtual void doSetView(int); // _30 (weak)
virtual void doViewCalc(); // _34 (weak)
virtual void doSimulation(float); // _38 (weak)
virtual void doSimulation(f32); // _38 (weak)
virtual void doDirectDraw(Graphics&); // _3C (weak)
virtual void attachModel(J3DModelData*, Sys::MatTexAnimation*,
float); // _40 (weak)
virtual void calcMatrix(); // _44 (weak)
f32); // _40 (weak)
virtual void calcMatrix(); // _44 (weak)
u8 m_flags; // _04
};
@ -59,35 +59,35 @@ struct WaterBox {
struct AABBWaterBox : public WaterBox {
AABBWaterBox();
virtual bool inWater(Sys::Sphere&); // _08
virtual bool inWater2d(Sys::Sphere&); // _0C
virtual float getSeaLevel(); // _10 (weak)
virtual float* getSeaHeightPtr(); // _14 (weak)
virtual bool update(); // _18
virtual void startDown(float); // _1C
virtual void startUp(float); // _20
virtual void directDraw(Graphics&); // _24
virtual void doAnimation(); // _28
virtual void doEntry(); // _2C
virtual void doSetView(int); // _30
virtual void doViewCalc(); // _34
virtual void attachModel(J3DModelData*, Sys::MatTexAnimation*, float); // _40
virtual void calcMatrix(); // _44
virtual bool inWater(Sys::Sphere&); // _08
virtual bool inWater2d(Sys::Sphere&); // _0C
virtual f32 getSeaLevel(); // _10 (weak)
virtual f32* getSeaHeightPtr(); // _14 (weak)
virtual bool update(); // _18
virtual void startDown(f32); // _1C
virtual void startUp(f32); // _20
virtual void directDraw(Graphics&); // _24
virtual void doAnimation(); // _28
virtual void doEntry(); // _2C
virtual void doSetView(int); // _30
virtual void doViewCalc(); // _34
virtual void attachModel(J3DModelData*, Sys::MatTexAnimation*, f32); // _40
virtual void calcMatrix(); // _44
void globalise(Game::AABBWaterBox*, Matrixf&);
void create(Vector3f&, Vector3f&);
u16 _08; // _08
float _0C; // _0C
float _10; // _10
float _14; // _14
f32 _0C; // _0C
f32 _10; // _10
f32 _14; // _14
BoundBox m_bounds; // _18
float _30; // _30
float _34; // _34
float _38; // _38
float _3C; // _3C
float _40; // _40
f32 _30; // _30
f32 _34; // _34
f32 _38; // _38
f32 _3C; // _3C
f32 _40; // _40
Vector3f _44; // _44
SysShape::Model* m_model; // _50
Sys::MatLoopAnimator m_matAnimator; // _54

View File

@ -1,37 +0,0 @@
#ifndef _GAME_ZENMAI_H
#define _GAME_ZENMAI_H
#include "types.h"
namespace Sys {
struct Cylinder;
}
namespace Game {
struct EnemyBirthArg;
namespace Zenmai {
struct Mgr {
Mgr(int, unsigned char);
~Mgr();
void birth(Game::EnemyBirthArg&);
void createObj(int);
void doAlloc();
void doLoadBmd(void*);
void getEnemy(int);
void getEnemyTypeID();
};
struct Obj {
Obj();
~Obj();
void getEnemyTypeID();
void getLODCylinder(Sys::Cylinder&);
void setParameters();
};
} // namespace Zenmai
} // namespace Game
#endif

View File

@ -2,13 +2,13 @@
#define _GAME_CELLPYRAMID_H
#include "types.h"
#include "Game/TPositionObject.h"
#include "Sys/Sphere.h"
#include "SweepPrune.h"
#include "IDelegate.h"
#include "Graphics.h"
#include "Rect.h"
#include "Vector2.h"
#include "Vector3.h"
#include "BoundBox.h"
namespace Game {
@ -16,6 +16,13 @@ struct Cell;
struct CellObject;
struct CellPyramid;
struct TPositionObject {
virtual Vector3f getPosition() = 0; // _08
// VTBL _00
SweepPrune::Object m_sweepPruneObject; // _04
};
struct CollNode {
CollNode();
@ -105,15 +112,15 @@ struct CellObject : public TPositionObject {
m_cellLegs[3].m_object = this;
m_passID = 0;
}
// virtual Vector3f checkPosition() = 0; // _08
// virtual Vector3f getPosition() = 0; // _08
virtual void checkCollision(CellObject*) { } // _0C (weak)
virtual void getBoundingSphere(Sys::Sphere&) = 0; // _10
virtual bool collisionUpdatable() = 0; // _14
virtual bool isPiki() { return false; } // _18 (weak)
virtual bool isNavi() { return false; } // _1C (weak)
virtual bool deferPikiCollision() { return false; } // _20 (weak)
virtual char* getTypeName(); // _24
virtual u16 getObjType(); // _28
virtual char* getTypeName() = 0; // _24
virtual u16 getObjType() = 0; // _28
void exitCell();
float calcCollisionDistance(CellObject*);

View File

@ -30,16 +30,16 @@ struct CaveSaveData {
void write(Stream&);
void read(Stream&, u32);
bool m_isInCave; // _00
int m_currentCourse; // _04 // TODO: Should this be currentCourseIndex?
ID32 m_currentCaveID; // _08
PikiContainer _14; // _14
float m_time; // _1C
u8 m_isWaterwraithAlive; // _20
float m_waterwraithTimer; // _24
int m_currentFloor; // _28
u8 m_activeNaviID; // _2C
PikiContainer _30; // _30
bool m_isInCave; // _00
int m_currentCourse; // _04 // TODO: Should this be currentCourseIndex?
ID32 m_currentCaveID; // _08
PikiContainer _14; // _14
f32 m_time; // _1C
u8 m_isWaterwraithAlive; // _20
f32 m_waterwraithTimer; // _24
int m_currentFloor; // _28
u8 m_activeNaviID; // _2C
PikiContainer _30; // _30
};
struct KindCounter {
@ -107,8 +107,8 @@ struct OlimarData {
struct PelletCropMemory {
PelletCropMemory(int, int, int); // inlined
virtual void read(Stream&); // _00
virtual void write(Stream&); // _04
virtual void read(Stream&); // _08
virtual void write(Stream&); // _0C
void addTo(PelletCropMemory*);
int calcEarnKinds();
@ -120,6 +120,7 @@ struct PelletCropMemory {
void obtainPellet(Pellet*);
int calcNumKinds();
// _00 = VTBL
KindCounter _04; // _04
KindCounter _0C; // _0C
KindCounter _14; // _14
@ -128,9 +129,12 @@ struct PelletCropMemory {
struct PelletFirstMemory : public PelletCropMemory {
PelletFirstMemory(int, int, int); // inlined
bool firstCarryPellet(Pellet*);
void obtainPellet(BasePelletMgr*, int);
void losePellet(BasePelletMgr*, int);
virtual bool firstCarryPellet(Pellet*); // _10
virtual void obtainPellet(BasePelletMgr*, int); // _14
virtual void losePellet(BasePelletMgr*, int); // _18
// _00 = VTBL
// _00-_1C = PelletCropMemory
};
/**
@ -175,7 +179,7 @@ struct PlayData : public CNode {
PlayData();
virtual ~PlayData(); // _00
virtual ~PlayData(); // _08
bool isCompletePelletTrigger();
void construct();
@ -230,7 +234,7 @@ struct PlayData : public CNode {
void read_CaveOtakara(Stream&);
void write_CaveOtakara(Stream&);
int getRepayLevel();
float getRepayLevelPercent(int);
f32 getRepayLevelPercent(int);
bool checkRepayLevelFirstClear();
void experienceRepayLevelFirstClear();
void initLimitGens();
@ -267,7 +271,7 @@ struct PlayData : public CNode {
u8 _19; // _19
u32 _1C; // _1C
u8 _20; // _20
float m_naviLifeMax[2]; // _24
f32 m_naviLifeMax[2]; // _24
u8 m_hasContainerFlags; // _2C
u8 m_hasBootContainerFlags; // _2D
u8 m_meetPikminFlags; // _2E

View File

@ -1,15 +0,0 @@
#ifndef _GAME_ITEMGATE_H
#define _GAME_ITEMGATE_H
#include "Game/itemMgr.h"
namespace Game {
struct ItemGateMgr : public BaseItemMgr {
virtual char* getCaveName(int); // _6C
virtual int getCaveID(char*); // _70
};
extern ItemGateMgr* itemGateMgr;
} // namespace Game
#endif

View File

@ -1,7 +1,7 @@
#ifndef _GAME_SEAMGR_H
#define _GAME_SEAMGR_H
#include "Game/AABBWaterBox.h"
#include "Game/WaterBox.h"
#include "ObjectMgr.h"
#include "types.h"

View File

@ -2,31 +2,27 @@
#define _GAMEFLOW_H
#include "types.h"
#include "Section.h"
struct SectionInfo;
struct ISection;
struct Section;
struct JKRHeap;
struct ISectionMgr {
ISectionMgr() { }
virtual void run() = 0;
virtual ISection* getCurrentSection();
};
struct GameFlow : public ISectionMgr {
GameFlow();
virtual void run();
virtual ISection* getCurrentSection();
virtual void run(); // _08
virtual ISection* getCurrentSection(); // _0C (weak)
void setSection();
SectionInfo* getSectionInfo(int);
static ISection* createSection(JKRHeap*);
static u32 mActiveSectionFlag;
// _00 = VTBL
Section* m_section; // _04
};

14
include/HIORootNode.h Normal file
View File

@ -0,0 +1,14 @@
#ifndef _HIOROOTNODE_H
#define _HIOROOTNODE_H
#include "types.h"
#include "CNode.h"
struct HIORootNode : public CNode {
virtual ~HIORootNode(); // _08 (weak)
// _00 = VTBL
// _00-_18 = CNode
};
#endif

View File

@ -4,19 +4,19 @@
#include "types.h"
struct IDelegate {
virtual void invoke() = 0;
virtual void invoke() = 0; // _08
};
template <typename A> struct IDelegate1 {
virtual void invoke(A) = 0;
virtual void invoke(A) = 0; // _08
};
template <typename A, typename B> struct IDelegate2 {
virtual void invoke(A, B) = 0;
virtual void invoke(A, B) = 0; // _08
};
template <typename A, typename B, typename C> struct IDelegate3 {
virtual void invoke(A, B, C) = 0;
virtual void invoke(A, B, C) = 0; // _08
};
template <typename T> struct Delegate : public IDelegate {
@ -25,7 +25,8 @@ template <typename T> struct Delegate : public IDelegate {
m_object = obj;
m_function = func;
}
virtual void invoke() { (m_object->*m_function)(); }
virtual void invoke() { (m_object->*m_function)(); } // _08
// VTBL _00
T* m_object; // _04
@ -39,7 +40,7 @@ template <typename T, typename A> struct Delegate1 : public IDelegate1<A> {
m_function = func;
}
virtual void invoke(A a) { (m_object->*m_function)(a); }
virtual void invoke(A a) { (m_object->*m_function)(a); } // _08
// VTBL _00
T* m_object; // _04
@ -53,7 +54,7 @@ template <typename T, typename A, typename B> struct Delegate2 : public IDelegat
m_function = func;
}
virtual void invoke(A a, B b) { (m_object->*m_function)(a, b); }
virtual void invoke(A a, B b) { (m_object->*m_function)(a, b); } // _08
// VTBL _00
T* m_object; // _04
@ -67,7 +68,7 @@ template <typename T, typename A, typename B, typename C> struct Delegate3 : pub
m_function = func;
}
virtual void invoke(A a, B b, C c) { (m_object->*m_function)(a, b, c); }
virtual void invoke(A a, B b, C c) { (m_object->*m_function)(a, b, c); } // _08
// VTBL _00
T* m_object; // _04

View File

@ -7,16 +7,16 @@
struct Graphics;
struct InfoMgrBase {
virtual ~InfoMgrBase(); // _00
virtual void loadResource() = 0; // _04
virtual void update() = 0; // _08
virtual void draw(Graphics&) = 0; // _0C
virtual ~InfoMgrBase(); // _08
virtual void loadResource() = 0; // _0C
virtual void update() = 0; // _10
virtual void draw(Graphics&) = 0; // _14
// VTBL _00
};
template <typename Owner, typename List> struct InfoListBase : public JKRDisposer {
virtual ~InfoListBase() // _00
virtual ~InfoListBase() // _08
{
if (_18 != nullptr) {
_18->_1C = _1C;
@ -27,10 +27,10 @@ template <typename Owner, typename List> struct InfoListBase : public JKRDispose
_1C = nullptr;
_18 = nullptr;
}
virtual void init() {}; // _04
virtual void update() {}; // _08
virtual void draw(Graphics&) {}; // _0C
virtual bool isFinish() = 0; // _10
virtual void init() {}; // _0C
virtual void update() {}; // _10
virtual void draw(Graphics&) {}; // _14
virtual bool isFinish() = 0; // _18
// TODO: These may be just List*?
InfoListBase<Owner, List>* _18; // _18
@ -43,11 +43,9 @@ template <typename Owner, typename List> struct InfoMgr : public InfoMgrBase {
InfoMgr();
// TODO: dtor
virtual ~InfoMgr(); // _00
virtual void loadResource() = 0; // _04
virtual void update() // _08
virtual ~InfoMgr(); // _08
virtual void loadResource() = 0; // _0C
virtual void update() // _10
{
// InfoListBase<Owner, List>* next;
// for (
@ -65,8 +63,7 @@ template <typename Owner, typename List> struct InfoMgr : public InfoMgrBase {
}
}
}
virtual void draw(Graphics& gfx) // _0C
virtual void draw(Graphics& gfx) // _14
{
InfoListBase<Owner, List>* list = ((InfoListBase<Owner, List>)m_activeList)._1C;
if (list != nullptr) {
@ -75,8 +72,7 @@ template <typename Owner, typename List> struct InfoMgr : public InfoMgrBase {
}
}
}
virtual List* regist(Owner* owner) // _10
virtual List* regist(Owner* owner) // _18
{
InfoListBase<Owner, List>* list;
for (list = ((InfoListBase<Owner, List>)m_activeList)._1C; list != nullptr; list = list->_1C) {
@ -93,8 +89,7 @@ template <typename Owner, typename List> struct InfoMgr : public InfoMgrBase {
}
return list;
}
virtual List* search(List* list, Owner* owner) // _14
virtual List* search(List* list, Owner* owner) // _1C
{
while (true) {
if (list == nullptr) {

View File

@ -101,26 +101,4 @@ struct Mgr : public LightMgr {
};
} // namespace TreasureLight
namespace Game {
struct GameLightTimeSetting;
struct GameLightEventArg;
struct GameLightMgr : public LightMgr {
virtual ~GameLightMgr(); // _08 (weak)
virtual void update(); // _10
virtual void set(Graphics&); // _14
GameLightMgr(char*);
void start();
void createEventLight(Game::GameLightEventArg&);
void loadParm(Stream&);
void calcSetting(Game::GameLightTimeSetting*, Game::GameLightTimeSetting*, Game::GameLightTimeSetting*);
void updateSunType();
void updateSpotType();
void updatePosition(Viewport*);
u8 _50[0x2344 - 0x50];
FogMgr* m_fogMgr; // _2344
};
} // namespace Game
#endif

View File

@ -9,28 +9,30 @@
#include "SysShape/Model.h"
struct ModelEffectCreateArg {
virtual u64 getID() = 0; // _00
virtual u64 getID() = 0; // _08
};
struct ModelEffectData : public CNode {
virtual ~ModelEffectData(); // _08
virtual ~ModelEffectData(); // _08 (weak)
virtual void loadResources() = 0; // _10
virtual u64 getID() = 0; // _1C
virtual void onCreate(ModelEffectCreateArg*) = 0; // _20
virtual u64 getID() = 0; // _14
virtual void onCreate(ModelEffectCreateArg*) = 0; // _18
void entry();
void create(ModelEffectCreateArg*);
void allocModelData(int);
// _00 = VTBL
// _00-_18 = CNode
int m_sizeInBytes; // _18
J3DModelData* m_modelData; // _1C
};
struct ModelEffectDataRoot : public ModelEffectData {
virtual ~ModelEffectDataRoot(); // _08
virtual void loadResources(); // _10
virtual u64 getID(); // _1C
virtual void onCreate(ModelEffectCreateArg*); // _20
virtual ~ModelEffectDataRoot(); // _08 (weak)
virtual void loadResources(); // _10 (weak)
virtual u64 getID(); // _14 (weak)
virtual void onCreate(ModelEffectCreateArg*); // _18 (weak)
};
struct ModelEffect {
@ -39,11 +41,11 @@ struct ModelEffect {
virtual void doEntry(); // _10
virtual void doSetView(int); // _14
virtual void doViewCalc(); // _18
virtual void changeMaterial(); // _1C
virtual void changeMaterial(); // _1C (weak)
virtual void getLODSphere(Sys::Sphere&) = 0; // _20
virtual void useCylinderLOD(); // _24 (weak)
virtual void getLODCylinder(Sys::Cylinder&); // _28
virtual void doSimulation(float); // _2C (weak)
virtual void getLODCylinder(Sys::Cylinder&); // _28 (weak)
virtual void doSimulation(f32); // _2C (weak)
virtual void doDirectDraw(Graphics&); // _30 (weak)
// _00 VTBL

View File

@ -19,37 +19,38 @@ struct GameLightMgr;
} // namespace Game
struct ParticleMgr : public CNode {
virtual ~ParticleMgr(); // _08
virtual void update(); // _10
virtual void doAnimation(); // _14
virtual void doEntry(); // _18
virtual void doSetView(int); // _1C
virtual void doViewCalc(); // _20
virtual void draw(Viewport*, unsigned char); // _24
ParticleMgr();
virtual ~ParticleMgr(); // _08
virtual void update(); // _10
virtual void doAnimation(); // _14
virtual void doEntry(); // _18
virtual void doSetView(int); // _1C
virtual void doViewCalc(); // _20
virtual void draw(Viewport*, u8); // _24
static void globalInstance();
static void deleteInstance();
static void Instance_TPkEffectMgr();
static void deleteInstance_TPkEffectMgr();
ParticleMgr();
void createHeap(unsigned long);
void createMgr(char*, unsigned long, unsigned long, unsigned long);
void createHeap(u32);
void createMgr(char*, u32, u32, u32);
void beginEntryModelEffect();
void endEntryModelEffect();
void start();
void reset();
void killAll();
void setXfb(const ResTIMG*);
JPABaseEmitter* create(unsigned short, Vector3<float>&, unsigned char);
JPABaseEmitter* createDemo(unsigned short, Vector3<float>&, unsigned char, unsigned char);
JPABaseEmitter* create(u16, Vector3f&, u8);
JPABaseEmitter* createDemo(u16, Vector3f&, u8, u8);
void setGlobalColor(JPABaseEmitter*);
void forceKill(JPABaseEmitter*);
void fade(JPABaseEmitter*);
void setDemoResourceManager(JPAResourceManager*);
void clearDemoResourceManager();
void setViewport(Graphics&);
bool cullByResFlg(Vector3<float>&, unsigned short);
bool cullByResFlg(Vector3f&, u16);
bool cullByResFlg(JPABaseEmitter*);
void entryModelEffect(ModelEffectData*);
void createModelEffect(ModelEffectCreateArg*);
@ -59,7 +60,7 @@ struct ParticleMgr : public CNode {
void cull(Sys::Sphere&); // Might return bool?
void cullCylinder(Sys::Cylinder&); // Might return bool?
void draw2d();
void getModelEffectData(unsigned long long);
void getModelEffectData(u64);
void testCreateModelEffect(int, int, Vector3f&);
Game::GameLightMgr* m_lightMgr; // _18

View File

@ -4,6 +4,8 @@
#include "types.h"
#include "Vector3.h"
#include "SysShape/MotionListener.h"
#include "Condition.h"
#include "Collinfo.h"
namespace Sys {
struct Triangle;
@ -25,6 +27,10 @@ struct WayPoint;
struct Graphics;
struct FindCondition : public Condition<CollPart> {
virtual bool satisfy(CollPart*); // _08 (weak)
};
namespace PikiAI {
struct ActAttack;
struct ActBattle;

23
include/ResetManager.h Normal file
View File

@ -0,0 +1,23 @@
#ifndef _RESETMANAGER_H
#define _RESETMANAGER_H
#include "types.h"
struct ResetManager {
ResetManager(f32);
virtual void draw(); // _08
virtual void updateStatusEffects(); // _0C
void update();
bool isWritingMemoryCard();
bool isSoundSystemStopped();
// _00 = VTBL
u32 _04; // _04, unknown
f32 _08; // _08
u32 _0C; // _0C - bitfield?
u32 _10; // _10, unknown
};
#endif

View File

@ -5,6 +5,7 @@
struct MenuSection : public Section {
MenuSection(struct JFWDisplay*, struct JKRHeap*, bool);
virtual ~MenuSection() { } // _08 (weak)
virtual void run(); // _0C
virtual Section* getCurrentSection() { return m_currentSection; } // _30 (weak)
@ -12,6 +13,8 @@ struct MenuSection : public Section {
bool runChildSection();
// _00 = VTBL
// _00-_3C = Section
#if BUILDTARGET == USADEMO1
// There is an extra unaccounted for space of data 0x1C long
u8 _39[0x1C]; // _39
@ -25,6 +28,7 @@ struct MenuSection : public Section {
struct RootMenuSection : public MenuSection {
RootMenuSection(struct JKRHeap*);
virtual ~RootMenuSection(); // _08
virtual void drawInit(struct Graphics&); // _1C
virtual bool doUpdate() { return false; } // _3C

View File

@ -17,6 +17,13 @@ struct ISection : public JKRDisposer {
virtual void init() = 0; // _18
};
struct ISectionMgr {
ISectionMgr() { }
virtual void run() = 0; // _08
virtual ISection* getCurrentSection(); // _0C (weak)
};
struct Section : public ISection {
enum EDrawInitMode { Zero = 0, One = 1, Two = 2 };

28
include/Splitter.h Normal file
View File

@ -0,0 +1,28 @@
#ifndef _SPLITTER_H
#define _SPLITTER_H
#include "types.h"
struct Graphics;
struct Splitter {
virtual void split2(f32); // _08 (weak)
virtual void split4(f32, f32); // _0C (weak)
// _00 = VTBL
};
struct HorizontalSplitter : public Splitter {
HorizontalSplitter(Graphics*);
virtual void split2(f32); // _08
// _00 = VTBL
f32 m_x1; // _04, name from PikDecomp
f32 m_x2; // _08, name from PikDecomp
f32 m_y1; // _0C, name from PikDecomp
f32 m_y2; // _10, name from PikDecomp
Graphics* m_graphics; // _14
};
#endif

View File

@ -28,6 +28,10 @@ struct Object {
};
struct World {
struct Callback {
virtual void invoke(Object*, Object*) = 0; // _08
};
struct ResolveArg {
Callback* m_callback;
u32 _04;
@ -35,6 +39,7 @@ struct World {
};
World();
~World();
void resolve(ResolveArg&);
@ -43,11 +48,7 @@ struct World {
};
} // namespace SweepPrune
struct Callback {
virtual void invoke(SweepPrune::Object*, SweepPrune::Object*);
};
struct SweepCallback : Callback {
struct SweepCallback : public SweepPrune::World::Callback {
virtual void invoke(SweepPrune::Object*, SweepPrune::Object*);
// vt _00

View File

@ -13,7 +13,8 @@ struct JKRSolidHeap;
struct TParticle2dMgr : public CNode, JKRDisposer {
TParticle2dMgr();
virtual ~TParticle2dMgr();
virtual ~TParticle2dMgr(); // _08 (weak)
static void globalInstance();
static TParticle2dMgr* Instance();
@ -33,6 +34,9 @@ struct TParticle2dMgr : public CNode, JKRDisposer {
void setSceneResourceManager(JPAResourceManager*);
void update();
// _00 = VTBL
// _00-_18 = CNode
// _18-_30 = JKRDisposer
JPAEmitterManager* _30; // _30
JPAResourceManager* m_resourceManager; // _34
JKRSolidHeap* m_solidHeap; // _38

View File

@ -22,24 +22,26 @@ namespace Title {
struct Section : public Game::BaseHIOSection {
Section(JKRHeap*);
virtual ~Section(); // _08
virtual void run(); // _0C
virtual bool update(); // _10
virtual void draw(Graphics&); // _14
virtual void init(); // _18
virtual void drawInit(Graphics&); // _1C
virtual void drawInit(Graphics&, EDrawInitMode); // _20
virtual void doExit(); // _24
virtual bool forceFinish(); // _28
virtual bool forceReset(); // _2C
virtual Section* getCurrentSection(); // _30
virtual void doLoadingStart(); // _34
virtual bool doLoading(); // _38
virtual bool doUpdate(); // _3C
virtual void doDraw(Graphics&); // _40
virtual bool isFinishable(); // _44
virtual void loadResource(); // _50
virtual ~Section(); // _08
virtual void run(); // _0C
virtual void init(); // _18
virtual void doExit(); // _24
virtual bool forceReset(); // _2C (weak)
virtual void doLoadingStart(); // _34
virtual bool doLoading(); // _38
virtual bool doUpdate(); // _3C
virtual void doDraw(Graphics&); // _40
virtual bool isFinishable(); // _44
virtual void loadResource(); // _50
void loadResident();
// void menuCancel(Menu&);
// void menuSelect(Menu&);
void doUpdateMainTitle();
void doUpdateOmake();
// _00 = VTBL
// _00-_48 = Game::BaseHIOSection
int _48; // _0048
float _4C; // _004C
Menu* _50; // _0050

View File

@ -21,7 +21,7 @@ struct Arg {
* @reifiedAddress{80108200}
* @reifiedFile{plugProjectYamashitaU/enemyBase.cpp}
*/
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "Arg";
}
@ -43,7 +43,7 @@ struct ArgEnemyType : public Arg {
* @reifiedAddress{801081F4}
* @reifiedFile{plugProjectYamashitaU/enemyBase.cpp}
*/
virtual const char* getName() // _00
virtual const char* getName() // _08 (weak)
{
return "ArgEnemyType";
}
@ -62,7 +62,7 @@ struct ArgScale : public Arg {
* @reifiedAddress{80107C44}
* @reifiedFile{plugProjectYamashitaU/enemyBase.cpp}
*/
virtual const char* getName() // _00
virtual const char* getName() // _08 (weak)
{
return "ArgScale";
}
@ -76,7 +76,7 @@ struct ArgChou : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgChou";
}
@ -88,19 +88,31 @@ struct ArgCursor : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgCursor";
}
};
struct ArgDenkiHiba : public Arg {
ArgDenkiHiba(Vector3f& position)
: Arg(position)
{
}
virtual const char* getName() // _08 (weak)
{
return "ArgDenkiHiba";
}
};
struct ArgDir : public Arg {
ArgDir(Vector3f position)
: Arg(position)
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgDir";
}
@ -112,7 +124,7 @@ struct ArgDopingSmoke : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgDopingSmoke";
}
@ -124,7 +136,7 @@ struct ArgGasuHiba : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgGasuHiba";
}
@ -136,7 +148,7 @@ struct ArgImoEat : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgImoEat";
}
@ -148,7 +160,7 @@ struct ArgKchYodare : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgKchYodare";
}
@ -160,7 +172,7 @@ struct ArgKouhai : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgKouhai";
}
@ -172,7 +184,7 @@ struct ArgPelType : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgPelType";
}
@ -184,7 +196,7 @@ struct ArgPosPos : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgPosPos";
}
@ -196,7 +208,7 @@ struct ArgPrmColor : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgPrmColor";
}
@ -208,7 +220,7 @@ struct ArgRotY : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgRotY";
}
@ -220,7 +232,7 @@ struct ArgRotYScale : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgRotYScale";
}
@ -232,7 +244,7 @@ struct ArgType : public Arg {
{
}
virtual const char* getName() // _08
virtual const char* getName() // _08 (weak)
{
return "ArgType";
}

23
include/efx/Container.h Normal file
View File

@ -0,0 +1,23 @@
#ifndef _EFX_CONTAINER_H
#define _EFX_CONTAINER_H
#include "efx/TForever.h"
namespace efx {
struct Container : public TForever {
virtual void create(Arg*); // _08
virtual ~Container(); // _48 (weak)
// _00 = VTBL
// _00-_10 = TForever
};
struct ContainerAct : public TForever2 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_24 = TForever2
};
} // namespace efx
#endif

View File

@ -8,13 +8,15 @@ namespace efx {
struct Context : public CNode {
Context();
virtual ~Context(); // _08
virtual ~Context(); // _08 (weak)
Vector3f _18; // _18
};
struct ContextChasePos : public CNode {
virtual ~ContextChasePos(); // _08
ContextChasePos();
virtual ~ContextChasePos(); // _08 (weak)
Vector3f* m_position; // _18
};

View File

@ -5,7 +5,7 @@
namespace efx {
struct OnyonSpotArg : public ModelEffectCreateArg {
virtual u64 getID() { return 'ONY_SPOT'; }
virtual u64 getID() { return 'ONY_SPOT'; } // _08 (weak)
};
struct OnyonSpotData : public ModelEffectData {

13
include/efx/PikiDamage.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef _EFX_PIKIDAMAGE_H
#define _EFX_PIKIDAMAGE_H
#include "efx/TSimple.h"
namespace efx {
struct PikiDamage : public TSimple1 {
// _00 = VTBL
// _00-0C = TSimple1
};
} // namespace efx
#endif

24
include/efx/TBaba.h Normal file
View File

@ -0,0 +1,24 @@
#ifndef _EFX_TBABA_H
#define _EFX_TBABA_H
#include "efx/TChasePos.h"
#include "efx/TSimple.h"
namespace efx {
struct TBabaFly_ver01 : public TChasePos {
virtual void create(Arg*); // _08
virtual ~TBabaFly_ver01(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
struct TBabaHe : public TSimple1 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_0C = TSimple1
};
} // namespace efx
#endif

21
include/efx/TBaby.h Normal file
View File

@ -0,0 +1,21 @@
#ifndef _EFX_TBABY_H
#define _EFX_TBABY_H
#include "efx/TChasePos.h"
#include "efx/TSimple.h"
namespace efx {
struct TBabyBecha : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
struct TBabyBorn : public TChasePos {
virtual ~TBabyBorn(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
} // namespace efx
#endif

13
include/efx/TBarrel.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef _EFX_TBARREL_H
#define _EFX_TBARREL_H
#include "efx/TSimple.h"
namespace efx {
struct TBarrelDead : public TSimple3 {
// _00 = VTBL
// _00-_18 = TSimple3
};
} // namespace efx
#endif

36
include/efx/TBombrock.h Normal file
View File

@ -0,0 +1,36 @@
#ifndef _EFX_TBOMBROCK_H
#define _EFX_TBOMBROCK_H
#include "efx/TChaseMtx.h"
#include "efx/TSimple.h"
namespace efx {
struct TBombrock : public TBase {
// might inherit from TSimple-something, not sure
virtual void create(Arg*); // _08 (weak)
virtual void forceKill(); // _0C (weak)
virtual void fade(); // _10 (weak)
// _00 = VTBL
};
struct TBombrockABCD : public TSimple4 {
// _00 = VTBL
// _00-_1C = TSimple4
};
struct TBombrockEFGH : public TSimple4 {
// _00 = VTBL
// _00-_1C = TSimple4
};
struct TBombrockLight : public TChaseMtxT {
virtual void ~TBombrockLight(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtxT
};
} // namespace efx
#endif

18
include/efx/TBridge.h Normal file
View File

@ -0,0 +1,18 @@
#ifndef _EFX_TBRIDGE_H
#define _EFX_TBRIDGE_H
#include "efx/TSimple.h"
#include "efx/TSimpleMtx.h"
namespace efx {
struct TBridgeAttack : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
struct TBridgeSet : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
} // namespace efx
#endif

20
include/efx/TBsarai.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef _EFX_TBSARAI_H
#define _EFX_TBSARAI_H
#include "efx/TSimple.h"
#include "efx/TChaseMtx.h"
namespace efx {
struct TBsaraiDead : public TSimple2 {
// _00 = VTBL
// _00-_10 = TSimple2
};
struct TBsaraiSupli : public TChaseMtx {
virtual ~TBsaraiSupli(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
} // namespace efx
#endif

View File

@ -5,8 +5,8 @@
namespace efx {
struct TCallBack_StaticClipping : public JPAEmitterCallBack {
virtual ~TCallBack_StaticClipping(); // _00
virtual void executeAfter(JPABaseEmitter*); // _08
virtual ~TCallBack_StaticClipping(); // _08 (weak)
virtual void executeAfter(JPABaseEmitter*); // _10
};
} // namespace efx

View File

@ -7,77 +7,105 @@
namespace efx {
struct TChaseMtx : public TSync {
/**
* @reifiedAddress{803B0548}
* @reifiedFile{plugProjectEbisawaU/efxBase.cpp}
*/
TChaseMtx()
: TSync()
{
}
// vtable 2
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _14
virtual ~TChaseMtx(); // _2C (thunk at _00)
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38
virtual ~TChaseMtx(); // _48 (weak)
Matrixf* m_mtx;
// _00 = VTBL
// _00-_10 = TSync
Matrixf* m_mtx; // _10
};
struct TChaseMtx2 : public TSyncGroup2<TChaseMtx> {
TChaseMtx2(float (*)[4], unsigned short, unsigned short);
TChaseMtx2(float (*)[4], u16, u16);
void setMtxptr(float (*)[4]);
// _00 = VTBL
// _00-_2C = TSyncGroup2<TChaseMtx>
};
struct TChaseMtx3 : public TSyncGroup3<TChaseMtx> {
TChaseMtx3(float (*)[4], unsigned short, unsigned short, unsigned short);
TChaseMtx3(float (*)[4], u16, u16, u16);
void setMtxptr(float (*)[4]);
// _00 = VTBL
// _00-_40 = TSyncGroup3<TChaseMtx>
};
struct TChaseMtx4 : public TSyncGroup4<TChaseMtx> {
TChaseMtx4(float (*)[4], unsigned short, unsigned short, unsigned short, unsigned short);
TChaseMtx4(float (*)[4], u16, u16, u16, u16);
void setMtxptr(float (*)[4]);
// _00 = VTBL
// _00-_54 = TSyncGroup4<TChaseMtx>
};
struct TChaseMtx5 : public TSyncGroup5<TChaseMtx> {
TChaseMtx5(float (*)[4], unsigned short, unsigned short, unsigned short, unsigned short, unsigned short);
// unused struct?
TChaseMtx5(float (*)[4], u16, u16, u16, u16, u16);
void setMtxptr(float (*)[4]);
// _00 = VTBL
// _00-_68 = TSyncGroup5<TChaseMtx>
};
struct TChaseMtx6 : public TSyncGroup6<TChaseMtx> {
TChaseMtx6(float (*)[4], unsigned short, unsigned short, unsigned short, unsigned short, unsigned short, unsigned short);
TChaseMtx6(float (*)[4], u16, u16, u16, u16, u16, u16);
void setMtxptr(float (*)[4]);
// _00 = VTBL
// _00-_7C = TSyncGroup6<TChaseMtx>
};
struct TChaseMtxT : public TSync {
/**
* @reifiedAddress{803B08A8}
* @reifiedFile{plugProjectEbisawaU/efxBase.cpp}
*/
TChaseMtxT()
: TSync()
{
}
// vtable 2
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _14
virtual ~TChaseMtxT(); // _2C (thunk at _00)
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38
virtual ~TChaseMtxT(); // _48 (weak)
Matrixf* m_mtx;
// _00 = VTBL
// _00-_10 = TSync
Matrixf* m_mtx; // _10
};
struct TChaseMtxT2 : public TSyncGroup2<TChaseMtxT> {
TChaseMtxT2(float (*)[4], unsigned short, unsigned short);
TChaseMtxT2(float (*)[4], u16, u16);
void setMtxptr(float (*)[4]);
// _00 = VTBL
// _00-_2C = TSyncGroup2<TChaseMtx>
};
struct TChaseMtxT3 : public TSyncGroup3<TChaseMtxT> {
TChaseMtxT3(float (*)[4], unsigned short, unsigned short, unsigned short);
// unused struct?
TChaseMtxT3(float (*)[4], u16, u16, u16);
void setMtxptr(float (*)[4]);
// _00 = VTBL
// _00-_40 = TSyncGroup3<TChaseMtx>
};
struct TChaseMtxT4 : public TSyncGroup4<TChaseMtxT> {
TChaseMtxT4(float (*)[4], unsigned short, unsigned short, unsigned short, unsigned short);
TChaseMtxT4(float (*)[4], u16, u16, u16, u16);
void setMtxptr(float (*)[4]);
// _00 = VTBL
// _00-_54 = TSyncGroup4<TChaseMtx>
};
} // namespace efx

View File

@ -16,11 +16,12 @@ struct TChasePos : public TSync {
}
// vtable 1: TBase
// _08-_14
// vtable 2: JPAEmitterCallBack + self
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38
virtual ~TChasePos() { } // _48 (weak)
// _00 = VTBL
// _00-_10 = TSync
Vector3f* m_position; // _10
};
@ -28,28 +29,38 @@ struct TChasePos2 : public TSyncGroup2<TChasePos> {
TChasePos2(Vector3f*, u16, u16);
void setPosptr(Vector3f*);
// _00 = VTBL
// _00-_2C = TSyncGroup2<TChasePos>
};
struct TChasePos3 : public TSyncGroup3<TChasePos> {
TChasePos3(Vector3f*, u16, u16, u16);
void setPosptr(Vector3f*);
// _00 = VTBL
// _00-_40 = TSyncGroup3<TChasePos>
};
struct TChasePos4 : public TSyncGroup4<TChasePos> {
TChasePos4(Vector3f*, u16, u16, u16, u16);
void setPosptr(Vector3f*);
// _00 = VTBL
// _00-_54 = TSyncGroup4<TChasePos>
};
struct TChasePosPos : public TSync {
// vtable 1 (TBase)
// _08-_14
// vtable 2 (JPAEmitterCallBack + self)
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38
virtual ~TChasePosPos(); // _48 (weak, thunk at _1C)
// _00 = VTBL
// _00-_10 = TSync
Vector3f* _10; // _10
Vector3f* _14; // _14
};
@ -63,6 +74,8 @@ struct TChasePosPosLocalYScale : public TSync {
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38
virtual ~TChasePosPosLocalYScale(); // _48 (weak, thunk at _1C)
// _00 = VTBL
// _00-_10 = TSync
Vector3f* _10; // _10
Vector3f* _14; // _14
float _18; // _18
@ -72,23 +85,30 @@ struct TChasePosPosLocalYScale2 : public TSyncGroup2<TChasePosPosLocalYScale> {
TChasePosPosLocalYScale2(Vector3f*, Vector3f*, float, u16, u16);
void setPosptr(Vector3f*, Vector3f*);
// _00 = VTBL
// _00-_3C = TSyncGroup2<TChasePosPosLocalYScale>
};
struct TChasePosPosLocalYScale3 : public TSyncGroup3<TChasePosPosLocalYScale> {
TChasePosPosLocalYScale3(Vector3f*, Vector3f*, float, u16, u16, u16);
void setPosptr(Vector3f*, Vector3f*);
// _00 = VTBL
// _00-_58 = TSyncGroup3<TChasePosPosLocalYScale>
};
struct TChasePosPosLocalZScale : public TSync {
TChasePosPosLocalZScale();
// vtable 1 (TBase)
// _08-_14
// vtable 2 (JPAEmitterCallBack + self)
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38
virtual ~TChasePosPosLocalZScale(); // _48 (weak, thunk at _1C)
// _00 = VTBL
// _00-_10 = TSync
Vector3f* _10; // _10
Vector3f* _14; // _14
float _18; // _18
@ -98,37 +118,52 @@ struct TChasePosPosLocalZScale2 : public TSyncGroup2<TChasePosPosLocalZScale> {
TChasePosPosLocalZScale2(Vector3f*, Vector3f*, float, u16, u16);
void setPosptr(Vector3f*, Vector3f*);
// _00 = VTBL
// _00-_3C = TSyncGroup2<TChasePosPosLocalZScale>
};
struct TChasePosPosLocalZScale3 : public TSyncGroup3<TChasePosPosLocalZScale> {
TChasePosPosLocalZScale3(Vector3f*, Vector3f*, float, u16, u16, u16);
void setPosptr(Vector3f*, Vector3f*);
// _00 = VTBL
// _00-_58 = TSyncGroup3<TChasePosPosLocalZScale>
};
struct TChasePosYRot : public TSync {
TChasePosYRot();
// vtable 1 (TBase)
// _08-_14
// vtable 2 (JPAEmitterCallBack + self)
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38
virtual ~TChasePosYRot(); // _48 (weak, thunk at _1C)
// _00 = VTBL
// _00-_10 = TSync
Vector3f* m_position; // _10
float* m_rotation; // _14
};
struct TChasePosYRot2 : public TSyncGroup2<TChasePosYRot> {
TChasePosYRot2(Vector3f*, float*, u16, u16);
void setPosptr(Vector3f*);
void setYRot(float*);
// _00 = VTBL
// _00-_34 = TSyncGroup2<TChasePosYRot>
};
struct TChasePosYRot3 : public TSyncGroup3<TChasePosYRot> {
TChasePosYRot3(Vector3f*, float*, u16, u16, u16);
void setPosptr(Vector3f*);
void setYRot(float*);
// _00 = VTBL
// _00-_4C = TSyncGroup3<TChasePosYRot>
};
} // namespace efx

63
include/efx/TChibi.h Normal file
View File

@ -0,0 +1,63 @@
#ifndef _EFX_TCHIBI_H
#define _EFX_TCHIBI_H
#include "efx/TChasePos.h"
#include "efx/TChaseMtx.h"
#include "efx/TSimple.h"
#include "efx/TSimpleMtx.h"
namespace efx {
struct TChibiCharge : public TChaseMtx {
virtual ~TChibiCharge(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct TChibiDeadLight : public TChaseMtx {
virtual ~TChibiDeadLight(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct TChibiDeadMouth : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TChibiDeadSe : public TSimpleMtx2 {
// _00 = VTBL
// _00-_14 = TSimpleMtx2
};
struct TChibiHit : public TSimple4 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_1C = TSimple4
};
struct TChibiShell : public TChasePos {
virtual ~TChibiShell(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
struct TChibiShoot : public TSimpleMtx3 {
// _00 = VTBL
// _00-_1C = TSimpleMtx3
};
struct TChibiSmokeL : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TChibiSmokeS : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
} // namespace efx
#endif

22
include/efx/TChou.h Normal file
View File

@ -0,0 +1,22 @@
#ifndef _EFX_TCHOU_H
#define _EFX_TCHOU_H
#include "efx/TChasePos.h"
#include "efx/TSimple.h"
namespace efx {
struct TChouDown : public TChasePos {
virtual void create(Arg*); // _08
virtual ~TChouDown(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
struct TChouHit : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
} // namespace efx
#endif

19
include/efx/TCphebi.h Normal file
View File

@ -0,0 +1,19 @@
#ifndef _EFX_TCPHEBI_H
#define _EFX_TCPHEBI_H
#include "efx/TChaseMtx.h"
#include "efx/TSimple.h"
namespace efx {
struct TCphebiDead : public TChaseMtx4 {
// _00 = VTBL
// _00-_54 = TChaseMtx4
};
struct TCphebiDeadHane : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
} // namespace efx
#endif

26
include/efx/TCursor.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef _EFX_TCURSOR_H
#define _EFX_TCURSOR_H
#include "efx/TOneEmitter.h"
namespace efx {
struct TCursor : public TBase {
virtual void create(Arg*); // _08
virtual void forceKill(); // _0C (weak)
virtual void fade(); // _10 (weak)
void init(long, long);
void update(Arg*);
void calcPos_(Vector3f*, f32, long);
// _00 = VTBL
TOneEmitter m_oneEmitter; // _04
long _38; // _38
Context m_contextArray[16]; // _3C
Vector3f m_position; // _27C
f32 m_angleTimer; // _288
f32 m_angleSpeed; // _28C
};
} // namespace efx
#endif

93
include/efx/TDama.h Normal file
View File

@ -0,0 +1,93 @@
#ifndef _EFX_TDAMA_H
#define _EFX_TDAMA_H
#include "efx/TSimple.h"
#include "efx/TChasePos.h"
#include "efx/TChaseMtx.h"
namespace efx {
struct TDamaDeadBomb : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
struct TDamaDeadElecA : public TChasePosPos {
virtual void ~TDamaDeadElecA(); // _48 (weak)
// _00 = VTBL
// _00-_18 = TChasePosPos
};
struct TDamaDeadElecB : public TChasePos {
virtual void ~TDamaDeadElecB(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
struct TDamaDeadHahenA : public TChasePosPos {
virtual void ~TDamaDeadHahenA(); // _48 (weak)
// _00 = VTBL
// _00-_18 = TChasePosPos
};
struct TDamaDeadHahenB : public TChasePosPos {
virtual void ~TDamaDeadHahenB(); // _48 (weak)
// _00 = VTBL
// _00-_18 = TChasePosPos
};
struct TDamaDeadHahenC1 : public TChaseMtx {
virtual void ~TDamaDeadHahenC1(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct TDamaDeadHahenC2 : public TChaseMtx {
virtual void ~TDamaDeadHahenC2(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct TDamaFoot : public TChasePos2 {
// _00 = VTBL
// _00-_2C = TChasePos2
};
struct TDamaFootw : public TChasePos {
virtual void ~TDamaFootw(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
struct TDamaHahen : public TChasePosPos {
virtual void ~TDamaHahen(); // _48 (weak)
// _00 = VTBL
// _00-_18 = TChasePosPos
};
struct TDamaSmoke : public TChasePos {
virtual void ~TDamaSmoke(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
struct TDamaWalk : public TSimple2 {
// _00 = VTBL
// _00-_10 = TSimple2
};
struct TDamaWalkw : public TSimple3 {
// _00 = VTBL
// _00-_18 = TSimple3
};
} // namespace efx
#endif

64
include/efx/TDango.h Normal file
View File

@ -0,0 +1,64 @@
#ifndef _EFX_TDANGO_H
#define _EFX_TDANGO_H
#include "efx/TSimple.h"
#include "efx/TSimpleMtx.h"
#include "efx/TChasePos.h"
#include "efx/TChaseMtx.h"
namespace efx {
struct TDangoAttack2 : public TChaseMtx {
virtual ~TDangoAttack2(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct TDangoCrash : public TSimple2 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_10 = TSimple2
};
struct TDangoDamage : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDangoDead : public TSimpleMtx2 {
// _00 = VTBL
// _00-_14 = TSimpleMtx2
};
struct TDangoDeadSmoke : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDangoFly : public TSimple3 {
// _00 = VTBL
// _00-_18 = TSimple3
};
struct TDangoRun : public TChasePos2 {
// _00 = VTBL
// _00-_2C = TChasePos2
};
struct TDangoTurn : public TSimple2 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_10 = TSimple2
};
struct TDangoWallBreak : public TChaseMtx {
virtual ~TDangoWallBreak(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
} // namespace efx
#endif

49
include/efx/TDenki.h Normal file
View File

@ -0,0 +1,49 @@
#ifndef _EFX_TDENKI_H
#define _EFX_TDENKI_H
#include "efx/TForever.h"
namespace efx {
struct TDenkiHiba : public TForever3 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_34 = TForever3
};
struct TDenkiPole : public TForever2 {
TDenkiPole();
~TDenkiPole();
// _00 = VTBL
// _00-_24 = TForever2
};
struct TDenkipoleSign : public TForever {
TDenkipoleSign();
virtual ~TDenkipoleSign(); // _48 (weak)
// _00 = VTBL
// _00-_10 = TForever
};
struct TDenkiHibaMgr : public TBase {
virtual void create(Arg*); // _08
virtual void forceKill(); // _0C
virtual void fade(); // _10
void createHiba(int);
void setRateLOD(int);
// _00 = VTBL
TDenkiHiba m_hiba; // _04
TDenkiPole m_poles[2]; // _38
TDenkipoleSign m_polesigns[2]; // _80
Vector3f m_ownerPosition; // _A0
Vector3f m_targetCreaturePosition; // _AC
};
} // namespace efx
#endif

39
include/efx/TDnkms.h Normal file
View File

@ -0,0 +1,39 @@
#ifndef _EFX_TDNKMS_H
#define _EFX_TDNKMS_H
#include "efx/TSync.h"
#include "efx/TChasePos.h"
namespace efx {
struct TDnkmsHoudenA : public TChasePos {
virtual ~TDnkmsHoudenA(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
struct TDnkmsHoudenB : public TChasePos {
virtual ~TDnkmsHoudenB(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
struct TDnkmsThunderA : public TSync {
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38
virtual ~TDnkmsThunderA(); // _48 (weak)
// _00 = VTBL
// _00-_10 = TSync
};
struct TDnkmsThunderB : public TSync {
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38
virtual ~TDnkmsThunderB(); // _48 (weak)
// _00 = VTBL
// _00-_10 = TSync
};
} // namespace efx
#endif

View File

@ -0,0 +1,15 @@
#ifndef _EFX_TDOPINGSMOKE_H
#define _EFX_TDOPINGSMOKE_H
#include "efx/TSimple.h"
namespace efx {
struct TDopingSmoke : public TSimple1 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_0C = TSimple1
};
} // namespace efx
#endif

63
include/efx/TDownf.h Normal file
View File

@ -0,0 +1,63 @@
#ifndef _EFX_TDOWNF_H
#define _EFX_TDOWNF_H
#include "efx/TSimpleMtx.h"
namespace efx {
struct TDownf1On : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDownf1Updown : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDownf1WOn : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDownf1WUpdown : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDownf2On : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDownf2Updown : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDownf2WOn : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDownf2WUpdown : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDownf3Updown : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDownf3WOn : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
struct TDownf3WUpdown : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
} // namespace efx
#endif

23
include/efx/TEgate.h Normal file
View File

@ -0,0 +1,23 @@
#ifndef _EFX_TEGATE_H
#define _EFX_TEGATE_H
#include "efx/TChaseMtx.h"
#include "efx/TForever.h"
namespace efx {
struct TEgateA : public TChaseMtx {
virtual ~TEgateA(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct TEgateBC : public TForever2 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_24 = TForever2
};
} // namespace efx
#endif

13
include/efx/TEggdown.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef _EFX_TEGGDOWN_H
#define _EFX_TEGGDOWN_H
#include "efx/TSimple.h"
namespace efx {
struct TEggdown : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
} // namespace efx
#endif

View File

@ -13,8 +13,15 @@ struct TEnemyDead : public TSimple1 {
virtual bool create(Arg*); // _08
// _00 = VTABLE
// _04-_0C = TSimple1
// _00 = VTBL
// _00-_0C = TSimple1
};
struct TEnemyDead_ArgScale : public TSimple1 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_0C = TSimple1
};
} // namespace efx

13
include/efx/TEnemyDive.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef _EFX_TENEMYDIVE_H
#define _EFX_TENEMYDIVE_H
#include "efx/TSimple.h"
namespace efx {
struct TEnemyDive : public TSimple2 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_10 = TSimple2
};
} // namespace efx

View File

@ -12,8 +12,10 @@ struct TEnemyDownSmoke : public TSimple1 {
{
}
virtual bool create(Arg*); // _00
virtual bool create(Arg*); // _08
// _00 = VTBL
// _00-_0C = TSimple1
float _0C; // _0C
};

View File

@ -11,7 +11,10 @@ struct TEnemyDownWat : public TSimple3 {
{
}
virtual bool create(Arg*); // _00
virtual bool create(Arg*); // _08
// _00 = VTBL
// _00-_18 = TSimple3
};
} // namespace efx

View File

@ -0,0 +1,15 @@
#ifndef _EFX_TFORESTSAKURA_H
#define _EFX_TFORESTSAKURA_H
#include "efx/TChasePos.h"
namespace efx {
struct TForestSakura : public TChasePos {
virtual void ~TForestSakura(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
} // namespace efx
#endif

View File

@ -7,21 +7,33 @@
namespace efx {
struct TForever : public TSync {
TForever();
// vtable 2
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _1C
virtual ~TForever(); // _2C (thunk at _00)
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38 (weak)
virtual ~TForever(); // _48 (weak, thunk at _1C)
// _00 = VTBL
// _00-_0E = TSync
};
struct TForever2 : public TSyncGroup2<TForever> {
TForever2(unsigned short, unsigned short);
TForever2(u16, u16);
// _00 = VTBL
// _00-_24 = TSyncGroup2<TForever>
};
struct TForever3 : public TSyncGroup3<TForever> {
TForever3(unsigned short, unsigned short, unsigned short);
TForever3(u16, u16, u16);
// _00 = VTBL
// _00-_34 = TSyncGroup3<TForever>
};
struct TForever4 : public TSyncGroup4<TForever> {
TForever4(unsigned short, unsigned short, unsigned short, unsigned short);
TForever4(u16, u16, u16, u16);
// _00 = VTBL
// _00-_44 = TSyncGroup4<TForever>
};
} // namespace efx

26
include/efx/TFrog.h Normal file
View File

@ -0,0 +1,26 @@
#ifndef _EFX_TFROG_H
#define _EFX_TFROG_H
#include "efx/TSimple.h"
#include "efx/TChasePos.h"
namespace efx {
struct TFrogDive : public TSimple4 {
// _00 = VTBL
// _00-_1C = TSimple4
};
struct TFrogLanddrop : public TSimple2 {
// _00 = VTBL
// _00-_10 = TSimple2
};
struct TFrogPota : public TChasePos {
virtual ~TFrogPota(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
} // namespace efx
#endif

59
include/efx/TFueact.h Normal file
View File

@ -0,0 +1,59 @@
#ifndef _EFX_TFUEACT_H
#define _EFX_TFUEACT_H
#include "efx/TSync.h"
namespace efx {
struct TFueactBiriBase : public TSync {
virtual void doExecuteEmitterOperation(JPABaseEmitter*); // _38
virtual ~TFueactBiriBase(); // _48 (weak)
// _00 = VTBL
// _00-_10 = TSync
Vector3f* _10; // _10
Vector3f* _14; // _14
};
struct TFueactBiri1 : public TFueactBiriBase {
virtual ~TFueactBiri1(); // _48 (weak)
// _00 = VTBL
// _00-_18 = TFueactBiriBase
};
struct TFueactBiri2 : public TFueactBiriBase {
virtual ~TFueactBiri2(); // _48 (weak)
// _00 = VTBL
// _00-_18 = TFueactBiriBase
};
struct TFueactCircle : public TBase, public JPAEmitterCallBack public JPAParticleCallBack {
virtual void create(Arg*); // _08
virtual void forceKill(); // _0C (weak)
virtual void fade(); // _10 (weak)
virtual void execute(JPABaseEmitter*); // _44 (weak)
virtual void execute(JPABaseEmitter*, JPABaseParticle*); // _48 (weak)
virtual void executeAfter(JPABaseEmitter*); // _4C (weak)
virtual ~TFueactCircle(); // _50 (weak)
// _00 = VTBL
// _04 = JPAEmitterCallBack
// _08 = JPAParticleCallBack
u8 _0C[0x8]; // _0C, unknown
JPABaseEmitter* _14; // _14
};
struct TFueact : public TBase {
virtual void create(Arg*); // _08 (weak)
virtual void forceKill(); // _0C (weak)
virtual void fade(); // _10 (weak)
// _00 = VTBL
TFueactCircle m_circle; // _04
TFueactBiri1 m_biri1; // _1C
TFueactBiri2 m_biri2; // _34
};
} // namespace efx
#endif

15
include/efx/TFuebugOnpa.h Normal file
View File

@ -0,0 +1,15 @@
#ifndef _EFX_TFUEBUGONPA_H
#define _EFX_TFUEBUGONPA_H
#include "efx/TChasePos.h"
namespace efx {
struct TFuebugOnpa : public TChasePos {
virtual ~TFuebugOnpa(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
} // namespace efx
#endif

41
include/efx/TFusen.h Normal file
View File

@ -0,0 +1,41 @@
#ifndef _EFX_TFUSEN_H
#define _EFX_TFUSEN_H
#include "efx/TChasePos.h"
#include "efx/TChaseMtx.h"
namespace efx {
struct TFusenAir : public TChaseMtx3 {
// _00 = VTBL
// _00-_40 = TChaseMtx3
};
struct TFusenAirhit : public TChasePosYRot2 {
// _00 = VTBL
// _00-_34 = TChasePosYRot2
};
struct TFusenDead : public TChaseMtx2 {
// _00 = VTBL
// _00-_2C = TChaseMtx2
};
struct TFusenhAir : public TChaseMtx3 {
// _00 = VTBL
// _00-_40 = TChaseMtx3
};
struct TFusenhAirhit : public TChasePosYRot2 {
// _00 = VTBL
// _00-_34 = TChasePosYRot2
};
struct TFusenSui : public TChaseMtx {
virtual ~TFusenSui(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
} // namespace efx
#endif

17
include/efx/TGasuHiba.h Normal file
View File

@ -0,0 +1,17 @@
#ifndef _EFX_TGASUHIBA_H
#define _EFX_TGASUHIBA_H
#include "efx/TForever.h"
namespace efx {
struct TGasuHiba : public TForever2 {
virtual void create(Arg*); // _08
void setRateLOD(int);
// _00 = VTBL
// _00-_24 = TForever2
};
} // namespace efx
#endif

30
include/efx/TGate.h Normal file
View File

@ -0,0 +1,30 @@
#ifndef _EFX_TGATE_H
#define _EFX_TGATE_H
#include "efx/TSimple.h"
#include "efx/TSimpleMtx.h"
namespace efx {
struct TGate1Attack : public TSimple2 {
// _00 = VTBL
// _00-_10 = TSimple2
};
struct TGate1Down : public TSimple2Mtx {
// _00 = VTBL
// _00-_14 = TSimpleMtx2
};
struct TGate2Attack : public TSimple2 {
// _00 = VTBL
// _00-_10 = TSimple2
};
struct TGate2Down : public TSimple2Mtx {
// _00 = VTBL
// _00-_14 = TSimpleMtx2
};
} // namespace efx
#endif

18
include/efx/TGeyser.h Normal file
View File

@ -0,0 +1,18 @@
#ifndef _EFX_TGEYSER_H
#define _EFX_TGEYSER_H
#include "efx/TForever.h"
namespace efx {
struct TGeyserAct : public TForever3 {
// _00 = VTBL
// _00-_34 = TForever3
};
struct TGeyserSet : public TForever2 {
// _00 = VTBL
// _00-_24 = TForever2
};
} // namespace efx
#endif

13
include/efx/THanaMiss.h Normal file
View File

@ -0,0 +1,13 @@
#ifndef _EFX_THANAMISS_H
#define _EFX_THANAMISS_H
#include "efx/TSimpleMtx.h"
namespace efx {
struct THanaMiss : public TSimpleMtx2 {
// _00 = VTBL
// _00-_14 = TSimpleMtx2
};
} // namespace efx
#endif

22
include/efx/THanacho.h Normal file
View File

@ -0,0 +1,22 @@
#ifndef _EFX_THANACHO_H
#define _EFX_THANACHO_H
#include "efx/TChaseMtx.h"
namespace efx {
struct THanachoN : public TChaseMtx {
virtual ~THanachoN(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct THanachoY : public TChaseMtx {
virtual ~THanachoY(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
} // namespace efx
#endif

View File

@ -2,21 +2,153 @@
#define _EFX_THDAMA_H
#include "efx/TSimple.h"
#include "efx/TSimpleMtx.h"
#include "efx/TChasePos.h"
#include "efx/TChaseMtx.h"
namespace efx {
struct THdamaDeadbomb : public TChaseMtx4 {
// _00 = VTBL
// _00-_54 = TChaseMtx4
};
struct THdamaDeadHahen1 : public TSimple1 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_0C = TSimple1
};
struct THdamaDeadHahen2 : public TSimple2 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_10 = TSimple2
};
struct THdamaDeadSteam : public TChaseMtx2 {
// _00 = VTBL
// _00-_2C = TChaseMtx2
};
struct THdamaDeadSteamT : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
struct THdamaHahen : public TChasPosPos {
virtual ~THdamaHahen(); // _48 (weak)
// _00 = VTBL
// _00-_18 = TChasePosPos
};
struct THdamaHit1 : public TSimple5 {
// _00 = VTBL
// _00-_24 = TSimple5
};
struct THdamaHit2 : public TSimple4 {
// _00 = VTBL
// _00-_1C = TSimple4
};
struct THdamaHit2W : public TSimple3 {
virtual bool create(Arg*); // _00
virtual bool create(Arg*); // _08
// _00 = VTBL
// _00-_18 = TSimple3
};
struct THdamaHit3 : public TSimple4 {
// _00 = VTBL
// _00-_1C = TSimple4
};
struct THdamaOnHahen1 : public TChaseMtx {
virtual ~THdamaOnHahen1(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct THdamaOnHahen2 : public TChasePosPos {
virtual ~THdamaOnHahen2(); // _48 (weak)
// _00 = VTBL
// _00-_18 = TChasePosPos
};
struct THdamaOnSmoke : public TSimple2 {
// _00 = VTBL
// _00-_10 = TSimple2
};
struct THdamaOnSteam1 : public TChaseMtxT {
virtual ~THdamaOnSteam1(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtxT
};
struct THdamaOnSteam2 : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
struct THdamaOpen : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
struct THdamaShell : public TChasePos {
virtual void create(Arg*); // _08
virtual ~THdamaShell(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
struct THdamaShoot : public TSimpleMtx3 {
// _00 = VTBL
// _00-_1C = TSimpleMtx3
};
struct THdamaShootA : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
struct THdamaSight : public TForever {
virtual ~THdamaSight(); // _48 (weak)
void setPosNrm(Vector3f&, Vector3f&);
// _00 = VTBL
// _00-_10 = TForever
};
struct THdamaSteam : public TChaseMtx {
virtual ~THdamaSteam(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct THdamaSteamBd : public TChaseMtxT {
virtual ~THdamaSteamBd(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtxT
};
struct THdamaSteamSt : public TChaseMtx {
virtual ~THdamaSteamSt(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
} // namespace efx
#endif

72
include/efx/THebi.h Normal file
View File

@ -0,0 +1,72 @@
#ifndef _EFX_THEBI_H
#define _EFX_THEBI_H
#include "efx/TSimple.h"
#include "efx/TChaseMtx.h"
#include "efx/TForever.h"
namespace efx {
struct THebiAphd_base : public TSimple4 {
virtual bool create(Arg*); // _08
// _00 = VTBL
// _00-_1C = TSimple4
};
struct THebiAphd_appear1 : public THebiAphd_base {
// _00 = VTBL
// _00-_1C = THebiAphd_base
};
struct THebiAphd_appear2_first : public THebiAphd_base {
// _00 = VTBL
// _00-_1C = THebiAphd_base
};
struct THebiAphd_appear2_late : public THebiAphd_base {
// _00 = VTBL
// _00-_1C = THebiAphd_base
};
struct THebiAphd_dive : public THebiAphd_base {
// _00 = VTBL
// _00-_1C = THebiAphd_base
};
struct THebiAphd_kkabuto_appear : public THebiAphd_base {
// _00 = VTBL
// _00-_1C = THebiAphd_base
};
struct THebiAphd_kkabuto_dive : public THebiAphd_base {
// _00 = VTBL
// _00-_1C = THebiAphd_base
};
struct THebiDead : public TChaseMtxT4 {
// _00 = VTBL
// _00-_54 = TChaseMtxT4
};
struct THebiDeadHane_ver01 : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
struct THebiRot : public TForever {
virtual ~THebiRot(); // _48 (weak)
// _00 = VTBL
// _00-_10 = TForever
};
struct THebiWait : public TForever {
virtual ~THebiWait(); // _48 (weak)
// _00 = VTBL
// _00-_10 = TForever
};
} // namespace efx
#endif

15
include/efx/THibaFire.h Normal file
View File

@ -0,0 +1,15 @@
#ifndef _EFX_THIBAFIRE_H
#define _EFX_THIBAFIRE_H
#include "efx/TForever.h"
namespace efx {
struct THibaFire : public TForever4 {
void setRateLOD(int);
// _00 = VTBL
// _00-_44 = TForever4
};
} // namespace efx
#endif

23
include/efx/THoneydown.h Normal file
View File

@ -0,0 +1,23 @@
#ifndef _EFX_THONEYDOWN_H
#define _EFX_THONEYDOWN_H
#include "efx/TSimple.h"
namespace efx {
struct THoneydownB : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
struct THoneydownR : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
struct THoneydownY : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
} // namespace efx
#endif

25
include/efx/TImo.h Normal file
View File

@ -0,0 +1,25 @@
#ifndef _EFX_TIMO_H
#define _EFX_TIMO_H
#include "efx/TChasePos.h"
#include "efx/TChaseMtx.h"
namespace efx {
struct TImoEat : public TChaseMtx {
virtual void create(Arg*); // _08
virtual ~TImoEat(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct TImoSmoke : public TChasePos {
virtual void create(Arg*); // _08
virtual ~TImoSmoke(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
} // namespace efx
#endif

45
include/efx/TJgm.h Normal file
View File

@ -0,0 +1,45 @@
#ifndef _EFX_TJGM_H
#define _EFX_TJGM_H
#include "efx/TChasePos.h"
#include "efx/TChaseMtx.h"
#include "efx/TSimple.h"
namespace efx {
struct TJgmAttack : public TChasePos2 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_2C = TChasePos2
};
struct TJgmAttackW : public TChasePosYRot3 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_4C = TChasePosYRot3
};
struct TJgmBack : public TChasePos {
virtual void create(Arg*); // _08
virtual ~TJgmBack(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
struct TJgmBackW : public TChasePosYRot2 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_34 = TChasePosYRot2
};
struct TJgmBubble : public TSimple1 {
// _00 = VTBL
// _00-_0C = TSimple1
};
} // namespace efx
#endif

View File

@ -0,0 +1,13 @@
#ifndef _EFX_TKABUTOATTACK_H
#define _EFX_TKABUTOATTACK_H
#include "efx/TSimpleMtx.h"
namespace efx {
struct TKabutoAttack : public TSimpleMtx1 {
// _00 = VTBL
// _00-_10 = TSimpleMtx1
};
} // namespace efx
#endif

80
include/efx/TKage.h Normal file
View File

@ -0,0 +1,80 @@
#ifndef _EFX_TKAGE_H
#define _EFX_TKAGE_H
#include "Color4.h"
#include "efx/TSimple.h"
#include "efx/TChasePos.h"
#include "efx/TSimpleMtx.h"
#include "efx/TChaseMtx.h"
namespace efx {
struct TKageBend1 : public TSimpleMtx2 {
// _00 = VTBL
// _00-_14 = TSimpleMtx2
};
struct TKageDead1 : public TChaseMtx {
virtual ~TKageDead1(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct TKageDead2 : public TSimple1 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_0C = TSimple1
};
struct TKageFlick : public TChasePos {
virtual ~TKageFlick(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TChasePos
};
struct TKageMove : public TChasePosYRot {
virtual ~TKageMove(); // _48 (weak)
void setGlobalPrmColor(Color4&);
// _00 = VTBL
// _00-_18 = TChasePosYRot
};
struct TKageRecov : public TSimple2 {
// _00 = VTBL
// _00-_10 = TSimple2
};
struct TKageRun : public TChasePosYRot {
virtual ~TKageRun(); // _48 (weak)
void setGlobalPrmColor(Color4&);
// _00 = VTBL
// _00-_18 = TChasePosYRot
};
struct TKageTyreDead : public TSimple3 {
// _00 = VTBL
// _00-_18 = TSimple3
};
struct TKageTyresmoke : public TChasePosYRot {
virtual ~TKageTyresmoke(); // _48 (weak)
// _00 = VTBL
// _00-_18 = TChasePosYRot
};
struct TKageTyreup : public TChasePosYRot {
virtual ~TKageTyreup(); // _48 (weak)
// _00 = VTBL
// _00-_18 = TChasePosYRot
};
} // namespace efx
#endif

146
include/efx/TKch.h Normal file
View File

@ -0,0 +1,146 @@
#ifndef _EFX_TKCH_H
#define _EFX_TKCH_H
#include "efx/TSimple.h"
#include "efx/TChasePos.h"
#include "efx/TChaseMtx.h"
namespace efx {
struct TKchApSand : public TSimple3 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_18 = TSimple3
};
struct TKchApWat : public TSimple5 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_24 = TSimple5
};
struct TKchCryAB : public TChasePos2 {
void setGlobalScale(f32);
// _00 = VTBL
// _00-_2C = TChasePos2
};
struct TKchCryInd : public TChasePos2 {
virtual ~TKchCryInd(); // _48 (weak)
void setGlobalScale(f32);
// _00 = VTBL
// _00-_14 = TChaseMtxT
};
struct TKchDamage : public TSimple4 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_1C = TSimple4
};
struct TKchDeadHana : public TChaseMtx2 {
void setGlobalScale(f32);
// _00 = VTBL
// _00-_2C = TChaseMtx2
};
struct TKchDiveSand : public TChasePosYRot3 {
void setGlobalScale(f32);
// _00 = VTBL
// _00-_4C = TChasePosYRot3
};
struct TKchDiveWat : public TChasePosYRot3 {
void setGlobalScale(f32);
// _00 = VTBL
// _00-_4C = TChasePosYRot3
};
struct TKchDownsmoke : public TSimple1 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_0C = TSimple1
};
struct TKchFlickSand : public TSimple2 {
virtual void create(Arg*); // _08
// _00 = VTBL
// _00-_10 = TSimple2
};
struct TKchSmokeHana : public TChaseMtx {
virtual ~TKchSmokeHana(); // _48 (weak)
void setGlobalScale(f32);
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct TKchYodareBaseChaseMtx : public TChaseMtx {
virtual void create(Arg*); // _08
virtual void forceKill(); // _0C (weak)
virtual void fade(); // _10 (weak)
virtual void startDemoDrawOff(); // _40 (weak)
virtual void endDemoDrawOn(); // _44 (weak)
virtual ~TKchYodareBaseChaseMtx(); // _48 (weak)
void setGlobalScale(f32);
// _00 = VTBL
// _00-_14 = TChaseMtx
};
struct TKchAttackYodare : public TKchYodareBaseChaseMtx {
TKchAttackYodare(f32 (*)[4]);
virtual ~TKchAttackYodare(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TKchYodareBaseChaseMtx
};
struct TKchDeadYodare : public TKchYodareBaseChaseMtx {
TKchDeadYodare(f32 (*)[4]);
virtual ~TKchDeadYodare(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TKchYodareBaseChaseMtx
};
struct TKchYodare : public TKchYodareBaseChaseMtx {
TKchYodare(f32 (*)[4]);
virtual ~TKchYodare(); // _48 (weak)
// _00 = VTBL
// _00-_14 = TKchYodareBaseChaseMtx
};
struct TKchYodareHitGr : public TOneEmitterSimple {
virtual ~TKchYodareHitGr(); // _3C (weak)
// _00 = VTBL
// _00-_18 = TOneEmitterSimple
};
struct TKchYodareHitWat : public TOneEmitterSimple {
virtual ~TKchYodareHitWat(); // _3C (weak)
// _00 = VTBL
// _00-_18 = TOneEmitterSimple
};
} // namespace efx
#endif

Some files were not shown because too many files have changed in this diff Show More