- Separated the linedef activation types into a bit mask that allows combination

of all types on the same linedef. Also added a 'first side only' flag. This
  is not usable from Hexen or Doom format maps though but in preparation of
  the UDMF format discussed here:
  http://www.doomworld.com/vb/source-ports/43145-udmf-v0-99-specification-draft-aka-textmap/
- Changed linedef's alpha property from a byte to fixed point after seeing that
  255 wasn't handled to be fully opaque.
- fixed a GCC warning in fmodsound.cpp 

SVN r954 (trunk)
This commit is contained in:
Christoph Oelckers 2008-05-02 10:55:48 +00:00
commit 9a410f864f
21 changed files with 162 additions and 148 deletions

View file

@ -1897,11 +1897,11 @@ void P_FinishLoadingLineDefs ()
alpha = sidetemp[ld->sidenum[0]].a.alpha;
if (alpha < 0)
{
alpha = ld->args[1];
alpha = Scale(ld->args[1], FRACUNIT, 255);
}
if (!ld->args[0])
{
ld->alpha = (BYTE)alpha;
ld->Alpha = alpha;
if (ld->args[2] == 1)
{
sides[ld->sidenum[0]].Flags |= WALLF_ADDTRANS;
@ -1917,7 +1917,7 @@ void P_FinishLoadingLineDefs ()
{
if (lines[j].id == ld->args[0])
{
lines[j].alpha = (BYTE)alpha;
lines[j].Alpha = alpha;
if (lines[j].args[2] == 1)
{
sides[lines[j].sidenum[0]].Flags |= WALLF_ADDTRANS;
@ -1993,7 +1993,7 @@ void P_LoadLineDefs (MapData * map)
ld = lines;
for (i = numlines; i > 0; i--, mld++, ld++)
{
ld->alpha = 255; // [RH] Opaque by default
ld->Alpha = FRACUNIT; // [RH] Opaque by default
// [RH] Translate old linedef special and flags to be
// compatible with the new format.
@ -2077,7 +2077,7 @@ void P_LoadLineDefs2 (MapData * map)
ld->v1 = &vertexes[LittleShort(mld->v1)];
ld->v2 = &vertexes[LittleShort(mld->v2)];
ld->alpha = 255; // [RH] Opaque by default
ld->Alpha = FRACUNIT; // [RH] Opaque by default
ld->id = -1;
P_SetSideNum (&ld->sidenum[0], LittleShort(mld->sidenum[0]));
@ -2088,6 +2088,11 @@ void P_LoadLineDefs2 (MapData * map)
if (level.flags & LEVEL_CLIPMIDTEX) ld->flags |= ML_CLIP_MIDTEX;
if (level.flags & LEVEL_WRAPMIDTEX) ld->flags |= ML_WRAP_MIDTEX;
if (level.flags & LEVEL_CHECKSWITCHRANGE) ld->flags |= ML_CHECKSWITCHRANGE;
// convert the activation type
ld->activation = 1 << GET_SPAC(ld->flags);
if (ld->activation == SPAC_AnyCross) ld->activation = SPAC_Impact|SPAC_PCross; // this is really PTouch
ld->flags &= ~ML_SPAC_MASK;
}
delete[] mldf;
}