12#ifndef TT_INCLUDE__MIXFILEFACTORYCLASS_H
13#define TT_INCLUDE__MIXFILEFACTORYCLASS_H
14#include "engine_common.h"
15#include "engine_vector.h"
17#include "engine_string.h"
25class SimpleFileFactoryClass;
26class MixFileFactoryClass :
public FileFactoryClass
34 bool operator== (
const FileInfoStruct &src)
38 bool operator!= (
const FileInfoStruct &src)
42 bool operator < (
const FileInfoStruct& b)
const
49 StringClass Filename1;
50 StringClass Filename2;
51 bool operator== (
const AddInfoStruct &src)
55 bool operator!= (
const AddInfoStruct &src)
61 FileFactoryClass *Factory;
62 DynamicVectorClass<FileInfoStruct> FileInformation;
63 StringClass MixFilename;
64 unsigned int UnkOffset;
65 unsigned int FileCount;
66 unsigned int MixFilenameOffset;
68 DynamicVectorClass<StringClass> Filenames;
69 DynamicVectorClass<AddInfoStruct> AddedFiles;
72 MixFileFactoryClass(
const char*, FileFactoryClass *);
73 virtual ~MixFileFactoryClass ();
74 virtual FileClass* Get_File (
const char* fileName);
75 virtual void Return_File (FileClass* file);
76 void Build_Filename_List(DynamicVectorClass<StringClass>&list);
77 bool Is_Valid() {
return IsValid;}
82 struct FileInfoStruct {
87 bool operator== (
const FileInfoStruct &src)
91 bool operator!= (
const FileInfoStruct &src)
96 DynamicVectorClass<FileInfoStruct> Files;
98 MixFileCreator(
const char *name);
99 static int File_Info_Compare(
const void *v1,
const void *v2);
101 void Add_File(
char const *name,
char const *name2);
102 void Add_File(
char const *name, FileClass *file);
119 static int File_Info_Compare(
const void *v1,
const void *v2);
120 void Create_Mix(
const char *name);
122void BuildMixFile(
const char *path,DynamicVectorClass<StringClass> filenames,DynamicVectorClass<FileFactoryClass *> filefactories);