mirror of
https://github.com/doldecomp/sms.git
synced 2026-11-08 01:48:28 -10:00
105 lines
2.4 KiB
C++
105 lines
2.4 KiB
C++
#ifndef MAP_MAP_STATIC_OBJECT_HPP
|
|
#define MAP_MAP_STATIC_OBJECT_HPP
|
|
|
|
#include <Strategic/HitActor.hpp>
|
|
|
|
class JPABaseEmitter;
|
|
class J3DModelData;
|
|
class J3DModel;
|
|
class TGraphWeb;
|
|
class MSSceneSE;
|
|
class MActor;
|
|
class TMapCollisionManager;
|
|
|
|
class TMapStaticObj : public THitActor {
|
|
public:
|
|
TMapStaticObj(const char* name = "簡易マップオブジェ");
|
|
|
|
virtual void load(JSUMemoryInputStream& stream);
|
|
virtual void loadAfter();
|
|
|
|
void init(const char*);
|
|
void initModel(const char*);
|
|
void initMapCollision(const char*);
|
|
void initUnique();
|
|
void perform(u32 cue, JDrama::TGraphics* graphics);
|
|
void calcUnique(JPABaseEmitter*);
|
|
J3DModel* getModel() const;
|
|
J3DModelData* getModelData() const;
|
|
|
|
struct TActorData {
|
|
/* 0x0 */ const char* mActorName;
|
|
/* 0x4 */ u32 mActorType;
|
|
/* 0x8 */ u32 mHitFilter;
|
|
/* 0xC */ f32 mAttackRadius;
|
|
/* 0x10 */ f32 mAttackHeight;
|
|
/* 0x14 */ f32 mDamageRadius;
|
|
/* 0x18 */ f32 mDamageHeight;
|
|
/* 0x1C */ const char* mIdxGroupName;
|
|
/* 0x20 */ const char* mModelFileName;
|
|
/* 0x24 */ u32 unk24;
|
|
/* 0x28 */ const char* mColFileName;
|
|
/* 0x2C */ u32 unk2C;
|
|
/* 0x30 */ u32 mSoundId;
|
|
/* 0x34 */ const char* mParticlePath;
|
|
/* 0x38 */ u32 mParticleId;
|
|
/* 0x3C */ u8 mParticleType;
|
|
|
|
enum {
|
|
FLAG_IS_INDIRECT = 0x1,
|
|
FLAG_UNK2 = 0x2,
|
|
FLAG_UNK4 = 0x4,
|
|
FLAG_UNK8 = 0x8,
|
|
FLAG_UNK10 = 0x10,
|
|
FLAG_UNK20 = 0x20,
|
|
FLAG_UNK40 = 0x40,
|
|
FLAG_UNK80 = 0x80,
|
|
};
|
|
|
|
/* 0x40 */ u32 mFlags;
|
|
};
|
|
|
|
static f32 mEffectCoronaScale;
|
|
|
|
public:
|
|
/* 0x68 */ const TActorData* mActorData;
|
|
/* 0x6C */ const char* mActorName;
|
|
/* 0x70 */ MActor* mMActor;
|
|
/* 0x74 */ TMapCollisionManager* mCollisionManager;
|
|
/* 0x78 */ u32 mSoundId;
|
|
#ifndef VERSION_GMSJ01
|
|
/* 0x7C */ u32 mSoundVecIdx;
|
|
#endif
|
|
};
|
|
|
|
class TMapModelActor : public THitActor {
|
|
public:
|
|
TMapModelActor(const char* name)
|
|
: THitActor(name)
|
|
, unk68(nullptr)
|
|
{
|
|
}
|
|
|
|
virtual void perform(u32 cue, JDrama::TGraphics* graphics);
|
|
|
|
// fabricated
|
|
void setActor(MActor* actor) { unk68 = actor; }
|
|
|
|
public:
|
|
/* 0x68 */ MActor* unk68;
|
|
};
|
|
|
|
class TMapObjSoundGroup : public JDrama::TViewObj {
|
|
public:
|
|
TMapObjSoundGroup(const char* name = "環境音テスト");
|
|
virtual void load(JSUMemoryInputStream& stream);
|
|
virtual void perform(u32 cue, JDrama::TGraphics* graphics);
|
|
|
|
public:
|
|
/* 0x10 */ MSSceneSE* mSceneSE;
|
|
/* 0x14 */ TGraphWeb* mGraph;
|
|
/* 0x18 */ u32 mSoundID;
|
|
};
|
|
|
|
#endif
|