#pragma once #include #include #include #include #include namespace Morault { namespace Resources { typedef enum { GET, LOAD, UNLOAD, RELOAD } _ResourceRequestType; struct _ResourceRequest { // to use as std::get(Models(get("test.obj"))); _ResourceRequestType type; std::string req; }; _ResourceRequest load(std::string resourceName); _ResourceRequest get(std::string resourceName); _ResourceRequest unload(std::string resourceName); _ResourceRequest reload(std::string resourceName); std::variant Models(_ResourceRequest request); std::variant Textures(_ResourceRequest request); typedef enum { INVALID, IWAD, PWAD } WADType; struct Lump { std::string name, data; }; class WAD { std::vector lumps; public: bool loaded = false; WADType wadType; int lumpCount; WAD(); WAD(std::string path); void LoadWAD(std::string path); std::vector getLumps() { return lumps; } ~WAD(); }; Image GenTestImage(); } }