1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-16 03:23:15 +01:00

Remove pseudo-keyword 'abstract'

This commit is contained in:
Aaron van Geffen
2024-07-09 15:17:07 +02:00
parent 7cc1cd09ea
commit db17fc6dad
36 changed files with 366 additions and 363 deletions

View File

@@ -31,20 +31,21 @@ namespace OpenRCT2::Ui
struct IPlatformUiContext
{
virtual ~IPlatformUiContext() = default;
virtual void SetWindowIcon(SDL_Window* window) abstract;
virtual bool IsSteamOverlayAttached() abstract;
virtual void SetWindowIcon(SDL_Window* window) = 0;
virtual bool IsSteamOverlayAttached() = 0;
virtual void ShowMessageBox(SDL_Window* window, const std::string& message) abstract;
virtual bool HasMenuSupport() abstract;
virtual void ShowMessageBox(SDL_Window* window, const std::string& message) = 0;
virtual bool HasMenuSupport() = 0;
virtual int32_t ShowMenuDialog(
const std::vector<std::string>& options, const std::string& title, const std::string& text) abstract;
virtual void OpenFolder(const std::string& path) abstract;
const std::vector<std::string>& options, const std::string& title, const std::string& text)
= 0;
virtual void OpenFolder(const std::string& path) = 0;
virtual void OpenURL(const std::string& url) abstract;
virtual std::string ShowFileDialog(SDL_Window* window, const FileDialogDesc& desc) abstract;
virtual std::string ShowDirectoryDialog(SDL_Window* window, const std::string& title) abstract;
virtual void OpenURL(const std::string& url) = 0;
virtual std::string ShowFileDialog(SDL_Window* window, const FileDialogDesc& desc) = 0;
virtual std::string ShowDirectoryDialog(SDL_Window* window, const std::string& title) = 0;
virtual bool HasFilePicker() const abstract;
virtual bool HasFilePicker() const = 0;
};
[[nodiscard]] std::unique_ptr<IUiContext> CreateUiContext(const std::shared_ptr<IPlatformEnvironment>& env);

View File

@@ -25,9 +25,9 @@ namespace OpenRCT2::Audio
struct ISDLAudioChannel : public IAudioChannel
{
[[nodiscard]] virtual AudioFormat GetFormat() const abstract;
[[nodiscard]] virtual SpeexResamplerState* GetResampler() const abstract;
virtual void SetResampler(SpeexResamplerState* value) abstract;
[[nodiscard]] virtual AudioFormat GetFormat() const = 0;
[[nodiscard]] virtual SpeexResamplerState* GetResampler() const = 0;
virtual void SetResampler(SpeexResamplerState* value) = 0;
};
namespace AudioChannel

View File

@@ -2024,7 +2024,7 @@ static uint64_t PageDisabledWidgets[] = {
void BannerToggleBlock(int32_t elementIndex, int32_t edgeIndex)
{
Guard::Assert(edgeIndex >= 0 && edgeIndex < 4, "edgeIndex out of range");
// Make edgeIndex abstract
// Make edgeIndex = 0
edgeIndex = (edgeIndex - GetCurrentRotation()) & 3;
auto modifyTile = TileModifyAction(_toolMap, TileModifyType::BannerToggleBlockingEdge, elementIndex, edgeIndex);
GameActions::Execute(&modifyTile);

View File

@@ -123,61 +123,60 @@ namespace OpenRCT2
{
virtual ~IContext() = default;
[[nodiscard]] virtual std::shared_ptr<Audio::IAudioContext> GetAudioContext() abstract;
[[nodiscard]] virtual std::shared_ptr<Ui::IUiContext> GetUiContext() abstract;
[[nodiscard]] virtual std::shared_ptr<IPlatformEnvironment> GetPlatformEnvironment() abstract;
virtual Localisation::LocalisationService& GetLocalisationService() abstract;
virtual IObjectManager& GetObjectManager() abstract;
virtual IObjectRepository& GetObjectRepository() abstract;
[[nodiscard]] virtual std::shared_ptr<Audio::IAudioContext> GetAudioContext() = 0;
[[nodiscard]] virtual std::shared_ptr<Ui::IUiContext> GetUiContext() = 0;
[[nodiscard]] virtual std::shared_ptr<IPlatformEnvironment> GetPlatformEnvironment() = 0;
virtual Localisation::LocalisationService& GetLocalisationService() = 0;
virtual IObjectManager& GetObjectManager() = 0;
virtual IObjectRepository& GetObjectRepository() = 0;
#ifdef ENABLE_SCRIPTING
virtual Scripting::ScriptEngine& GetScriptEngine() abstract;
virtual Scripting::ScriptEngine& GetScriptEngine() = 0;
#endif
virtual ITrackDesignRepository* GetTrackDesignRepository() abstract;
virtual IScenarioRepository* GetScenarioRepository() abstract;
virtual IReplayManager* GetReplayManager() abstract;
virtual AssetPackManager* GetAssetPackManager() abstract;
virtual IGameStateSnapshots* GetGameStateSnapshots() abstract;
virtual DrawingEngine GetDrawingEngineType() abstract;
virtual Drawing::IDrawingEngine* GetDrawingEngine() abstract;
virtual Paint::Painter* GetPainter() abstract;
virtual ITrackDesignRepository* GetTrackDesignRepository() = 0;
virtual IScenarioRepository* GetScenarioRepository() = 0;
virtual IReplayManager* GetReplayManager() = 0;
virtual AssetPackManager* GetAssetPackManager() = 0;
virtual IGameStateSnapshots* GetGameStateSnapshots() = 0;
virtual DrawingEngine GetDrawingEngineType() = 0;
virtual Drawing::IDrawingEngine* GetDrawingEngine() = 0;
virtual Paint::Painter* GetPainter() = 0;
#ifndef DISABLE_NETWORK
virtual NetworkBase& GetNetwork() abstract;
virtual NetworkBase& GetNetwork() = 0;
#endif
virtual IScene* GetPreloaderScene() abstract;
virtual IScene* GetIntroScene() abstract;
virtual IScene* GetTitleScene() abstract;
virtual IScene* GetGameScene() abstract;
virtual IScene* GetEditorScene() abstract;
virtual IScene* GetPreloaderScene() = 0;
virtual IScene* GetIntroScene() = 0;
virtual IScene* GetTitleScene() = 0;
virtual IScene* GetGameScene() = 0;
virtual IScene* GetEditorScene() = 0;
virtual IScene* GetActiveScene() abstract;
virtual void SetActiveScene(IScene* screen) abstract;
virtual IScene* GetActiveScene() = 0;
virtual void SetActiveScene(IScene* screen) = 0;
virtual int32_t RunOpenRCT2(int argc, const char** argv) abstract;
virtual int32_t RunOpenRCT2(int argc, const char** argv) = 0;
virtual bool Initialise() abstract;
virtual void InitialiseDrawingEngine() abstract;
virtual void DisposeDrawingEngine() abstract;
virtual bool Initialise() = 0;
virtual void InitialiseDrawingEngine() = 0;
virtual void DisposeDrawingEngine() = 0;
virtual void OpenProgress(StringId captionStringId) abstract;
virtual void SetProgress(uint32_t currentProgress, uint32_t totalCount, StringId format = STR_NONE) abstract;
virtual void CloseProgress() abstract;
virtual void OpenProgress(StringId captionStringId) = 0;
virtual void SetProgress(uint32_t currentProgress, uint32_t totalCount, StringId format = STR_NONE) = 0;
virtual void CloseProgress() = 0;
virtual bool LoadParkFromFile(
const u8string& path, bool loadTitleScreenOnFail = false, bool asScenario = false) abstract;
virtual bool LoadParkFromFile(const u8string& path, bool loadTitleScreenOnFail = false, bool asScenario = false) = 0;
virtual bool LoadParkFromStream(
IStream* stream, const std::string& path, bool loadTitleScreenFirstOnFail = false,
bool asScenario = false) abstract;
virtual void WriteLine(const std::string& s) abstract;
virtual void WriteErrorLine(const std::string& s) abstract;
virtual void Finish() abstract;
virtual void Quit() abstract;
IStream* stream, const std::string& path, bool loadTitleScreenFirstOnFail = false, bool asScenario = false)
= 0;
virtual void WriteLine(const std::string& s) = 0;
virtual void WriteErrorLine(const std::string& s) = 0;
virtual void Finish() = 0;
virtual void Quit() = 0;
virtual bool HasNewVersionInfo() const abstract;
virtual const NewVersionInfo* GetNewVersionInfo() const abstract;
virtual bool HasNewVersionInfo() const = 0;
virtual const NewVersionInfo* GetNewVersionInfo() const = 0;
virtual void SetTimeScale(float newScale) abstract;
virtual float GetTimeScale() const abstract;
virtual void SetTimeScale(float newScale) = 0;
virtual float GetTimeScale() const = 0;
};
[[nodiscard]] std::unique_ptr<IContext> CreateContext();

View File

@@ -51,14 +51,15 @@ struct IParkImporter
public:
virtual ~IParkImporter() = default;
virtual ParkLoadResult Load(const u8string& path) abstract;
virtual ParkLoadResult LoadSavedGame(const u8string& path, bool skipObjectCheck = false) abstract;
virtual ParkLoadResult LoadScenario(const u8string& path, bool skipObjectCheck = false) abstract;
virtual ParkLoadResult Load(const u8string& path) = 0;
virtual ParkLoadResult LoadSavedGame(const u8string& path, bool skipObjectCheck = false) = 0;
virtual ParkLoadResult LoadScenario(const u8string& path, bool skipObjectCheck = false) = 0;
virtual ParkLoadResult LoadFromStream(
OpenRCT2::IStream* stream, bool isScenario, bool skipObjectCheck = false, const u8string& path = {}) abstract;
OpenRCT2::IStream* stream, bool isScenario, bool skipObjectCheck = false, const u8string& path = {})
= 0;
virtual void Import(OpenRCT2::GameState_t& gameState) abstract;
virtual bool GetDetails(ScenarioIndexEntry* dst) abstract;
virtual void Import(OpenRCT2::GameState_t& gameState) = 0;
virtual bool GetDetails(ScenarioIndexEntry* dst) = 0;
};
namespace ParkImporter

