Skip to content

Commit 6cce0d3

Browse files
committed
Clean up entity movement in 3D.
1 parent e3988e2 commit 6cce0d3

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

TheForceEngine/TFE_Editor/LevelEditor/editTransforms.cpp

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -811,14 +811,7 @@ namespace LevelEditor
811811
if (!s_moveStarted)
812812
{
813813
s_moveStarted = true;
814-
s_moveStartPos = { worldPos.x, worldPos.z };
815-
816-
s_moveStarted = true;
817-
if (s_view == EDIT_VIEW_3D)
818-
{
819-
s_prevPos = s_curVtxPos;
820-
}
821-
814+
822815
EditorSector* sector = nullptr;
823816
EditorObject* obj = nullptr;
824817
Entity* entity = nullptr;
@@ -842,15 +835,32 @@ namespace LevelEditor
842835
top = obj->pos.y + entity->size.z;
843836
}
844837

838+
const f32 dF = fabsf(worldPos.y - base);
839+
const f32 dC = fabsf(worldPos.y - top);
840+
const f32 yBase = dF <= dC ? base : top;
841+
842+
if (s_view == EDIT_VIEW_3D)
843+
{
844+
// If 3D, we want to grab the base or the top of the object since that is the plane that will be used to
845+
// move the object going forward.
846+
edit_setTransformAnchor({ 0.0f, yBase, 0.0f });
847+
s_cursor3d = edit_gizmoCursor3d();
848+
Vec2f snapPos = { s_cursor3d.x, s_cursor3d.z };
849+
snapToGrid(&snapPos);
850+
s_cursor3d = { snapPos.x, s_cursor3d.y, snapPos.z };
851+
worldPos = s_cursor3d;
852+
s_curVtxPos = s_cursor3d;
853+
s_prevPos = s_curVtxPos;
854+
}
855+
s_moveStartPos = { worldPos.x, worldPos.z };
856+
845857
if (moveOnYAxis && obj)
846858
{
847-
const f32 dF = fabsf(worldPos.y - base);
848-
const f32 dC = fabsf(worldPos.y - top);
849-
edit_setTransformAnchor({ s_moveStartPos.x, dF <= dC ? base : top, s_moveStartPos.z });
859+
edit_setTransformAnchor(worldPos);
850860
}
851861
else
852862
{
853-
if (obj) { s_grid.height = base; worldPos.y = s_grid.height; }
863+
if (obj) { s_grid.height = yBase; }
854864
edit_setTransformAnchor({ s_moveStartPos.x, worldPos.y, s_moveStartPos.z });
855865
}
856866

0 commit comments

Comments
 (0)