mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-02-17 01:22:18 +00:00
GZDoomBuilder 1.04:
Added "Dynamic light size" slider, which matches GZDoom's "Light size" option. Added "Dynamic light intensity" slider, which matches GZDoom's "Light intensity" option. Fixed Vavoom light rendering (was rendered as additive light, light radius was twise smaller than in GZDoom) Fixed bug in light rendering introduced in v1.03 (light radius was set to -1 when switching from 2D to 3D mode).
This commit is contained in:
parent
dcf899a3c4
commit
a9fd8d33b2
10 changed files with 200 additions and 93 deletions
|
@ -103,6 +103,8 @@ namespace CodeImp.DoomBuilder.Config
|
|||
private bool gzDrawFog;
|
||||
private bool gzToolbarGZDoom;
|
||||
private int gzMaxDynamicLights;
|
||||
private float gzDynamicLightRadius;
|
||||
private float gzDynamicLightIntensity;
|
||||
|
||||
// These are not stored in the configuration, only used at runtime
|
||||
private string defaulttexture;
|
||||
|
@ -175,6 +177,8 @@ namespace CodeImp.DoomBuilder.Config
|
|||
public bool GZDrawFog { get { return gzDrawFog; } internal set { gzDrawFog = value; } }
|
||||
public bool GZToolbarGZDoom { get { return gzToolbarGZDoom; } internal set { gzToolbarGZDoom = value; } }
|
||||
public int GZMaxDynamicLights { get { return gzMaxDynamicLights; } internal set { gzMaxDynamicLights = value; } }
|
||||
public float GZDynamicLightRadius { get { return gzDynamicLightRadius; } internal set { gzDynamicLightRadius = value; } }
|
||||
public float GZDynamicLightIntensity { get { return gzDynamicLightIntensity; } internal set { gzDynamicLightIntensity = value; } }
|
||||
|
||||
public string DefaultTexture { get { return defaulttexture; } set { defaulttexture = value; } }
|
||||
public string DefaultFloorTexture { get { return defaultfloortexture; } set { defaultfloortexture = value; } }
|
||||
|
@ -264,6 +268,8 @@ namespace CodeImp.DoomBuilder.Config
|
|||
gzDrawFog = cfg.ReadSetting("gzdrawfog", false);
|
||||
gzToolbarGZDoom = cfg.ReadSetting("gztoolbargzdoom", true);
|
||||
gzMaxDynamicLights = cfg.ReadSetting("gzmaxdynamiclights", 16);
|
||||
gzDynamicLightRadius = cfg.ReadSetting("gzdynamiclightradius", 1.0f);
|
||||
gzDynamicLightIntensity = cfg.ReadSetting("gzdynamiclightintensity", 1.0f);
|
||||
|
||||
// Success
|
||||
return true;
|
||||
|
@ -334,6 +340,8 @@ namespace CodeImp.DoomBuilder.Config
|
|||
cfg.WriteSetting("gzanimatelights", gzAnimateLights);
|
||||
cfg.WriteSetting("gzdrawfog", gzDrawFog);
|
||||
cfg.WriteSetting("gzmaxdynamiclights", gzMaxDynamicLights);
|
||||
cfg.WriteSetting("gzdynamiclightradius", gzDynamicLightRadius);
|
||||
cfg.WriteSetting("gzdynamiclightintensity", gzDynamicLightIntensity);
|
||||
|
||||
// Save settings configuration
|
||||
General.WriteLogLine("Saving program configuration...");
|
||||
|
|
|
@ -28,7 +28,8 @@ namespace CodeImp.DoomBuilder.GZBuilder.Data
|
|||
//divide these by 100 to get light color alpha
|
||||
public enum GZDoomLightRenderStyle : int
|
||||
{
|
||||
NORMAL = 75,
|
||||
NORMAL = 99,
|
||||
VAVOOM = 50,
|
||||
ADDITIVE = 25,
|
||||
NEGATIVE = 100
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace CodeImp.DoomBuilder.GZBuilder
|
|||
public static int[] GZ_LIGHT_TYPES { get { return gz_lightTypes; } }
|
||||
|
||||
//version
|
||||
public const string Version = "1.03";
|
||||
public const string Version = "1.04";
|
||||
|
||||
//debug form
|
||||
#if DEBUG
|
||||
|
|
|
@ -598,8 +598,8 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
thingsWithLight.Sort(sortThingsByLightRenderStyle);
|
||||
lightOffsets = new int[3];
|
||||
foreach (VisualThing t in thingsWithLight) {
|
||||
//add light to apropriate array. can't clear lights now, since it's Count is used to check if dynamic light rendering pass is needed and I don't want to add special variable for that...
|
||||
if (t.LightRenderStyle == (int)GZDoomLightRenderStyle.NORMAL)
|
||||
//add light to apropriate array.
|
||||
if (t.LightRenderStyle == (int)GZDoomLightRenderStyle.NORMAL || t.LightRenderStyle == (int)GZDoomLightRenderStyle.VAVOOM)
|
||||
lightOffsets[0]++;
|
||||
else if (t.LightRenderStyle == (int)GZDoomLightRenderStyle.ADDITIVE)
|
||||
lightOffsets[1]++;
|
||||
|
@ -906,9 +906,6 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
|
||||
for (i = 0; i < count; i++) {
|
||||
if (checkBBoxIntersection(g.BoundingBox, lights[i].BoundingBox)) {
|
||||
//dbg
|
||||
//totalGeo++;
|
||||
|
||||
lpr = lights[i].LightPositionAndRadius;
|
||||
if (lpr.W == 0)
|
||||
continue;
|
||||
|
@ -927,9 +924,6 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
|
||||
for (i = lightOffsets[0]; i < count; i++) {
|
||||
if (checkBBoxIntersection(g.BoundingBox, lights[i].BoundingBox)) {
|
||||
//dbg
|
||||
//totalGeo++;
|
||||
|
||||
lpr = lights[i].LightPositionAndRadius;
|
||||
if (lpr.W == 0)
|
||||
continue;
|
||||
|
@ -948,14 +942,11 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
|
||||
for (i = lightOffsets[0] + lightOffsets[1]; i < count; i++) {
|
||||
if (checkBBoxIntersection(g.BoundingBox, lights[i].BoundingBox)) {
|
||||
//dbg
|
||||
//totalGeo++;
|
||||
|
||||
lpr = lights[i].LightPositionAndRadius;
|
||||
if (lpr.W == 0)
|
||||
continue;
|
||||
Color4 lc = lights[i].LightColor;
|
||||
graphics.Shaders.World3D.LightColor = new Color4(1.0f, (lc.Green + lc.Blue) / 2, (lc.Red + lc.Blue) / 2, (lc.Green + lc.Red) / 2);
|
||||
graphics.Shaders.World3D.LightColor = new Color4(lc.Alpha, (lc.Green + lc.Blue) / 2, (lc.Red + lc.Blue) / 2, (lc.Green + lc.Red) / 2);
|
||||
graphics.Shaders.World3D.LightPositionAndRadius = lights[i].LightPositionAndRadius;
|
||||
graphics.Shaders.World3D.ApplySettings();
|
||||
graphics.Device.DrawPrimitives(PrimitiveType.TriangleList, g.VertexOffset, g.Triangles);
|
||||
|
@ -1036,8 +1027,8 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
//so use visualThing.PositionV3 instead
|
||||
private Color4 getLitColor(Vector3 thingPosition) {
|
||||
Color4 litColor = new Color4();
|
||||
float distSquared, scaler;
|
||||
int radius, radiusSquared, sign;
|
||||
float radius, radiusSquared, distSquared, scaler;
|
||||
int sign;
|
||||
|
||||
for (int i = 0; i < thingsWithLight.Count; i++ ) {
|
||||
distSquared = Vector3.DistanceSquared(thingsWithLight[i].Center, thingPosition);
|
||||
|
@ -1045,7 +1036,7 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
radiusSquared = radius * radius;
|
||||
if (distSquared < radiusSquared) {
|
||||
sign = thingsWithLight[i].LightRenderStyle == (int)GZDoomLightRenderStyle.NEGATIVE ? -1 : 1;
|
||||
scaler = 1 - distSquared / radiusSquared;
|
||||
scaler = 1 - distSquared / radiusSquared * thingsWithLight[i].LightColor.Alpha;
|
||||
litColor.Red += thingsWithLight[i].LightColor.Red * scaler * sign;
|
||||
litColor.Green += thingsWithLight[i].LightColor.Green * scaler * sign;
|
||||
litColor.Blue += thingsWithLight[i].LightColor.Blue * scaler * sign;
|
||||
|
@ -1209,39 +1200,39 @@ namespace CodeImp.DoomBuilder.Rendering
|
|||
public void RenderCrosshair()
|
||||
{
|
||||
// Set renderstates
|
||||
graphics.Device.SetRenderState(RenderState.CullMode, Cull.None);
|
||||
graphics.Device.SetRenderState(RenderState.ZEnable, false);
|
||||
graphics.Device.SetRenderState(RenderState.AlphaBlendEnable, true);
|
||||
graphics.Device.SetRenderState(RenderState.AlphaTestEnable, false);
|
||||
graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
|
||||
graphics.Device.SetRenderState(RenderState.DestinationBlend, Blend.InverseSourceAlpha);
|
||||
graphics.Device.SetRenderState(RenderState.TextureFactor, -1);
|
||||
graphics.Device.SetTransform(TransformState.World, Matrix.Identity);
|
||||
graphics.Device.SetTransform(TransformState.Projection, Matrix.Identity);
|
||||
ApplyMatrices2D();
|
||||
graphics.Device.SetRenderState(RenderState.CullMode, Cull.None);
|
||||
graphics.Device.SetRenderState(RenderState.ZEnable, false);
|
||||
graphics.Device.SetRenderState(RenderState.AlphaBlendEnable, true);
|
||||
graphics.Device.SetRenderState(RenderState.AlphaTestEnable, false);
|
||||
graphics.Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha);
|
||||
graphics.Device.SetRenderState(RenderState.DestinationBlend, Blend.InverseSourceAlpha);
|
||||
graphics.Device.SetRenderState(RenderState.TextureFactor, -1);
|
||||
graphics.Device.SetTransform(TransformState.World, Matrix.Identity);
|
||||
graphics.Device.SetTransform(TransformState.Projection, Matrix.Identity);
|
||||
ApplyMatrices2D();
|
||||
|
||||
// Texture
|
||||
if(crosshairbusy)
|
||||
{
|
||||
if(General.Map.Data.CrosshairBusy3D.Texture == null) General.Map.Data.CrosshairBusy3D.CreateTexture();
|
||||
graphics.Device.SetTexture(0, General.Map.Data.CrosshairBusy3D.Texture);
|
||||
graphics.Shaders.Display2D.Texture1 = General.Map.Data.CrosshairBusy3D.Texture;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(General.Map.Data.Crosshair3D.Texture == null) General.Map.Data.Crosshair3D.CreateTexture();
|
||||
graphics.Device.SetTexture(0, General.Map.Data.Crosshair3D.Texture);
|
||||
graphics.Shaders.Display2D.Texture1 = General.Map.Data.Crosshair3D.Texture;
|
||||
}
|
||||
// Texture
|
||||
if(crosshairbusy)
|
||||
{
|
||||
if(General.Map.Data.CrosshairBusy3D.Texture == null) General.Map.Data.CrosshairBusy3D.CreateTexture();
|
||||
graphics.Device.SetTexture(0, General.Map.Data.CrosshairBusy3D.Texture);
|
||||
graphics.Shaders.Display2D.Texture1 = General.Map.Data.CrosshairBusy3D.Texture;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(General.Map.Data.Crosshair3D.Texture == null) General.Map.Data.Crosshair3D.CreateTexture();
|
||||
graphics.Device.SetTexture(0, General.Map.Data.Crosshair3D.Texture);
|
||||
graphics.Shaders.Display2D.Texture1 = General.Map.Data.Crosshair3D.Texture;
|
||||
}
|
||||
|
||||
// Draw
|
||||
graphics.Shaders.Display2D.Begin();
|
||||
graphics.Shaders.Display2D.SetSettings(1.0f, 1.0f, 0.0f, 1.0f, true);
|
||||
graphics.Shaders.Display2D.BeginPass(1);
|
||||
graphics.Device.DrawUserPrimitives<FlatVertex>(PrimitiveType.TriangleStrip, 0, 2, crosshairverts);
|
||||
graphics.Shaders.Display2D.EndPass();
|
||||
graphics.Shaders.Display2D.End();
|
||||
}
|
||||
// Draw
|
||||
graphics.Shaders.Display2D.Begin();
|
||||
graphics.Shaders.Display2D.SetSettings(1.0f, 1.0f, 0.0f, 1.0f, true);
|
||||
graphics.Shaders.Display2D.BeginPass(1);
|
||||
graphics.Device.DrawUserPrimitives<FlatVertex>(PrimitiveType.TriangleStrip, 0, 2, crosshairverts);
|
||||
graphics.Shaders.Display2D.EndPass();
|
||||
graphics.Shaders.Display2D.End();
|
||||
}
|
||||
|
||||
// This switches fog on and off
|
||||
public void SetFogMode(bool usefog)
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 141 KiB |
|
@ -153,9 +153,9 @@ float4 ps_constant_color(PixelData pd) : COLOR {
|
|||
//mxd. dynamic light pixel shader pass, dood!
|
||||
float4 ps_lightpass(LitPixelData pd) : COLOR {
|
||||
//is face facing away from light source?
|
||||
if(dot(pd.normal, (lightPosAndRadius.xyz - pd.pos_w)) <= 0) // (lightPosAndRadius.xyz - pd.pos_w) == direction from light to current pixel
|
||||
if(dot(pd.normal, (lightPosAndRadius.xyz - pd.pos_w)) < -0.1f) // (lightPosAndRadius.xyz - pd.pos_w) == direction from light to current pixel
|
||||
clip(-1);
|
||||
|
||||
|
||||
//is pixel in light range?
|
||||
float dist = distance(pd.pos_w, lightPosAndRadius.xyz);
|
||||
if(dist > lightPosAndRadius.w)
|
||||
|
@ -171,11 +171,9 @@ float4 ps_lightpass(LitPixelData pd) : COLOR {
|
|||
|
||||
lightColorMod.rgb = lightColor.rgb * max(lightPosAndRadius.w - dist, 0.0f) / lightPosAndRadius.w;
|
||||
if(lightColorMod.r > 0.0f || lightColorMod.g > 0.0f || lightColorMod.b > 0.0f){
|
||||
if(lightColor.a == 1.0f){ //Normal or negative light
|
||||
lightColorMod.rgb *= 0.9f;
|
||||
lightColorMod.rgb *= lightColor.a;
|
||||
if(lightColor.a > 0.4f) //Normal, vavoom or negative light
|
||||
return tcolor * lightColorMod;
|
||||
}
|
||||
lightColorMod.rgb *= 0.25f;
|
||||
return lightColorMod; //Additive light
|
||||
}
|
||||
clip(-1);
|
||||
|
@ -226,7 +224,7 @@ technique SM20 {
|
|||
VertexShader = compile vs_2_0 vs_customvertexcolor();
|
||||
PixelShader = compile ps_2_0 ps_main_highlight();
|
||||
}
|
||||
|
||||
|
||||
// Full brightness mode with highlight
|
||||
pass p7 {
|
||||
VertexShader = compile vs_2_0 vs_customvertexcolor();
|
||||
|
|
|
@ -87,9 +87,9 @@ namespace CodeImp.DoomBuilder.VisualModes
|
|||
private int lightType;
|
||||
private int lightRenderStyle;
|
||||
private Color4 lightColor;
|
||||
private int lightRadius; //current radius. used in light animation
|
||||
private int lightRadiusMin;
|
||||
private int lightRadiusMax;
|
||||
private float lightRadius; //current radius. used in light animation
|
||||
private float lightRadiusMin;
|
||||
private float lightRadiusMax;
|
||||
private Vector3 position_v3;
|
||||
private float lightDelta; //used in light animation
|
||||
private Vector3[] boundingBox;
|
||||
|
@ -119,7 +119,7 @@ namespace CodeImp.DoomBuilder.VisualModes
|
|||
public Vector3[] BoundingBox { get { return boundingBox; } }
|
||||
//mxd. light properties
|
||||
public int LightType { get { return lightType; } }
|
||||
public int LightRadius { get { return lightRadius; } }
|
||||
public float LightRadius { get { return lightRadius; } }
|
||||
public int LightRenderStyle { get { return lightRenderStyle; } }
|
||||
public Color4 LightColor { get { return lightColor; } }
|
||||
public Vector4 LightPositionAndRadius { get { return new Vector4(Center, lightRadius);} }
|
||||
|
@ -353,45 +353,48 @@ namespace CodeImp.DoomBuilder.VisualModes
|
|||
|
||||
//mxd update light info
|
||||
private void updateLight(int light_id) {
|
||||
float scaled_intensity = 255.0f / General.Settings.GZDynamicLightIntensity;
|
||||
|
||||
if (light_id < GZBuilder.GZGeneral.GZ_LIGHT_TYPES[2]) { //if it's gzdoom light
|
||||
int n;
|
||||
if (light_id < GZBuilder.GZGeneral.GZ_LIGHT_TYPES[0]) {
|
||||
n = 0;
|
||||
lightRenderStyle = (int)GZDoomLightRenderStyle.NORMAL;
|
||||
//lightColor.Alpha used in shader to perform some calculations based on light type
|
||||
lightColor = new Color4(1.0f, (float)thing.Args[0] / 255, (float)thing.Args[1] / 255, (float)thing.Args[2] / 255);
|
||||
lightColor = new Color4((float)lightRenderStyle / 100.0f, (float)thing.Args[0] / scaled_intensity, (float)thing.Args[1] / scaled_intensity, (float)thing.Args[2] / scaled_intensity);
|
||||
} else if (light_id < GZBuilder.GZGeneral.GZ_LIGHT_TYPES[1]) {
|
||||
n = 10;
|
||||
lightRenderStyle = (int)GZDoomLightRenderStyle.ADDITIVE;
|
||||
lightColor = new Color4(0.0f, (float)thing.Args[0] / 255, (float)thing.Args[1] / 255, (float)thing.Args[2] / 255);
|
||||
lightColor = new Color4((float)lightRenderStyle / 100.0f, (float)thing.Args[0] / scaled_intensity, (float)thing.Args[1] / scaled_intensity, (float)thing.Args[2] / scaled_intensity);
|
||||
} else {
|
||||
n = 20;
|
||||
lightRenderStyle = (int)GZDoomLightRenderStyle.NEGATIVE;
|
||||
lightColor = new Color4(1.0f, (float)thing.Args[0] / 255, (float)thing.Args[1] / 255, (float)thing.Args[2] / 255);
|
||||
lightColor = new Color4((float)lightRenderStyle / 100.0f, (float)thing.Args[0] / scaled_intensity, (float)thing.Args[1] / scaled_intensity, (float)thing.Args[2] / scaled_intensity);
|
||||
}
|
||||
lightType = thing.Type - 9800 - n;
|
||||
|
||||
if (lightType == (int)GZDoomLightType.SECTOR) {
|
||||
lightRadiusMin = thing.Args[3] * 4;
|
||||
lightRadiusMin = (float)(thing.Args[3] * 4) * General.Settings.GZDynamicLightRadius;
|
||||
} else {
|
||||
lightRadiusMin = thing.Args[3] * 2; //works... that.. way in GZDoom
|
||||
if (lightType > 0)
|
||||
lightRadiusMax = thing.Args[4] * 2;
|
||||
lightRadiusMin = (float)(thing.Args[3] * 2) * General.Settings.GZDynamicLightRadius; //works... that.. way in GZDoom
|
||||
if (lightType > 0) {
|
||||
lightRadiusMax = (float)(thing.Args[4] * 2) * General.Settings.GZDynamicLightRadius;
|
||||
|
||||
if (lightRadiusMin > lightRadiusMax) { //swap them
|
||||
int lrm = lightRadiusMin;
|
||||
lightRadiusMin = lightRadiusMax;
|
||||
lightRadiusMax = lrm;
|
||||
if (lightRadiusMin > lightRadiusMax) { //swap them
|
||||
float lrm = lightRadiusMin;
|
||||
lightRadiusMin = lightRadiusMax;
|
||||
lightRadiusMax = lrm;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else { //it's one of vavoom lights
|
||||
lightRenderStyle = (int)GZDoomLightRenderStyle.NORMAL;
|
||||
lightRenderStyle = (int)GZDoomLightRenderStyle.VAVOOM;
|
||||
lightType = thing.Type;
|
||||
if (lightType == (int)GZDoomLightType.VAVOOM_COLORED)
|
||||
lightColor = new Color4((float)lightRenderStyle / 100.0f, (float)thing.Args[1] / 255, (float)thing.Args[2] / 255, (float)thing.Args[3] / 255);
|
||||
lightColor = new Color4((float)lightRenderStyle / 100.0f, (float)thing.Args[1] / scaled_intensity, (float)thing.Args[2] / scaled_intensity, (float)thing.Args[3] / scaled_intensity);
|
||||
else
|
||||
lightColor = new Color4((float)lightRenderStyle / 100.0f, 1.0f, 1.0f, 1.0f);
|
||||
lightRadiusMin = thing.Args[0] * 4;
|
||||
lightColor = new Color4((float)lightRenderStyle / 100.0f, General.Settings.GZDynamicLightIntensity, General.Settings.GZDynamicLightIntensity, General.Settings.GZDynamicLightIntensity);
|
||||
lightRadiusMin = (float)(thing.Args[0] * 8) * General.Settings.GZDynamicLightRadius;
|
||||
}
|
||||
UpdateLightRadius();
|
||||
}
|
||||
|
@ -411,9 +414,8 @@ namespace CodeImp.DoomBuilder.VisualModes
|
|||
return;
|
||||
}
|
||||
|
||||
//if (lightRadiusMax < lightRadiusMin) lightRadiusMax = lightRadiusMin;
|
||||
double time = General.Clock.GetCurrentTime();
|
||||
int diff = lightRadiusMax - lightRadiusMin;
|
||||
float diff = lightRadiusMax - lightRadiusMin;
|
||||
|
||||
//pulse
|
||||
if (lightType == (int)GZDoomLightType.PULSE) {
|
||||
|
@ -436,16 +438,16 @@ namespace CodeImp.DoomBuilder.VisualModes
|
|||
} else if (lightType == (int)GZDoomLightType.RANDOM) {
|
||||
float delta = (float)Math.Sin(time / (100.0f * thing.Angle * 4.6f)); //just playing by the eye here...
|
||||
if (Math.Sign(delta) != Math.Sign(lightDelta))
|
||||
lightRadius = lightRadiusMin + new Random().Next(0, diff);
|
||||
lightRadius = lightRadiusMin + (float)(new Random().Next(0, (int)(diff * 10))) / 10.0f;
|
||||
lightDelta = delta;
|
||||
}
|
||||
}
|
||||
|
||||
//mxd. update bounding box
|
||||
public void UpdateBoundingBox(int width, int height) {
|
||||
public void UpdateBoundingBox(float width, float height) {
|
||||
boundingBox = new Vector3[9];
|
||||
boundingBox[0] = Center;
|
||||
int h2 = height / 2;
|
||||
float h2 = height / 2.0f;
|
||||
|
||||
boundingBox[1] = new Vector3(position_v3.X - width, position_v3.Y - width, Center.Z - h2);
|
||||
boundingBox[2] = new Vector3(position_v3.X + width, position_v3.Y - width, Center.Z - h2);
|
||||
|
|
113
Source/Core/Windows/PreferencesForm.Designer.cs
generated
113
Source/Core/Windows/PreferencesForm.Designer.cs
generated
|
@ -35,6 +35,8 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
System.Windows.Forms.GroupBox groupBox1;
|
||||
System.Windows.Forms.Label label1;
|
||||
System.Windows.Forms.Label label18;
|
||||
System.Windows.Forms.Label label20;
|
||||
System.Windows.Forms.Label label21;
|
||||
this.showtexturesizes = new System.Windows.Forms.CheckBox();
|
||||
this.scriptontop = new System.Windows.Forms.CheckBox();
|
||||
this.zoomfactor = new Dotnetrix.Controls.TrackBar();
|
||||
|
@ -113,6 +115,8 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.actiondescription = new System.Windows.Forms.Label();
|
||||
this.tabcolors = new System.Windows.Forms.TabPage();
|
||||
this.appearancegroup1 = new System.Windows.Forms.GroupBox();
|
||||
this.labelDynLightSize = new System.Windows.Forms.Label();
|
||||
this.tbDynLightSize = new Dotnetrix.Controls.TrackBar();
|
||||
this.labelDynLightCount = new System.Windows.Forms.Label();
|
||||
this.tbDynLightCount = new Dotnetrix.Controls.TrackBar();
|
||||
this.animatevisualselection = new System.Windows.Forms.CheckBox();
|
||||
|
@ -142,12 +146,16 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.tabpasting = new System.Windows.Forms.TabPage();
|
||||
this.label16 = new System.Windows.Forms.Label();
|
||||
this.pasteoptions = new CodeImp.DoomBuilder.Controls.PasteOptionsControl();
|
||||
this.labelDynLightIntensity = new System.Windows.Forms.Label();
|
||||
this.tbDynLightIntensity = new Dotnetrix.Controls.TrackBar();
|
||||
label7 = new System.Windows.Forms.Label();
|
||||
label6 = new System.Windows.Forms.Label();
|
||||
label5 = new System.Windows.Forms.Label();
|
||||
groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
label1 = new System.Windows.Forms.Label();
|
||||
label18 = new System.Windows.Forms.Label();
|
||||
label20 = new System.Windows.Forms.Label();
|
||||
label21 = new System.Windows.Forms.Label();
|
||||
groupBox1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.zoomfactor)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.autoscrollspeed)).BeginInit();
|
||||
|
@ -167,11 +175,13 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.actioncontrolpanel.SuspendLayout();
|
||||
this.tabcolors.SuspendLayout();
|
||||
this.appearancegroup1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tbDynLightSize)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tbDynLightCount)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imagebrightness)).BeginInit();
|
||||
this.colorsgroup3.SuspendLayout();
|
||||
this.panel1.SuspendLayout();
|
||||
this.tabpasting.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tbDynLightIntensity)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label7
|
||||
|
@ -358,7 +368,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new System.Drawing.Point(22, 40);
|
||||
label1.Location = new System.Drawing.Point(28, 30);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new System.Drawing.Size(147, 14);
|
||||
label1.TabIndex = 20;
|
||||
|
@ -368,13 +378,23 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// label18
|
||||
//
|
||||
label18.AutoSize = true;
|
||||
label18.Location = new System.Drawing.Point(22, 91);
|
||||
label18.Location = new System.Drawing.Point(22, 78);
|
||||
label18.Name = "label18";
|
||||
label18.Size = new System.Drawing.Size(151, 14);
|
||||
label18.TabIndex = 25;
|
||||
label18.Text = "Max. dynamic lights to render:";
|
||||
label18.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
//
|
||||
// label20
|
||||
//
|
||||
label20.AutoSize = true;
|
||||
label20.Location = new System.Drawing.Point(76, 126);
|
||||
label20.Name = "label20";
|
||||
label20.Size = new System.Drawing.Size(96, 14);
|
||||
label20.TabIndex = 28;
|
||||
label20.Text = "Dynamic light size:";
|
||||
label20.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
//
|
||||
// keyusedlabel
|
||||
//
|
||||
this.keyusedlabel.AutoSize = true;
|
||||
|
@ -407,7 +427,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.colorsgroup1.Controls.Add(this.colorlinedefs);
|
||||
this.colorsgroup1.Location = new System.Drawing.Point(8, 8);
|
||||
this.colorsgroup1.Name = "colorsgroup1";
|
||||
this.colorsgroup1.Size = new System.Drawing.Size(203, 472);
|
||||
this.colorsgroup1.Size = new System.Drawing.Size(203, 493);
|
||||
this.colorsgroup1.TabIndex = 0;
|
||||
this.colorsgroup1.TabStop = false;
|
||||
this.colorsgroup1.Text = " Display ";
|
||||
|
@ -1140,6 +1160,12 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.appearancegroup1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.appearancegroup1.Controls.Add(label21);
|
||||
this.appearancegroup1.Controls.Add(this.labelDynLightIntensity);
|
||||
this.appearancegroup1.Controls.Add(this.tbDynLightIntensity);
|
||||
this.appearancegroup1.Controls.Add(label20);
|
||||
this.appearancegroup1.Controls.Add(this.labelDynLightSize);
|
||||
this.appearancegroup1.Controls.Add(this.tbDynLightSize);
|
||||
this.appearancegroup1.Controls.Add(label18);
|
||||
this.appearancegroup1.Controls.Add(this.labelDynLightCount);
|
||||
this.appearancegroup1.Controls.Add(this.tbDynLightCount);
|
||||
|
@ -1150,17 +1176,39 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.appearancegroup1.Controls.Add(this.classicbilinear);
|
||||
this.appearancegroup1.Controls.Add(this.imagebrightnesslabel);
|
||||
this.appearancegroup1.Controls.Add(this.imagebrightness);
|
||||
this.appearancegroup1.Location = new System.Drawing.Point(217, 251);
|
||||
this.appearancegroup1.Location = new System.Drawing.Point(217, 236);
|
||||
this.appearancegroup1.Name = "appearancegroup1";
|
||||
this.appearancegroup1.Size = new System.Drawing.Size(457, 229);
|
||||
this.appearancegroup1.Size = new System.Drawing.Size(457, 265);
|
||||
this.appearancegroup1.TabIndex = 24;
|
||||
this.appearancegroup1.TabStop = false;
|
||||
this.appearancegroup1.Text = " Additional Options ";
|
||||
//
|
||||
// labelDynLightSize
|
||||
//
|
||||
this.labelDynLightSize.AutoSize = true;
|
||||
this.labelDynLightSize.Location = new System.Drawing.Point(337, 126);
|
||||
this.labelDynLightSize.Name = "labelDynLightSize";
|
||||
this.labelDynLightSize.Size = new System.Drawing.Size(22, 14);
|
||||
this.labelDynLightSize.TabIndex = 29;
|
||||
this.labelDynLightSize.Text = "1.0";
|
||||
//
|
||||
// tbDynLightSize
|
||||
//
|
||||
this.tbDynLightSize.LargeChange = 1;
|
||||
this.tbDynLightSize.Location = new System.Drawing.Point(176, 113);
|
||||
this.tbDynLightSize.Maximum = 20;
|
||||
this.tbDynLightSize.Minimum = 1;
|
||||
this.tbDynLightSize.Name = "tbDynLightSize";
|
||||
this.tbDynLightSize.Size = new System.Drawing.Size(154, 45);
|
||||
this.tbDynLightSize.TabIndex = 27;
|
||||
this.tbDynLightSize.TickStyle = System.Windows.Forms.TickStyle.Both;
|
||||
this.tbDynLightSize.Value = 10;
|
||||
this.tbDynLightSize.ValueChanged += new System.EventHandler(this.tbDynLightSize_ValueChanged);
|
||||
//
|
||||
// labelDynLightCount
|
||||
//
|
||||
this.labelDynLightCount.AutoSize = true;
|
||||
this.labelDynLightCount.Location = new System.Drawing.Point(337, 91);
|
||||
this.labelDynLightCount.Location = new System.Drawing.Point(337, 78);
|
||||
this.labelDynLightCount.Name = "labelDynLightCount";
|
||||
this.labelDynLightCount.Size = new System.Drawing.Size(19, 14);
|
||||
this.labelDynLightCount.TabIndex = 26;
|
||||
|
@ -1169,7 +1217,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// tbDynLightCount
|
||||
//
|
||||
this.tbDynLightCount.LargeChange = 3;
|
||||
this.tbDynLightCount.Location = new System.Drawing.Point(176, 78);
|
||||
this.tbDynLightCount.Location = new System.Drawing.Point(176, 65);
|
||||
this.tbDynLightCount.Maximum = 32;
|
||||
this.tbDynLightCount.Minimum = 1;
|
||||
this.tbDynLightCount.Name = "tbDynLightCount";
|
||||
|
@ -1183,7 +1231,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// animatevisualselection
|
||||
//
|
||||
this.animatevisualselection.AutoSize = true;
|
||||
this.animatevisualselection.Location = new System.Drawing.Point(244, 165);
|
||||
this.animatevisualselection.Location = new System.Drawing.Point(244, 236);
|
||||
this.animatevisualselection.Name = "animatevisualselection";
|
||||
this.animatevisualselection.Size = new System.Drawing.Size(188, 18);
|
||||
this.animatevisualselection.TabIndex = 23;
|
||||
|
@ -1193,7 +1241,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// blackbrowsers
|
||||
//
|
||||
this.blackbrowsers.AutoSize = true;
|
||||
this.blackbrowsers.Location = new System.Drawing.Point(244, 135);
|
||||
this.blackbrowsers.Location = new System.Drawing.Point(244, 212);
|
||||
this.blackbrowsers.Name = "blackbrowsers";
|
||||
this.blackbrowsers.Size = new System.Drawing.Size(199, 18);
|
||||
this.blackbrowsers.TabIndex = 4;
|
||||
|
@ -1203,7 +1251,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// visualbilinear
|
||||
//
|
||||
this.visualbilinear.AutoSize = true;
|
||||
this.visualbilinear.Location = new System.Drawing.Point(25, 165);
|
||||
this.visualbilinear.Location = new System.Drawing.Point(25, 236);
|
||||
this.visualbilinear.Name = "visualbilinear";
|
||||
this.visualbilinear.Size = new System.Drawing.Size(176, 18);
|
||||
this.visualbilinear.TabIndex = 6;
|
||||
|
@ -1213,7 +1261,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// classicbilinear
|
||||
//
|
||||
this.classicbilinear.AutoSize = true;
|
||||
this.classicbilinear.Location = new System.Drawing.Point(25, 135);
|
||||
this.classicbilinear.Location = new System.Drawing.Point(25, 212);
|
||||
this.classicbilinear.Name = "classicbilinear";
|
||||
this.classicbilinear.Size = new System.Drawing.Size(182, 18);
|
||||
this.classicbilinear.TabIndex = 5;
|
||||
|
@ -1223,7 +1271,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// imagebrightnesslabel
|
||||
//
|
||||
this.imagebrightnesslabel.AutoSize = true;
|
||||
this.imagebrightnesslabel.Location = new System.Drawing.Point(337, 40);
|
||||
this.imagebrightnesslabel.Location = new System.Drawing.Point(337, 30);
|
||||
this.imagebrightnesslabel.Name = "imagebrightnesslabel";
|
||||
this.imagebrightnesslabel.Size = new System.Drawing.Size(31, 14);
|
||||
this.imagebrightnesslabel.TabIndex = 22;
|
||||
|
@ -1232,7 +1280,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
// imagebrightness
|
||||
//
|
||||
this.imagebrightness.LargeChange = 3;
|
||||
this.imagebrightness.Location = new System.Drawing.Point(176, 27);
|
||||
this.imagebrightness.Location = new System.Drawing.Point(176, 17);
|
||||
this.imagebrightness.Name = "imagebrightness";
|
||||
this.imagebrightness.Size = new System.Drawing.Size(154, 45);
|
||||
this.imagebrightness.TabIndex = 3;
|
||||
|
@ -1261,7 +1309,7 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.colorsgroup3.Controls.Add(this.colorplaintext);
|
||||
this.colorsgroup3.Location = new System.Drawing.Point(217, 8);
|
||||
this.colorsgroup3.Name = "colorsgroup3";
|
||||
this.colorsgroup3.Size = new System.Drawing.Size(457, 237);
|
||||
this.colorsgroup3.Size = new System.Drawing.Size(457, 222);
|
||||
this.colorsgroup3.TabIndex = 1;
|
||||
this.colorsgroup3.TabStop = false;
|
||||
this.colorsgroup3.Text = " Script editor ";
|
||||
|
@ -1503,6 +1551,37 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.pasteoptions.Size = new System.Drawing.Size(666, 427);
|
||||
this.pasteoptions.TabIndex = 0;
|
||||
//
|
||||
// label21
|
||||
//
|
||||
label21.AutoSize = true;
|
||||
label21.Location = new System.Drawing.Point(55, 174);
|
||||
label21.Name = "label21";
|
||||
label21.Size = new System.Drawing.Size(116, 14);
|
||||
label21.TabIndex = 31;
|
||||
label21.Text = "Dynamic light intensity:";
|
||||
label21.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
//
|
||||
// labelDynLightIntensity
|
||||
//
|
||||
this.labelDynLightIntensity.AutoSize = true;
|
||||
this.labelDynLightIntensity.Location = new System.Drawing.Point(337, 174);
|
||||
this.labelDynLightIntensity.Name = "labelDynLightIntensity";
|
||||
this.labelDynLightIntensity.Size = new System.Drawing.Size(22, 14);
|
||||
this.labelDynLightIntensity.TabIndex = 32;
|
||||
this.labelDynLightIntensity.Text = "1.0";
|
||||
//
|
||||
// tbDynLightIntensity
|
||||
//
|
||||
this.tbDynLightIntensity.LargeChange = 1;
|
||||
this.tbDynLightIntensity.Location = new System.Drawing.Point(176, 161);
|
||||
this.tbDynLightIntensity.Minimum = 1;
|
||||
this.tbDynLightIntensity.Name = "tbDynLightIntensity";
|
||||
this.tbDynLightIntensity.Size = new System.Drawing.Size(154, 45);
|
||||
this.tbDynLightIntensity.TabIndex = 30;
|
||||
this.tbDynLightIntensity.TickStyle = System.Windows.Forms.TickStyle.Both;
|
||||
this.tbDynLightIntensity.Value = 10;
|
||||
this.tbDynLightIntensity.ValueChanged += new System.EventHandler(this.tbDynLightIntensity_ValueChanged);
|
||||
//
|
||||
// PreferencesForm
|
||||
//
|
||||
this.AcceptButton = this.apply;
|
||||
|
@ -1551,12 +1630,14 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
this.tabcolors.ResumeLayout(false);
|
||||
this.appearancegroup1.ResumeLayout(false);
|
||||
this.appearancegroup1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tbDynLightSize)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tbDynLightCount)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imagebrightness)).EndInit();
|
||||
this.colorsgroup3.ResumeLayout(false);
|
||||
this.colorsgroup3.PerformLayout();
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.tabpasting.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.tbDynLightIntensity)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
@ -1670,5 +1751,9 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
private System.Windows.Forms.CheckBox toolbar_gzdoom;
|
||||
private System.Windows.Forms.Label labelDynLightCount;
|
||||
private Dotnetrix.Controls.TrackBar tbDynLightCount;
|
||||
private System.Windows.Forms.Label labelDynLightSize;
|
||||
private Dotnetrix.Controls.TrackBar tbDynLightSize;
|
||||
private System.Windows.Forms.Label labelDynLightIntensity;
|
||||
private Dotnetrix.Controls.TrackBar tbDynLightIntensity;
|
||||
}
|
||||
}
|
|
@ -98,6 +98,10 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
showtexturesizes.Checked = General.Settings.ShowTextureSizes;
|
||||
tbDynLightCount.Value = General.Settings.GZMaxDynamicLights;
|
||||
labelDynLightCount.Text = General.Settings.GZMaxDynamicLights.ToString();
|
||||
tbDynLightSize.Value = (int)(General.Settings.GZDynamicLightRadius * 10);
|
||||
labelDynLightSize.Text = General.Settings.GZDynamicLightRadius.ToString();
|
||||
tbDynLightIntensity.Value = (int)(General.Settings.GZDynamicLightIntensity * 10);
|
||||
labelDynLightIntensity.Text = General.Settings.GZDynamicLightIntensity.ToString();
|
||||
|
||||
// Fill fonts list
|
||||
scriptfontname.BeginUpdate();
|
||||
|
@ -265,6 +269,8 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
|
||||
//mxd
|
||||
General.Settings.GZMaxDynamicLights = tbDynLightCount.Value;
|
||||
General.Settings.GZDynamicLightRadius = ((float)tbDynLightSize.Value / 10.0f);
|
||||
General.Settings.GZDynamicLightIntensity = ((float)tbDynLightIntensity.Value / 10.0f);
|
||||
|
||||
// Paste options
|
||||
General.Settings.PasteOptions = pasteoptions.GetOptions();
|
||||
|
@ -757,6 +763,16 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
labelDynLightCount.Text = tbDynLightCount.Value.ToString();
|
||||
}
|
||||
|
||||
//mxd
|
||||
private void tbDynLightSize_ValueChanged(object sender, EventArgs e) {
|
||||
labelDynLightSize.Text = ((float)tbDynLightSize.Value / 10).ToString();
|
||||
}
|
||||
|
||||
//mxd
|
||||
private void tbDynLightIntensity_ValueChanged(object sender, EventArgs e) {
|
||||
labelDynLightIntensity.Text = ((float)tbDynLightIntensity.Value / 10).ToString();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
// Help
|
||||
|
|
|
@ -135,4 +135,10 @@
|
|||
<metadata name="label18.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label20.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
<metadata name="label21.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
Loading…
Reference in a new issue