107 lines
2.6 KiB
C++
Executable File
107 lines
2.6 KiB
C++
Executable File
//-----------------------------------------------------------------------------
|
|
// Torque Game Engine
|
|
// Copyright (C) GarageGames.com, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#include "editor/editor.h"
|
|
#include "console/console.h"
|
|
#include "console/consoleInternal.h"
|
|
#include "gui/controls/guiTextListCtrl.h"
|
|
#include "platform/event.h"
|
|
#include "game/shapeBase.h"
|
|
#include "game/gameConnection.h"
|
|
|
|
bool gEditingMission = false;
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Class EditManager
|
|
//------------------------------------------------------------------------------
|
|
|
|
IMPLEMENT_CONOBJECT(EditManager);
|
|
|
|
EditManager::EditManager()
|
|
{
|
|
for(U32 i = 0; i < 10; i++)
|
|
mBookmarks[i] = MatrixF(true);
|
|
}
|
|
|
|
EditManager::~EditManager()
|
|
{
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
bool EditManager::onWake()
|
|
{
|
|
if(!Parent::onWake())
|
|
return(false);
|
|
|
|
for(SimGroupIterator itr(Sim::getRootGroup()); *itr; ++itr)
|
|
(*itr)->onEditorEnable();
|
|
|
|
gEditingMission = true;
|
|
|
|
return(true);
|
|
}
|
|
|
|
void EditManager::onSleep()
|
|
{
|
|
for(SimGroupIterator itr(Sim::getRootGroup()); *itr; ++itr)
|
|
(*itr)->onEditorDisable();
|
|
|
|
gEditingMission = false;
|
|
Parent::onSleep();
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
bool EditManager::onAdd()
|
|
{
|
|
if(!Parent::onAdd())
|
|
return(false);
|
|
|
|
// hook the namespace
|
|
const char * name = getName();
|
|
if(name && name[0] && getClassRep())
|
|
{
|
|
Namespace * parent = getClassRep()->getNameSpace();
|
|
Con::linkNamespaces(parent->mName, name);
|
|
mNameSpace = Con::lookupNamespace(name);
|
|
}
|
|
|
|
return(true);
|
|
}
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
static GameBase * getControlObj()
|
|
{
|
|
GameConnection * connection = GameConnection::getLocalClientConnection();
|
|
ShapeBase* control = 0;
|
|
if(connection)
|
|
control = connection->getControlObject();
|
|
return(control);
|
|
}
|
|
|
|
ConsoleMethod( EditManager, setBookmark, void, 3, 3, "(int slot)")
|
|
{
|
|
S32 val = dAtoi(argv[2]);
|
|
if(val < 0 || val > 9)
|
|
return;
|
|
|
|
GameBase * control = getControlObj();
|
|
if(control)
|
|
object->mBookmarks[val] = control->getTransform();
|
|
}
|
|
|
|
ConsoleMethod( EditManager, gotoBookmark, void, 3, 3, "(int slot)")
|
|
{
|
|
S32 val = dAtoi(argv[2]);
|
|
if(val < 0 || val > 9)
|
|
return;
|
|
|
|
GameBase * control = getControlObj();
|
|
if(control)
|
|
control->setTransform(object->mBookmarks[val]);
|
|
}
|