From 5c7d962e605e123e1ce4e0610e8f330b1f4f5e82 Mon Sep 17 00:00:00 2001 From: Paweł Redman Date: Sat, 16 Dec 2017 20:42:33 +0000 Subject: Move text.cpp into game. --- src/game/text.cpp | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 src/game/text.cpp (limited to 'src/game/text.cpp') 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 -- cgit