From a006a3cbc3814a02bbc05f62090a9b929a8c15e5 Mon Sep 17 00:00:00 2001 From: MaxED <j.maxed@gmail.com> Date: Sun, 21 Feb 2016 23:07:51 +0000 Subject: [PATCH] Added, "Find Thing Action and Arguments" search mode: "Any action" (-1) can now be used as a search input. Fixed, "Find Linedef Action and Arguments" and "Find Sector Effect" search modes: in some cases action/effect was checked incorrectly when performing a search. --- .../BuilderModes/FindReplace/FindLinedefTypes.cs | 4 ++-- .../BuilderModes/FindReplace/FindSectorEffect.cs | 4 ++-- .../BuilderModes/FindReplace/FindThingAction.cs | 15 ++++++++++----- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Source/Plugins/BuilderModes/FindReplace/FindLinedefTypes.cs b/Source/Plugins/BuilderModes/FindReplace/FindLinedefTypes.cs index b8c8f9309..830423b85 100644 --- a/Source/Plugins/BuilderModes/FindReplace/FindLinedefTypes.cs +++ b/Source/Plugins/BuilderModes/FindReplace/FindLinedefTypes.cs @@ -173,8 +173,8 @@ namespace CodeImp.DoomBuilder.BuilderModes // Go for all linedefs foreach(Linedef l in list) { - // Action matches? - if((action == -1 && l.Action < 1) || l.Action != action && !BitsMatch(l.Action, expectedbits)) continue; + // Action matches? -1 means any action (mxd) + if((action == -1 && l.Action == 0) || (action > -1 && (l.Action != action && !BitsMatch(l.Action, expectedbits)))) continue; bool match = true; string argtext = ""; diff --git a/Source/Plugins/BuilderModes/FindReplace/FindSectorEffect.cs b/Source/Plugins/BuilderModes/FindReplace/FindSectorEffect.cs index 786294eb9..7d93a6419 100644 --- a/Source/Plugins/BuilderModes/FindReplace/FindSectorEffect.cs +++ b/Source/Plugins/BuilderModes/FindReplace/FindSectorEffect.cs @@ -101,8 +101,8 @@ namespace CodeImp.DoomBuilder.BuilderModes // Go for all sectors foreach(Sector s in list) { - // Effect matches? - if((effect == -1 && s.Effect > 0) || s.Effect == effect || BitsMatch(s.Effect, expectedbits)) + // Effect matches? -1 means any effect (mxd) + if((effect == -1 && s.Effect > 0) || (effect > -1 && (s.Effect == effect || BitsMatch(s.Effect, expectedbits)))) { // Replace if(replace) s.Effect = replaceeffect; diff --git a/Source/Plugins/BuilderModes/FindReplace/FindThingAction.cs b/Source/Plugins/BuilderModes/FindReplace/FindThingAction.cs index dd1076f00..f83e72ab5 100644 --- a/Source/Plugins/BuilderModes/FindReplace/FindThingAction.cs +++ b/Source/Plugins/BuilderModes/FindReplace/FindThingAction.cs @@ -60,16 +60,21 @@ namespace CodeImp.DoomBuilder.BuilderModes return General.Map.FormatInterface.HasThingAction; } - // This is called when the browse button is pressed public override string Browse(string initialvalue) { int action; int.TryParse(initialvalue, out action); - action = General.Interface.BrowseLinedefActions(BuilderPlug.Me.FindReplaceForm, action); - return action.ToString(); + return General.Interface.BrowseLinedefActions(BuilderPlug.Me.FindReplaceForm, action, true).ToString(); } + // This is called when the browse replace button is pressed + public override string BrowseReplace(string initialvalue) + { + int action; + int.TryParse(initialvalue, out action); + return General.Interface.BrowseLinedefActions(BuilderPlug.Me.FindReplaceForm, action).ToString(); + } // This is called to perform a search (and replace) // Returns a list of items to show in the results list @@ -172,8 +177,8 @@ namespace CodeImp.DoomBuilder.BuilderModes // Go for all things foreach(Thing t in list) { - // Action matches? - if(t.Action != action) continue; + // Action matches? -1 means any action (mxd) + if((action == -1 && t.Action == 0) || (action > -1 && t.Action != action)) continue; bool match = true; string argtext = ""; -- GitLab