From 5f1a5df50b92df3a3d720b7d77147095a0e43957 Mon Sep 17 00:00:00 2001 From: codeimp <codeimp@e0d998f2-2e9b-42fe-843d-47128df60a06> Date: Thu, 16 Sep 2010 12:09:17 +0000 Subject: [PATCH] @ Fixed raising/lowering of floor/ceiling on Vavoom type 3D floors (they were reversed) --- .../VisualModes/BaseVisualGeometrySector.cs | 7 +++++-- .../GZDoomEditing/VisualModes/BaseVisualSector.cs | 8 ++++---- .../Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs | 10 +++++----- .../Plugins/GZDoomEditing/VisualModes/VisualFloor.cs | 10 +++++----- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs index 1abb9e52..493587cd 100644 --- a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs +++ b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs @@ -54,6 +54,7 @@ namespace CodeImp.DoomBuilder.GZDoomEditing protected bool changed; protected SectorLevel level; + protected Effect3DFloor extrafloor; #endregion @@ -62,6 +63,7 @@ namespace CodeImp.DoomBuilder.GZDoomEditing new public BaseVisualSector Sector { get { return (BaseVisualSector)base.Sector; } } public bool Changed { get { return changed; } set { changed = value; } } public SectorLevel Level { get { return level; } } + public Effect3DFloor ExtraFloor { get { return extrafloor; } } #endregion @@ -102,10 +104,11 @@ namespace CodeImp.DoomBuilder.GZDoomEditing public virtual void ApplyLowerUnpegged(bool set) { } // Setup this plane - public bool Setup() { return this.Setup(this.level); } - public virtual bool Setup(SectorLevel level) + public bool Setup() { return this.Setup(this.level, this.extrafloor); } + public virtual bool Setup(SectorLevel level, Effect3DFloor extrafloor) { this.level = level; + this.extrafloor = extrafloor; return false; } diff --git a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualSector.cs b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualSector.cs index d0973b8b..a7f8405a 100644 --- a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualSector.cs +++ b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualSector.cs @@ -182,12 +182,12 @@ namespace CodeImp.DoomBuilder.GZDoomEditing // Create floor floor = floor ?? new VisualFloor(mode, this); - if(floor.Setup(data.Floor)) + if(floor.Setup(data.Floor, null)) base.AddGeometry(floor); // Create ceiling ceiling = ceiling ?? new VisualCeiling(mode, this); - if(ceiling.Setup(data.Ceiling)) + if(ceiling.Setup(data.Ceiling, null)) base.AddGeometry(ceiling); // Create 3D floors @@ -197,14 +197,14 @@ namespace CodeImp.DoomBuilder.GZDoomEditing // Create a floor VisualFloor vf = (i < extrafloors.Count) ? extrafloors[i] : new VisualFloor(mode, this); - if(vf.Setup(ef.Floor)) + if(vf.Setup(ef.Floor, ef)) base.AddGeometry(vf); if(i >= extrafloors.Count) extrafloors.Add(vf); // Create a ceiling VisualCeiling vc = (i < extraceilings.Count) ? extraceilings[i] : new VisualCeiling(mode, this); - if(vc.Setup(ef.Ceiling)) + if(vc.Setup(ef.Ceiling, ef)) base.AddGeometry(vc); if(i >= extraceilings.Count) extraceilings.Add(vc); diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs index df5886d6..ce3ca8f7 100644 --- a/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs +++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs @@ -65,15 +65,15 @@ namespace CodeImp.DoomBuilder.GZDoomEditing } // This builds the geometry. Returns false when no geometry created. - public override bool Setup(SectorLevel level) + public override bool Setup(SectorLevel level, Effect3DFloor extrafloor) { WorldVertex[] verts; WorldVertex v; Sector s = level.sector; Vector2D texscale; - - base.Setup(level); - + + base.Setup(level, extrafloor); + // Fetch ZDoom fields float rotate = Angle2D.DegToRad(s.Fields.GetValue("rotationceiling", 0.0f)); Vector2D offset = new Vector2D(s.Fields.GetValue("xpanningceiling", 0.0f), @@ -165,7 +165,7 @@ namespace CodeImp.DoomBuilder.GZDoomEditing // This changes the height protected override void ChangeHeight(int amount) { - if(level.sector == Sector.Sector) + if((extrafloor == null) || extrafloor.VavoomType) { mode.CreateUndo("Change ceiling height", UndoGroup.CeilingHeightChange, level.sector.FixedIndex); level.sector.CeilHeight += amount; diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualFloor.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualFloor.cs index 258cd4f5..90b33e48 100644 --- a/Source/Plugins/GZDoomEditing/VisualModes/VisualFloor.cs +++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualFloor.cs @@ -65,14 +65,14 @@ namespace CodeImp.DoomBuilder.GZDoomEditing } // This builds the geometry. Returns false when no geometry created. - public override bool Setup(SectorLevel level) + public override bool Setup(SectorLevel level, Effect3DFloor extrafloor) { WorldVertex[] verts; Sector s = level.sector; Vector2D texscale; - - base.Setup(level); - + + base.Setup(level, extrafloor); + // Fetch ZDoom fields float rotate = Angle2D.DegToRad(s.Fields.GetValue("rotationfloor", 0.0f)); Vector2D offset = new Vector2D(s.Fields.GetValue("xpanningfloor", 0.0f), @@ -152,7 +152,7 @@ namespace CodeImp.DoomBuilder.GZDoomEditing // This changes the height protected override void ChangeHeight(int amount) { - if(level.sector == Sector.Sector) + if((extrafloor == null) || extrafloor.VavoomType) { mode.CreateUndo("Change floor height", UndoGroup.FloorHeightChange, level.sector.FixedIndex); level.sector.FloorHeight += amount;