[colobot] 252/377: Implement issue #606

Didier Raboud odyx at moszumanska.debian.org
Wed Mar 30 13:34:23 UTC 2016


This is an automated email from the git hooks/post-receive script.

odyx pushed a commit to branch debian/master
in repository colobot.

commit 12e37243198b640a4355b1560f43248dde49da84
Author: Krzysztof Dermont <erihel at gmail.com>
Date:   Wed Feb 10 17:04:26 2016 +0100

    Implement issue #606
    
    Add button to open SatCom in main menu
---
 src/common/event.cpp               |  1 +
 src/common/event.h                 |  1 +
 src/common/restext.cpp             |  1 +
 src/level/robotmain.cpp            | 10 ++++++++++
 src/level/robotmain.h              |  1 +
 src/ui/screen/screen_main_menu.cpp | 10 ++++++++++
 6 files changed, 24 insertions(+)

diff --git a/src/common/event.cpp b/src/common/event.cpp
index 7bc9f49..15dfaa8 100644
--- a/src/common/event.cpp
+++ b/src/common/event.cpp
@@ -182,6 +182,7 @@ void InitializeEventTypeTexts()
     EVENT_TYPE_TEXT[EVENT_INTERFACE_READ]    = "EVENT_INTERFACE_READ";
     EVENT_TYPE_TEXT[EVENT_INTERFACE_ABORT]   = "EVENT_INTERFACE_ABORT";
     EVENT_TYPE_TEXT[EVENT_INTERFACE_USER]    = "EVENT_INTERFACE_USER";
+    EVENT_TYPE_TEXT[EVENT_INTERFACE_SATCOM]  = "EVENT_INTERFACE_SATCOM";
 
     EVENT_TYPE_TEXT[EVENT_INTERFACE_CHAP]    = "EVENT_INTERFACE_CHAP";
     EVENT_TYPE_TEXT[EVENT_INTERFACE_LIST]    = "EVENT_INTERFACE_LIST";
diff --git a/src/common/event.h b/src/common/event.h
index ad3d068..38d7a59 100644
--- a/src/common/event.h
+++ b/src/common/event.h
@@ -210,6 +210,7 @@ enum EventType
     EVENT_INTERFACE_READ    = 411,
     EVENT_INTERFACE_ABORT   = 412,
     EVENT_INTERFACE_USER    = 413,
+    EVENT_INTERFACE_SATCOM  = 414,
 
     EVENT_INTERFACE_CHAP    = 420,
     EVENT_INTERFACE_LIST    = 421,
diff --git a/src/common/restext.cpp b/src/common/restext.cpp
index 8184c44..31ae587 100644
--- a/src/common/restext.cpp
+++ b/src/common/restext.cpp
@@ -161,6 +161,7 @@ void InitializeRestext()
     stringsEvent[EVENT_INTERFACE_FREE]      = TR("Free game\\Free game without a specific goal");
     stringsEvent[EVENT_INTERFACE_CODE_BATTLES] = TR("Code battles\\Program your robot to be the best of them all!");
     stringsEvent[EVENT_INTERFACE_USER]      = TR("Custom levels\\Levels from mods created by the users");
+    stringsEvent[EVENT_INTERFACE_SATCOM]    = TR("SatCom");
     stringsEvent[EVENT_INTERFACE_NAME]      = TR("Change player\\Change player");
     stringsEvent[EVENT_INTERFACE_SETUP]     = TR("Options\\Preferences");
     stringsEvent[EVENT_INTERFACE_AGAIN]     = TR("Restart\\Restart the mission from the beginning");
diff --git a/src/level/robotmain.cpp b/src/level/robotmain.cpp
index 9214c51..a901040 100644
--- a/src/level/robotmain.cpp
+++ b/src/level/robotmain.cpp
@@ -351,6 +351,7 @@ std::string PhaseToString(Phase phase)
     if (phase == PHASE_WIN) return "PHASE_WIN";
     if (phase == PHASE_LOST) return "PHASE_LOST";
     if (phase == PHASE_QUIT_SCREEN) return "PHASE_QUIT_SCREEN";
+    if (phase == PHASE_SATCOM) return "PHASE_SATCOM";
     return "(unknown)";
 }
 
@@ -516,6 +517,12 @@ void CRobotMain::ChangePhase(Phase phase)
     }
 
     m_ui->ChangePhase(m_phase);
+    if (m_phase == PHASE_SATCOM)
+    {
+        m_interface->DeleteControl(EVENT_WINDOW5);
+        StartDisplayInfo(InjectLevelPathsForCurrentLevel("cbot.txt", "help/%lng%"), 0);
+    }
+
     if (!resetWorld) return;
 
     dim.x = 32.0f/640.0f;
@@ -778,6 +785,9 @@ bool CRobotMain::ProcessEvent(Event &event)
         if (event.type == EVENT_OBJECT_INFOOK)
             StopDisplayInfo();
 
+        if (m_displayInfo == nullptr && m_phase == PHASE_SATCOM)
+            ChangePhase(PHASE_MAIN_MENU);
+
         return false;
     }
 
diff --git a/src/level/robotmain.h b/src/level/robotmain.h
index fe7e40e..8231840 100644
--- a/src/level/robotmain.h
+++ b/src/level/robotmain.h
@@ -72,6 +72,7 @@ enum Phase
     PHASE_WIN,
     PHASE_LOST,
     PHASE_QUIT_SCREEN,
+    PHASE_SATCOM,
 };
 std::string PhaseToString(Phase phase);
 bool IsInSimulationConfigPhase(Phase phase);
diff --git a/src/ui/screen/screen_main_menu.cpp b/src/ui/screen/screen_main_menu.cpp
index fcab062..4d9e103 100644
--- a/src/ui/screen/screen_main_menu.cpp
+++ b/src/ui/screen/screen_main_menu.cpp
@@ -162,6 +162,12 @@ void CScreenMainMenu::CreateInterface()
     pl->SetFontType(Gfx::FONT_COURIER);
     pl->SetFontSize(Gfx::FONT_SIZE_SMALL);
 
+    // SatCom button
+    pos.x = ox+sx*4.4f;
+    pos.y = oy+sy*4.4f;
+    pb = pw->CreateButton(pos, dim, 128+60, EVENT_INTERFACE_SATCOM);
+    pb->SetState(STATE_SHADOW);
+
     SetBackground("textures/interface/interface.png");
     CreateVersionDisplay();
 }
@@ -223,6 +229,10 @@ bool CScreenMainMenu::EventProcess(const Event &event)
             m_main->ChangePhase(PHASE_PLAYER_SELECT);
             break;
 
+        case EVENT_INTERFACE_SATCOM:
+            m_main->ChangePhase(PHASE_SATCOM);
+            break;
+
         default:
             return true;
     }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/colobot.git



More information about the Pkg-games-commits mailing list