Fixed an issue where thing positions were modified even when the new position was the same as the old one. Fixes #644

This commit is contained in:
biwa 2021-10-25 00:32:10 +02:00
parent 36287a2c4a
commit bd887c1f27

View file

@ -422,39 +422,41 @@ namespace CodeImp.DoomBuilder.Map
// NOTE: This does not update sector! (call DetermineSector) // NOTE: This does not update sector! (call DetermineSector)
public void Move(Vector3D newpos) public void Move(Vector3D newpos)
{ {
BeforePropsChange(); if (newpos != pos)
{
BeforePropsChange();
// Change position // Change position
this.pos = newpos; this.pos = newpos;
if(type != General.Map.Config.Start3DModeThingType) if (type != General.Map.Config.Start3DModeThingType)
General.Map.IsChanged = true; General.Map.IsChanged = true;
}
} }
// This moves the thing // This moves the thing
// NOTE: This does not update sector! (call DetermineSector) // NOTE: This does not update sector! (call DetermineSector)
public void Move(Vector2D newpos) public void Move(Vector2D newpos)
{ {
BeforePropsChange(); Vector3D p = new Vector3D(newpos.x, newpos.y, pos.z);
// Change position if (p != pos)
this.pos = new Vector3D(newpos.x, newpos.y, pos.z); {
BeforePropsChange();
if(type != General.Map.Config.Start3DModeThingType) // Change position
General.Map.IsChanged = true; this.pos = p;
if (type != General.Map.Config.Start3DModeThingType)
General.Map.IsChanged = true;
}
} }
// This moves the thing // This moves the thing
// NOTE: This does not update sector! (call DetermineSector) // NOTE: This does not update sector! (call DetermineSector)
public void Move(double x, double y, double zoffset) public void Move(double x, double y, double zoffset)
{ {
BeforePropsChange(); Move(new Vector3D(x, y, zoffset));
// Change position
this.pos = new Vector3D(x, y, zoffset);
if(type != General.Map.Config.Start3DModeThingType)
General.Map.IsChanged = true;
} }
// This rotates the thing // This rotates the thing