diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs index ba775523b4d14da2489dfdcd09bcbbfea7d8b19d..5656740567beb123f707735860b0932693c43ef3 100644 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs @@ -123,6 +123,27 @@ namespace CodeImp.DoomBuilder.BuilderModes float offsetx = dragdelta.x; float offsety = dragdelta.y; + bool lockX = General.Interface.CtrlState && !General.Interface.ShiftState; + bool lockY = !General.Interface.CtrlState && General.Interface.ShiftState; + + if(lockX || lockY) { + float camAngle = Angle2D.RadToDeg(General.Map.VisualCamera.AngleXY); + + if(camAngle > 315 || camAngle < 46) { + if(lockX) offsetx = 0; + if(lockY) offsety = 0; + } else if(camAngle > 225) { + if(lockX) offsety = 0; + if(lockY) offsetx = 0; + } else if(camAngle > 135) { + if(lockX) offsetx = 0; + if(lockY) offsety = 0; + } else { + if(lockX) offsety = 0; + if(lockY) offsetx = 0; + } + } + //mxd. Modify offsets based on surface and camera angles if (General.Map.UDMF) { float angle = 0; diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs index a6e68d21befb40463ae026800092383b9c87ea80..59aff4859f63394e4dad0b9d0d3af5d64f4aaf84 100644 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs @@ -1026,8 +1026,8 @@ namespace CodeImp.DoomBuilder.BuilderModes if((Math.Sign(dragdeltaz.x) < 0) || (Math.Sign(dragdeltaz.y) < 0) || (Math.Sign(dragdeltaz.z) < 0)) offsety = -offsety; // Apply offsets - int newoffsetx = startoffsetx - (int)Math.Round(offsetx); - int newoffsety = startoffsety + (int)Math.Round(offsety); + int newoffsetx = (General.Interface.CtrlState && !General.Interface.ShiftState ? startoffsetx : startoffsetx - (int)Math.Round(offsetx)); //mxd + int newoffsety = (!General.Interface.CtrlState && General.Interface.ShiftState ? startoffsety : startoffsety + (int)Math.Round(offsety)); //mxd mode.ApplyTextureOffsetChange(prevoffsetx - newoffsetx, prevoffsety - newoffsety); prevoffsetx = newoffsetx; prevoffsety = newoffsety; diff --git a/Source/Plugins/ColorPicker/Controls/ColorPickerControl.cs b/Source/Plugins/ColorPicker/Controls/ColorPickerControl.cs index 7750bb883cfb28ce2303df7b0ceb248cf61fb72b..21ad132675f19c5c870cb95cf30b36173b1fdb85 100644 --- a/Source/Plugins/ColorPicker/Controls/ColorPickerControl.cs +++ b/Source/Plugins/ColorPicker/Controls/ColorPickerControl.cs @@ -247,19 +247,19 @@ namespace CodeImp.DoomBuilder.ColorPicker.Controls { float c; if (!float.TryParse(parts[0].Trim(), NumberStyles.Float, CultureInfo.InvariantCulture, out c)) return; - rgb.Red = (int)(c * 255); + rgb.Red = (int)(General.Clamp(Math.Abs(c), 0.0f, 1.0f) * 255); if (!float.TryParse(parts[1].Trim(), NumberStyles.Float, CultureInfo.InvariantCulture, out c)) return; - rgb.Green = (int)(c * 255); + rgb.Green = (int)(General.Clamp(Math.Abs(c), 0.0f, 1.0f) * 255); if (!float.TryParse(parts[2].Trim(), NumberStyles.Float, CultureInfo.InvariantCulture, out c)) return; - rgb.Blue = (int)(c * 255); + rgb.Blue = (int)(General.Clamp(Math.Abs(c), 0.0f, 1.0f) * 255); changeType = ChangeStyle.RGB; updateColorInfo(rgb); this.Invalidate(); } else if (COLOR_INFO[colorInfoMode].ToString() == COLOR_INFO_HEX) { - string hexColor = tbFloatVals.Text; + string hexColor = tbFloatVals.Text.Trim().Replace("-", ""); if (hexColor.Length != 6) return; ColorHandler.RGB rgb = new ColorHandler.RGB();