00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef __NELOADABLEENTITY_H
00029 #define __NELOADABLEENTITY_H
00030
00031
00038 #include "base.h"
00039
00040 #include <string>
00041
00042
00043 namespace NeoEngine
00044 {
00045
00046
00047
00048 class FileManager;
00049 class File;
00050
00051
00067 class NEOENGINE_API LoadableEntity
00068 {
00069 protected:
00070
00072 File *m_pkFile;
00073
00075 bool m_bLoaded;
00076
00078 bool m_bKeepFile;
00079
00081 FileManager *m_pkFileManager;
00082
00083
00089 virtual bool LoadNode( unsigned int uiFlags = 0 ) = 0;
00090
00091
00092 public:
00093
00097 LoadableEntity( FileManager *pkFileManager = 0 );
00098
00101 virtual ~LoadableEntity();
00102
00107 void SetFileManager( FileManager *pkManager );
00108
00117 bool Load( const std::string &rstrFilename, unsigned int uiFlags = 0, bool bForceReload = false, bool bSearchFileSystem = false );
00118
00126 bool Load( File *pkFile, unsigned int uiFlags = 0, bool bForceReload = false );
00127 };
00128
00129
00130 };
00131
00132
00133 #endif