View File

@@ -80,12 +80,12 @@ namespace OpenRCT2
{
virtual ~IPlatformEnvironment() = default;
virtual u8string GetDirectoryPath(DIRBASE base) const abstract;
virtual u8string GetDirectoryPath(DIRBASE base, DIRID did) const abstract;
virtual u8string GetFilePath(PATHID pathid) const abstract;
virtual u8string FindFile(DIRBASE base, DIRID did, u8string_view fileName) const abstract;
virtual void SetBasePath(DIRBASE base, u8string_view path) abstract;
virtual bool IsUsingClassic() const abstract;
virtual u8string GetDirectoryPath(DIRBASE base) const = 0;
virtual u8string GetDirectoryPath(DIRBASE base, DIRID did) const = 0;
virtual u8string GetFilePath(PATHID pathid) const = 0;
virtual u8string FindFile(DIRBASE base, DIRID did, u8string_view fileName) const = 0;
virtual void SetBasePath(DIRBASE base, u8string_view path) = 0;
virtual bool IsUsingClassic() const = 0;
};
[[nodiscard]] std::unique_ptr<IPlatformEnvironment> CreatePlatformEnvironment(DIRBASE_VALUES basePaths);

View File

@@ -25,10 +25,10 @@ struct ITrackImporter
public:
virtual ~ITrackImporter() = default;
virtual bool Load(const utf8* path) abstract;
virtual bool LoadFromStream(OpenRCT2::IStream* stream) abstract;
virtual bool Load(const utf8* path) = 0;
virtual bool LoadFromStream(OpenRCT2::IStream* stream) = 0;
[[nodiscard]] virtual std::unique_ptr<TrackDesign> Import() abstract;
[[nodiscard]] virtual std::unique_ptr<TrackDesign> Import() = 0;
};
namespace TrackImporter

View File

@@ -234,12 +234,12 @@ public:
/**
* Query the result of the game action without changing the game state.
*/
virtual GameActions::Result Query() const abstract;
virtual GameActions::Result Query() const = 0;
/**
* Apply the game action and change the game state.
*/
virtual GameActions::Result Execute() const abstract;
virtual GameActions::Result Execute() const = 0;
bool LocationValid(const CoordsXY& coords) const;
};

View File

@@ -24,46 +24,46 @@ namespace OpenRCT2::Audio
{
virtual ~IAudioChannel() = default;
virtual IAudioSource* GetSource() const abstract;
virtual IAudioSource* GetSource() const = 0;
virtual MixerGroup GetGroup() const abstract;
virtual void SetGroup(MixerGroup group) abstract;
virtual MixerGroup GetGroup() const = 0;
virtual void SetGroup(MixerGroup group) = 0;
virtual double GetRate() const abstract;
virtual void SetRate(double rate) abstract;
virtual double GetRate() const = 0;
virtual void SetRate(double rate) = 0;
virtual uint64_t GetOffset() const abstract;
virtual bool SetOffset(uint64_t offset) abstract;
virtual uint64_t GetOffset() const = 0;
virtual bool SetOffset(uint64_t offset) = 0;
virtual int32_t GetLoop() const abstract;
virtual void SetLoop(int32_t value) abstract;
virtual int32_t GetLoop() const = 0;
virtual void SetLoop(int32_t value) = 0;
virtual int32_t GetVolume() const abstract;
virtual float GetVolumeL() const abstract;
virtual float GetVolumeR() const abstract;
virtual float GetOldVolumeL() const abstract;
virtual float GetOldVolumeR() const abstract;
virtual int32_t GetOldVolume() const abstract;
virtual void SetVolume(int32_t volume) abstract;
virtual int32_t GetVolume() const = 0;
virtual float GetVolumeL() const = 0;
virtual float GetVolumeR() const = 0;
virtual float GetOldVolumeL() const = 0;
virtual float GetOldVolumeR() const = 0;
virtual int32_t GetOldVolume() const = 0;
virtual void SetVolume(int32_t volume) = 0;
virtual float GetPan() const abstract;
virtual void SetPan(float pan) abstract;
virtual float GetPan() const = 0;
virtual void SetPan(float pan) = 0;
virtual bool IsStopping() const abstract;
virtual void SetStopping(bool value) abstract;
virtual bool IsStopping() const = 0;
virtual void SetStopping(bool value) = 0;
virtual bool IsDone() const abstract;
virtual void SetDone(bool value) abstract;
virtual bool IsDone() const = 0;
virtual void SetDone(bool value) = 0;
virtual bool DeleteOnDone() const abstract;
virtual void SetDeleteOnDone(bool value) abstract;
virtual bool DeleteOnDone() const = 0;
virtual void SetDeleteOnDone(bool value) = 0;
virtual bool IsPlaying() const abstract;
virtual bool IsPlaying() const = 0;
virtual void Play(IAudioSource* source, int32_t loop = 0) abstract;
virtual void Stop() abstract;
virtual void UpdateOldVolume() abstract;
virtual void Play(IAudioSource* source, int32_t loop = 0) = 0;
virtual void Stop() = 0;
virtual void UpdateOldVolume() = 0;
virtual size_t Read(void* dst, size_t len) abstract;
virtual size_t Read(void* dst, size_t len) = 0;
};
} // namespace OpenRCT2::Audio

