From eb8ffe5cfbe30fd362ded4a5036b20c1970bee41 Mon Sep 17 00:00:00 2001 From: MarioE Date: Fri, 25 Jul 2014 17:41:09 -0400 Subject: [PATCH] Fix resizeRegion --- TShockAPI/DB/RegionManager.cs | 65 +++++++++++++++-------------------- 1 file changed, 28 insertions(+), 37 deletions(-) diff --git a/TShockAPI/DB/RegionManager.cs b/TShockAPI/DB/RegionManager.cs index a76eb1a7..097424d9 100644 --- a/TShockAPI/DB/RegionManager.cs +++ b/TShockAPI/DB/RegionManager.cs @@ -311,52 +311,43 @@ namespace TShockAPI.DB int Y = 0; int height = 0; int width = 0; + try { - using ( - var reader = database.QueryReader("SELECT X1, Y1, height, width FROM Regions WHERE RegionName=@0 AND WorldID=@1", + using (var reader = database.QueryReader("SELECT X1, Y1, height, width FROM Regions WHERE RegionName=@0 AND WorldID=@1", regionName, Main.worldID.ToString())) { if (reader.Read()) + { X = reader.Get("X1"); - width = reader.Get("width"); - Y = reader.Get("Y1"); - height = reader.Get("height"); - } - if (!(direction == 0)) - { - if (!(direction == 1)) - { - if (!(direction == 2)) - { - if (!(direction == 3)) - { - return false; - } - else - { - X -= addAmount; - width += addAmount; - } - } - else - { - height += addAmount; - } + width = reader.Get("width"); + Y = reader.Get("Y1"); + height = reader.Get("height"); } - else - { + } + switch (direction) + { + case 0: + Y -= addAmount; + height += addAmount; + break; + case 1: width += addAmount; - } + break; + case 2: + height += addAmount; + break; + case 3: + X -= addAmount; + width += addAmount; + break; + default: + return false; } - else - { - Y -= addAmount; - height += addAmount; - } - int q = - database.Query( - "UPDATE Regions SET X1 = @0, Y1 = @1, width = @2, height = @3 WHERE RegionName = @4 AND WorldID=@5", X, Y, width, + + foreach (var region in Regions.Where(r => r.Name == regionName)) + region.Area = new Rectangle(X, Y, width, height); + int q = database.Query("UPDATE Regions SET X1 = @0, Y1 = @1, width = @2, height = @3 WHERE RegionName = @4 AND WorldID=@5", X, Y, width, height, regionName, Main.worldID.ToString()); if (q > 0) return true;