From a0b4b8627ff6b99a149ca519d991f1a2358cbded Mon Sep 17 00:00:00 2001 From: marauder2k7 Date: Fri, 25 Jul 2025 08:46:55 +0100 Subject: [PATCH] cleanup Clean out the link vars and functions from guinaveditorctrl its now handled by the tool offmeshcontool: Add ability to continue to draw from the last links end point holding shift --- Engine/source/navigation/guiNavEditorCtrl.cpp | 52 ++----------------- Engine/source/navigation/guiNavEditorCtrl.h | 7 --- .../navMeshTools/offMeshConnTool.cpp | 10 +++- 3 files changed, 12 insertions(+), 57 deletions(-) diff --git a/Engine/source/navigation/guiNavEditorCtrl.cpp b/Engine/source/navigation/guiNavEditorCtrl.cpp index e825cefb2..3e71ba240 100644 --- a/Engine/source/navigation/guiNavEditorCtrl.cpp +++ b/Engine/source/navigation/guiNavEditorCtrl.cpp @@ -61,8 +61,6 @@ GuiNavEditorCtrl::GuiNavEditorCtrl() mMesh = NULL; mPlayer = mCurPlayer = NULL; mSpawnClass = mSpawnDatablock = ""; - mLinkStart = Point3F::Max; - mLink = mCurLink = -1; } GuiNavEditorCtrl::~GuiNavEditorCtrl() @@ -118,6 +116,9 @@ void GuiNavEditorCtrl::selectMesh(NavMesh *mesh) { mesh->setSelected(true); mMesh = mesh; + + if (mTool) + mTool->setActiveNavMesh(mMesh); } DefineEngineMethod(GuiNavEditorCtrl, selectMesh, void, (S32 id),, @@ -156,8 +157,6 @@ void GuiNavEditorCtrl::deselect() mMesh->setSelected(false); mMesh = NULL; mPlayer = mCurPlayer = NULL; - mLinkStart = Point3F::Max; - mLink = mCurLink = -1; } DefineEngineMethod(GuiNavEditorCtrl, deselect, void, (),, @@ -166,37 +165,6 @@ DefineEngineMethod(GuiNavEditorCtrl, deselect, void, (),, object->deselect(); } -void GuiNavEditorCtrl::deleteLink() -{ - if(!mMesh.isNull() && mLink != -1) - { - mMesh->selectLink(mLink, false); - mMesh->deleteLink(mLink); - mLink = -1; - Con::executef(this, "onLinkDeselected"); - } -} - -DefineEngineMethod(GuiNavEditorCtrl, deleteLink, void, (),, - "@brief Delete the currently selected link.") -{ - object->deleteLink(); -} - -void GuiNavEditorCtrl::setLinkFlags(const LinkData &d) -{ - if(mMode == mLinkMode && !mMesh.isNull() && mLink != -1) - { - mMesh->setLinkFlags(mLink, d); - } -} - -DefineEngineMethod(GuiNavEditorCtrl, setLinkFlags, void, (U32 flags),, - "@Brief Set jump and drop properties of the selected link.") -{ - object->setLinkFlags(LinkData(flags)); -} - void GuiNavEditorCtrl::spawnPlayer(const Point3F &pos) { SceneObject *obj = (SceneObject*)Sim::spawnObject(mSpawnClass, mSpawnDatablock); @@ -511,20 +479,6 @@ void GuiNavEditorCtrl::renderScene(const RectI & updateRect) if (mTool) mTool->onRender3D(); - if(mMode == mLinkMode) - { - if(mLinkStart != Point3F::Max) - { - GFXStateBlockDesc desc; - desc.setBlend(false); - desc.setZReadWrite(true ,true); - MatrixF linkMat(true); - linkMat.setPosition(mLinkStart); - Point3F scale(0.8f, 0.8f, 0.8f); - GFX->getDrawUtil()->drawTransform(desc, linkMat, &scale); - } - } - if(mMode == mTestMode) { if(!mCurPlayer.isNull()) diff --git a/Engine/source/navigation/guiNavEditorCtrl.h b/Engine/source/navigation/guiNavEditorCtrl.h index 82d980e1c..db60c4c85 100644 --- a/Engine/source/navigation/guiNavEditorCtrl.h +++ b/Engine/source/navigation/guiNavEditorCtrl.h @@ -139,13 +139,6 @@ protected: /// The active tool in used by the editor. SimObjectPtr mTool; - /// @name Link mode - /// @{ - - Point3F mLinkStart; - S32 mCurLink; - S32 mLink; - /// @} /// @name Tile mode diff --git a/Engine/source/navigation/navMeshTools/offMeshConnTool.cpp b/Engine/source/navigation/navMeshTools/offMeshConnTool.cpp index 088abdb26..6b10298e4 100644 --- a/Engine/source/navigation/navMeshTools/offMeshConnTool.cpp +++ b/Engine/source/navigation/navMeshTools/offMeshConnTool.cpp @@ -67,7 +67,12 @@ void OffMeshConnectionTool::on3DMouseDown(const Gui3DMouseEvent& evt) { mLink = mNavMesh->addLink(mLinkStart, ri.point, mBiDir); mNavMesh->selectLink(mLink, true, false); - mLinkStart = Point3F::Max; + + if (shift) + mLinkStart = ri.point; + else + mLinkStart = Point3F::Max; + Con::executef(this, "onLinkSelected", Con::getIntArg(mLinkCache.getFlags()), Con::getBoolArg(mBiDir)); } else @@ -156,6 +161,9 @@ bool OffMeshConnectionTool::updateGuiInfo() String text; text = "LMB To Select Link. CTRL+LMB To Delete Link"; + if (mLinkStart != Point3F::Max) + text = "LinkStarted: LMB To place End Point. Hold Left Shift to start a new Link from the end point."; + if (statusbar) Con::executef(statusbar, "setInfo", text.c_str());