mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-22 12:11:25 +00:00
- made 3D floor damage transfers optional by adding a new flag bit (2048) and made that mode automatic for the old ZDoom-based light only transfer special.
This commit is contained in:
parent
5228a67ff5
commit
e63871d6f5
4 changed files with 9 additions and 6 deletions
|
@ -943,7 +943,8 @@ int MapLoader::Set3DFloor(line_t * line, int param, int param2, int alpha)
|
|||
// if flooding is used the floor must be non-solid and is automatically made shootthrough and seethrough
|
||||
if ((param2 & 128) && !(flags & FF_SOLID)) flags |= FF_FLOOD | FF_SEETHROUGH | FF_SHOOTTHROUGH;
|
||||
if (param2 & 512) flags |= FF_FADEWALLS;
|
||||
if (param2&1024) flags |= FF_RESET;
|
||||
if (param2 & 1024) flags |= FF_RESET;
|
||||
if (param2 & 2048) flags |= FF_NODAMAGE;
|
||||
FTextureID tex = line->sidedef[0]->GetTexture(side_t::top);
|
||||
if (!tex.Exists() && alpha < 255)
|
||||
{
|
||||
|
@ -970,7 +971,7 @@ int MapLoader::Set3DFloor(line_t * line, int param, int param2, int alpha)
|
|||
|
||||
void MapLoader::Spawn3DFloors ()
|
||||
{
|
||||
static int flagvals[] = {512, 2+512, 512+1024};
|
||||
static int flagvals[] = {512+2048, 2+512+2048, 512+1024+2048};
|
||||
|
||||
for (auto &line : Level->lines)
|
||||
{
|
||||
|
|
|
@ -217,10 +217,11 @@ void P_PlayerOnSpecial3DFloor(player_t* player)
|
|||
// Player must be on top of the floor to be affected...
|
||||
if(player->mo->Z() != rover->top.plane->ZatPoint(player->mo)) continue;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
//Water and DEATH FOG!!! heh
|
||||
if (player->mo->Z() > rover->top.plane->ZatPoint(player->mo) ||
|
||||
if ((rover->flags & FF_NODAMAGE) ||
|
||||
player->mo->Z() > rover->top.plane->ZatPoint(player->mo) ||
|
||||
player->mo->Top() < rover->bottom.plane->ZatPoint(player->mo))
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ typedef enum
|
|||
FF_UPPERTEXTURE = 0x20000,
|
||||
FF_LOWERTEXTURE = 0x40000,
|
||||
FF_THINFLOOR = 0x80000, // EDGE
|
||||
FF_SCROLLY = 0x100000, // EDGE - not yet implemented!!!
|
||||
FF_NODAMAGE = 0x100000, // no damage transfers
|
||||
FF_FIX = 0x200000, // use floor of model sector as floor and floor of real sector as ceiling
|
||||
FF_INVERTSECTOR = 0x400000, // swap meaning of sector planes
|
||||
FF_DYNAMIC = 0x800000, // created by partitioning another 3D-floor due to overlap
|
||||
|
|
|
@ -234,7 +234,8 @@ struct F3DFloor native play
|
|||
FF_UPPERTEXTURE = 0x20000,
|
||||
FF_LOWERTEXTURE = 0x40000,
|
||||
FF_THINFLOOR = 0x80000, // EDGE
|
||||
FF_SCROLLY = 0x100000, // EDGE - not yet implemented!!!
|
||||
FF_SCROLLY = 0x100000, // old leftover definition
|
||||
FF_NODAMAGE = 0x100000, // no damage transfers
|
||||
FF_FIX = 0x200000, // use floor of model sector as floor and floor of real sector as ceiling
|
||||
FF_INVERTSECTOR = 0x400000, // swap meaning of sector planes
|
||||
FF_DYNAMIC = 0x800000, // created by partitioning another 3D-floor due to overlap
|
||||
|
|
Loading…
Reference in a new issue