diff --git a/Build/Configurations/Includes/GZDoom_things.cfg b/Build/Configurations/Includes/GZDoom_things.cfg index 5339a85e4a84d15de8fa6507fe3194a571369488..d81984afb64f89dd441685b196e3aa1fb1a4a7e5 100755 --- a/Build/Configurations/Includes/GZDoom_things.cfg +++ b/Build/Configurations/Includes/GZDoom_things.cfg @@ -1,10 +1,10 @@ gzdoom_lights { - staticlights + lightmaplights { color = 7; arrow = 0; - title = "Static Lights"; + title = "Lightmap Lights"; sort = 1; width = 0; height = 0; @@ -15,8 +15,86 @@ gzdoom_lights 9876 { - title = "Static Point Light"; - class = "StaticPointLight"; // Fake class name + title = "Lightmap Point Light"; + class = "pointlighttraceattenuated"; + arg0 + { + title = "Red"; + default = 255; + } + arg1 + { + title = "Green"; + default = 255; + } + arg2 + { + title = "Blue"; + default = 255; + } + arg3 + { + title = "Radius"; + default = 64; + } + } + + 9877 + { + title = "Lightmap Point Light (Pulsing)"; + class = "pointlightpulsetraceattenuated"; + arg0 + { + title = "Red"; + default = 255; + } + arg1 + { + title = "Green"; + default = 255; + } + arg2 + { + title = "Blue"; + default = 255; + } + arg3 + { + title = "Radius"; + default = 64; + } + } + + 9878 + { + title = "Lightmap Point Light (Flickering)"; + class = "pointlightflickertraceattenuated"; + arg0 + { + title = "Red"; + default = 255; + } + arg1 + { + title = "Green"; + default = 255; + } + arg2 + { + title = "Blue"; + default = 255; + } + arg3 + { + title = "Radius"; + default = 64; + } + } + + 9879 + { + title = "Lightmap Point Light (Random Flickering)"; + class = "pointlightflickerrandomtraceattenuated"; arg0 { title = "Red"; @@ -41,8 +119,89 @@ gzdoom_lights 9881 { - title = "Static Spotlight"; - class = "StaticSpotLight"; // Fake class name + title = "Lightmap Spotlight"; + class = "spotlighttraceattenuated"; + arg0 + { + title = "Color"; + default = 16777215; + str = true; + } + arg1 + { + title = "Inner angle"; + default = 8; + } + arg2 + { + title = "Outer angle"; + default = 32; + } + arg3 + { + title = "Radius"; + default = 64; + } + } + + 9882 + { + title = "Lightmap Spotlight (Pulsing)"; + class = "spotlightpulsetraceattenuated"; + arg0 + { + title = "Color"; + default = 16777215; + str = true; + } + arg1 + { + title = "Inner angle"; + default = 8; + } + arg2 + { + title = "Outer angle"; + default = 32; + } + arg3 + { + title = "Radius"; + default = 64; + } + } + + 9883 + { + title = "Lightmap Spotlight (Flickering)"; + class = "spotlightflickertraceattenuated"; + arg0 + { + title = "Color"; + default = 16777215; + str = true; + } + arg1 + { + title = "Inner angle"; + default = 8; + } + arg2 + { + title = "Outer angle"; + default = 32; + } + arg3 + { + title = "Radius"; + default = 64; + } + } + + 9884 + { + title = "Lightmap Spotlight (Random Flickering)"; + class = "spotlightflickerrandomtraceattenuated"; arg0 { title = "Color"; diff --git a/Source/Core/GZBuilder/Data/LinksCollector.cs b/Source/Core/GZBuilder/Data/LinksCollector.cs index 4c1586ff3c44d3e7df77664cf5302b3bc5d71b6b..719f6fd8f52fa5f62710046349df610e68b48928 100755 --- a/Source/Core/GZBuilder/Data/LinksCollector.cs +++ b/Source/Core/GZBuilder/Data/LinksCollector.cs @@ -579,7 +579,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.Data color = new PixelColor((byte)linealpha, (byte)t.Args[1], (byte)t.Args[2], (byte)t.Args[3]); break; - case GZGeneral.LightDef.POINT_STATIC: + case GZGeneral.LightDef.POINT_LIGHTMAP: // ZDRay static lights have an intensity that's set through the thing's alpha value double intensity = t.Fields.GetValue("alpha", 1.0); byte r = (byte)General.Clamp(t.Args[0] * intensity, 0.0, 255.0); @@ -622,7 +622,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.Data else color = new PixelColor((byte)linealpha, (byte)((t.Args[0] & 0xFF0000) >> 16), (byte)((t.Args[0] & 0x00FF00) >> 8), (byte)((t.Args[0] & 0x0000FF))); // ZDRay static lights have an intensity that's set through the thing's alpha value - if (t.DynamicLightType.LightDef == GZGeneral.LightDef.SPOT_STATIC) + if (t.DynamicLightType.LightDef == GZGeneral.LightDef.SPOT_LIGHTMAP) { double intensity = t.Fields.GetValue("alpha", 1.0); if (intensity != 1.0) diff --git a/Source/Core/GZBuilder/GZGeneral.cs b/Source/Core/GZBuilder/GZGeneral.cs index 759336c80abfddcc5c75abd02fc7c265403727b0..508ee16b79652d4912e3c3380bf92ace7b2e5b46 100755 --- a/Source/Core/GZBuilder/GZGeneral.cs +++ b/Source/Core/GZBuilder/GZGeneral.cs @@ -120,17 +120,17 @@ namespace CodeImp.DoomBuilder.GZBuilder [LightDefClass("vavoomlightcolor")] VAVOOM_COLORED, - [LightDefRenderStyle(LightRenderStyle.STATIC)] - [LightDefNum(9876)] - [LightDefClass("staticpointlight")] - [LightDefModifier(LightModifier.NORMAL)] - POINT_STATIC, - - [LightDefRenderStyle(LightRenderStyle.STATIC)] - [LightDefNum(9881)] - [LightDefClass("staticspotlight")] - [LightDefModifier(LightModifier.NORMAL)] - SPOT_STATIC, + [LightDefRenderStyle(LightRenderStyle.LIGHTMAP)] + [LightDefNum(9876, 9877, 9878, 9879)] + [LightDefClass("pointlighttraceattenuated", "pointlightpulsetraceattenuated", "pointlightflickertraceattenuated", "pointlightflickerrandomtraceattenuated")] + [LightDefModifier(LightModifier.NORMAL, LightModifier.PULSE, LightModifier.FLICKER, LightModifier.FLICKERRANDOM)] + POINT_LIGHTMAP, + + [LightDefRenderStyle(LightRenderStyle.LIGHTMAP)] + [LightDefNum(9881, 9882, 9883, 9884)] + [LightDefClass("spotlighttraceattenuated", "spotlightpulsetraceattenuated", "spotlightflickertraceattenuated", "spotlightflickerrandomtraceattenuated")] + [LightDefModifier(LightModifier.NORMAL, LightModifier.PULSE, LightModifier.FLICKER, LightModifier.FLICKERRANDOM)] + SPOT_LIGHTMAP, [LightDefRenderStyle(LightRenderStyle.NONE)] [LightDefNum(9890)] @@ -150,7 +150,7 @@ namespace CodeImp.DoomBuilder.GZBuilder ATTENUATED = 98, VAVOOM = 50, ADDITIVE = 25, - STATIC = 98, // Same as attenuated + LIGHTMAP = 98, // Same as attenuated NONE = 0, } @@ -232,14 +232,14 @@ namespace CodeImp.DoomBuilder.GZBuilder case LightDef.POINT_ADDITIVE: case LightDef.POINT_SUBTRACTIVE: case LightDef.POINT_ATTENUATED: - case LightDef.POINT_STATIC: + case LightDef.POINT_LIGHTMAP: LightType = LightType.POINT; break; case LightDef.SPOT_NORMAL: case LightDef.SPOT_ADDITIVE: case LightDef.SPOT_SUBTRACTIVE: case LightDef.SPOT_ATTENUATED: - case LightDef.SPOT_STATIC: + case LightDef.SPOT_LIGHTMAP: LightType = LightType.SPOT; break; case LightDef.VAVOOM_GENERIC: diff --git a/Source/Core/Rendering/Renderer2D.cs b/Source/Core/Rendering/Renderer2D.cs index 4f70a4ebc4e13209469cab26d3fcea91cae00eba..5796dd9ad01756981111ef130ced0311d894d111 100755 --- a/Source/Core/Rendering/Renderer2D.cs +++ b/Source/Core/Rendering/Renderer2D.cs @@ -592,7 +592,7 @@ namespace CodeImp.DoomBuilder.Rendering color = new PixelColor(255, (byte)((t.Args[0] & 0xFF0000) >> 16), (byte)((t.Args[0] & 0x00FF00) >> 8), (byte)((t.Args[0] & 0x0000FF))); // ZDRay static lights have an intensity that's set through the thing's alpha value - if (t.DynamicLightType.LightDef == GZGeneral.LightDef.SPOT_STATIC) + if (t.DynamicLightType.LightDef == GZGeneral.LightDef.SPOT_LIGHTMAP) { double intensity = t.Fields.GetValue("alpha", 1.0); if (intensity != 1.0) @@ -608,7 +608,7 @@ namespace CodeImp.DoomBuilder.Rendering } // Point light - if (t.DynamicLightType.LightDef == GZGeneral.LightDef.POINT_STATIC) + if (t.DynamicLightType.LightDef == GZGeneral.LightDef.POINT_LIGHTMAP) { // ZDRay static lights have an intensity that's set through the thing's alpha value double intensity = t.Fields.GetValue("alpha", 1.0); diff --git a/Source/Core/Rendering/Renderer3D.cs b/Source/Core/Rendering/Renderer3D.cs index e28cc8f4e26ae97b9c97ad2d4888e6df27d857b1..87980e404f9597a5a835795fae2879b71ce54841 100755 --- a/Source/Core/Rendering/Renderer3D.cs +++ b/Source/Core/Rendering/Renderer3D.cs @@ -608,7 +608,7 @@ namespace CodeImp.DoomBuilder.Rendering case GZGeneral.LightRenderStyle.VAVOOM: lightOffsets[0]++; break; case GZGeneral.LightRenderStyle.ADDITIVE: lightOffsets[2]++; break; case GZGeneral.LightRenderStyle.SUBTRACTIVE: lightOffsets[3]++; break; - case GZGeneral.LightRenderStyle.STATIC: // Static lights look the same as attenuated lights + case GZGeneral.LightRenderStyle.LIGHTMAP: // Static lights look the same as attenuated lights default: lightOffsets[1]++; break; // attenuated } } diff --git a/Source/Core/VisualModes/VisualThing.cs b/Source/Core/VisualModes/VisualThing.cs index 3f407ac2bde40bc2dfaed6f9d27f9a995010e22e..f93e058d26b149209572d35fdd170ccd3cabde51 100755 --- a/Source/Core/VisualModes/VisualThing.cs +++ b/Source/Core/VisualModes/VisualThing.cs @@ -679,7 +679,7 @@ namespace CodeImp.DoomBuilder.VisualModes if (ld.LightDef != GZGeneral.LightDef.POINT_SUBTRACTIVE) // normal, additive, attenuated { // ZDRay static lights have an intensity that's set through the thing's alpha value - float intensity = ld.LightRenderStyle == GZGeneral.LightRenderStyle.STATIC ? (float)thing.Fields.GetValue("alpha", 1.0) : 1.0f; + float intensity = ld.LightRenderStyle == GZGeneral.LightRenderStyle.LIGHTMAP ? (float)thing.Fields.GetValue("alpha", 1.0) : 1.0f; //lightColor.Alpha used in shader to perform some calculations based on light type lightColor = new Color4( @@ -718,7 +718,7 @@ namespace CodeImp.DoomBuilder.VisualModes if (ld.LightDef != GZGeneral.LightDef.SPOT_SUBTRACTIVE) { // ZDRay static lights have an intensity that's set through the thing's alpha value - float intensity = ld.LightRenderStyle == GZGeneral.LightRenderStyle.STATIC ? (float)thing.Fields.GetValue("alpha", 1.0) : 1.0f; + float intensity = ld.LightRenderStyle == GZGeneral.LightRenderStyle.LIGHTMAP ? (float)thing.Fields.GetValue("alpha", 1.0) : 1.0f; lightColor = new Color4( c1 / DYNLIGHT_INTENSITY_SCALER * intensity,