diff --git a/specs/udmf_zdoom.txt b/specs/udmf_zdoom.txt index 6c2fde912..51329bad5 100644 --- a/specs/udmf_zdoom.txt +++ b/specs/udmf_zdoom.txt @@ -112,6 +112,7 @@ Note: All fields default to false unless mentioned otherwise. checkswitchrange = ;// Switches can only be activated when vertically reachable. blockprojectiles = ;// Line blocks all projectiles blockuse = ; // Line blocks all use actions + blocksight = ; // Line blocks monster line of sight } @@ -162,8 +163,8 @@ Note: All fields default to false unless mentioned otherwise. alphafloor = ; // translucency of floor plane (only has meaning with Sector_SetPortal) Default is 1.0. alphaceiling = ; // translucency of ceiling plane (only has meaning with Sector_SetPortal) Default is 1.0. gravity = ; // Sector's gravity. Default is 1.0. - lightcolor = ; // Sector'S light color as RRGGBB value, default = 0xffffff. - fadecolor = ; // Sector'S fog color as RRGGBB value, default = 0x000000. + lightcolor = ; // Sector's light color as RRGGBB value, default = 0xffffff. + fadecolor = ; // Sector's fog color as RRGGBB value, default = 0x000000. desaturation = ; // Color desaturation factor. 0 = none, 1 = full, default = 0. silent = ; // Actors in this sector make no sound, nofallingdamage = ; // Falling damage is disabled in this sector @@ -183,12 +184,8 @@ Note: All fields default to false unless mentioned otherwise. thing { - skill# = // Unlike the base spec, # can range from 1-8. - // 8 is the maximum amount of skills the skill - // menu can display. - class# = // Unlike the base spec, # can range from 1-8. - // 8 is the maximum amount of classes the class - // menu can display. + skill# = // Unlike the base spec, # can range from 1-16. + class# = // Unlike the base spec, # can range from 1-16. conversation = // Assigns a conversation dialogue to this thing. // Parameter is the conversation ID, 0 meaning none. countsecret = ; // Picking up this actor counts as a secret. @@ -292,6 +289,10 @@ Added 'countsecret' actor property. 1.15 14.12.2010 Added vertex floor and ceiling height properties +1.16 23.01.2011 +Added blocksight linedef flag +Removed remarks of 8 being the maximum number of player classes/skill levels the menu can handle so the spec now properly lists 16 as limit. + =============================================================================== EOF =============================================================================== diff --git a/src/actionspecials.h b/src/actionspecials.h index 8fcb3cf8d..0751621fb 100644 --- a/src/actionspecials.h +++ b/src/actionspecials.h @@ -227,7 +227,7 @@ DEFINE_SPECIAL(Elevator_LowerToNearest, 247, 2, 2, 2) DEFINE_SPECIAL(HealThing, 248, 1, 2, 2) DEFINE_SPECIAL(Door_CloseWaitOpen, 249, 3, 4, 4) DEFINE_SPECIAL(Floor_Donut, 250, 3, 3, 3) -DEFINE_SPECIAL(FloorAndCeiling_LowerRaise, 251, 3, 3, 3) +DEFINE_SPECIAL(FloorAndCeiling_LowerRaise, 251, 3, 3, 4) DEFINE_SPECIAL(Ceiling_RaiseToNearest, 252, 2, 2, 2) DEFINE_SPECIAL(Ceiling_LowerToLowest, 253, 2, 2, 2) DEFINE_SPECIAL(Ceiling_LowerToFloor, 254, 2, 2, 2) diff --git a/src/doomdata.h b/src/doomdata.h index 83345a671..64ac86e5e 100644 --- a/src/doomdata.h +++ b/src/doomdata.h @@ -152,6 +152,7 @@ enum ELineFlags ML_FIRSTSIDEONLY = 0x00800000, // activated only when crossed from front side ML_BLOCKPROJECTILE = 0x01000000, ML_BLOCKUSE = 0x02000000, // blocks all use actions through this line + ML_BLOCKSIGHT = 0x04000000, // blocks monster line of sight }; diff --git a/src/namedef.h b/src/namedef.h index 52fc87e66..2a3bc3cf2 100644 --- a/src/namedef.h +++ b/src/namedef.h @@ -443,6 +443,7 @@ xx(smoothlighting) xx(blockprojectiles) xx(blockuse) xx(hidden) +xx(blocksight) xx(Renderstyle) diff --git a/src/p_lnspec.cpp b/src/p_lnspec.cpp index 1b3f627a4..88801733f 100644 --- a/src/p_lnspec.cpp +++ b/src/p_lnspec.cpp @@ -2473,6 +2473,7 @@ FUNC(LS_Line_SetBlocking) ML_BLOCKEVERYTHING, ML_RAILING, ML_BLOCKUSE, + ML_BLOCKSIGHT, -1 }; diff --git a/src/p_sight.cpp b/src/p_sight.cpp index 359b5d4d3..3e699cab1 100644 --- a/src/p_sight.cpp +++ b/src/p_sight.cpp @@ -256,7 +256,7 @@ bool SightCheck::P_SightCheckLine (line_t *ld) } // try to early out the check - if (!ld->backsector || !(ld->flags & ML_TWOSIDED)) + if (!ld->backsector || !(ld->flags & ML_TWOSIDED) || (ld->flags & ML_BLOCKSIGHT)) return false; // stop checking // [RH] don't see past block everything lines diff --git a/src/p_udmf.cpp b/src/p_udmf.cpp index 72c3cb24c..1215d0839 100644 --- a/src/p_udmf.cpp +++ b/src/p_udmf.cpp @@ -874,6 +874,10 @@ public: Flag(ld->flags, ML_BLOCKUSE, key); continue; + case NAME_blocksight: + Flag(ld->flags, ML_BLOCKSIGHT, key); + continue; + default: break; }