//----------------------------------------------------------------------------- // Torque Game Engine // Copyright (C) GarageGames.com, Inc. //----------------------------------------------------------------------------- #ifndef _CORERES_H_ #define _CORERES_H_ #ifndef _RESMANAGER_H_ #include "core/resManager.h" #endif class RawData { private: bool ownMemory; public: char *data; S32 size; RawData() { ownMemory = false; } RawData(Stream &s, S32 sz) { ownMemory = true; size = sz; data = new char[size]; if (data) s.read(size, data); } ~RawData() { if (ownMemory) delete [] data; data = NULL; ownMemory = false; size = 0; } }; //-------------------------------------- RawData type class ResourceTypeRawData : public ResourceType { public: ResourceTypeRawData(const char *ext = ".dat"): ResourceType( ResourceType::typeof(ext) ) { } void* construct(Stream *stream, S32 size) { return (void*)new RawData(*stream, size); } void destruct(void *p) { delete (RawData*)p; } }; class ResourceTypeStaticRawData : public ResourceType { public: ResourceTypeStaticRawData(const char *ext = ".sdt"): ResourceType( ResourceType::typeof(ext) ) { } void* construct(Stream *stream, S32 size) { return (void*)new RawData(*stream, size); } void destruct(void *p) { } }; #endif //_CORERES_H_