mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-29 14:43:05 +00:00
128 lines
No EOL
5.2 KiB
C++
128 lines
No EOL
5.2 KiB
C++
#pragma once
|
|
|
|
#include "al/actor/ActorInitInfo.h"
|
|
#include "al/actor/ActorSceneInfo.h"
|
|
#include "al/actor/ActorActionKeeper.h"
|
|
#include "al/area/AreaObjDirector.h"
|
|
#include "al/audio/AudioKeeper.h"
|
|
#include "al/camera/CameraDirector.h"
|
|
#include "al/collision/CollisionDirector.h"
|
|
#include "al/effect/EffectKeeper.h"
|
|
#include "al/hio/HioNode.h"
|
|
#include "al/nerve/Nerve.h"
|
|
#include "al/nerve/NerveStateCtrl.h"
|
|
#include "al/pose/ActorPoseKeeper.h"
|
|
#include "al/rail/RailKeeper.h"
|
|
#include "al/rail/RailRider.h"
|
|
#include "al/scene/SceneObjHolder.h"
|
|
#include "al/screen/ScreenPointKeeper.h"
|
|
#include "al/sensor/HitSensorKeeper.h"
|
|
#include "al/switch/StageSwitchKeeper.h"
|
|
#include "al/actor/SubActorKeeper.h"
|
|
#include "al/model/ModelKeeper.h"
|
|
|
|
// vtable for LiveActor: 1C4EB58
|
|
|
|
namespace al
|
|
{
|
|
|
|
class ActorPoseKeeperBase;
|
|
class ActorExecuteInfo;
|
|
class ActorItemKeeper;
|
|
class ActorScoreKeeper;
|
|
class Collider;
|
|
class CollisionParts;
|
|
class ShadowKeeper;
|
|
class ActorPrePassLightKeeper;
|
|
class ActorOcclusionKeeper;
|
|
class LiveActorFlag;
|
|
|
|
class ActorInitInfo;
|
|
class HitSensor;
|
|
class SensorMsg;
|
|
class ScreenPointer;
|
|
class ScreenPointTarget;
|
|
|
|
class LiveActor : public al::IUseNerve, public al::IUseEffectKeeper, public al::IUseAudioKeeper, public al::IUseStageSwitch, public al::IUseSceneObjHolder, public al::IUseAreaObj, public al::IUseCamera, public al::IUseCollision, public al::IUseRail, public al::IUseHioNode
|
|
{
|
|
public:
|
|
LiveActor(const char *);
|
|
|
|
virtual al::NerveKeeper* getNerveKeeper() const;
|
|
|
|
virtual void init(const ActorInitInfo &);
|
|
virtual void initAfterPlacement();
|
|
virtual void appear();
|
|
virtual void makeActorAlive();
|
|
virtual void kill();
|
|
virtual void makeActorDead();
|
|
virtual void movement();
|
|
virtual void calcAnim();
|
|
virtual void draw() const;
|
|
virtual void startClipped();
|
|
virtual void endClipped();
|
|
// source = sensor belonging to this actor
|
|
// target = sensor belonging to other actor
|
|
virtual void attackSensor(HitSensor *source, HitSensor *target);
|
|
virtual bool receiveMsg(const SensorMsg *msg, HitSensor *source, HitSensor *target);
|
|
virtual bool receiveMsgScreenPoint(const SensorMsg *, ScreenPointer *, ScreenPointTarget *);
|
|
|
|
virtual const char *getName() const { return this->mActorName; };
|
|
|
|
virtual sead::Matrix34f *getBaseMtx() const;
|
|
|
|
virtual al::EffectKeeper *getEffectKeeper() const { return this->mEffectKeeper; };
|
|
|
|
virtual al::AudioKeeper *getAudioKeeper() const { return this->mAudioKeeper; };
|
|
|
|
virtual al::StageSwitchKeeper *getStageSwitchKeeper() const { return this->mStageSwitchKeeper; };
|
|
|
|
virtual al::RailRider *getRailRider() const
|
|
{
|
|
if (this->mRailKeeper)
|
|
return this->mRailKeeper->getRailRider();
|
|
return nullptr;
|
|
};
|
|
|
|
virtual al::SceneObjHolder *getSceneObjHolder() const { return this->mSceneInfo->mSceneObjHolder; };
|
|
|
|
virtual al::CollisionDirector *getCollisionDirector() const { return this->mSceneInfo->mCollisionDirector; };
|
|
|
|
virtual al::AreaObjDirector *getAreaObjDirector() const { return this->mSceneInfo->mAreaObjDirector; };
|
|
|
|
virtual al::CameraDirector *getCameraDirector() const { return this->mSceneInfo->mCameraDirector; };
|
|
|
|
virtual void initStageSwitchKeeper() { this->mStageSwitchKeeper = new StageSwitchKeeper(); };
|
|
|
|
virtual void control();
|
|
|
|
virtual void updateCollider();
|
|
|
|
void initSubActorKeeper(al::SubActorKeeper *);
|
|
|
|
const char *mActorName; // 0x48
|
|
al::ActorPoseKeeperBase *mPoseKeeper; // 0x50
|
|
al::ActorExecuteInfo *mLayoutExecuteInfo; // 0x58
|
|
al::ActorActionKeeper *mActorActionKeeper; // 0x60
|
|
al::ActorItemKeeper *mActorItemKeeper; // 0x68
|
|
al::ActorScoreKeeper *mActorScoreKeeper; // 0x70
|
|
al::Collider *mCollider; // 0x78
|
|
al::CollisionParts *mCollisionParts; // 0x80
|
|
al::ModelKeeper *mModelKeeper; // 0x88
|
|
al::NerveKeeper *mNerveKeeper; // 0x90
|
|
al::HitSensorKeeper *mHitSensorKeeper; // 0x98
|
|
al::ScreenPointKeeper *mScreenPointKeeper; // 0xA0
|
|
al::EffectKeeper *mEffectKeeper; // 0xA8
|
|
al::AudioKeeper *mAudioKeeper; // 0xB0
|
|
void *gap_4; // 0xB8
|
|
al::StageSwitchKeeper *mStageSwitchKeeper; // 0xC0
|
|
al::RailKeeper *mRailKeeper; // 0xC8
|
|
al::ShadowKeeper *mShadowKeeper; // 0xD0
|
|
al::ActorPrePassLightKeeper *mActorPrePassLightKeeper; // 0xD8
|
|
al::ActorOcclusionKeeper *mActorOcclusionKeeper; // 0xE0
|
|
al::SubActorKeeper *mSubActorKeeper; // 0xE8
|
|
void *gap_6; // 0xF0
|
|
al::ActorSceneInfo *mSceneInfo; // 0xF8
|
|
al::LiveActorFlag *mLiveActorFlag; // 0x100
|
|
};
|
|
}; |