View File

@@ -29,25 +29,25 @@ namespace OpenRCT2::Audio
{
virtual ~IAudioContext() = default;
virtual IAudioMixer* GetMixer() abstract;
virtual IAudioMixer* GetMixer() = 0;
virtual std::vector<std::string> GetOutputDevices() abstract;
virtual void SetOutputDevice(const std::string& deviceName) abstract;
virtual std::vector<std::string> GetOutputDevices() = 0;
virtual void SetOutputDevice(const std::string& deviceName) = 0;
virtual IAudioSource* CreateStreamFromCSS(std::unique_ptr<IStream> stream, uint32_t index) abstract;
virtual IAudioSource* CreateStreamFromWAV(std::unique_ptr<IStream> stream) abstract;
virtual IAudioSource* CreateStreamFromCSS(std::unique_ptr<IStream> stream, uint32_t index) = 0;
virtual IAudioSource* CreateStreamFromWAV(std::unique_ptr<IStream> stream) = 0;
virtual void StartTitleMusic() abstract;
virtual void StartTitleMusic() = 0;
virtual void ToggleAllSounds() abstract;
virtual void PauseSounds() abstract;
virtual void UnpauseSounds() abstract;
virtual void ToggleAllSounds() = 0;
virtual void PauseSounds() = 0;
virtual void UnpauseSounds() = 0;
virtual void StopAll() abstract;
virtual void StopCrowdSound() abstract;
virtual void StopRideMusic() abstract;
virtual void StopTitleMusic() abstract;
virtual void StopVehicleSounds() abstract;
virtual void StopAll() = 0;
virtual void StopCrowdSound() = 0;
virtual void StopRideMusic() = 0;
virtual void StopTitleMusic() = 0;
virtual void StopVehicleSounds() = 0;
};
[[nodiscard]] std::unique_ptr<IAudioContext> CreateDummyAudioContext();

View File

@@ -21,10 +21,10 @@ namespace OpenRCT2::Audio
{
virtual ~IAudioSource() = default;
virtual void Release() abstract;
virtual bool IsReleased() const abstract;
virtual int32_t GetBytesPerSecond() const abstract;
virtual uint64_t GetLength() const abstract;
virtual size_t Read(void* dst, uint64_t offset, size_t len) abstract;
virtual void Release() = 0;
virtual bool IsReleased() const = 0;
virtual int32_t GetBytesPerSecond() const = 0;
virtual uint64_t GetLength() const = 0;
virtual size_t Read(void* dst, uint64_t offset, size_t len) = 0;
};
} // namespace OpenRCT2::Audio

View File

@@ -32,6 +32,4 @@ using datetime64 = uint64_t;
constexpr datetime64 DATETIME64_MIN = 0;
#define abstract = 0
#define assert_struct_size(x, y) static_assert(sizeof(x) == (y), "Improper struct size")

View File

@@ -30,8 +30,8 @@ template<typename T> struct ConfigEnumEntry
template<typename T> struct IConfigEnum
{
virtual ~IConfigEnum() = default;
virtual std::string GetName(T value) const abstract;
virtual T GetValue(const std::string& key, T defaultValue) const abstract;
virtual std::string GetName(T value) const = 0;
virtual T GetValue(const std::string& key, T defaultValue) const = 0;
};
template<typename T> class ConfigEnum final : public IConfigEnum<T>

View File

