diff --git a/Build/Compilers/ZDoom/zspecial.acs b/Build/Compilers/ZDoom/zspecial.acs
index fb36f84f..7df80301 100644
--- a/Build/Compilers/ZDoom/zspecial.acs
+++ b/Build/Compilers/ZDoom/zspecial.acs
@@ -327,7 +327,7 @@ special
-58:GetUserCVarString(2),
-59:SetUserCVarString(3),
-60:LineAttack(4,9),
- -61:PlaySound(2,6),
+ -61:PlaySound(2,7),
-62:StopSound(1,2),
-63:strcmp(2,3),
-64:stricmp(2,3),
@@ -402,6 +402,10 @@ special
-202:SetActorFlag(3),
-203:SetTranslation(2),
+ // Eternity's
+ -300:GetLineX(3),
+ -301:GetLineY(3),
+
// ZDaemon's
-19620:GetTeamScore(1),
-19621:SetTeamScore(2),
diff --git a/Build/Scripting/ZDoom_ACS.cfg b/Build/Scripting/ZDoom_ACS.cfg
index 4a54267e..18ccc448 100644
--- a/Build/Scripting/ZDoom_ACS.cfg
+++ b/Build/Scripting/ZDoom_ACS.cfg
@@ -212,6 +212,8 @@ keywords
GetLineRowOffset = "int GetLineRowOffset()";
GetLineUDMFFixed = "fixed GetLineUDMFFixed(int lineid, str key)";
GetLineUDMFInt = "int GetLineUDMFInt(int lineid, str key)";
+ GetLineX = "int GetLineX(int line_id, fixed line_ratio, fixed perpendicular_distance)";
+ GetLineY = "int GetLineY(int line_id, fixed line_ratio, fixed perpendicular_distance)";
GetMaxInventory = "int GetMaxInventory(int tid, str inventory)";
GetPlayerInfo = "int GetPlayerInfo(int playernumber, int playerinfo)";
GetPlayerInput = "int GetPlayerInput(int player, int input)";
@@ -295,7 +297,7 @@ keywords
PlayerInGame = "bool PlayerInGame(int playernumber)\nReturns true if the player [0..7] is in the game";
PlayerIsBot = "bool PlayerIsBot(int playernumber)\nReturns TRUE if the player [0..7] is a bot and FALSE if not";
PlayerNumber = "int PlayerNumber()\nReturns the player number for the player who activated the script, starting at 0.\nFor scripts that were not activated by a player, PlayerNumber will return -1.";
- PlaySound = "void PlaySound(int tid, str sound[, int channel = CHAN_BODY[, fixed volume = 1.0[, bool looping = false[, fixed attenuation = ATTN_NORM]]]])";
+ PlaySound = "void PlaySound(int tid, str sound[, int channel = CHAN_BODY[, fixed volume = 1.0[, bool looping = false[, fixed attenuation = ATTN_NORM[, bool local]]]]])";
Polyobj_DoorSlide = "Polyobj_DoorSlide(po, speed, angle, dist, delay)";
Polyobj_DoorSwing = "Polyobj_DoorSwing(po, speed, angle, delay)";
Polyobj_Move = "Polyobj_Move(po, speed, angle, dist)";
diff --git a/Source/Core/Controls/ColorFieldsControl.cs b/Source/Core/Controls/ColorFieldsControl.cs
index dc0d524e..370c1d2a 100644
--- a/Source/Core/Controls/ColorFieldsControl.cs
+++ b/Source/Core/Controls/ColorFieldsControl.cs
@@ -33,6 +33,16 @@ namespace CodeImp.DoomBuilder.Controls
public int DefaultValue { get { return defaultvalue; } set { defaultvalue = value; } }
public string Label { get { return cpColor.Label; } set { cpColor.Label = value; } }
public string Field { get { return field; } set { field = value; } }
+ public PixelColor Color
+ {
+ get { return cpColor.Color; }
+ set
+ {
+ blockevents = true;
+ tbColor.Text = String.Format("{0:X6}", value.ToInt() & 0x00FFFFFF);
+ blockevents = false;
+ }
+ }
#endregion
diff --git a/Source/Core/Rendering/PixelColor.cs b/Source/Core/Rendering/PixelColor.cs
index 7dfccd79..4c2a7d0a 100644
--- a/Source/Core/Rendering/PixelColor.cs
+++ b/Source/Core/Rendering/PixelColor.cs
@@ -33,6 +33,9 @@ namespace CodeImp.DoomBuilder.Rendering
//mxd. Some color constants, full alpha
public const int INT_BLACK = -16777216;
public const int INT_WHITE = -1;
+
+ //mxd. Some color constants, no alpha
+ public const int INT_WHITE_NO_ALPHA = 16777215;
#endregion
diff --git a/Source/Core/Windows/SectorEditFormUDMF.cs b/Source/Core/Windows/SectorEditFormUDMF.cs
index 29b0725b..f7961e45 100644
--- a/Source/Core/Windows/SectorEditFormUDMF.cs
+++ b/Source/Core/Windows/SectorEditFormUDMF.cs
@@ -7,6 +7,7 @@ using System.Windows.Forms;
using CodeImp.DoomBuilder.Controls;
using CodeImp.DoomBuilder.Geometry;
using CodeImp.DoomBuilder.Map;
+using CodeImp.DoomBuilder.Rendering;
using CodeImp.DoomBuilder.Types;
#endregion
@@ -113,7 +114,7 @@ namespace CodeImp.DoomBuilder.Windows
CeilTexture = s.CeilTexture;
//UDMF stuff
- LightColor = UniFields.GetInteger(s.Fields, "lightcolor", 16777215);
+ LightColor = UniFields.GetInteger(s.Fields, "lightcolor", PixelColor.INT_WHITE_NO_ALPHA);
FadeColor = UniFields.GetInteger(s.Fields, "fadecolor", 0);
//UDMF Ceiling
diff --git a/Source/Plugins/BuilderEffects/BuilderEffects.csproj b/Source/Plugins/BuilderEffects/BuilderEffects.csproj
index b85696f5..e07034ca 100644
--- a/Source/Plugins/BuilderEffects/BuilderEffects.csproj
+++ b/Source/Plugins/BuilderEffects/BuilderEffects.csproj
@@ -99,6 +99,12 @@
ObjImportSettingsForm.cs
+
+ Form
+
+
+ DirectionalShadingForm.cs
+
@@ -128,6 +134,9 @@
ObjImportSettingsForm.cs
+
+ DirectionalShadingForm.cs
+
ResXFileCodeGenerator
Resources.Designer.cs
@@ -153,6 +162,9 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Source/Plugins/BuilderEffects/Interface/MenusForm.Designer.cs b/Source/Plugins/BuilderEffects/Interface/MenusForm.Designer.cs
index 2087d9eb..56a33651 100644
--- a/Source/Plugins/BuilderEffects/Interface/MenusForm.Designer.cs
+++ b/Source/Plugins/BuilderEffects/Interface/MenusForm.Designer.cs
@@ -26,12 +26,14 @@
///
private void InitializeComponent() {
this.menuStrip = new System.Windows.Forms.MenuStrip();
- this.importStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.stripimport = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
- this.jitterItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.stripmodes = new System.Windows.Forms.ToolStripMenuItem();
+ this.menujitter = new System.Windows.Forms.ToolStripMenuItem();
+ this.menusectorflatshading = new System.Windows.Forms.ToolStripMenuItem();
this.toolStrip = new System.Windows.Forms.ToolStrip();
- this.jitterButton = new System.Windows.Forms.ToolStripButton();
+ this.buttonjitter = new System.Windows.Forms.ToolStripButton();
+ this.buttonsectorflatshading = new System.Windows.Forms.ToolStripButton();
this.menuStrip.SuspendLayout();
this.toolStrip.SuspendLayout();
this.SuspendLayout();
@@ -39,21 +41,21 @@
// menuStrip
//
this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.importStripMenuItem,
- this.toolStripMenuItem3});
+ this.stripimport,
+ this.stripmodes});
this.menuStrip.Location = new System.Drawing.Point(0, 0);
this.menuStrip.Name = "menuStrip";
this.menuStrip.Size = new System.Drawing.Size(452, 24);
this.menuStrip.TabIndex = 0;
this.menuStrip.Text = "menuStrip1";
//
- // importStripMenuItem
+ // stripimport
//
- this.importStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.stripimport.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem1});
- this.importStripMenuItem.Name = "importStripMenuItem";
- this.importStripMenuItem.Size = new System.Drawing.Size(55, 20);
- this.importStripMenuItem.Text = "Import";
+ this.stripimport.Name = "stripimport";
+ this.stripimport.Size = new System.Drawing.Size(55, 20);
+ this.stripimport.Text = "Import";
//
// toolStripMenuItem1
//
@@ -64,43 +66,65 @@
this.toolStripMenuItem1.Text = "Wavefront .obj as Terrain...";
this.toolStripMenuItem1.Click += new System.EventHandler(this.InvokeTaggedAction);
//
- // toolStripMenuItem3
+ // stripmodes
//
- this.toolStripMenuItem3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.jitterItem});
- this.toolStripMenuItem3.Name = "toolStripMenuItem3";
- this.toolStripMenuItem3.Size = new System.Drawing.Size(55, 20);
- this.toolStripMenuItem3.Text = "Modes";
+ this.stripmodes.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.menujitter,
+ this.menusectorflatshading});
+ this.stripmodes.Name = "stripmodes";
+ this.stripmodes.Size = new System.Drawing.Size(55, 20);
+ this.stripmodes.Text = "Modes";
//
- // jitterItem
+ // menujitter
//
- this.jitterItem.Image = global::CodeImp.DoomBuilder.BuilderEffects.Properties.Resources.Jitter;
- this.jitterItem.Name = "jitterItem";
- this.jitterItem.Size = new System.Drawing.Size(133, 22);
- this.jitterItem.Tag = "applyjitter";
- this.jitterItem.Text = "Randomize";
- this.jitterItem.Click += new System.EventHandler(this.InvokeTaggedAction);
+ this.menujitter.Image = global::CodeImp.DoomBuilder.BuilderEffects.Properties.Resources.Jitter;
+ this.menujitter.Name = "menujitter";
+ this.menujitter.Size = new System.Drawing.Size(220, 22);
+ this.menujitter.Tag = "applyjitter";
+ this.menujitter.Text = "Randomize...";
+ this.menujitter.Click += new System.EventHandler(this.InvokeTaggedAction);
+ //
+ // menusectorflatshading
+ //
+ this.menusectorflatshading.Image = global::CodeImp.DoomBuilder.BuilderEffects.Properties.Resources.FlatShading;
+ this.menusectorflatshading.Name = "menusectorflatshading";
+ this.menusectorflatshading.Size = new System.Drawing.Size(220, 22);
+ this.menusectorflatshading.Tag = "applydirectionalshading";
+ this.menusectorflatshading.Text = "Apply Directional Shading...";
+ this.menusectorflatshading.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// toolStrip
//
this.toolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.jitterButton});
+ this.buttonjitter,
+ this.buttonsectorflatshading});
this.toolStrip.Location = new System.Drawing.Point(0, 24);
this.toolStrip.Name = "toolStrip";
this.toolStrip.Size = new System.Drawing.Size(452, 25);
this.toolStrip.TabIndex = 1;
this.toolStrip.Text = "toolStrip1";
//
- // jitterButton
+ // buttonjitter
//
- this.jitterButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
- this.jitterButton.Image = global::CodeImp.DoomBuilder.BuilderEffects.Properties.Resources.Jitter;
- this.jitterButton.ImageTransparentColor = System.Drawing.Color.Magenta;
- this.jitterButton.Name = "jitterButton";
- this.jitterButton.Size = new System.Drawing.Size(23, 22);
- this.jitterButton.Tag = "applyjitter";
- this.jitterButton.Text = "Randomize";
- this.jitterButton.Click += new System.EventHandler(this.InvokeTaggedAction);
+ this.buttonjitter.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.buttonjitter.Image = global::CodeImp.DoomBuilder.BuilderEffects.Properties.Resources.Jitter;
+ this.buttonjitter.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.buttonjitter.Name = "buttonjitter";
+ this.buttonjitter.Size = new System.Drawing.Size(23, 22);
+ this.buttonjitter.Tag = "applyjitter";
+ this.buttonjitter.Text = "Randomize";
+ this.buttonjitter.Click += new System.EventHandler(this.InvokeTaggedAction);
+ //
+ // buttonsectorflatshading
+ //
+ this.buttonsectorflatshading.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.buttonsectorflatshading.Image = global::CodeImp.DoomBuilder.BuilderEffects.Properties.Resources.FlatShading;
+ this.buttonsectorflatshading.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.buttonsectorflatshading.Name = "buttonsectorflatshading";
+ this.buttonsectorflatshading.Size = new System.Drawing.Size(23, 22);
+ this.buttonsectorflatshading.Tag = "applydirectionalshading";
+ this.buttonsectorflatshading.Text = "Apply Directional Shading";
+ this.buttonsectorflatshading.Click += new System.EventHandler(this.InvokeTaggedAction);
//
// MenusForm
//
@@ -124,11 +148,13 @@
#endregion
private System.Windows.Forms.MenuStrip menuStrip;
- private System.Windows.Forms.ToolStripMenuItem importStripMenuItem;
+ private System.Windows.Forms.ToolStripMenuItem stripimport;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
private System.Windows.Forms.ToolStrip toolStrip;
- private System.Windows.Forms.ToolStripButton jitterButton;
- private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
- private System.Windows.Forms.ToolStripMenuItem jitterItem;
+ private System.Windows.Forms.ToolStripButton buttonjitter;
+ private System.Windows.Forms.ToolStripMenuItem stripmodes;
+ private System.Windows.Forms.ToolStripMenuItem menujitter;
+ private System.Windows.Forms.ToolStripMenuItem menusectorflatshading;
+ private System.Windows.Forms.ToolStripButton buttonsectorflatshading;
}
}
\ No newline at end of file
diff --git a/Source/Plugins/BuilderEffects/Interface/MenusForm.cs b/Source/Plugins/BuilderEffects/Interface/MenusForm.cs
index 7c38fb13..521cc3a8 100644
--- a/Source/Plugins/BuilderEffects/Interface/MenusForm.cs
+++ b/Source/Plugins/BuilderEffects/Interface/MenusForm.cs
@@ -21,22 +21,26 @@ namespace CodeImp.DoomBuilder.BuilderEffects
public void Register()
{
// Add the menus to the core
- General.Interface.AddModesMenu(jitterItem, "002_modify");
- General.Interface.AddModesButton(jitterButton, "002_modify");
+ General.Interface.AddModesMenu(menujitter, "002_modify");
+ General.Interface.AddModesButton(buttonjitter, "002_modify");
+ General.Interface.AddModesMenu(menusectorflatshading, "002_modify");
+ General.Interface.AddModesButton(buttonsectorflatshading, "002_modify");
- for(int i = 0; i < importStripMenuItem.DropDownItems.Count; i++)
- General.Interface.AddMenu(importStripMenuItem.DropDownItems[i] as ToolStripMenuItem, MenuSection.FileImport);
+ for(int i = 0; i < stripimport.DropDownItems.Count; i++)
+ General.Interface.AddMenu(stripimport.DropDownItems[i] as ToolStripMenuItem, MenuSection.FileImport);
}
// This unregisters from the core
public void Unregister()
{
// Remove the menus from the core
- General.Interface.RemoveMenu(jitterItem);
- General.Interface.RemoveButton(jitterButton);
+ General.Interface.RemoveMenu(menujitter);
+ General.Interface.RemoveButton(buttonjitter);
+ General.Interface.RemoveMenu(menusectorflatshading);
+ General.Interface.RemoveButton(buttonsectorflatshading);
- for(int i = 0; i < importStripMenuItem.DropDownItems.Count; i++)
- General.Interface.RemoveMenu(importStripMenuItem.DropDownItems[i] as ToolStripMenuItem);
+ for(int i = 0; i < stripimport.DropDownItems.Count; i++)
+ General.Interface.RemoveMenu(stripimport.DropDownItems[i] as ToolStripMenuItem);
}
}
}
diff --git a/Source/Plugins/BuilderEffects/Properties/Resources.Designer.cs b/Source/Plugins/BuilderEffects/Properties/Resources.Designer.cs
index a83b4356..abda0bd3 100644
--- a/Source/Plugins/BuilderEffects/Properties/Resources.Designer.cs
+++ b/Source/Plugins/BuilderEffects/Properties/Resources.Designer.cs
@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:2.0.50727.5466
+// Runtime Version:2.0.50727.5485
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -38,7 +38,7 @@ namespace CodeImp.DoomBuilder.BuilderEffects.Properties {
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
- if(object.ReferenceEquals(resourceMan, null)) {
+ if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CodeImp.DoomBuilder.BuilderEffects.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
@@ -60,6 +60,13 @@ namespace CodeImp.DoomBuilder.BuilderEffects.Properties {
}
}
+ internal static System.Drawing.Bitmap FlatShading {
+ get {
+ object obj = ResourceManager.GetObject("FlatShading", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
internal static System.Drawing.Bitmap Folder {
get {
object obj = ResourceManager.GetObject("Folder", resourceCulture);
diff --git a/Source/Plugins/BuilderEffects/Properties/Resources.resx b/Source/Plugins/BuilderEffects/Properties/Resources.resx
index 7d1cece6..81e09218 100644
--- a/Source/Plugins/BuilderEffects/Properties/Resources.resx
+++ b/Source/Plugins/BuilderEffects/Properties/Resources.resx
@@ -118,16 +118,19 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- ..\Resources\Terrain.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Resources\Jitter.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Resources\Update.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\Terrain.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Resources\Folder.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\Update.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Resources\FlatShading.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/Source/Plugins/BuilderEffects/Resources/Actions.cfg b/Source/Plugins/BuilderEffects/Resources/Actions.cfg
index 2f57391c..09394f31 100644
--- a/Source/Plugins/BuilderEffects/Resources/Actions.cfg
+++ b/Source/Plugins/BuilderEffects/Resources/Actions.cfg
@@ -15,6 +15,17 @@ applyjitter
default = 131146; //Ctrl-J
}
+applydirectionalshading
+{
+ title = "Apply Directional Shading";
+ category = "transform";
+ description = "Allows to apply directional colored flat shading to the selection.";
+ allowkeys = true;
+ allowmouse = false;
+ allowscroll = false;
+ default = 131148; //Ctrl-L
+}
+
importobjasterrain
{
title = "Import Wavefront .obj as terrain";
diff --git a/Source/Plugins/BuilderEffects/Resources/FlatShading.png b/Source/Plugins/BuilderEffects/Resources/FlatShading.png
new file mode 100644
index 00000000..f5a2eaf3
Binary files /dev/null and b/Source/Plugins/BuilderEffects/Resources/FlatShading.png differ
diff --git a/Source/Plugins/NodesViewer/NodesViewerMode.cs b/Source/Plugins/NodesViewer/NodesViewerMode.cs
index 1275296a..7e712122 100644
--- a/Source/Plugins/NodesViewer/NodesViewerMode.cs
+++ b/Source/Plugins/NodesViewer/NodesViewerMode.cs
@@ -15,7 +15,7 @@ using CodeImp.DoomBuilder.Map;
namespace CodeImp.DoomBuilder.Plugins.NodesViewer
{
- [EditMode(DisplayName = "Nodes Viewer",
+ [EditMode(DisplayName = "Nodes Viewer Mode",
SwitchAction = "nodesviewermode",
ButtonImage = "NodesView.png",
ButtonOrder = 350,