mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-26 18:44:33 +00:00
70 lines
1.9 KiB
C++
70 lines
1.9 KiB
C++
#pragma once
|
|
|
|
#include <basis/seadTypes.h>
|
|
|
|
#include "Library/Event/IUseEventFlowData.h"
|
|
#include "Library/HostIO/HioNode.h"
|
|
#include "Library/Message/IUseMessageSystem.h"
|
|
#include "Library/Nerve/IUseNerve.h"
|
|
|
|
namespace al {
|
|
class Nerve;
|
|
class LiveActor;
|
|
class SceneEventFlowMsg;
|
|
class EventFlowNodeHolder;
|
|
class EventFlowNodeCaseEventHolder;
|
|
class EventFlowNodeInitInfo;
|
|
|
|
class EventFlowNode : public IUseEventFlowData,
|
|
public IUseMessageSystem,
|
|
public IUseNerve,
|
|
public IUseHioNode {
|
|
public:
|
|
EventFlowNode(const char* name);
|
|
|
|
EventFlowDataHolder* getEventFlowDataHolder() const override { return mEventFlowDataHolder; }
|
|
|
|
virtual void init(const EventFlowNodeInitInfo& info);
|
|
|
|
virtual void initAfterChart() {}
|
|
|
|
virtual void initAfterPlacement() {}
|
|
|
|
virtual void start() { mIsStarted = true; }
|
|
|
|
virtual void end() { mIsStarted = false; }
|
|
|
|
virtual void control() {}
|
|
|
|
virtual s32 getNextId() const { return mNextId; }
|
|
|
|
virtual const char* getNextEntry() const { return nullptr; }
|
|
|
|
const MessageSystem* getMessageSystem() const override { return mMessageSystem; }
|
|
|
|
NerveKeeper* getNerveKeeper() const override { return mNerveKeeper; }
|
|
|
|
virtual bool isEnableEndFork() const { return false; }
|
|
|
|
void initNerve(const Nerve* nerve, s32 maxStates);
|
|
void execute();
|
|
|
|
LiveActor* getActor() const { return mActor; }
|
|
|
|
private:
|
|
LiveActor* mActor = nullptr;
|
|
s32 mId = -1;
|
|
s32 mNextId = -1;
|
|
const char* mName;
|
|
bool mIsStarted = false;
|
|
EventFlowDataHolder* mEventFlowDataHolder = nullptr;
|
|
EventFlowNodeHolder* mEventFlowNodeHolder = nullptr;
|
|
EventFlowNodeCaseEventHolder* mEventFlowNodeCaseEventHolder = nullptr;
|
|
SceneEventFlowMsg* mSceneEventFlowMsg = nullptr;
|
|
MessageSystem* mMessageSystem = nullptr;
|
|
NerveKeeper* mNerveKeeper = nullptr;
|
|
};
|
|
|
|
static_assert(sizeof(EventFlowNode) == 0x68);
|
|
} // namespace al
|