- Fixed: When using BOOM-style sector flags and specials together, the

special was ignored unless it was "secret".


SVN r1462 (trunk)
This commit is contained in:
Randy Heit 2009-03-04 23:07:18 +00:00
commit e9121b607d
2 changed files with 12 additions and 5 deletions

View file

@ -343,17 +343,22 @@ int P_TranslateSectorSpecial (int special)
if (newmask)
{
special &= ~newmask;
if (SectorMasks[i].op == 1) newmask <<= SectorMasks[i].shift;
else if (SectorMasks[i].op == -1) newmask >>= SectorMasks[i].shift;
else if (SectorMasks[i].op == 0 && SectorMasks[i].shift ==1) newmask = 0;
if (SectorMasks[i].op == 1)
newmask <<= SectorMasks[i].shift;
else if (SectorMasks[i].op == -1)
newmask >>= SectorMasks[i].shift;
else if (SectorMasks[i].op == 0 && SectorMasks[i].shift == 1)
newmask = 0;
mask |= newmask;
}
}
if ((unsigned)special < SectorTranslations.Size())
{
if (SectorTranslations[special].bitmask_allowed && mask) special = 0;
else special = SectorTranslations[special].newtype;
if (!SectorTranslations[special].bitmask_allowed && mask)
special = 0;
else
special = SectorTranslations[special].newtype;
}
return special | mask;
}