summaryrefslogtreecommitdiffstats
path: root/src/object/robotmain.cpp
diff options
context:
space:
mode:
authorkrzys-h <krzys_h@interia.pl>2013-04-29 17:26:32 +0200
committerkrzys-h <krzys_h@interia.pl>2013-04-29 17:26:32 +0200
commit75950c55ba2065e792dc573adbaa31897cbc113a (patch)
treec0fb55c900d056550b3383e1ef9979b6664ca85e /src/object/robotmain.cpp
parentc2932f4ee3c65aa5546a8b2fd605af9043aba72a (diff)
downloadcolobot-75950c55ba2065e792dc573adbaa31897cbc113a.tar.gz
colobot-75950c55ba2065e792dc573adbaa31897cbc113a.tar.bz2
colobot-75950c55ba2065e792dc573adbaa31897cbc113a.zip
MissionController improved
Diffstat (limited to 'src/object/robotmain.cpp')
-rw-r--r--src/object/robotmain.cpp29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/object/robotmain.cpp b/src/object/robotmain.cpp
index ddd6545..991449e 100644
--- a/src/object/robotmain.cpp
+++ b/src/object/robotmain.cpp
@@ -656,6 +656,7 @@ CRobotMain::CRobotMain(CApplication* app)
m_terrainCreate = false;
m_version = 1;
+ m_controller = nullptr;
m_retroStyle = false;
m_immediatSatCom = false;
m_beginSatCom = false;
@@ -1791,6 +1792,23 @@ void CRobotMain::ExecuteCmd(char *cmd)
return;
}
+ if (strcmp(cmd, "controller") == 0)
+ {
+ if (m_controller != nullptr) {
+ // Don't use SelectObject because it checks if the object is selectable
+ if (m_camera->GetType() == Gfx::CAM_TYPE_VISIT)
+ StopDisplayVisit();
+
+ CObject* prev = DeselectAll();
+ if (prev != nullptr && prev != m_controller)
+ m_controller->AddDeselList(prev);
+
+ SelectOneObject(m_controller, true);
+ m_short->UpdateShortcuts();
+ }
+ return;
+ }
+
if (strcmp(cmd, "photo1") == 0)
{
m_freePhoto = !m_freePhoto;
@@ -3839,6 +3857,8 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
m_mapImage = false;
m_mapFilename[0] = 0;
+ m_controller = nullptr;
+
m_colorRefBot.r = 10.0f/256.0f;
m_colorRefBot.g = 166.0f/256.0f;
m_colorRefBot.b = 254.0f/256.0f; // blue
@@ -4358,14 +4378,15 @@ void CRobotMain::CreateScene(bool soluce, bool fixScene, bool resetObject)
continue;
}
- CObject* obj = CreateObject(Math::Vector(0.0f, 0.0f, 0.0f), 0.0f, 1.0f, 0.0f, OBJECT_CONTROLLER, 100.0f, false, false, 0);
- CBrain* brain = obj->GetBrain();
+ m_controller = CreateObject(Math::Vector(0.0f, 0.0f, 0.0f), 0.0f, 1.0f, 0.0f, OBJECT_CONTROLLER, 100.0f, false, false, 0);
+ m_controller->SetMagnifyDamage(100.0f);
+ CBrain* brain = m_controller->GetBrain();
if (brain != nullptr)
{
OpString(line, "script", name);
if (name[0] != 0)
- brain->SetScriptName(1, name);
- brain->SetScriptRun(1);
+ brain->SetScriptName(0, name);
+ brain->SetScriptRun(0);
}
}