#pragma once #include "DLCGameRules.h" #include "../GameRules/LevelGenerationOptions.h" class DLCGameRulesHeader : public DLCGameRules, public JustGrSource { private: // GR-Header std::uint8_t* m_pbData; std::uint32_t m_dataBytes; bool m_hasData; public: virtual bool requiresTexturePack() { return m_bRequiresTexturePack; } virtual std::uint32_t getRequiredTexturePackId() { return m_requiredTexturePackId; } virtual std::wstring getDefaultSaveName() { return m_defaultSaveName; } virtual const wchar_t* getWorldName() { return m_worldName.c_str(); } virtual const wchar_t* getDisplayName() { return m_displayName.c_str(); } virtual std::wstring getGrfPath() { return L"GameRules.grf"; } virtual void setRequiresTexturePack(bool x) { m_bRequiresTexturePack = x; } virtual void setRequiredTexturePackId(std::uint32_t x) { m_requiredTexturePackId = x; } virtual void setDefaultSaveName(const std::wstring& x) { m_defaultSaveName = x; } virtual void setWorldName(const std::wstring& x) { m_worldName = x; } virtual void setDisplayName(const std::wstring& x) { m_displayName = x; } virtual void setGrfPath(const std::wstring& x) { m_grfPath = x; } LevelGenerationOptions* lgo; public: DLCGameRulesHeader(const std::wstring& path); virtual void addData(std::uint8_t* pbData, std::uint32_t dataBytes); virtual std::uint8_t* getData(std::uint32_t& dataBytes); void setGrfData(std::uint8_t* fData, std::uint32_t dataSize, StringTable*); virtual bool ready() { return m_hasData; } };