tge/engine/editor/editor.cc
2017-04-17 06:17:10 -06:00

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]);
}