#pragma once #include "stdafx.h" #include "../Utilities/ZipReader.h" #include "HdData.h" #include "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 CheckFile(string filename); bool LoadPack(); void InitializeHdPack(); void LoadCustomPalette(); void InitializeGlobalConditions(); //Video bool ProcessImgTag(string src); void PremultiplyAlpha(vector& pixelData); void ProcessPatchTag(vector &tokens); void ProcessOverscanTag(vector &tokens); void ProcessConditionTag(vector &tokens, bool createInvertedCondition); void ProcessTileTag(vector &tokens, vector conditions); void ProcessBackgroundTag(vector &tokens, vector conditions); void ProcessOptionTag(vector& tokens); //Audio int ProcessSoundTrack(string albumString, string trackString, string filename); void ProcessBgmTag(vector &tokens); void ProcessSfxTag(vector &tokens); vector ParseConditionString(string conditionString, vector> &conditions); };