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:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user