mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-27 11:04:16 +00:00
65 lines
1.6 KiB
C++
65 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "Library/LiveActor/LiveActor.h"
|
|
|
|
namespace al {
|
|
class KeyPoseKeeper;
|
|
class SwitchKeepOnAreaGroup;
|
|
class SwitchOnAreaGroup;
|
|
class RippleCtrl;
|
|
class FunctorBase;
|
|
|
|
class KeyMoveMapParts : public LiveActor {
|
|
public:
|
|
KeyMoveMapParts(const char* name);
|
|
|
|
void init(const ActorInitInfo& info) override;
|
|
void start();
|
|
void stop();
|
|
void appearAndSetStart();
|
|
bool receiveMsg(const SensorMsg* message, HitSensor* other, HitSensor* self) override;
|
|
void control() override;
|
|
void appearAndSetEnd();
|
|
|
|
virtual void exeStandBy();
|
|
void exeDelay();
|
|
virtual void exeWait();
|
|
void setWaitEndNerve();
|
|
void exeMoveSign();
|
|
virtual void exeMove();
|
|
void exeStopSign();
|
|
void exeStop();
|
|
|
|
KeyPoseKeeper* getKeyPoseKeeper() const { return mKeyPoseKeeper; }
|
|
|
|
void setIsStopKill(bool isStopKill) { mIsStopKill = isStopKill; }
|
|
|
|
private:
|
|
static const char* getSeNameByIndex(s32 index) {
|
|
switch (index) {
|
|
case 0:
|
|
return "PgMove0";
|
|
case 1:
|
|
return "PgMove1";
|
|
default:
|
|
return nullptr;
|
|
}
|
|
}
|
|
|
|
KeyPoseKeeper* mKeyPoseKeeper = nullptr;
|
|
SwitchKeepOnAreaGroup* mSwitchKeepOnAreaGroup = nullptr;
|
|
SwitchOnAreaGroup* mSwitchOnAreaGroup = nullptr;
|
|
RippleCtrl* mRippleCtrl = nullptr;
|
|
sead::Vector3f mClippingOffset = sead::Vector3f::zero;
|
|
s32 mKeyMoveWaitTime = 30;
|
|
s32 mKeyMoveMoveTime = 0;
|
|
s32 mDelayTime = 0;
|
|
bool mIsFloorTouchStart = false;
|
|
bool mIsHipDropStart = false;
|
|
bool mIsStopKill = false;
|
|
const char* mSeMoveName = nullptr;
|
|
};
|
|
|
|
static_assert(sizeof(KeyMoveMapParts) == 0x150);
|
|
} // namespace al
|