57 static void*
allocate(
size_t __n) { return ::operator
new(__n); }
58 static void deallocate(
void* __p,
size_t) { ::operator
delete(__p); }
86static void Get_W3D_Name (
const char *filename,
char *w3d_name);
87static const char * Make_W3D_Filename (
const char *w3d_name);
104 assert(w3d_filename);
121 Get_W3D_Name(w3d_filename, w3d_name);
127 Scan_Chunk(cload, files, w3d_name);
163 Scan_Mesh(cload, files, w3d_name);
167 Scan_Anim(cload, files, w3d_name);
171 Scan_Compressed_Anim(cload, files, w3d_name);
175 Scan_HModel(cload, files, w3d_name);
179 Scan_Emitter(cload, files, w3d_name);
183 Scan_Aggregate(cload, files, w3d_name);
187 Scan_HLOD(cload, files, w3d_name);
213 Scan_Mesh_Header(cload, files, w3d_name);
218 Scan_Mesh_Textures(cload, files, w3d_name);
241 cload.
Read(&hdr,
sizeof(hdr));
249 files.push_back(filename);
281 char texture[_MAX_PATH];
284 files.push_back(texture);
314 cload.
Read(&hdr,
sizeof(hdr));
317 const char *hierarchy = Make_W3D_Filename(hdr.
HierarchyName);
319 files.push_back(hierarchy);
347 cload.
Read(&hdr,
sizeof(hdr));
350 const char *hierarchy = Make_W3D_Filename(hdr.
HierarchyName);
352 files.push_back(hierarchy);
380 cload.
Read(&hdr,
sizeof(hdr));
383 const char *hierarchy = Make_W3D_Filename(hdr.
HierarchyName);
385 files.push_back(hierarchy);
413 cload.
Read(&hdr,
sizeof(hdr));
441 cload.
Read(&chunk,
sizeof(chunk));
445 const char *base_model = Make_W3D_Filename(chunk.
BaseModelName);
447 files.push_back(base_model);
455 cload.
Read(&subchunk,
sizeof(subchunk));
459 const char *subobject = Make_W3D_Filename(subchunk.
SubobjectName);
461 files.push_back(subobject);
489 cload.
Read(&hdr,
sizeof(hdr));
492 const char *hierarchy = Make_W3D_Filename(hdr.
HierarchyName);
494 files.push_back(hierarchy);
514static void Get_W3D_Name (
const char *filename,
char *w3d_name)
521 const char *start = strrchr(filename,
'\\');
529 const char *end = strrchr(start,
'.');
531 end = start + strlen(start);
536 int num_chars = end - start;
554static const char * Make_W3D_Filename (
const char *w3d_name)
561 static char buffer[64];
568 strcpy(buffer, w3d_name);
569 char *dot = strchr(buffer,
'.');
573 strcat(buffer,
".w3d");
@ W3D_CHUNK_AGGREGATE_INFO
@ W3D_CHUNK_HMODEL_HEADER
@ W3D_CHUNK_COMPRESSED_ANIMATION
@ W3D_CHUNK_ANIMATION_HEADER
uint32 Cur_Chunk_Length()
uint32 Read(void *buf, uint32 nbytes)
virtual bool Is_Open(void) const =0
virtual void Close(void)=0
virtual int Open(char const *filename, int rights=READ)=0
static void deallocate(void *__p, size_t)
static void * allocate(size_t __n)
FileFactoryClass * _TheFileFactory
char BaseModelName[W3D_NAME_LEN *2]
char SubobjectName[W3D_NAME_LEN *2]
char TextureFilename[260]
bool Get_W3D_Dependencies(const char *w3d_filename, StringList &files)
std::list< std::string > StringList