123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /*
- * CGeneralTextHandler.h, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
- #pragma once
- #include "TextLocalizationContainer.h"
- VCMI_LIB_NAMESPACE_BEGIN
- class CGeneralTextHandler;
- /// Small wrapper that provides text access API compatible with old code
- class DLL_LINKAGE LegacyTextContainer
- {
- CGeneralTextHandler & owner;
- std::string basePath;
- public:
- LegacyTextContainer(CGeneralTextHandler & owner, std::string basePath);
- std::string operator [](size_t index) const;
- };
- /// Small wrapper that provides help text access API compatible with old code
- class DLL_LINKAGE LegacyHelpContainer
- {
- CGeneralTextHandler & owner;
- std::string basePath;
- public:
- LegacyHelpContainer(CGeneralTextHandler & owner, std::string basePath);
- std::pair<std::string, std::string> operator[](size_t index) const;
- };
- /// Handles all text-related data in game
- class DLL_LINKAGE CGeneralTextHandler: public TextLocalizationContainer
- {
- void readToVector(const std::string & sourceID, const std::string & sourceName);
- /// number of scenarios in specific campaign. TODO: move to a better location
- std::vector<size_t> scenariosCountPerCampaign;
- public:
- LegacyTextContainer allTexts;
- LegacyTextContainer arraytxt;
- LegacyTextContainer primarySkillNames;
- LegacyTextContainer jktexts;
- LegacyTextContainer heroscrn;
- LegacyTextContainer overview;//text for Kingdom Overview window
- LegacyTextContainer colors; //names of player colors ("red",...)
- LegacyTextContainer capColors; //names of player colors with first letter capitalized ("Red",...)
- LegacyTextContainer turnDurations; //turn durations for pregame (1 Minute ... Unlimited)
- //towns
- LegacyTextContainer tcommands; //texts for town screen,
- LegacyTextContainer hcommands; // town hall screen
- LegacyTextContainer fcommands; // fort screen
- LegacyTextContainer tavernInfo;
- LegacyTextContainer tavernRumors;
- LegacyTextContainer qeModCommands;
- LegacyHelpContainer zelp;
- LegacyTextContainer lossConditions;
- LegacyTextContainer victoryConditions;
- //objects
- LegacyTextContainer advobtxt;
- LegacyTextContainer restypes; //names of resources
- LegacyTextContainer randsign;
- LegacyTextContainer seerEmpty;
- LegacyTextContainer seerNames;
- LegacyTextContainer tentColors;
- //sec skills
- LegacyTextContainer levels;
- //commanders
- LegacyTextContainer znpc00; //more or less useful content of that file
- std::vector<std::string> findStringsWithPrefix(const std::string & prefix);
- int32_t pluralText(int32_t textIndex, int32_t count) const;
- size_t getCampaignLength(size_t campaignID) const;
- CGeneralTextHandler();
- CGeneralTextHandler(const CGeneralTextHandler&) = delete;
- CGeneralTextHandler operator=(const CGeneralTextHandler&) = delete;
- /// Attempts to detect encoding & language of H3 files
- static void detectInstallParameters();
- /// Returns name of language preferred by user
- static std::string getPreferredLanguage();
- /// Returns name of language of Heroes III text files
- static std::string getInstalledLanguage();
- /// Returns name of encoding of Heroes III text files
- static std::string getInstalledEncoding();
- };
- VCMI_LIB_NAMESPACE_END
|