2022-06-16 21:33:18 +00:00
|
|
|
#pragma once
|
|
|
|
|
2022-09-04 09:23:02 +00:00
|
|
|
#include "al/audio/AudioDirector.h"
|
2022-06-16 21:33:18 +00:00
|
|
|
#include "al/nerve/NerveExecutor.h"
|
|
|
|
#include "al/audio/AudioKeeper.h"
|
|
|
|
#include "al/scene/SceneCreator.h"
|
2022-09-04 09:23:02 +00:00
|
|
|
#include "game/System/GameDrawInfo.h"
|
2022-06-16 21:33:18 +00:00
|
|
|
|
|
|
|
namespace al {
|
2022-09-04 09:23:02 +00:00
|
|
|
|
|
|
|
class GameSystemInfo;
|
|
|
|
class SequenceInitInfo;
|
|
|
|
class AudioSystemInfo;
|
|
|
|
class Scene;
|
|
|
|
|
2022-06-16 21:33:18 +00:00
|
|
|
class Sequence : public al::NerveExecutor, public al::IUseAudioKeeper, public al::IUseSceneCreator {
|
|
|
|
public:
|
2022-09-04 09:23:02 +00:00
|
|
|
Sequence(const char* name);
|
|
|
|
virtual ~Sequence() override;
|
|
|
|
virtual void init(const al::SequenceInitInfo& initInfo);
|
|
|
|
virtual void update();
|
|
|
|
virtual void kill();
|
|
|
|
virtual void drawMain() const;
|
|
|
|
virtual void drawSub() const;
|
|
|
|
virtual bool isDisposable() { return false; }
|
|
|
|
al::Scene* getCurrentScene() const;
|
|
|
|
al::SceneCreator* getSceneCreator() const override;
|
|
|
|
void setSceneCreator(al::SceneCreator* sceneCreator) override;
|
|
|
|
|
|
|
|
al::AudioKeeper* getAudioKeeper() const override;
|
|
|
|
void initAudio(const al::GameSystemInfo&, const char*, int, int, int, const char*);
|
|
|
|
void initAudioKeeper(const char*);
|
|
|
|
void initDrawSystemInfo(const al::SequenceInitInfo&);
|
|
|
|
al::AudioSystemInfo* getAudioSystemInfo();
|
|
|
|
|
|
|
|
al::GameDrawInfo* getDrawInfo() const {
|
|
|
|
return mGameDrawInfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
al::AudioDirector* getAudioDirector() const {
|
|
|
|
return mAudioDirector;
|
|
|
|
}
|
|
|
|
|
|
|
|
void setNextScene(al::Scene* scene) {
|
|
|
|
mNextScene = scene;
|
|
|
|
}
|
|
|
|
|
|
|
|
const sead::SafeString& getName() const {
|
|
|
|
return mName;
|
|
|
|
}
|
|
|
|
|
|
|
|
const sead::FixedSafeString<0x40> mName;
|
|
|
|
al::Scene* mNextScene;
|
|
|
|
al::Scene* mCurrentScene;
|
|
|
|
al::SceneCreator* mSceneCreator;
|
|
|
|
al::AudioDirector* mAudioDirector;
|
|
|
|
al::AudioKeeper* mAudioKeeper;
|
|
|
|
al::GameDrawInfo* mGameDrawInfo;
|
|
|
|
bool mIsAlive;
|
2022-06-16 21:33:18 +00:00
|
|
|
};
|
|
|
|
}
|