@@ -26,14 +26,14 @@ struct IIniReader
{
virtual ~IIniReader() = default;
virtual bool ReadSection(const std::string& name) abstract;
virtual bool ReadSection(const std::string& name) = 0;
virtual bool GetBoolean(const std::string& name, bool defaultValue) const abstract;
virtual int32_t GetInt32(const std::string& name, int32_t defaultValue) const abstract;
virtual int64_t GetInt64(const std::string& name, int64_t defaultValue) const abstract;
virtual float GetFloat(const std::string& name, float defaultValue) const abstract;
virtual std::string GetString(const std::string& name, const std::string& defaultValue) const abstract;
virtual bool TryGetString(const std::string& name, std::string* outValue) const abstract;
virtual bool GetBoolean(const std::string& name, bool defaultValue) const = 0;
virtual int32_t GetInt32(const std::string& name, int32_t defaultValue) const = 0;
virtual int64_t GetInt64(const std::string& name, int64_t defaultValue) const = 0;
virtual float GetFloat(const std::string& name, float defaultValue) const = 0;
virtual std::string GetString(const std::string& name, const std::string& defaultValue) const = 0;
virtual bool TryGetString(const std::string& name, std::string* outValue) const = 0;
template<typename T> T GetEnum(const std::string& name, T defaultValue, const IConfigEnum<T>& configEnum) const
{

View File

@@ -26,14 +26,14 @@ struct IIniWriter
{
virtual ~IIniWriter() = default;
virtual void WriteSection(const std::string& name) abstract;
virtual void WriteSection(const std::string& name) = 0;
virtual void WriteBoolean(const std::string& name, bool value) abstract;
virtual void WriteInt32(const std::string& name, int32_t value) abstract;
virtual void WriteInt64(const std::string& name, int64_t value) abstract;
virtual void WriteFloat(const std::string& name, float value) abstract;
virtual void WriteString(const std::string& name, const std::string& value) abstract;
virtual void WriteEnum(const std::string& name, const std::string& key) abstract;
virtual void WriteBoolean(const std::string& name, bool value) = 0;
virtual void WriteInt32(const std::string& name, int32_t value) = 0;
virtual void WriteInt64(const std::string& name, int64_t value) = 0;
virtual void WriteFloat(const std::string& name, float value) = 0;
virtual void WriteString(const std::string& name, const std::string& value) = 0;
virtual void WriteEnum(const std::string& name, const std::string& key) = 0;
template<typename T> void WriteEnum(const std::string& name, T value, const IConfigEnum<T>& configEnum)
{

View File

@@ -129,12 +129,12 @@ protected:
/**
* Loads the given file and creates the item representing the data to store in the index.
*/
virtual std::optional<TItem> Create(int32_t language, const std::string& path) const abstract;
virtual std::optional<TItem> Create(int32_t language, const std::string& path) const = 0;
/**
* Serialises/DeSerialises an index item to/from the given stream.
*/
virtual void Serialise(DataSerialiser& ds, const TItem& item) const abstract;
virtual void Serialise(DataSerialiser& ds, const TItem& item) const = 0;
private:
ScanResult Scan() const

View File

@@ -149,7 +149,7 @@ public:
return false;
}
virtual void GetDirectoryChildren(std::vector<DirectoryChild>& children, const std::string& path) abstract;
virtual void GetDirectoryChildren(std::vector<DirectoryChild>& children, const std::string& path) = 0;
private:
void PushState(const std::string& directory)

View File

@@ -30,12 +30,12 @@ struct IFileScanner
{
virtual ~IFileScanner() = default;
virtual const FileScanner::FileInfo& GetFileInfo() const abstract;
virtual const u8string& GetPath() const abstract;
virtual u8string GetPathRelative() const abstract;
virtual const FileScanner::FileInfo& GetFileInfo() const = 0;
virtual const u8string& GetPath() const = 0;
virtual u8string GetPathRelative() const = 0;
virtual void Reset() abstract;
virtual bool Next() abstract;
virtual void Reset() = 0;
virtual bool Next() = 0;
};
struct QueryDirectoryResult

View File

@@ -48,20 +48,20 @@ namespace OpenRCT2
{
}
virtual bool CanRead() const abstract;
virtual bool CanWrite() const abstract;
virtual bool CanRead() const = 0;
virtual bool CanWrite() const = 0;
virtual uint64_t GetLength() const abstract;
virtual uint64_t GetPosition() const abstract;
virtual void SetPosition(uint64_t position) abstract;
virtual void Seek(int64_t offset, int32_t origin) abstract;
virtual uint64_t GetLength() const = 0;
virtual uint64_t GetPosition() const = 0;
virtual void SetPosition(uint64_t position) = 0;
virtual void Seek(int64_t offset, int32_t origin) = 0;
virtual void Read(void* buffer, uint64_t length) abstract;
virtual void Write(const void* buffer, uint64_t length) abstract;
virtual void Read(void* buffer, uint64_t length) = 0;
virtual void Write(const void* buffer, uint64_t length) = 0;
virtual uint64_t TryRead(void* buffer, uint64_t length) abstract;
virtual uint64_t TryRead(void* buffer, uint64_t length) = 0;
virtual const void* GetData() const abstract;
virtual const void* GetData() const = 0;
///////////////////////////////////////////////////////////////////////////
// Fast path methods, class can override them to use specialised copies.

View File

@@ -16,10 +16,10 @@ struct IStringReader
{
virtual ~IStringReader() = default;
virtual bool TryPeek(codepoint_t* outCodepoint) abstract;
virtual bool TryRead(codepoint_t* outCodepoint) abstract;
virtual void Skip() abstract;
virtual bool CanRead() const abstract;
virtual bool TryPeek(codepoint_t* outCodepoint) = 0;
virtual bool TryRead(codepoint_t* outCodepoint) = 0;
virtual void Skip() = 0;
virtual bool CanRead() const = 0;
};
class UTF8StringReader final : public IStringReader

View File

@@ -31,21 +31,21 @@ struct IZipArchive
{
}
[[nodiscard]] virtual size_t GetNumFiles() const abstract;
[[nodiscard]] virtual std::string GetFileName(size_t index) const abstract;
[[nodiscard]] virtual uint64_t GetFileSize(size_t index) const abstract;
[[nodiscard]] virtual std::vector<uint8_t> GetFileData(std::string_view path) const abstract;
[[nodiscard]] virtual std::unique_ptr<OpenRCT2::IStream> GetFileStream(std::string_view path) const abstract;
[[nodiscard]] virtual size_t GetNumFiles() const = 0;
[[nodiscard]] virtual std::string GetFileName(size_t index) const = 0;
[[nodiscard]] virtual uint64_t GetFileSize(size_t index) const = 0;
[[nodiscard]] virtual std::vector<uint8_t> GetFileData(std::string_view path) const = 0;
[[nodiscard]] virtual std::unique_ptr<OpenRCT2::IStream> GetFileStream(std::string_view path) const = 0;
/**
* Creates or overwrites a file within the zip archive to the given data buffer.
* @param path The path of the file within the zip.
* @param data The data to write.
*/
virtual void SetFileData(std::string_view path, std::vector<uint8_t>&& data) abstract;
virtual void SetFileData(std::string_view path, std::vector<uint8_t>&& data) = 0;
virtual void DeleteFile(std::string_view path) abstract;
virtual void RenameFile(std::string_view path, std::string_view newPath) abstract;
virtual void DeleteFile(std::string_view path) = 0;
virtual void RenameFile(std::string_view path, std::string_view newPath) = 0;
[[nodiscard]] std::optional<size_t> GetIndexFromPath(std::string_view path) const;
[[nodiscard]] bool Exists(std::string_view path) const;

View File

@@ -21,21 +21,22 @@ namespace OpenRCT2::Drawing
{
virtual ~IDrawingContext() = default;
virtual void Clear(DrawPixelInfo& dpi, uint8_t paletteIndex) abstract;
virtual void FillRect(
DrawPixelInfo& dpi, uint32_t colour, int32_t left, int32_t top, int32_t right, int32_t bottom) abstract;
virtual void Clear(DrawPixelInfo& dpi, uint8_t paletteIndex) = 0;
virtual void FillRect(DrawPixelInfo& dpi, uint32_t colour, int32_t left, int32_t top, int32_t right, int32_t bottom)
= 0;
virtual void FilterRect(
DrawPixelInfo& dpi, FilterPaletteID palette, int32_t left, int32_t top, int32_t right, int32_t bottom) abstract;
virtual void DrawLine(DrawPixelInfo& dpi, uint32_t colour, const ScreenLine& line) abstract;
virtual void DrawSprite(DrawPixelInfo& dpi, const ImageId image, int32_t x, int32_t y) abstract;
DrawPixelInfo& dpi, FilterPaletteID palette, int32_t left, int32_t top, int32_t right, int32_t bottom)
= 0;
virtual void DrawLine(DrawPixelInfo& dpi, uint32_t colour, const ScreenLine& line) = 0;
virtual void DrawSprite(DrawPixelInfo& dpi, const ImageId image, int32_t x, int32_t y) = 0;
virtual void DrawSpriteRawMasked(
DrawPixelInfo& dpi, int32_t x, int32_t y, const ImageId maskImage, const ImageId colourImage) abstract;
virtual void DrawSpriteSolid(DrawPixelInfo& dpi, const ImageId image, int32_t x, int32_t y, uint8_t colour) abstract;
virtual void DrawGlyph(
DrawPixelInfo& dpi, const ImageId image, int32_t x, int32_t y, const PaletteMap& palette) abstract;
DrawPixelInfo& dpi, int32_t x, int32_t y, const ImageId maskImage, const ImageId colourImage)
= 0;
virtual void DrawSpriteSolid(DrawPixelInfo& dpi, const ImageId image, int32_t x, int32_t y, uint8_t colour) = 0;
virtual void DrawGlyph(DrawPixelInfo& dpi, const ImageId image, int32_t x, int32_t y, const PaletteMap& palette) = 0;
virtual void DrawTTFBitmap(
DrawPixelInfo& dpi, TextDrawInfo* info, TTFSurface* surface, int32_t x, int32_t y,
uint8_t hintingThreshold) abstract;
DrawPixelInfo& dpi, TextDrawInfo* info, TTFSurface* surface, int32_t x, int32_t y, uint8_t hintingThreshold)
= 0;
};
} // namespace OpenRCT2::Drawing

