//#include //#include //#include "LiteLoader.h" //#include //#include //#include //#include //#include //#include //#include //#include //#include //#include //#include //#include // //namespace ModifyPack { // vector PackListCache; //} // //THook(ResourcePack*, "??0ResourcePack@@QEAA@AEAVPack@@@Z", // ResourcePack* self, Pack* a2) { // auto Pack = original(self, a2); // auto manifest = &Pack->getManifest(); // if (manifest && manifest->getPackOrigin() == PackOrigin::PackOrigin_Dev) { // ModifyPack::PackListCache.push_back(a2->getManifest().getIdentity()); // } // return Pack; //} // //THook(std::unique_ptr, "?deserialize@ResourcePackStack@@SA?AV?$unique_ptr@VResourcePackStack@@U?$default_delete@VResourcePackStack@@@std@@@std@@AEAV?$basic_istream@DU?$char_traits@D@std@@@3@AEBVIResourcePackRepository@@@Z", // __int64 a2, ResourcePackRepository* a3) { // auto Stack = original( a2, a3); // for (auto& id : ModifyPack::PackListCache) { // auto Pack = a3->getResourcePackForPackId(id); // auto& SettingsFactory = a3->getPackSettingsFactory(); // auto settings = SettingsFactory.getPackSettings(Pack->getManifest()); // char gsl[16]; // auto gslPath = SymCall("??$?0PEAVResourcePack@@X@?$not_null@V?$NonOwnerPointer@VResourcePack@@@Bedrock@@@gsl@@QEAA@AEBV?$not_null@PEAVResourcePack@@@1@@Z", // void*, char*, ResourcePack**)(gsl, &Pack); // char size[480]; // auto Instance = SymCall("??0PackInstance@@QEAA@V?$not_null@V?$NonOwnerPointer@VResourcePack@@@Bedrock@@@gsl@@H_NPEAVPackSettings@@@Z", // PackInstance*, char*, void*, int, bool, PackSettings*)(size, gslPath, 0, false, settings); // Stack->add(*Instance, *(IResourcePackRepository*)a3, 0); // } // ModifyPack::PackListCache.clear(); // return Stack; //}