OpenRCT2/src/openrct2/scenes/title/TitleScene.h

65 lines
2.0 KiB
C++

/*****************************************************************************
* Copyright (c) 2014-2024 OpenRCT2 developers
*
* For a complete list of all authors, please refer to contributors.md
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
*
* OpenRCT2 is licensed under the GNU General Public License version 3.
*****************************************************************************/
#pragma once
#include "../../common.h"
#include "../../drawing/Drawing.h"
#include "../Scene.h"
struct ITitleSequencePlayer;
namespace OpenRCT2
{
class TitleScene final : public Scene
{
public:
using Scene::Scene;
ITitleSequencePlayer* GetSequencePlayer();
size_t GetCurrentSequence();
bool PreviewSequence(size_t value);
void StopPreviewingSequence();
bool IsPreviewingSequence();
bool ShouldHideVersionInfo();
void SetHideVersionInfo(bool value);
void Load() override;
void Tick() override;
void Stop() override;
void CreateWindows();
void ChangePresetSequence(size_t preset);
private:
ITitleSequencePlayer* _sequencePlayer = nullptr;
size_t _loadedTitleSequenceId = SIZE_MAX;
size_t _currentSequence = SIZE_MAX;
bool _hideVersionInfo = false;
bool _previewingSequence = false;
void TitleInitialise();
bool TryLoadSequence(bool loadPreview = false);
};
} // namespace OpenRCT2
// When testing title sequences within a normal game
extern bool gPreviewingTitleSequenceInGame;
void TitleCreateWindows();
void* TitleGetSequencePlayer();
void TitleSequenceChangePreset(size_t preset);
bool TitleShouldHideVersionInfo();
void TitleSetHideVersionInfo(bool value);
size_t TitleGetConfigSequence();
size_t TitleGetCurrentSequence();
bool TitlePreviewSequence(size_t value);
void TitleStopPreviewingSequence();
bool TitleIsPreviewingSequence();
void DrawOpenRCT2(DrawPixelInfo& dpi, const ScreenCoordsXY& screenCoords);