29 if((szTemp = strrchr(FileName,
'\\')) !=
nullptr)
30 FileName = szTemp + 1;
38 if((szTemp = strrchr(FileName,
'\\')) !=
nullptr)
39 FileName = szTemp + 1;
45 char* ptr = name + len - 1;
48 for (; *ptr !=
'.' && ptr >= name; --ptr)
51 for (; ptr >= name; --ptr)
53 if (ptr > name && *ptr >=
'A' && *ptr <=
'Z' && isalpha(*(ptr - 1)))
55 else if ((ptr == name || !isalpha(*(ptr - 1))) && *ptr >=
'a' && *ptr <=
'z')
65 for (
size_t i = 0; i < len - 3; i++)
72 if (
char* szTemp = strrchr(FileName,
'.'))
88 std::string dirname = std::string(
szWorkDirWmo) +
"/dir_bin";
90 dirfile = fopen(dirname.c_str(),
"ab");
93 printf(
"Can't open dirfile!'%s'\n", dirname.c_str());
107 if (!strcmp(fourcc,
"MCIN"))
110 else if (!strcmp(fourcc,
"MTEX"))
113 else if (!strcmp(fourcc,
"MMDX"))
117 char* buf =
new char[size];
120 while (p < buf + size)
137 else if (!strcmp(fourcc,
"MWMO"))
141 char* buf =
new char[size];
144 while (p < buf + size)
162 else if (!strcmp(fourcc,
"MDDF"))
167 for (
uint32 i = 0; i < doodadCount; ++i)
175 else if (!strcmp(fourcc,
"MODF"))
180 for (
uint32 i = 0; i < mapObjectCount; ++i)
char const * GetPlainName(char const *FileName)
void FixNameCase(char *name, size_t len)
char * GetExtension(char *FileName)
void FixNameSpaces(char *name, size_t len)
char const * GetPlainName(char const *FileName)
void FixNameCase(char *name, size_t len)
void FixNameSpaces(char *name, size_t len)
std::vector< std::string > ModelInstanceNames
bool init(uint32 map_num, uint32 tileX, uint32 tileY)
std::vector< std::string > WmoInstanceNames
ADTFile(char const *filename)
size_t read(void *dest, size_t bytes)
void Extract(ADT::MDDF const &doodadDef, char const *ModelInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE *pDirfile)
void ExtractSet(WMODoodadData const &doodadData, ADT::MODF const &wmo, uint32 mapID, uint32 tileX, uint32 tileY, FILE *pDirfile)
void Extract(ADT::MODF const &mapObjDef, char const *WmoInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE *pDirfile)
std::unordered_map< std::string, WMODoodadData > WmoDoodads
char const * szWorkDirWmo
bool ExtractSingleWmo(std::string &fname)