diff --git a/extras/conf/udb/Includes/SRB222_linedefs.cfg b/extras/conf/udb/Includes/SRB222_linedefs.cfg index 64bc00450f55003a6988c013535c0ac55a610f4b..e7d7b4337d7117356b6900cdde54d7ce6a72a741 100644 --- a/extras/conf/udb/Includes/SRB222_linedefs.cfg +++ b/extras/conf/udb/Includes/SRB222_linedefs.cfg @@ -1584,6 +1584,23 @@ udmf } } + 200 + { + title = "Light Block"; + prefix = "(200); + arg0 + { + title = "Target sector tag"; + type = 13; + } + arg1 + { + title = "Expand to bottom?"; + type = 11; + enum = "noyes"; + } + } + linedefexecmisc { title = "Linedef Executor (misc.)"; diff --git a/src/p_setup.c b/src/p_setup.c index 6eeeac5cdc117992b1470bcd169f656b546d36fd..4379425df24f953878b0bee10c7247eb5c38b43d 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -2920,6 +2920,13 @@ static void P_ConvertBinaryMap(void) lines[i].special = 100; break; + case 200: //FOF: Light block + case 201: //FOF: Half light block + lines[i].args[0] = lines[i].tag; + if (lines[i].special == 201) + lines[i].args[1] = 1; + lines[i].special = 200; + break; case 443: //Call Lua function if (lines[i].text) { diff --git a/src/p_spec.c b/src/p_spec.c index ac45b6d074dba579b7d578937d96c7ecc37dfb94..d10d72a0f06986d98f1a2bc17c02219517fc6cfc 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -6943,12 +6943,11 @@ void P_SpawnSpecials(boolean fromnetsave) P_AddRaiseThinker(lines[i].frontsector, &lines[i]); break; - case 200: // Double light effect - P_AddFakeFloorsByLine(i, FF_EXISTS|FF_CUTSPRITES|FF_DOUBLESHADOW, secthinkers); - break; - - case 201: // Light effect - P_AddFakeFloorsByLine(i, FF_EXISTS|FF_CUTSPRITES, secthinkers); + case 200: // Light block + ffloorflags = FF_EXISTS|FF_CUTSPRITES; + if (!lines[i].args[1]) + ffloorflags |= FF_DOUBLESHADOW; + P_AddFakeFloorsByLine(i, ffloorflags, secthinkers); break; case 202: // Fog