diff --git a/Build/Compilers/ZDoom/acc.exe b/Build/Compilers/ZDoom/acc.exe index b9efc775..a60988bc 100644 Binary files a/Build/Compilers/ZDoom/acc.exe and b/Build/Compilers/ZDoom/acc.exe differ diff --git a/Build/Compilers/ZDoom/zdefs.acs b/Build/Compilers/ZDoom/zdefs.acs index bdcec78e..9533b0a2 100644 --- a/Build/Compilers/ZDoom/zdefs.acs +++ b/Build/Compilers/ZDoom/zdefs.acs @@ -984,6 +984,11 @@ #define FHF_NORANDOMPUFFZ 1 #define FHF_NOIMPACTDECAL 2 +// PickActor flags + +#define PICKAF_FORCETID 1 +#define PICKAF_RETURNTID 2 + // Actor flags #define MF_SPECIAL 0x00000001 #define MF_SOLID 0x00000002 diff --git a/Build/Configurations/Includes/ZDoom_things.cfg b/Build/Configurations/Includes/ZDoom_things.cfg index 258380b9..1b824e49 100644 --- a/Build/Configurations/Includes/ZDoom_things.cfg +++ b/Build/Configurations/Includes/ZDoom_things.cfg @@ -1486,7 +1486,7 @@ doom 5010 { title = "Pistol"; - sprite = "PISTA0"; + sprite = "internal:ZDoomPistol"; class = "Pistol"; } } @@ -1653,7 +1653,7 @@ heretic 9042 { title = "Gold Wand"; - sprite = "GWANA0"; + sprite = "internal:ZDoomGoldWand"; class = "GoldWand"; } } diff --git a/Build/Scripting/ZDoom_ACS.cfg b/Build/Scripting/ZDoom_ACS.cfg index 5e316b86..192310d3 100644 --- a/Build/Scripting/ZDoom_ACS.cfg +++ b/Build/Scripting/ZDoom_ACS.cfg @@ -841,6 +841,8 @@ constants NOT_TOP; OFF; ON; + PICKAF_FORCETID; + PICKAF_RETURNTID; PLAYERINFO_AIMDIST; PLAYERINFO_COLOR; PLAYERINFO_DESIREDFOV; diff --git a/Build/Sprites/ZDoomGoldWand.png b/Build/Sprites/ZDoomGoldWand.png new file mode 100644 index 00000000..f887f04c Binary files /dev/null and b/Build/Sprites/ZDoomGoldWand.png differ diff --git a/Build/Sprites/ZDoomPistol.png b/Build/Sprites/ZDoomPistol.png new file mode 100644 index 00000000..74ff0236 Binary files /dev/null and b/Build/Sprites/ZDoomPistol.png differ diff --git a/Source/Core/Compilers/AccCompiler.cs b/Source/Core/Compilers/AccCompiler.cs index 3e5f8788..7514b235 100644 --- a/Source/Core/Compilers/AccCompiler.cs +++ b/Source/Core/Compilers/AccCompiler.cs @@ -151,6 +151,7 @@ namespace CodeImp.DoomBuilder.Compilers Regex errlinematcher = new Regex(":[0-9]+: ", RegexOptions.Compiled | RegexOptions.CultureInvariant); // Read all lines + bool erroradded = false; //mxd string[] errlines = File.ReadAllLines(errfile); while(line < errlines.Length) { @@ -181,11 +182,18 @@ namespace CodeImp.DoomBuilder.Compilers // Report the error ReportError(err); + erroradded = true; //mxd } // Next line line++; } + + //mxd. Some ACC errors are not properly formatted. If that's the case, threat the whole acs.err as an error... + if(!erroradded && errlines.Length > 0) + { + ReportError(new CompilerError(string.Join(Environment.NewLine, errlines))); + } } catch(Exception e) { diff --git a/Source/Core/Controls/ScriptEditorPanel.cs b/Source/Core/Controls/ScriptEditorPanel.cs index 1a6c509d..0533e77b 100644 --- a/Source/Core/Controls/ScriptEditorPanel.cs +++ b/Source/Core/Controls/ScriptEditorPanel.cs @@ -383,10 +383,9 @@ namespace CodeImp.DoomBuilder.Controls ListViewItem ei = new ListViewItem(listindex.ToString()); ei.ImageIndex = 0; ei.SubItems.Add(e.description); - if(e.filename.StartsWith("?")) - ei.SubItems.Add(e.filename.Replace("?", "") + " (line " + (e.linenumber + 1) + ")"); - else - ei.SubItems.Add(Path.GetFileName(e.filename) + " (line " + (e.linenumber + 1) + ")"); + string filename = (e.filename.StartsWith("?") ? e.filename.Replace("?", "") : Path.GetFileName(e.filename)); //mxd + string linenumber = (e.linenumber != CompilerError.NO_LINE_NUMBER ? " (line " + (e.linenumber + 1) + ")" : String.Empty); //mxd + ei.SubItems.Add(filename + linenumber); ei.Tag = e; errorlist.Items.Add(ei); listindex++; diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs index 5caa6cba..ce17ef77 100644 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs @@ -122,7 +122,12 @@ namespace CodeImp.DoomBuilder.BuilderModes else if(Thing.Fields.ContainsKey("renderstyle")) { renderstyle = Thing.Fields.GetValue("renderstyle", renderstyle); - if(Thing.Fields.ContainsKey("alpha")) alpha = (byte)(General.Clamp(Thing.Fields.GetValue("alpha", info.Alpha), 0f, 1f) * 255); + } + + if((renderstyle == "add" || renderstyle == "translucent" || renderstyle == "subtract" || renderstyle == "stencil") + && Thing.Fields.ContainsKey("alpha")) + { + alpha = (byte)(General.Clamp(Thing.Fields.GetValue("alpha", info.Alpha), 0f, 1f) * 255); } } else if(General.Map.HEXEN)