mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-10 14:51:40 +00:00
- finish the implementation for nosectionmerge.
This commit is contained in:
parent
4538236a38
commit
c675d60bac
3 changed files with 12 additions and 3 deletions
|
@ -148,6 +148,7 @@ void FIWadManager::ParseIWadInfo(const char *fn, const char *data, int datasize,
|
||||||
else if(sc.Compare("Extended")) iwad->flags |= GI_MENUHACK_EXTENDED;
|
else if(sc.Compare("Extended")) iwad->flags |= GI_MENUHACK_EXTENDED;
|
||||||
else if(sc.Compare("Shorttex")) iwad->flags |= GI_COMPATSHORTTEX;
|
else if(sc.Compare("Shorttex")) iwad->flags |= GI_COMPATSHORTTEX;
|
||||||
else if(sc.Compare("Stairs")) iwad->flags |= GI_COMPATSTAIRS;
|
else if(sc.Compare("Stairs")) iwad->flags |= GI_COMPATSTAIRS;
|
||||||
|
else if (sc.Compare("nosectionmerge")) iwad->flags |= GI_NOSECTIONMERGE;
|
||||||
else sc.ScriptError(NULL);
|
else sc.ScriptError(NULL);
|
||||||
}
|
}
|
||||||
while (sc.CheckString(","));
|
while (sc.CheckString(","));
|
||||||
|
|
|
@ -51,6 +51,7 @@ enum
|
||||||
GI_COMPATPOLY1 = 0x00000040, // Hexen's MAP36 needs old polyobject drawing
|
GI_COMPATPOLY1 = 0x00000040, // Hexen's MAP36 needs old polyobject drawing
|
||||||
GI_COMPATPOLY2 = 0x00000080, // so does HEXDD's MAP47
|
GI_COMPATPOLY2 = 0x00000080, // so does HEXDD's MAP47
|
||||||
GI_IGNORETITLEPATCHES = 0x00000200, // Ignore the map name graphics when not runnning in English language
|
GI_IGNORETITLEPATCHES = 0x00000200, // Ignore the map name graphics when not runnning in English language
|
||||||
|
GI_NOSECTIONMERGE = 0x00000400, // For the original id IWADs: avoid merging sections due to how idbsp created its sectors.
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "gametype.h"
|
#include "gametype.h"
|
||||||
|
|
|
@ -294,11 +294,18 @@ FName MapLoader::CheckCompatibility(MapData *map)
|
||||||
// When playing Doom IWAD levels force BCOMPATF_NOSECTIONMERGE, COMPAT_SHORTTEX and COMPATF_LIGHT.
|
// When playing Doom IWAD levels force BCOMPATF_NOSECTIONMERGE, COMPAT_SHORTTEX and COMPATF_LIGHT.
|
||||||
// I'm not sure if the IWAD maps actually need COMPATF_LIGHT but it certainly does not hurt.
|
// I'm not sure if the IWAD maps actually need COMPATF_LIGHT but it certainly does not hurt.
|
||||||
// TNT's MAP31 also needs COMPATF_STAIRINDEX but that only gets activated for TNT.WAD.
|
// TNT's MAP31 also needs COMPATF_STAIRINDEX but that only gets activated for TNT.WAD.
|
||||||
if (fileSystem.GetFileContainer(map->lumpnum) == fileSystem.GetIwadNum() && (gameinfo.flags & GI_COMPATSHORTTEX) && Level->maptype == MAPTYPE_DOOM)
|
if (fileSystem.GetFileContainer(map->lumpnum) == fileSystem.GetIwadNum())
|
||||||
{
|
{
|
||||||
Level->ii_compatflags = COMPATF_SHORTTEX|COMPATF_LIGHT;
|
if ((gameinfo.flags & GI_COMPATSHORTTEX) && Level->maptype == MAPTYPE_DOOM)
|
||||||
|
{
|
||||||
|
Level->ii_compatflags = COMPATF_SHORTTEX | COMPATF_LIGHT;
|
||||||
if (gameinfo.flags & GI_COMPATSTAIRS) Level->ii_compatflags |= COMPATF_STAIRINDEX;
|
if (gameinfo.flags & GI_COMPATSTAIRS) Level->ii_compatflags |= COMPATF_STAIRINDEX;
|
||||||
}
|
}
|
||||||
|
if (gameinfo.flags & GI_NOSECTIONMERGE)
|
||||||
|
{
|
||||||
|
Level->ib_compatflags |= BCOMPATF_NOSECTIONMERGE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
map->GetChecksum(md5.Bytes);
|
map->GetChecksum(md5.Bytes);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue