summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorPaweł Redman <pawel.redman@gmail.com>2017-12-16 20:42:33 +0000
committerPaweł Redman <pawel.redman@gmail.com>2017-12-16 20:42:33 +0000
commit5c7d962e605e123e1ce4e0610e8f330b1f4f5e82 (patch)
treef670145b02dd884ebc7db01b47f079cc259e5d8d /src/game
parent1b1704512b4c83dfa7e17c30f0facc5a7645181a (diff)
Move text.cpp into game.
Diffstat (limited to 'src/game')
-rw-r--r--src/game/game.hpp26
-rw-r--r--src/game/text.cpp112
2 files changed, 138 insertions, 0 deletions
diff --git a/src/game/game.hpp b/src/game/game.hpp
index 3fed3ec..b2bf0dd 100644
--- a/src/game/game.hpp
+++ b/src/game/game.hpp
@@ -55,6 +55,32 @@ namespace game {
void load(void);
}
+ namespace text {
+ typedef enum {
+ LANG_ENGLISH,
+ LANG_POLISH
+ } language_t;
+
+ extern language_t language;
+
+ typedef enum {
+ SAY_NO_PATH,
+ SAY_BLOCKED,
+ SAY_READY,
+ SAY_MOVING,
+ UNIT_NAME_SPIDER,
+ UNIT_NAME_SOLDIER,
+ UNIT_DEATH,
+ UNIT_ATTACK,
+ UNIT_MISS,
+ UNIT_CRITICAL_MISS,
+ UNIT_CRITICAL_HIT,
+ UNIT_DAMAGE
+ } index_t;
+
+ std::string get(index_t index);
+ }
+
class entity_t : public world::entity_t {
public:
game::state_t *game = 0;
diff --git a/src/game/text.cpp b/src/game/text.cpp
new file mode 100644
index 0000000..3b611e2
--- /dev/null
+++ b/src/game/text.cpp
@@ -0,0 +1,112 @@
+#include "game.hpp"
+
+namespace game::text {
+
+language_t language = LANG_ENGLISH;
+
+static const char *soldier_names[] = {
+ "Kowalski", "Jackson", "Carter", "O'Neill", "Hammond", "Mitchell"
+};
+
+static std::string get_english(index_t index)
+{
+ switch (index) {
+ case SAY_BLOCKED:
+ return "Something is in my way.";
+
+ case SAY_NO_PATH:
+ return "I can't get there.";
+
+ case SAY_READY:
+ return "Ready for orders.";
+
+ case SAY_MOVING:
+ return "On my way.";
+
+ case UNIT_NAME_SPIDER:
+ return "Spider";
+
+ case UNIT_NAME_SOLDIER:
+ return soldier_names[rand() % count(soldier_names)];
+
+ case UNIT_DEATH:
+ return "died";
+
+ case UNIT_ATTACK:
+ return "attacks";
+
+ case UNIT_MISS:
+ return "miss";
+
+ case UNIT_CRITICAL_MISS:
+ return "critical miss";
+
+ case UNIT_CRITICAL_HIT:
+ return "critical hit";
+
+ case UNIT_DAMAGE:
+ return "deals damage";
+
+ default:
+ abort();
+ }
+}
+
+static std::string get_polish(index_t index)
+{
+ switch (index) {
+ case SAY_BLOCKED:
+ return "Coś jest na mojej drodze.";
+
+ case SAY_NO_PATH:
+ return "Nie mogę się tam dostać.";
+
+ case SAY_READY:
+ return "Gotowy na rozkaz.";
+
+ case SAY_MOVING:
+ return "Jestem w drodze.";
+
+ case UNIT_NAME_SPIDER:
+ return "Pająk";
+
+ case UNIT_NAME_SOLDIER:
+ return soldier_names[rand() % count(soldier_names)];
+
+ case UNIT_DEATH:
+ return "nie żyje";
+
+ case UNIT_ATTACK:
+ return "atakuje";
+
+ case UNIT_MISS:
+ return "chybienie";
+
+ case UNIT_CRITICAL_MISS:
+ return "chybienie krytyczne";
+
+ case UNIT_CRITICAL_HIT:
+ return "trafienie krytyczne";
+
+ case UNIT_DAMAGE:
+ return "zadaje obrażenia";
+
+ default:
+ abort();
+ }
+}
+std::string get(index_t index)
+{
+ switch (language) {
+ case LANG_ENGLISH:
+ return get_english(index);
+
+ case LANG_POLISH:
+ return get_polish(index);
+
+ default:
+ abort();
+ }
+}
+
+} // namespace text