33 : _file(
CascStorage, fileDataId, description), _header(), _adtInfo(), _mapName(
std::move(mapName)),
34 _adtCache(cache ?
std::make_unique<
ADTCache>() : nullptr)
49 auto dirfile = Trinity::make_unique_ptr_with_deleter<&::fclose>(fopen(dirname.c_str(),
"ab"));
52 printf(
"Can't open dirfile!'%s'\n", dirname.c_str());
61 std::ranges::reverse(fourcc);
65 if (!memcmp(fourcc,
"MPHD", 4))
70 else if (!memcmp(fourcc,
"MAIN", 4))
75 else if (!memcmp(fourcc,
"MAID", 4))
81 else if (!memcmp(fourcc,
"MWMO", 4))
98 else if (!memcmp(fourcc,
"MODF", 4))
104 for (
uint32 i = 0; i < mapObjectCount; ++i)
109 std::string fileName;
110 if (mapObjDef.
Flags & 0x8)
117 if (extracted->HasCollision())
118 MapObject::Extract(mapObjDef, fileName.c_str(),
true, mapId, mapId, dirfile.get(),
nullptr);
120 if (extracted->Doodads)
121 Doodad::ExtractSet(*extracted->Doodads, mapObjDef,
true, mapId, mapId, dirfile.get(),
nullptr);
135 if (!(x >= 0 && y >= 0 && x < 64 && y < 64))
144 if (!createIfMissing)
struct CStringSentinel_T CStringSentinel
void seekRelative(int offset)
size_t read(void *dest, size_t bytes)
void FreeADT(ADTFile *adt)
std::vector< std::string > _wmoNames
WDTFile(uint32 fileDataId, std::string const &description, std::string mapName, bool cache)
ADTFile * GetMap(int32 x, int32 y, bool createIfMissing)
std::unique_ptr< ADTCache > _adtCache
std::unique_ptr< WDT::MAID > _adtFileDataIds
void ExtractSet(WMODoodadData const &doodadData, ADT::MODF const &wmo, bool isGlobalWmo, uint32 mapID, uint32 originalMapId, FILE *pDirfile, std::vector< ADTOutputCache > *dirfileCache)
void Extract(ADT::MODF const &mapObjDef, char const *WmoInstName, bool isGlobalWmo, uint32 mapID, uint32 originalMapId, FILE *pDirfile, std::vector< ADTOutputCache > *dirfileCache)
std::string StringFormat(FormatString< Args... > fmt, Args &&... args) noexcept
Default TC string format function.
constexpr CStringBoundedSentinel< Iterator > Checked(Iterator end) const
struct WDT::MAIN::SMAreaInfo Data[64][64]
ExtractedModelData const * ExtractSingleWmo(std::string &fname)
char const * szWorkDirWmo
std::shared_ptr< CASC::Storage > CascStorage