mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-23 09:04:21 +00:00
57 lines
1.6 KiB
C++
57 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include <prim/seadSafeString.h>
|
|
|
|
#include "Library/Audio/IUseAudioKeeper.h"
|
|
#include "Library/Nerve/NerveExecutor.h"
|
|
#include "Library/Sequence/IUseSceneCreator.h"
|
|
|
|
namespace al {
|
|
struct GameSystemInfo;
|
|
struct DrawSystemInfo;
|
|
struct SequenceInitInfo;
|
|
struct AudioSystemInfo;
|
|
class AudioDirector;
|
|
class Scene;
|
|
|
|
class Sequence : public NerveExecutor, public IUseAudioKeeper, public IUseSceneCreator {
|
|
public:
|
|
Sequence(const char* name);
|
|
~Sequence() override;
|
|
|
|
virtual void init(const SequenceInitInfo& initInfo);
|
|
|
|
virtual void update();
|
|
virtual void kill();
|
|
virtual void drawMain() const;
|
|
virtual void drawSub() const;
|
|
|
|
AudioKeeper* getAudioKeeper() const override { return mAudioKeeper; }
|
|
|
|
virtual bool isDisposable() const;
|
|
|
|
virtual Scene* getCurrentScene() const { return nullptr; }
|
|
|
|
SceneCreator* getSceneCreator() const override { return mSceneCreator; }
|
|
|
|
void setSceneCreator(SceneCreator* sceneCreator) override { mSceneCreator = sceneCreator; }
|
|
|
|
void initAudio(const GameSystemInfo&, const char*, s32, s32, s32, const char*);
|
|
void initAudioKeeper(const char*);
|
|
void initDrawSystemInfo(const SequenceInitInfo&);
|
|
AudioSystemInfo* getAudioSystemInfo();
|
|
|
|
DrawSystemInfo* getDrawInfo() const { return mDrawSystemInfo; }
|
|
|
|
private:
|
|
sead::FixedSafeString<0x40> mName;
|
|
Scene* mCurrentScene = nullptr;
|
|
Scene* mNextScene = nullptr;
|
|
SceneCreator* mSceneCreator = nullptr;
|
|
AudioDirector* mAudioDirector = nullptr;
|
|
AudioKeeper* mAudioKeeper = nullptr;
|
|
DrawSystemInfo* mDrawSystemInfo = nullptr;
|
|
bool mIsAlive = true;
|
|
};
|
|
} // namespace al
|