#pragma once #include "stdafx.h" #include "HdData.h" #include "../Utilities/ZipReader.h" #include "../Utilities/VirtualFile.h" class HdPackLoader { public: static bool LoadHdNesPack(string definitionFile, HdPackData &outData); static bool LoadHdNesPack(VirtualFile &romFile, HdPackData &outData); private: HdPackData* _data; bool _loadFromZip = false; ZipReader _reader; string _hdPackDefinitionFile; string _hdPackFolder; vector _hdNesBitmaps; HdPackLoader(); bool InitializeLoader(VirtualFile &romPath, HdPackData *data); bool LoadFile(string filename, vector &fileData); bool LoadPack(); void InitializeHdPack(); void LoadCustomPalette(); bool ProcessImgTag(string src); void ProcessPatchTag(vector &tokens); void ProcessOverscanTag(vector &tokens); void ProcessConditionTag(vector &tokens); void ProcessTileTag(vector &tokens, vector conditions); void ProcessBackgroundTag(vector &tokens, vector conditions); void ProcessOptionTag(vector& tokens); vector ParseConditionString(string conditionString, vector> &conditions); };