// Copyright (C) 2007-2025 EQ2EMulator // Licensed under GPL v3 #ifndef __CONFIG_READER__ #define __CONFIG_READER__ #include #include "PacketStruct.h" #include #include #include #include "xmlParser.h" #include "Mutex.h" using namespace std; class ConfigReader{ public: ~ConfigReader(); void addStruct(const char* name, int16 version, PacketStruct* new_struct); PacketStruct* getStruct(const char* name, int16 version); PacketStruct* getStructByVersion(const char* name, int16 version); void loadDataStruct(PacketStruct* packet, XMLNode parentNode, bool array_packet = false); bool processXML_Elements(const char* fileName); int16 GetStructVersion(const char* name, int16 version); void DestroyStructs(); void ReloadStructs(); bool LoadFile(const char* name); private: Mutex MStructs; vector load_files; map*> structs; //vector structs; }; #endif