mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-25 22:27:53 -05:00
Restructure ZoneDefinitionWriting
This commit is contained in:
@ -8,7 +8,7 @@ ContentPrinter::ContentPrinter(Zone* zone)
|
||||
void ContentPrinter::PrintContent() const
|
||||
{
|
||||
const auto* pools = m_zone->m_pools.get();
|
||||
printf("Zone '%s' (%s)\n", m_zone->m_name.c_str(), m_zone->m_game->GetName().c_str());
|
||||
printf("Zone '%s' (%s)\n", m_zone->m_name.c_str(), m_zone->m_game->GetShortName().c_str());
|
||||
puts("Content:");
|
||||
|
||||
for(const auto& asset : *pools)
|
||||
|
@ -1,29 +1,13 @@
|
||||
#include "ZoneDefWriter.h"
|
||||
|
||||
const std::string AbstractZoneDefWriter::META_DATA_KEY_GAME = "game";
|
||||
|
||||
AbstractZoneDefWriter::AbstractZoneDefWriter(Zone* zone, std::ostream& stream)
|
||||
: m_zone(zone),
|
||||
m_stream(stream)
|
||||
void AbstractZoneDefWriter::WriteZoneDef(std::ostream& stream, Zone* zone) const
|
||||
{
|
||||
}
|
||||
ZoneDefinitionOutputStream out(stream);
|
||||
|
||||
void AbstractZoneDefWriter::EmptyLine() const
|
||||
{
|
||||
m_stream << "\n";
|
||||
}
|
||||
out.WriteComment(zone->m_game->GetFullName());
|
||||
out.WriteMetaData(META_DATA_KEY_GAME, zone->m_game->GetShortName());
|
||||
out.EmptyLine();
|
||||
|
||||
void AbstractZoneDefWriter::WriteComment(const std::string& comment) const
|
||||
{
|
||||
m_stream << "// " << comment << "\n";
|
||||
}
|
||||
|
||||
void AbstractZoneDefWriter::WriteMetaData(const std::string& metaDataKey, const std::string& metaDataValue) const
|
||||
{
|
||||
m_stream << ">" << metaDataKey << "," << metaDataValue << "\n";
|
||||
}
|
||||
|
||||
void AbstractZoneDefWriter::WriteEntry(const std::string& entryKey, const std::string& entryValue) const
|
||||
{
|
||||
m_stream << entryKey << "," << entryValue << "\n";
|
||||
}
|
||||
WriteMetaData(out, zone);
|
||||
WriteContent(out, zone);
|
||||
}
|
@ -1,31 +1,30 @@
|
||||
#pragma once
|
||||
|
||||
#include <ostream>
|
||||
|
||||
#include "Zone/Zone.h"
|
||||
|
||||
class AbstractZoneDefWriter
|
||||
{
|
||||
protected:
|
||||
Zone* m_zone;
|
||||
std::ostream& m_stream;
|
||||
|
||||
static const std::string META_DATA_KEY_GAME;
|
||||
|
||||
void EmptyLine() const;
|
||||
void WriteComment(const std::string& comment) const;
|
||||
void WriteMetaData(const std::string& metaDataKey, const std::string& metaDataValue) const;
|
||||
void WriteEntry(const std::string& entryKey, const std::string& entryValue) const;
|
||||
|
||||
AbstractZoneDefWriter(Zone* zone, std::ostream& stream);
|
||||
|
||||
public:
|
||||
virtual void WriteZoneDef() = 0;
|
||||
};
|
||||
#include "Zone/Definition/ZoneDefinitionStream.h"
|
||||
|
||||
class IZoneDefWriter
|
||||
{
|
||||
public:
|
||||
IZoneDefWriter() = default;
|
||||
virtual ~IZoneDefWriter() = default;
|
||||
IZoneDefWriter(const IZoneDefWriter& other) = default;
|
||||
IZoneDefWriter(IZoneDefWriter&& other) noexcept = default;
|
||||
IZoneDefWriter& operator=(const IZoneDefWriter& other) = default;
|
||||
IZoneDefWriter& operator=(IZoneDefWriter&& other) noexcept = default;
|
||||
|
||||
virtual bool CanHandleZone(Zone* zone) const = 0;
|
||||
virtual void WriteZoneDef(Zone* zone, std::ostream& stream) const = 0;
|
||||
virtual void WriteZoneDef(std::ostream& stream, Zone* zone) const = 0;
|
||||
};
|
||||
|
||||
class AbstractZoneDefWriter : public IZoneDefWriter
|
||||
{
|
||||
protected:
|
||||
static constexpr const char* META_DATA_KEY_GAME = "game";
|
||||
|
||||
virtual void WriteMetaData(ZoneDefinitionOutputStream& stream, Zone* zone) const = 0;
|
||||
virtual void WriteContent(ZoneDefinitionOutputStream& stream, Zone* zone) const = 0;
|
||||
|
||||
public:
|
||||
void WriteZoneDef(std::ostream& stream, Zone* zone) const override;
|
||||
};
|
Reference in New Issue
Block a user