#pragma once namespace Components { class ModelSurfs : public Component { public: ModelSurfs(); ~ModelSurfs(); private: static std::unordered_map BufferMap; static std::unordered_map AllocMap; static void ReleaseModelSurf(Game::XAssetHeader header); static void BeginRecover(); static void EndRecover(); static IUnknown* GetBuffer(void* buffer); static void SetBuffer(char streamHandle, void* buffer, IUnknown** bufferOut, int* offsetOut); static void CreateBuffers(Game::XModelSurfs* surfs); static Game::XModelSurfs* LoadXModelSurfaces(const std::string& name); static bool LoadSurfaces(Game::XModel* model); static void XModelSurfsFixup(Game::XModel* model); static void GetIndexBaseStub(); static void GetIndexBufferStub(); static void GetIndexBufferStub2(); static void GetVertexBufferStub(); }; }