View File

@@ -57,26 +57,26 @@ namespace OpenRCT2::Drawing
{
}
virtual void Initialise() abstract;
virtual void Resize(uint32_t width, uint32_t height) abstract;
virtual void SetPalette(const GamePalette& colours) abstract;
virtual void Initialise() = 0;
virtual void Resize(uint32_t width, uint32_t height) = 0;
virtual void SetPalette(const GamePalette& colours) = 0;
virtual void SetVSync(bool vsync) abstract;
virtual void SetVSync(bool vsync) = 0;
virtual void Invalidate(int32_t left, int32_t top, int32_t right, int32_t bottom) abstract;
virtual void BeginDraw() abstract;
virtual void EndDraw() abstract;
virtual void PaintWindows() abstract;
virtual void PaintWeather() abstract;
virtual void CopyRect(int32_t x, int32_t y, int32_t width, int32_t height, int32_t dx, int32_t dy) abstract;
virtual std::string Screenshot() abstract;
virtual void Invalidate(int32_t left, int32_t top, int32_t right, int32_t bottom) = 0;
virtual void BeginDraw() = 0;
virtual void EndDraw() = 0;
virtual void PaintWindows() = 0;
virtual void PaintWeather() = 0;
virtual void CopyRect(int32_t x, int32_t y, int32_t width, int32_t height, int32_t dx, int32_t dy) = 0;
virtual std::string Screenshot() = 0;
virtual IDrawingContext* GetDrawingContext() abstract;
virtual DrawPixelInfo* GetDrawingPixelInfo() abstract;
virtual IDrawingContext* GetDrawingContext() = 0;
virtual DrawPixelInfo* GetDrawingPixelInfo() = 0;
virtual DRAWING_ENGINE_FLAGS GetFlags() abstract;
virtual DRAWING_ENGINE_FLAGS GetFlags() = 0;
virtual void InvalidateImage(uint32_t image) abstract;
virtual void InvalidateImage(uint32_t image) = 0;
};
struct IDrawingEngineFactory
@@ -84,8 +84,8 @@ namespace OpenRCT2::Drawing
virtual ~IDrawingEngineFactory()
{
}
[[nodiscard]] virtual std::unique_ptr<IDrawingEngine> Create(
DrawingEngine type, const std::shared_ptr<OpenRCT2::Ui::IUiContext>& uiContext) abstract;
[[nodiscard]] virtual std::unique_ptr<IDrawingEngine>
Create(DrawingEngine type, const std::shared_ptr<OpenRCT2::Ui::IUiContext>& uiContext) = 0;
};
struct IWeatherDrawer
@@ -93,6 +93,7 @@ namespace OpenRCT2::Drawing
virtual ~IWeatherDrawer() = default;
virtual void Draw(
DrawPixelInfo& dpi, int32_t x, int32_t y, int32_t width, int32_t height, int32_t xStart, int32_t yStart,
const uint8_t* weatherpattern) abstract;
const uint8_t* weatherpattern)
= 0;
};
} // namespace OpenRCT2::Drawing

View File

@@ -41,8 +41,8 @@ public:
void WriteLineWarning(const std::string& s);
void WriteFormatLine(const char* format, ...);
virtual void Clear() abstract;
virtual void Close() abstract;
virtual void Hide() abstract;
virtual void WriteLine(const std::string& s, FormatToken colourFormat) abstract;
virtual void Clear() = 0;
virtual void Close() = 0;
virtual void Hide() = 0;
virtual void WriteLine(const std::string& s, FormatToken colourFormat) = 0;
};

View File

@@ -20,13 +20,13 @@ struct ILanguagePack
{
virtual ~ILanguagePack() = default;
virtual uint16_t GetId() const abstract;
virtual uint32_t GetCount() const abstract;
virtual uint16_t GetId() const = 0;
virtual uint32_t GetCount() const = 0;
virtual void RemoveString(StringId stringId) abstract;
virtual void SetString(StringId stringId, const std::string& str) abstract;
virtual const utf8* GetString(StringId stringId) const abstract;
virtual StringId GetScenarioOverrideStringId(const utf8* scenarioFilename, uint8_t index) abstract;
virtual void RemoveString(StringId stringId) = 0;
virtual void SetString(StringId stringId, const std::string& str) = 0;
virtual const utf8* GetString(StringId stringId) const = 0;
virtual StringId GetScenarioOverrideStringId(const utf8* scenarioFilename, uint8_t index) = 0;
};
namespace LanguagePackFactory

View File

@@ -26,8 +26,8 @@ struct INetworkServerAdvertiser
{
}
virtual ADVERTISE_STATUS GetStatus() const abstract;
virtual void Update() abstract;
virtual ADVERTISE_STATUS GetStatus() const = 0;
virtual void Update() = 0;
};
[[nodiscard]] std::unique_ptr<INetworkServerAdvertiser> CreateServerAdvertiser(uint16_t port);

View File

