summaryrefslogtreecommitdiff
path: root/src/game/game_text.hpp
diff options
context:
space:
mode:
authortruebrain <truebrain@openttd.org>2011-12-19 21:05:46 +0000
committertruebrain <truebrain@openttd.org>2011-12-19 21:05:46 +0000
commit2ae87e72131a8e88327dbb0b5b286accddafe05d (patch)
treeec755c0d0c31cbcb470d0df2625db8614efca6b2 /src/game/game_text.hpp
parent9b6b2cabc187f3cb72a53d396418ab1b9ebd2933 (diff)
downloadopenttd-2ae87e72131a8e88327dbb0b5b286accddafe05d.tar.xz
(svn r23634) -Add: support language files for GameScript (Rubidium)
Diffstat (limited to 'src/game/game_text.hpp')
-rw-r--r--src/game/game_text.hpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/game/game_text.hpp b/src/game/game_text.hpp
new file mode 100644
index 000000000..b367e63f9
--- /dev/null
+++ b/src/game/game_text.hpp
@@ -0,0 +1,45 @@
+/* $Id$ */
+
+/*
+ * This file is part of OpenTTD.
+ * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
+ * OpenTTD 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 General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/** @file game_text.hpp Base functions regarding game texts. */
+
+#ifndef GAME_TEXT_HPP
+#define GAME_TEXT_HPP
+
+#include "../core/smallvec_type.hpp"
+
+/** The tab we place our strings in. */
+static const uint GAME_TEXT_TAB = 18;
+
+const char *GetGameStringPtr(uint id);
+void RegisterGameTranslation(class Squirrel *engine);
+void ReconsiderGameScriptLanguage();
+
+/** Container for the raw (unencoded) language strings of a language. */
+struct LanguageStrings {
+ const char *language; ///< Name of the language (base filename).
+ StringList lines; ///< The lines of the file to pass into the parser/encoder.
+
+ LanguageStrings(const char *language);
+ ~LanguageStrings();
+};
+
+/** Container for all the game strings. */
+struct GameStrings {
+ uint version; ///< The version of the language strings.
+ LanguageStrings *cur_language; ///< The current (compiled) language.
+
+ AutoDeleteSmallVector<LanguageStrings *, 4> raw_strings; ///< The raw strings per language, first must be English/the master language!.
+ AutoDeleteSmallVector<LanguageStrings *, 4> compiled_strings; ///< The compiled strings per language, first must be English/the master language!.
+ StringList string_names; ///< The names of the compiled strings.
+
+ void Compile();
+};
+
+#endif /* GAME_TEXT_HPP */