- fixed: A_CheckTerrain did not use the proper damage type for processing an instant death sector.

- moved sector secret information from sector_t::special and secretsector to two flag bits in sector_t::Flags.

This is to get rid of the bit masking madness in the floor/ceiling thinkers which need to preserve this bit when they change a sector's type.
This commit is contained in:
Christoph Oelckers 2016-01-06 01:50:45 +01:00
commit 6a63effa1f
15 changed files with 67 additions and 38 deletions

View file

@ -437,7 +437,7 @@ void P_PlayerInSpecialSector (player_t *player, sector_t * sector)
}
}
int special = sector->special & ~SECRET_MASK;
int special = sector->special;
// Has hit ground.
AInventory *ironfeet;
@ -574,9 +574,9 @@ void P_PlayerInSpecialSector (player_t *player, sector_t * sector)
}
}
if (sector->special & SECRET_MASK)
if (sector->isSecret())
{
sector->special &= ~SECRET_MASK;
sector->ClearSecret();
P_GiveSecret(player->mo, true, true, int(sector - sectors));
}
}
@ -1189,7 +1189,11 @@ void P_SpawnSpecials (void)
// [RH] All secret sectors are marked with a BOOM-ish bitfield
if (sector->special & SECRET_MASK)
{
sector->Flags |= SECF_SECRET | SECF_WASSECRET;
sector->special &= ~SECRET_MASK;
level.total_secrets++;
}
switch (sector->special & 0xff)
{