mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-05-07 13:04:58 +00:00
42 lines
882 B
C++
42 lines
882 B
C++
#pragma once
|
|
|
|
#include "Game/GameLanguage.h"
|
|
#include "Game/IGame.h"
|
|
#include "Pool/ZoneAssetPools.h"
|
|
#include "Zone/ZoneTypes.h"
|
|
#include "ZoneMemory.h"
|
|
#include "ZoneScriptStrings.h"
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
class IGame;
|
|
class ZoneAssetPools;
|
|
|
|
class Zone
|
|
{
|
|
public:
|
|
std::string m_name;
|
|
zone_priority_t m_priority;
|
|
GameLanguage m_language;
|
|
IGame* m_game;
|
|
ZoneScriptStrings m_script_strings;
|
|
std::unique_ptr<ZoneAssetPools> m_pools;
|
|
|
|
Zone(std::string name, zone_priority_t priority, IGame* game);
|
|
~Zone();
|
|
Zone(const Zone& other) = delete;
|
|
Zone(Zone&& other) noexcept = default;
|
|
Zone& operator=(const Zone& other) = delete;
|
|
Zone& operator=(Zone&& other) noexcept = default;
|
|
|
|
void Register();
|
|
|
|
[[nodiscard]] ZoneMemory& Memory() const;
|
|
|
|
private:
|
|
std::unique_ptr<ZoneMemory> m_memory;
|
|
|
|
bool m_registered;
|
|
};
|