@@ -42,7 +42,7 @@ struct INetworkEndpoint
{
}
virtual std::string GetHostname() const abstract;
virtual std::string GetHostname() const = 0;
};
/**
@@ -53,26 +53,26 @@ struct ITcpSocket
public:
virtual ~ITcpSocket() = default;
virtual SocketStatus GetStatus() const abstract;
virtual const char* GetError() const abstract;
virtual const char* GetHostName() const abstract;
virtual std::string GetIpAddress() const abstract;
virtual SocketStatus GetStatus() const = 0;
virtual const char* GetError() const = 0;
virtual const char* GetHostName() const = 0;
virtual std::string GetIpAddress() const = 0;
virtual void Listen(uint16_t port) abstract;
virtual void Listen(const std::string& address, uint16_t port) abstract;
[[nodiscard]] virtual std::unique_ptr<ITcpSocket> Accept() abstract;
virtual void Listen(uint16_t port) = 0;
virtual void Listen(const std::string& address, uint16_t port) = 0;
[[nodiscard]] virtual std::unique_ptr<ITcpSocket> Accept() = 0;
virtual void Connect(const std::string& address, uint16_t port) abstract;
virtual void ConnectAsync(const std::string& address, uint16_t port) abstract;
virtual void Connect(const std::string& address, uint16_t port) = 0;
virtual void ConnectAsync(const std::string& address, uint16_t port) = 0;
virtual size_t SendData(const void* buffer, size_t size) abstract;
virtual NetworkReadPacket ReceiveData(void* buffer, size_t size, size_t* sizeReceived) abstract;
virtual size_t SendData(const void* buffer, size_t size) = 0;
virtual NetworkReadPacket ReceiveData(void* buffer, size_t size, size_t* sizeReceived) = 0;
virtual void SetNoDelay(bool noDelay) abstract;
virtual void SetNoDelay(bool noDelay) = 0;
virtual void Finish() abstract;
virtual void Disconnect() abstract;
virtual void Close() abstract;
virtual void Finish() = 0;
virtual void Disconnect() = 0;
virtual void Close() = 0;
};
/**
@@ -83,19 +83,20 @@ struct IUdpSocket
public:
virtual ~IUdpSocket() = default;
virtual SocketStatus GetStatus() const abstract;
virtual const char* GetError() const abstract;
virtual const char* GetHostName() const abstract;
virtual SocketStatus GetStatus() const = 0;
virtual const char* GetError() const = 0;
virtual const char* GetHostName() const = 0;
virtual void Listen(uint16_t port) abstract;
virtual void Listen(const std::string& address, uint16_t port) abstract;
virtual void Listen(uint16_t port) = 0;
virtual void Listen(const std::string& address, uint16_t port) = 0;
virtual size_t SendData(const std::string& address, uint16_t port, const void* buffer, size_t size) abstract;
virtual size_t SendData(const INetworkEndpoint& destination, const void* buffer, size_t size) abstract;
virtual size_t SendData(const std::string& address, uint16_t port, const void* buffer, size_t size) = 0;
virtual size_t SendData(const INetworkEndpoint& destination, const void* buffer, size_t size) = 0;
virtual NetworkReadPacket ReceiveData(
void* buffer, size_t size, size_t* sizeReceived, std::unique_ptr<INetworkEndpoint>* sender) abstract;
void* buffer, size_t size, size_t* sizeReceived, std::unique_ptr<INetworkEndpoint>* sender)
= 0;
virtual void Close() abstract;
virtual void Close() = 0;
};
[[nodiscard]] std::unique_ptr<ITcpSocket> CreateTcpSocket();

View File

@@ -168,15 +168,15 @@ struct IReadObjectContext
{
virtual ~IReadObjectContext() = default;
virtual std::string_view GetObjectIdentifier() abstract;
virtual IObjectRepository& GetObjectRepository() abstract;
virtual bool ShouldLoadImages() abstract;
virtual std::vector<uint8_t> GetData(std::string_view path) abstract;
virtual ObjectAsset GetAsset(std::string_view path) abstract;
virtual std::string_view GetObjectIdentifier() = 0;
virtual IObjectRepository& GetObjectRepository() = 0;
virtual bool ShouldLoadImages() = 0;
virtual std::vector<uint8_t> GetData(std::string_view path) = 0;
virtual ObjectAsset GetAsset(std::string_view path) = 0;
virtual void LogVerbose(ObjectError code, const utf8* text) abstract;
virtual void LogWarning(ObjectError code, const utf8* text) abstract;
virtual void LogError(ObjectError code, const utf8* text) abstract;
virtual void LogVerbose(ObjectError code, const utf8* text) = 0;
virtual void LogWarning(ObjectError code, const utf8* text) = 0;
virtual void LogError(ObjectError code, const utf8* text) = 0;
};
#ifdef __WARN_SUGGEST_FINAL_TYPES__
@@ -285,8 +285,8 @@ public:
{
}
virtual void ReadLegacy(IReadObjectContext* context, OpenRCT2::IStream* stream);
virtual void Load() abstract;
virtual void Unload() abstract;
virtual void Load() = 0;
virtual void Unload() = 0;
virtual void DrawPreview(DrawPixelInfo& /*dpi*/, int32_t /*width*/, int32_t /*height*/) const
{

View File

@@ -50,8 +50,8 @@
struct IFileDataRetriever
{
virtual ~IFileDataRetriever() = default;
virtual std::vector<uint8_t> GetData(std::string_view path) const abstract;
virtual ObjectAsset GetAsset(std::string_view path) const abstract;
virtual std::vector<uint8_t> GetData(std::string_view path) const = 0;
virtual ObjectAsset GetAsset(std::string_view path) const = 0;
};
class FileSystemDataRetriever : public IFileDataRetriever

View File

@@ -26,26 +26,26 @@ struct IObjectManager
{
}
virtual Object* GetLoadedObject(ObjectType objectType, size_t index) abstract;
virtual Object* GetLoadedObject(const ObjectEntryDescriptor& entry) abstract;
virtual ObjectEntryIndex GetLoadedObjectEntryIndex(std::string_view identifier) abstract;
virtual ObjectEntryIndex GetLoadedObjectEntryIndex(const ObjectEntryDescriptor& descriptor) abstract;
virtual ObjectEntryIndex GetLoadedObjectEntryIndex(const Object* object) abstract;
virtual ObjectList GetLoadedObjects() abstract;
virtual Object* GetLoadedObject(ObjectType objectType, size_t index) = 0;
virtual Object* GetLoadedObject(const ObjectEntryDescriptor& entry) = 0;
virtual ObjectEntryIndex GetLoadedObjectEntryIndex(std::string_view identifier) = 0;
virtual ObjectEntryIndex GetLoadedObjectEntryIndex(const ObjectEntryDescriptor& descriptor) = 0;
virtual ObjectEntryIndex GetLoadedObjectEntryIndex(const Object* object) = 0;
virtual ObjectList GetLoadedObjects() = 0;
virtual Object* LoadObject(std::string_view identifier) abstract;
virtual Object* LoadObject(const RCTObjectEntry* entry) abstract;
virtual Object* LoadObject(const ObjectEntryDescriptor& descriptor) abstract;
virtual Object* LoadObject(const ObjectEntryDescriptor& descriptor, ObjectEntryIndex slot) abstract;
virtual void LoadObjects(const ObjectList& entries) abstract;
virtual void UnloadObjects(const std::vector<ObjectEntryDescriptor>& entries) abstract;
virtual void UnloadAllTransient() abstract;
virtual void UnloadAll() abstract;
virtual Object* LoadObject(std::string_view identifier) = 0;
virtual Object* LoadObject(const RCTObjectEntry* entry) = 0;
virtual Object* LoadObject(const ObjectEntryDescriptor& descriptor) = 0;
virtual Object* LoadObject(const ObjectEntryDescriptor& descriptor, ObjectEntryIndex slot) = 0;
virtual void LoadObjects(const ObjectList& entries) = 0;
virtual void UnloadObjects(const std::vector<ObjectEntryDescriptor>& entries) = 0;
virtual void UnloadAllTransient() = 0;
virtual void UnloadAll() = 0;
virtual void ResetObjects() abstract;
virtual void ResetObjects() = 0;
virtual std::vector<const ObjectRepositoryItem*> GetPackableObjects() abstract;
virtual const std::vector<ObjectEntryIndex>& GetAllRideEntries(ride_type_t rideType) abstract;
virtual std::vector<const ObjectRepositoryItem*> GetPackableObjects() = 0;
virtual const std::vector<ObjectEntryIndex>& GetAllRideEntries(ride_type_t rideType) = 0;
};
[[nodiscard]] std::unique_ptr<IObjectManager> CreateObjectManager(IObjectRepository& objectRepository);

View File

