This commit is contained in:
Rachael Alexanderson 2017-05-12 07:45:46 -04:00
commit d907f18e4c
3 changed files with 77 additions and 1 deletions

View file

@ -90,6 +90,8 @@ enum
CP_SETTHINGFLAGS,
CP_SETVERTEX,
CP_SETTHINGSKILLS,
CP_SETSECTORTEXTURE,
CP_SETSECTORLIGHT,
};
// EXTERNAL FUNCTION PROTOTYPES --------------------------------------------
@ -398,6 +400,33 @@ void ParseCompatibility()
sc.MustGetNumber();
CompatParams.Push(sc.Number);
}
else if (sc.Compare("setsectortexture"))
{
if (flags.ExtCommandIndex == ~0u) flags.ExtCommandIndex = CompatParams.Size();
CompatParams.Push(CP_SETSECTORTEXTURE);
sc.MustGetNumber();
CompatParams.Push(sc.Number);
sc.MustGetString();
CompatParams.Push(sc.MustMatchString(SectorPlanes));
sc.MustGetString();
const FString texName = sc.String;
const unsigned int texIndex = TexNames.Find(texName);
const unsigned int texCount = TexNames.Size();
if (texIndex == texCount)
{
TexNames.Push(texName);
}
CompatParams.Push(texIndex);
}
else if (sc.Compare("setsectorlight"))
{
if (flags.ExtCommandIndex == ~0u) flags.ExtCommandIndex = CompatParams.Size();
CompatParams.Push(CP_SETSECTORLIGHT);
sc.MustGetNumber();
CompatParams.Push(sc.Number);
sc.MustGetNumber();
CompatParams.Push(sc.Number);
}
else
{
sc.UnGet();
@ -690,6 +719,35 @@ void SetCompatibilityParams()
i += 3;
break;
}
case CP_SETSECTORTEXTURE:
{
if ((unsigned)CompatParams[i + 1] < level.sectors.Size())
{
sector_t *sec = &level.sectors[CompatParams[i+1]];
assert (sec != nullptr);
secplane_t& plane = sector_t::floor == CompatParams[i + 2]
? sec->floorplane
: sec->ceilingplane;
assert(TexNames.Size() > (unsigned int)CompatParams[i + 3]);
const FTextureID texID = TexMan.GetTexture(TexNames[CompatParams[i + 3]], FTexture::TEX_Any);
sec->SetTexture(CompatParams[i + 2], texID);
}
i += 4;
break;
}
case CP_SETSECTORLIGHT:
{
if ((unsigned)CompatParams[i + 1] < level.sectors.Size())
{
sector_t *sec = &level.sectors[CompatParams[i+1]];
assert (sec != nullptr);
sec->SetLightLevel((unsigned)CompatParams[i + 2]);
}
i += 3;
break;
}
}
}
}

View file

@ -488,9 +488,16 @@ F6EE16F770AD309D608EA0B1F1E249FC // Ultimate Doom, e4m3
{
setsectorspecial 147 0
}
EBDAC00E9D25D884B2C8F4B1F0390539 // doom2.wad map21
{
// push ceiling down in glitchy sectors above the stair switches
setsectoroffset 50 ceil -56
setsectoroffset 54 ceil -56
}
110F84DE041052B59307FAF0293E6BC0 // Doom II, map27
{
setsectorspecial 93 0
setwalltexture 582 back top ZIMMER3
}
ABC4EB5A1535ECCD0061AD14F3547908 // Plutonia Experiment, map26
{
@ -626,3 +633,13 @@ CA3773ED313E8899311F3DD0CA195A68 // e3m6
setwalltexture 1277 back top CSTLRCK
setwalltexture 1278 front top CSTLRCK
}
39C594CAC07EE51C80F757DA465FCC94 // strife1.wad map10
{
// fix the shooting range by matching sector 138 and 145 properties together
setsectoroffset 145 floor -32
setsectoroffset 145 ceil 40
setsectortexture 145 floor F_CONCRP
setsectorlight 138 192
setwalltexture 3431 back top BRKGRY01
}

View file

@ -110,6 +110,7 @@ IWad
MustContain = "MAP35", "I_RELB", "FXAA_F"
BannerColors = "f0 f0 f0", "6b 3c 18"
Required = "Strife: Quest for the Sigil"
Load = "voices.wad"
}
IWad
@ -412,6 +413,7 @@ Names
"hexdd.wad"
"hexendemo.wad"
"hexdemo.wad"
"sve.wad"
"strife1.wad"
"strife0.wad"
"strife.wad"
@ -430,5 +432,4 @@ Names
"hacx2.wad"
"square1.pk3"
"delaweare.wad"
"sve.wad"
}