mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@8755 3b4a5df2-a311-0410-b5c6-a8a6f20db521
42 lines
1.2 KiB
C++
42 lines
1.2 KiB
C++
#pragma once
|
|
#ifndef _LBT_PALETTEDB__H_
|
|
#define _LBT_PALETTEDB__H_
|
|
|
|
#include <map>
|
|
#include "LogicalBodyTypes/Singleton.h"
|
|
#include "LogicalBodyTypes/AbstractXMLLoader.h"
|
|
#include "LogicalBodyTypes/PaletteTable.h"
|
|
|
|
namespace LogicalBodyTypes {
|
|
|
|
class PaletteDB : public AbstractXMLLoader, public Singleton<PaletteDB> {
|
|
|
|
public:
|
|
using Singleton <PaletteDB>::Instance;
|
|
typedef std::map<std::string, PaletteTable*> PaletteTableMap;
|
|
|
|
private:
|
|
enum ParseState {
|
|
E_ELEMENT_PALETTES = FIRST_SUBCLASS_STATE,
|
|
E_ELEMENT_PALETTE
|
|
};
|
|
PaletteTableMap paletteTables;
|
|
|
|
public:
|
|
PaletteDB(void);
|
|
~PaletteDB(void);
|
|
bool AddPaletteTable(std::string name, PaletteTable* paletteTable);
|
|
PaletteTable* FindPaletteTable(std::string name);
|
|
|
|
private:
|
|
static void XMLCALL StartElementHandle(void* userData, const XML_Char* name, const XML_Char** atts);
|
|
static void XMLCALL EndElementHandle(void* userData, const XML_Char* name);
|
|
static void XMLCALL CharacterDataHandle(void* userData, const XML_Char* str, int len);
|
|
static void XMLCALL ExternalEntityHandler(XML_Parser parser, const XML_Char* context, const XML_Char* base, const XML_Char* systemId, const XML_Char* publicId);
|
|
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|