#pragma once #include #include "Node.h" #include "Renderer.h" #include "Object3d.h" #include "Vector.h" #include "fmod.h" // #include "Scene.h" #define SPTR boost::shared_ptr class ResourceManager { public: ResourceManager(void); ~ResourceManager(void); void cleanUpResources(bool endOfGame); //Free Used Resources of Node void freeUsedResources(SPTR node); void freeUsedResources(SPTR renderer); void setGameManager(GameManager *manager); void OnLostDevice(); void OnDestroyDevice(); bool loadXModel(std::string filename, Object3d *myObject); IDirect3DTexture9* loadTexture(std::string filename, bool alwaysNeeded = false); FSOUND_SAMPLE* loadSound(std::string filename, bool loadAsLoop); private: struct modelResources { std::string filename; LPD3DXMESH myMesh; DWORD NumMaterials; DWORD *adjacencyInfo; std::vector Materials; std::vector Textures; Vector minBBox; Vector maxBBox; }; struct textureResources { std::string filename; IDirect3DTexture9* texture; bool alwaysNeeded; }; struct soundResources { std::string filename; FSOUND_SAMPLE* soundSample; bool loadedForLoop; }; GameManager *gameManager; std::vector resourceVector; std::vector textureVector; std::vector soundVector; };