@@ -81,24 +81,24 @@ struct IObjectRepository
{
virtual ~IObjectRepository() = default;
virtual void LoadOrConstruct(int32_t language) abstract;
virtual void Construct(int32_t language) abstract;
[[nodiscard]] virtual size_t GetNumObjects() const abstract;
[[nodiscard]] virtual const ObjectRepositoryItem* GetObjects() const abstract;
[[nodiscard]] virtual const ObjectRepositoryItem* FindObjectLegacy(std::string_view legacyIdentifier) const abstract;
[[nodiscard]] virtual const ObjectRepositoryItem* FindObject(std::string_view identifier) const abstract;
[[nodiscard]] virtual const ObjectRepositoryItem* FindObject(const RCTObjectEntry* objectEntry) const abstract;
[[nodiscard]] virtual const ObjectRepositoryItem* FindObject(const ObjectEntryDescriptor& oed) const abstract;
virtual void LoadOrConstruct(int32_t language) = 0;
virtual void Construct(int32_t language) = 0;
[[nodiscard]] virtual size_t GetNumObjects() const = 0;
[[nodiscard]] virtual const ObjectRepositoryItem* GetObjects() const = 0;
[[nodiscard]] virtual const ObjectRepositoryItem* FindObjectLegacy(std::string_view legacyIdentifier) const = 0;
[[nodiscard]] virtual const ObjectRepositoryItem* FindObject(std::string_view identifier) const = 0;
[[nodiscard]] virtual const ObjectRepositoryItem* FindObject(const RCTObjectEntry* objectEntry) const = 0;
[[nodiscard]] virtual const ObjectRepositoryItem* FindObject(const ObjectEntryDescriptor& oed) const = 0;
[[nodiscard]] virtual std::unique_ptr<Object> LoadObject(const ObjectRepositoryItem* ori) abstract;
virtual void RegisterLoadedObject(const ObjectRepositoryItem* ori, std::unique_ptr<Object>&& object) abstract;
virtual void UnregisterLoadedObject(const ObjectRepositoryItem* ori, Object* object) abstract;
[[nodiscard]] virtual std::unique_ptr<Object> LoadObject(const ObjectRepositoryItem* ori) = 0;
virtual void RegisterLoadedObject(const ObjectRepositoryItem* ori, std::unique_ptr<Object>&& object) = 0;
virtual void UnregisterLoadedObject(const ObjectRepositoryItem* ori, Object* object) = 0;
virtual void AddObject(const RCTObjectEntry* objectEntry, const void* data, size_t dataSize) abstract;
virtual void AddObjectFromFile(
ObjectGeneration generation, std::string_view objectName, const void* data, size_t dataSize) abstract;
virtual void AddObject(const RCTObjectEntry* objectEntry, const void* data, size_t dataSize) = 0;
virtual void AddObjectFromFile(ObjectGeneration generation, std::string_view objectName, const void* data, size_t dataSize)
= 0;
virtual void ExportPackedObject(OpenRCT2::IStream* stream) abstract;
virtual void ExportPackedObject(OpenRCT2::IStream* stream) = 0;
};
[[nodiscard]] std::unique_ptr<IObjectRepository> CreateObjectRepository(

View File

@@ -32,15 +32,15 @@ struct ITrackDesignRepository
{
virtual ~ITrackDesignRepository() = default;
[[nodiscard]] virtual size_t GetCount() const abstract;
[[nodiscard]] virtual size_t GetCountForObjectEntry(ride_type_t rideType, const std::string& entry) const abstract;
[[nodiscard]] virtual size_t GetCount() const = 0;
[[nodiscard]] virtual size_t GetCountForObjectEntry(ride_type_t rideType, const std::string& entry) const = 0;
[[nodiscard]] virtual std::vector<TrackDesignFileRef> GetItemsForObjectEntry(
ride_type_t rideType, const std::string& entry) const abstract;
ride_type_t rideType, const std::string& entry) const = 0;
virtual void Scan(int32_t language) abstract;
virtual bool Delete(const std::string& path) abstract;
virtual std::string Rename(const std::string& path, const std::string& newName) abstract;
virtual std::string Install(const std::string& path, const std::string& name) abstract;
virtual void Scan(int32_t language) = 0;
virtual bool Delete(const std::string& path) = 0;
virtual std::string Rename(const std::string& path, const std::string& newName) = 0;
virtual std::string Install(const std::string& path, const std::string& name) = 0;
};
[[nodiscard]] std::unique_ptr<ITrackDesignRepository> CreateTrackDesignRepository(

View File

@@ -75,19 +75,18 @@ struct IScenarioRepository
/**
* Scans the scenario directories and grabs the metadata for all the scenarios.
*/
virtual void Scan(int32_t language) abstract;
virtual void Scan(int32_t language) = 0;
virtual size_t GetCount() const abstract;
virtual const ScenarioIndexEntry* GetByIndex(size_t index) const abstract;
virtual const ScenarioIndexEntry* GetByFilename(u8string_view filename) const abstract;
virtual size_t GetCount() const = 0;
virtual const ScenarioIndexEntry* GetByIndex(size_t index) const = 0;
virtual const ScenarioIndexEntry* GetByFilename(u8string_view filename) const = 0;
/**
* Does not return custom scenarios due to the fact that they may have the same name.
*/
virtual const ScenarioIndexEntry* GetByInternalName(const utf8* name) const abstract;
virtual const ScenarioIndexEntry* GetByPath(const utf8* path) const abstract;
virtual const ScenarioIndexEntry* GetByInternalName(const utf8* name) const = 0;
virtual const ScenarioIndexEntry* GetByPath(const utf8* path) const = 0;
virtual bool TryRecordHighscore(
int32_t language, const utf8* scenarioFileName, money64 companyValue, const utf8* name) abstract;
virtual bool TryRecordHighscore(int32_t language, const utf8* scenarioFileName, money64 companyValue, const utf8* name) = 0;
};
[[nodiscard]] std::unique_ptr<IScenarioRepository> CreateScenarioRepository(

View File

@@ -15,11 +15,11 @@ struct ITitleSequencePlayer
{
virtual ~ITitleSequencePlayer() = default;
virtual int32_t GetCurrentPosition() const abstract;
virtual int32_t GetCurrentPosition() const = 0;
virtual bool Begin(size_t titleSequenceId) abstract;
virtual void Reset() abstract;
virtual bool Update() abstract;
virtual void Seek(int32_t position) abstract;
virtual void Eject() abstract;
virtual bool Begin(size_t titleSequenceId) = 0;
virtual void Reset() = 0;
virtual bool Update() = 0;
virtual void Seek(int32_t position) = 0;
virtual void Eject() = 0;
};

View File

@@ -99,72 +99,75 @@ namespace OpenRCT2
{
virtual ~IUiContext() = default;
virtual void InitialiseScriptExtensions() abstract;
virtual void Tick() abstract;
virtual void Draw(DrawPixelInfo& dpi) abstract;
virtual void InitialiseScriptExtensions() = 0;
virtual void Tick() = 0;
virtual void Draw(DrawPixelInfo& dpi) = 0;
// Window
virtual void CreateWindow() abstract;
virtual void CloseWindow() abstract;
virtual void RecreateWindow() abstract;
virtual void* GetWindow() abstract;
virtual int32_t GetWidth() abstract;
virtual int32_t GetHeight() abstract;
virtual ScaleQuality GetScaleQuality() abstract;
virtual void SetFullscreenMode(FULLSCREEN_MODE mode) abstract;
virtual const std::vector<Resolution>& GetFullscreenResolutions() abstract;
virtual bool HasFocus() abstract;
virtual bool IsMinimised() abstract;
virtual bool IsSteamOverlayActive() abstract;
virtual void ProcessMessages() abstract;
virtual void TriggerResize() abstract;
virtual void CreateWindow() = 0;
virtual void CloseWindow() = 0;
virtual void RecreateWindow() = 0;
virtual void* GetWindow() = 0;
virtual int32_t GetWidth() = 0;
virtual int32_t GetHeight() = 0;
virtual ScaleQuality GetScaleQuality() = 0;
virtual void SetFullscreenMode(FULLSCREEN_MODE mode) = 0;
virtual const std::vector<Resolution>& GetFullscreenResolutions() = 0;
virtual bool HasFocus() = 0;
virtual bool IsMinimised() = 0;
virtual bool IsSteamOverlayActive() = 0;
virtual void ProcessMessages() = 0;
virtual void TriggerResize() = 0;
virtual void ShowMessageBox(const std::string& message) abstract;
virtual void ShowMessageBox(const std::string& message) = 0;
virtual int32_t ShowMessageBox(
const std::string& title, const std::string& message, const std::vector<std::string>& options) abstract;
const std::string& title, const std::string& message, const std::vector<std::string>& options)
= 0;
virtual bool HasMenuSupport() abstract;
virtual bool HasMenuSupport() = 0;
// Creates a menu with a series of options, returns the index of the selected option
virtual int32_t ShowMenuDialog(
const std::vector<std::string>& options, const std::string& title, const std::string& text) abstract;
virtual void OpenFolder(const std::string& path) abstract;
virtual void OpenURL(const std::string& url) abstract;
virtual std::string ShowFileDialog(const FileDialogDesc& desc) abstract;
virtual std::string ShowDirectoryDialog(const std::string& title) abstract;
virtual bool HasFilePicker() const abstract;
const std::vector<std::string>& options, const std::string& title, const std::string& text)
= 0;
virtual void OpenFolder(const std::string& path) = 0;
virtual void OpenURL(const std::string& url) = 0;
virtual std::string ShowFileDialog(const FileDialogDesc& desc) = 0;
virtual std::string ShowDirectoryDialog(const std::string& title) = 0;
virtual bool HasFilePicker() const = 0;
// Input
virtual const CursorState* GetCursorState() abstract;
virtual CursorID GetCursor() abstract;
virtual void SetCursor(CursorID cursor) abstract;
virtual void SetCursorScale(uint8_t scale) abstract;
virtual void SetCursorVisible(bool value) abstract;
virtual ScreenCoordsXY GetCursorPosition() abstract;
virtual void SetCursorPosition(const ScreenCoordsXY& cursorPosition) abstract;
virtual void SetCursorTrap(bool value) abstract;
virtual const uint8_t* GetKeysState() abstract;
virtual const uint8_t* GetKeysPressed() abstract;
virtual void SetKeysPressed(uint32_t keysym, uint8_t scancode) abstract;
virtual const CursorState* GetCursorState() = 0;
virtual CursorID GetCursor() = 0;
virtual void SetCursor(CursorID cursor) = 0;
virtual void SetCursorScale(uint8_t scale) = 0;
virtual void SetCursorVisible(bool value) = 0;
virtual ScreenCoordsXY GetCursorPosition() = 0;
virtual void SetCursorPosition(const ScreenCoordsXY& cursorPosition) = 0;
virtual void SetCursorTrap(bool value) = 0;
virtual const uint8_t* GetKeysState() = 0;
virtual const uint8_t* GetKeysPressed() = 0;
virtual void SetKeysPressed(uint32_t keysym, uint8_t scancode) = 0;
// Drawing
[[nodiscard]] virtual std::shared_ptr<Drawing::IDrawingEngineFactory> GetDrawingEngineFactory() abstract;
[[nodiscard]] virtual std::shared_ptr<Drawing::IDrawingEngineFactory> GetDrawingEngineFactory() = 0;
virtual void DrawWeatherAnimation(
OpenRCT2::Drawing::IWeatherDrawer* weatherDrawer, DrawPixelInfo& dpi,
OpenRCT2::Drawing::DrawWeatherFunc drawFunc) abstract;
OpenRCT2::Drawing::DrawWeatherFunc drawFunc)
= 0;
// Text input
virtual bool IsTextInputActive() abstract;
virtual TextInputSession* StartTextInput(u8string& buffer, size_t maxLength) abstract;
virtual void StopTextInput() abstract;
virtual bool IsTextInputActive() = 0;
virtual TextInputSession* StartTextInput(u8string& buffer, size_t maxLength) = 0;
virtual void StopTextInput() = 0;
// In-game UI
virtual IWindowManager* GetWindowManager() abstract;
virtual IWindowManager* GetWindowManager() = 0;
// Clipboard
virtual bool SetClipboardText(const utf8* target) abstract;
virtual bool SetClipboardText(const utf8* target) = 0;
// HACK Until all title logic is moved to libopenrct2ui, we will need to provide some services
virtual ITitleSequencePlayer* GetTitleSequencePlayer() abstract;
virtual ITitleSequencePlayer* GetTitleSequencePlayer() = 0;
};
[[nodiscard]] std::shared_ptr<IUiContext> CreateDummyUiContext();

