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
This commit is contained in:
marauder2k7 2025-07-25 08:46:55 +01:00
parent 2df2cb5c15
commit a0b4b8627f
3 changed files with 12 additions and 57 deletions

View file

@ -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())

View file

@ -139,13 +139,6 @@ protected:
/// The active tool in used by the editor.
SimObjectPtr<NavMeshTool> mTool;
/// @name Link mode
/// @{
Point3F mLinkStart;
S32 mCurLink;
S32 mLink;
/// @}
/// @name Tile mode

View file

@ -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());