From 3bbef315f676fced3078955965ec30432bacbb9c Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 28 Apr 2009 20:53:07 +0000 Subject: [PATCH] - Added ML_BLOCKUSE line flag, accessible through UDMF and Line_SetBlocking. SVN r1561 (trunk) --- docs/rh-log.txt | 5 ++++- specs/udmf_zdoom.txt | 6 +++++- src/doomdata.h | 1 + src/namedef.h | 1 + src/p_lnspec.cpp | 1 + src/p_map.cpp | 2 +- src/p_udmf.cpp | 4 ++++ 7 files changed, 17 insertions(+), 3 deletions(-) diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 32861a6fb..0f7495f59 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,7 @@ -April 25, 2009 (Changes by Graf Zahl) +April 28, 2009 (Changes by Graf Zahl) +- Added ML_BLOCKUSE line flag, accessible through UDMF and Line_SetBlocking. + +April 25, 2009 (Changes by Graf Zahl) - Fixed handling of embedded WADs. April 23, 2009 (Changes by Graf Zahl) diff --git a/specs/udmf_zdoom.txt b/specs/udmf_zdoom.txt index b0b7b00b3..f74016731 100644 --- a/specs/udmf_zdoom.txt +++ b/specs/udmf_zdoom.txt @@ -1,5 +1,5 @@ =============================================================================== -Universal Doom Map Format ZDoom extensions v1.5 - 22.02.2009 +Universal Doom Map Format ZDoom extensions v1.6 - 28.04.2009 Copyright (c) 2008 Christoph Oelckers. @@ -103,6 +103,7 @@ Note: All fields default to false unless mentioned otherwise. midtex3d = ; // Actors can walk on mid texture. checkswitchrange = ;// Switches can only be activated when vertically reachable. blockprojectiles = ;// Line blocks all projectiles + blockuse = ; // Line blocks all use actions } @@ -234,6 +235,9 @@ this uses array syntax. No functional changes 1.5 22.02.2009 Added blockprojectiles to lines and firstsideonly to conversion notes +1.6 28.04.2009 +Added blockuse line flag. + =============================================================================== EOF =============================================================================== diff --git a/src/doomdata.h b/src/doomdata.h index 533cc8845..37e7190d6 100644 --- a/src/doomdata.h +++ b/src/doomdata.h @@ -150,6 +150,7 @@ enum ELineFlags ML_CHECKSWITCHRANGE = 0x00400000, ML_FIRSTSIDEONLY = 0x00800000, // activated only when crossed from front side ML_BLOCKPROJECTILE = 0x01000000, + ML_BLOCKUSE = 0x02000000, // blocks all use actions through this line }; diff --git a/src/namedef.h b/src/namedef.h index bcb908570..bb8f9e177 100644 --- a/src/namedef.h +++ b/src/namedef.h @@ -412,5 +412,6 @@ xx(lightabsolute) xx(nofakecontrast) xx(smoothlighting) xx(blockprojectiles) +xx(blockuse) xx(Renderstyle) diff --git a/src/p_lnspec.cpp b/src/p_lnspec.cpp index 5ee13ce49..f8f24ad18 100644 --- a/src/p_lnspec.cpp +++ b/src/p_lnspec.cpp @@ -2369,6 +2369,7 @@ FUNC(LS_Line_SetBlocking) ML_BLOCKPROJECTILE, ML_BLOCKEVERYTHING, ML_RAILING, + ML_BLOCKUSE, -1 }; diff --git a/src/p_map.cpp b/src/p_map.cpp index 9edf30dec..a953700ab 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -3636,7 +3636,7 @@ bool P_UseTraverse(AActor *usething, fixed_t endx, fixed_t endy, bool &foundline if (in->d.line->special == 0 || !(in->d.line->activation & (SPAC_Use|SPAC_UseThrough))) { blocked: - if (in->d.line->flags & ML_BLOCKEVERYTHING) + if (in->d.line->flags & (ML_BLOCKEVERYTHING|ML_BLOCKUSE)) { open.range = 0; } diff --git a/src/p_udmf.cpp b/src/p_udmf.cpp index 7a82e6564..f410f4e94 100644 --- a/src/p_udmf.cpp +++ b/src/p_udmf.cpp @@ -633,6 +633,10 @@ struct UDMFParser Flag(ld->flags, ML_BLOCKPROJECTILE, key); break; + case NAME_blockuse: + Flag(ld->flags, ML_BLOCKUSE, key); + break; + default: break; }