diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs index 32e52bf16cc063093e01c9971018ce70513e6a88..7e12a6a34213ffeb9aa2f887b7f19b3a4419a3c4 100755 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySector.cs @@ -848,15 +848,15 @@ namespace CodeImp.DoomBuilder.BuilderModes } // Texture offset change - public virtual void OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) + public virtual bool OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { - if(horizontal == 0 && vertical == 0) return; //mxd + if(horizontal == 0 && vertical == 0) return false; //mxd //mxd if(!General.Map.UDMF) { General.Interface.DisplayStatus(StatusType.Warning, "Floor/ceiling texture offsets cannot be changed in this map format!"); - return; + return false; } if((General.Map.UndoRedo.NextUndo == null) || (General.Map.UndoRedo.NextUndo.TicketID != undoticket)) @@ -914,6 +914,8 @@ namespace CodeImp.DoomBuilder.BuilderModes } if(vs != null) vs.UpdateSectorGeometry(false); + + return true; } //mxd diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs index 17956029f30b347e7db4e76154e04ce4983a9963..eed8e58908fc4a90861b50497a41f8aba3cab287 100755 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualGeometrySidedef.cs @@ -1660,7 +1660,7 @@ namespace CodeImp.DoomBuilder.BuilderModes } // Texture offset change - public virtual void OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) + public virtual bool OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { if((General.Map.UndoRedo.NextUndo == null) || (General.Map.UndoRedo.NextUndo.TicketID != undoticket)) undoticket = mode.CreateUndo("Change texture offsets"); @@ -1695,6 +1695,8 @@ namespace CodeImp.DoomBuilder.BuilderModes //mxd. Update linked effects SectorData sd = mode.GetSectorDataEx(Sector.Sector); if(sd != null) sd.Reset(true); + + return true; } //mxd diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualSlope.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualSlope.cs index 329adb62eba9212517ac8e9f43f14a207aafecce..178ca04106864f65993fa5ce8c691c52196f3563 100644 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualSlope.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualSlope.cs @@ -111,7 +111,7 @@ namespace CodeImp.DoomBuilder.VisualModes public void OnSelectBegin() { } public void OnEditBegin() { } public void OnChangeTargetBrightness(bool up) { } - public void OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { } + public bool OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { return true; } public void OnSelectTexture() { } public void OnCopyTexture() { } public void OnPasteTexture() { } diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs index 50e07947bce249ddce3b8b5bb96b11fb42264aaa..8fe8ac841d19fe81fb8f1176fae3446a873f64df 100755 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualThing.cs @@ -657,7 +657,7 @@ namespace CodeImp.DoomBuilder.BuilderModes public void OnSelectBegin() { } public void OnEditBegin() { } public void OnChangeTargetBrightness(bool up) { } - public void OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { } + public bool OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { return true; } public void OnSelectTexture() { } public void OnCopyTexture() { } public void OnPasteTexture() { } diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualVertex.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualVertex.cs index 3de36f62fd465331ef30919ce223c430a2c358b8..6c93f6ca484251596772ec23cbfb91ae8131bbfc 100755 --- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualVertex.cs +++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualVertex.cs @@ -241,7 +241,7 @@ namespace CodeImp.DoomBuilder.BuilderModes public void OnEditBegin() { } public void OnMouseMove(MouseEventArgs e) { } public void OnChangeTargetBrightness(bool up) { } - public void OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { } + public bool OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { return true; } public void OnChangeScale(int incrementX, int incrementY) { } public void OnSelectTexture() { } public void OnCopyTexture() { } diff --git a/Source/Plugins/BuilderModes/VisualModes/IVisualEventReceiver.cs b/Source/Plugins/BuilderModes/VisualModes/IVisualEventReceiver.cs index cde7f2ca6469a4155f058756c900212457920e61..7e22f377b9893a402a2184d616a3d4aeda49bf86 100755 --- a/Source/Plugins/BuilderModes/VisualModes/IVisualEventReceiver.cs +++ b/Source/Plugins/BuilderModes/VisualModes/IVisualEventReceiver.cs @@ -35,7 +35,7 @@ namespace CodeImp.DoomBuilder.BuilderModes void OnMouseMove(MouseEventArgs e); void OnChangeTargetHeight(int amount); void OnChangeTargetBrightness(bool up); - void OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection); + bool OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection); void OnChangeScale(int incrementX, int incrementY); //mxd void OnResetTextureOffset(); void OnResetLocalTextureOffset(); //mxd. This should reset upper/middle/lower offsets (UDMF only) diff --git a/Source/Plugins/BuilderModes/VisualModes/NullVisualEventReceiver.cs b/Source/Plugins/BuilderModes/VisualModes/NullVisualEventReceiver.cs index e6abe0e4104420909f0e5c8970c8425f9ad70bd8..cdf113a6b60158f7aaf14b3578790d4c664db1c9 100755 --- a/Source/Plugins/BuilderModes/VisualModes/NullVisualEventReceiver.cs +++ b/Source/Plugins/BuilderModes/VisualModes/NullVisualEventReceiver.cs @@ -34,7 +34,7 @@ namespace CodeImp.DoomBuilder.BuilderModes public void OnMouseMove(MouseEventArgs e) { } public void OnChangeTargetHeight(int amount) { } public void OnChangeTargetBrightness(bool up) { } - public void OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { } + public bool OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { return true; } public void OnChangeScale(int incrementX, int incrementY) { } //mxd public void OnResetTextureOffset() { } public void OnResetLocalTextureOffset() { } //mxd diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs b/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs index a1d85c029ded767e65ae7cf84f309d0bf02d28de..cae40b779549aaf0657316dde3023e6d91b4b009 100755 --- a/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs +++ b/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs @@ -279,16 +279,19 @@ namespace CodeImp.DoomBuilder.BuilderModes } //mxd - public override void OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) + public override bool OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { + bool appliedoffset = false; + // Only do this when not done yet in this call // Because we may be able to select the same 3D floor multiple times through multiple sectors SectorData sd = mode.GetSectorData(level.sector); if(!sd.CeilingChanged) { - sd.CeilingChanged = true; - base.OnChangeTextureOffset(horizontal, vertical, doSurfaceAngleCorrection); + sd.CeilingChanged = appliedoffset = base.OnChangeTextureOffset(horizontal, vertical, doSurfaceAngleCorrection); } + + return appliedoffset; } // Move texture coordinates diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs b/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs index 8be4c2161e2b7585f633d1a98420999d19f49885..40ddc92946b03ec9b24b3aab56b81bd12c1e3f75 100755 --- a/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs +++ b/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs @@ -233,16 +233,19 @@ namespace CodeImp.DoomBuilder.BuilderModes } //mxd - public override void OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) + public override bool OnChangeTextureOffset(int horizontal, int vertical, bool doSurfaceAngleCorrection) { + bool appliedoffset = false; + // Only do this when not done yet in this call // Because we may be able to select the same 3D floor multiple times through multiple sectors SectorData sd = mode.GetSectorData(level.sector); if(!sd.FloorChanged) { - sd.FloorChanged = true; - base.OnChangeTextureOffset(horizontal, vertical, doSurfaceAngleCorrection); + sd.FloorChanged = appliedoffset = base.OnChangeTextureOffset(horizontal, vertical, doSurfaceAngleCorrection); } + + return appliedoffset; } // Move texture coordinates