View File

@@ -27,23 +27,22 @@ namespace OpenRCT2::Ui
struct IWindowManager
{
virtual ~IWindowManager() = default;
virtual void Init() abstract;
virtual WindowBase* OpenWindow(WindowClass wc) abstract;
virtual WindowBase* OpenView(uint8_t view) abstract;
virtual WindowBase* OpenDetails(uint8_t type, int32_t id) abstract;
virtual WindowBase* OpenIntent(Intent* intent) abstract;
virtual void BroadcastIntent(const Intent& intent) abstract;
virtual WindowBase* ShowError(
StringId title, StringId message, const Formatter& formatter, bool autoClose = false) abstract;
virtual WindowBase* ShowError(std::string_view title, std::string_view message, bool autoClose = false) abstract;
virtual void ForceClose(WindowClass windowClass) abstract;
virtual void UpdateMapTooltip() abstract;
virtual void HandleInput() abstract;
virtual void HandleKeyboard(bool isTitle) abstract;
virtual std::string GetKeyboardShortcutString(std::string_view shortcutId) abstract;
virtual void SetMainView(const ScreenCoordsXY& viewPos, ZoomLevel zoom, int32_t rotation) abstract;
virtual void UpdateMouseWheel() abstract;
virtual WindowBase* GetOwner(const Viewport* viewport) abstract;
virtual void Init() = 0;
virtual WindowBase* OpenWindow(WindowClass wc) = 0;
virtual WindowBase* OpenView(uint8_t view) = 0;
virtual WindowBase* OpenDetails(uint8_t type, int32_t id) = 0;
virtual WindowBase* OpenIntent(Intent* intent) = 0;
virtual void BroadcastIntent(const Intent& intent) = 0;
virtual WindowBase* ShowError(StringId title, StringId message, const Formatter& formatter, bool autoClose = false) = 0;
virtual WindowBase* ShowError(std::string_view title, std::string_view message, bool autoClose = false) = 0;
virtual void ForceClose(WindowClass windowClass) = 0;
virtual void UpdateMapTooltip() = 0;
virtual void HandleInput() = 0;
virtual void HandleKeyboard(bool isTitle) = 0;
virtual std::string GetKeyboardShortcutString(std::string_view shortcutId) = 0;
virtual void SetMainView(const ScreenCoordsXY& viewPos, ZoomLevel zoom, int32_t rotation) = 0;
virtual void UpdateMouseWheel() = 0;
virtual WindowBase* GetOwner(const Viewport* viewport) = 0;
};
std::unique_ptr<IWindowManager> CreateDummyWindowManager();