aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/client')
-rw-r--r--src/client/CMakeLists.txt1
-rw-r--r--src/client/gameui.cpp35
-rw-r--r--src/client/gameui.h60
3 files changed, 96 insertions, 0 deletions
diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt
index 3cc6c0351..3462636f4 100644
--- a/src/client/CMakeLists.txt
+++ b/src/client/CMakeLists.txt
@@ -9,6 +9,7 @@ set(client_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/render/stereo.cpp
${CMAKE_CURRENT_SOURCE_DIR}/renderingengine.cpp
${CMAKE_CURRENT_SOURCE_DIR}/clientlauncher.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/gameui.cpp
${CMAKE_CURRENT_SOURCE_DIR}/inputhandler.cpp
${CMAKE_CURRENT_SOURCE_DIR}/tile.cpp
${CMAKE_CURRENT_SOURCE_DIR}/joystick_controller.cpp
diff --git a/src/client/gameui.cpp b/src/client/gameui.cpp
new file mode 100644
index 000000000..7307daf75
--- /dev/null
+++ b/src/client/gameui.cpp
@@ -0,0 +1,35 @@
+/*
+Minetest
+Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
+Copyright (C) 2018 nerzhul, Loic Blot <loic.blot@unix-experience.fr>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "gameui.h"
+#include "settings.h"
+
+void GameUI::initFlags()
+{
+ memset(&m_flags, 0, sizeof(GameUI::Flags));
+ m_flags.show_chat = true;
+ m_flags.show_hud = true;
+ m_flags.show_debug = g_settings->getBool("show_debug");
+}
+
+void GameUI::showMinimap(const bool show)
+{
+ m_flags.show_minimap = show;
+}
diff --git a/src/client/gameui.h b/src/client/gameui.h
new file mode 100644
index 000000000..bd9c0f626
--- /dev/null
+++ b/src/client/gameui.h
@@ -0,0 +1,60 @@
+/*
+Minetest
+Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>
+Copyright (C) 2018 nerzhul, Loic Blot <loic.blot@unix-experience.fr>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#pragma once
+
+#include "IGUIEnvironment.h"
+
+using namespace irr;
+
+class GameUI
+{
+ // Temporary between coding time to move things here
+ friend class Game;
+
+public:
+ // Flags that can, or may, change during main game loop
+ struct Flags
+ {
+ bool show_chat;
+ bool show_hud;
+ bool show_minimap;
+ bool force_fog_off;
+ bool show_debug;
+ bool show_profiler_graph;
+ bool disable_camera_update;
+ };
+
+ void initFlags();
+ const Flags &getFlags() const { return m_flags; }
+
+ void showMinimap(const bool show);
+
+private:
+ Flags m_flags;
+
+ // @TODO future move
+ // gui::IGUIStaticText *m_guitext; // First line of debug text
+ // gui::IGUIStaticText *m_guitext2; // Second line of debug text
+ // gui::IGUIStaticText *m_guitext_info; // At the middle of the screen
+ // gui::IGUIStaticText *m_guitext_status;
+ // gui::IGUIStaticText *m_guitext_chat; // Chat text
+ // gui::IGUIStaticText *m_guitext_profiler; // Profiler text
+};