diff --git a/extras/conf/udb/Includes/SRB222_linedefs.cfg b/extras/conf/udb/Includes/SRB222_linedefs.cfg index 64bc00450..e7d7b4337 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 6eeeac5cd..4379425df 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 ac45b6d07..d10d72a0f 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