define more wdt flags and fix flags saving

This commit is contained in:
T1ti
2023-04-07 03:05:21 +02:00
parent e6b031313d
commit e299562d51
2 changed files with 19 additions and 6 deletions

View File

@@ -26,7 +26,16 @@ union mcnk_flags
enum eMPHDFlags
{
FLAG_SHADING = 0x02
FLAG_GLOBAL_OBJECT = 0x0001,
FLAG_SHADING = 0x0002,
FLAG_BIG_ALPHA = 0x0004,
FLAG_DOODADS_SORT = 0x0008,
FLAG_LIGHTINGVERTICES = 0x0010,
FLAG_UPSIDEDOWN_GROUND = 0x0020,
FLAG_UNK_0x0040 = 0x0040,
FLAG_HEIGHT_TEXTURING = 0x0080,
FLAG_UNK_0X0100 = 0x0100,
FLAG_HAS_MAID = 0x0200
};
enum eMCLYFlags

View File

@@ -93,9 +93,9 @@ MapIndex::MapIndex (const std::string &pBasename, int map_id, World* world,
theFile.read(&mphd, sizeof(MPHD));
mHasAGlobalWMO = mphd.flags & 1;
mBigAlpha = (mphd.flags & 4) != 0;
_sort_models_by_size_class = mphd.flags & 0x8;
mHasAGlobalWMO = mphd.flags & FLAG_GLOBAL_OBJECT;
mBigAlpha = mphd.flags & FLAG_BIG_ALPHA;
_sort_models_by_size_class = mphd.flags & FLAG_DOODADS_SORT;
if (!(mphd.flags & FLAG_SHADING))
{
@@ -212,10 +212,14 @@ void MapIndex::save()
mphd.flags = 0;
mphd.something = 0;
if (mHasAGlobalWMO)
mphd.flags |= FLAG_GLOBAL_OBJECT;
if (mBigAlpha)
mphd.flags |= 4;
mphd.flags |= FLAG_BIG_ALPHA;
if (_sort_models_by_size_class)
mphd.flags |= 8;
mphd.flags |= FLAG_DOODADS_SORT;
mphd.flags |= FLAG_SHADING;
wdtFile.Insert(curPos, sizeof(MPHD), (char*)&mphd);
curPos += sizeof(MPHD);