diff options
author | krzys-h <krzys_h@interia.pl> | 2013-04-29 17:26:32 +0200 |
---|---|---|
committer | krzys-h <krzys_h@interia.pl> | 2013-04-29 17:26:32 +0200 |
commit | 75950c55ba2065e792dc573adbaa31897cbc113a (patch) | |
tree | c0fb55c900d056550b3383e1ef9979b6664ca85e /src/object/robotmain.cpp | |
parent | c2932f4ee3c65aa5546a8b2fd605af9043aba72a (diff) | |
download | colobot-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.cpp | 29 |
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); } } |