Commit 07a67d6e authored by salix5's avatar salix5

Add GetMapString

parent 74433379
...@@ -221,29 +221,23 @@ const wchar_t* DataManager::GetDesc(uint32_t strCode) const { ...@@ -221,29 +221,23 @@ const wchar_t* DataManager::GetDesc(uint32_t strCode) const {
return csit->second.desc[offset].c_str(); return csit->second.desc[offset].c_str();
return unknown_string; return unknown_string;
} }
const wchar_t* DataManager::GetSysString(uint32_t code) const { const wchar_t* DataManager::GetMapString(const wstring_map& table, uint32_t code) const {
auto csit = _sysStrings.find(code); auto csit = table.find(code);
if(csit == _sysStrings.end()) if (csit == table.end())
return unknown_string; return unknown_string;
return csit->second.c_str(); return csit->second.c_str();
} }
const wchar_t* DataManager::GetSysString(uint32_t code) const {
return GetMapString(_sysStrings, code);
}
const wchar_t* DataManager::GetVictoryString(uint32_t code) const { const wchar_t* DataManager::GetVictoryString(uint32_t code) const {
auto csit = _victoryStrings.find(code); return GetMapString(_victoryStrings, code);
if(csit == _victoryStrings.end())
return unknown_string;
return csit->second.c_str();
} }
const wchar_t* DataManager::GetCounterName(uint32_t code) const { const wchar_t* DataManager::GetCounterName(uint32_t code) const {
auto csit = _counterStrings.find(code); return GetMapString(_counterStrings, code);
if(csit == _counterStrings.end())
return unknown_string;
return csit->second.c_str();
} }
const wchar_t* DataManager::GetSetName(uint32_t code) const { const wchar_t* DataManager::GetSetName(uint32_t code) const {
auto csit = _setnameStrings.find(code); return GetMapString(_setnameStrings, code);
if(csit == _setnameStrings.end())
return unknown_string;
return csit->second.c_str();
} }
std::vector<uint32_t> DataManager::GetSetCodes(std::wstring setname) const { std::vector<uint32_t> DataManager::GetSetCodes(std::wstring setname) const {
std::vector<uint32_t> matchingCodes; std::vector<uint32_t> matchingCodes;
......
...@@ -57,6 +57,7 @@ struct CardString { ...@@ -57,6 +57,7 @@ struct CardString {
}; };
using code_pointer = std::unordered_map<uint32_t, CardDataC>::const_iterator; using code_pointer = std::unordered_map<uint32_t, CardDataC>::const_iterator;
using string_pointer = std::unordered_map<uint32_t, CardString>::const_iterator; using string_pointer = std::unordered_map<uint32_t, CardString>::const_iterator;
using wstring_map = std::unordered_map<uint32_t, std::wstring>;
class ClientCard; class ClientCard;
...@@ -97,10 +98,10 @@ public: ...@@ -97,10 +98,10 @@ public:
std::wstring FormatSetName(const uint16_t setcode[]) const; std::wstring FormatSetName(const uint16_t setcode[]) const;
std::wstring FormatLinkMarker(unsigned int link_marker) const; std::wstring FormatLinkMarker(unsigned int link_marker) const;
std::unordered_map<uint32_t, std::wstring> _counterStrings; wstring_map _counterStrings;
std::unordered_map<uint32_t, std::wstring> _victoryStrings; wstring_map _victoryStrings;
std::unordered_map<uint32_t, std::wstring> _setnameStrings; wstring_map _setnameStrings;
std::unordered_map<uint32_t, std::wstring> _sysStrings; wstring_map _sysStrings;
char errmsg[512]{}; char errmsg[512]{};
const wchar_t* unknown_string{ L"???" }; const wchar_t* unknown_string{ L"???" };
irr::io::IFileSystem* FileSystem{}; irr::io::IFileSystem* FileSystem{};
...@@ -126,6 +127,7 @@ public: ...@@ -126,6 +127,7 @@ public:
static bool deck_sort_name(code_pointer l1, code_pointer l2); static bool deck_sort_name(code_pointer l1, code_pointer l2);
private: private:
const wchar_t* GetMapString(const wstring_map& table, uint32_t code) const;
std::unordered_map<uint32_t, CardDataC> _datas; std::unordered_map<uint32_t, CardDataC> _datas;
std::unordered_map<uint32_t, CardString> _strings; std::unordered_map<uint32_t, CardString> _strings;
std::unordered_map<uint32_t, std::vector<uint16_t>> extra_setcode; std::unordered_map<uint32_t, std::vector<uint16_t>> extra_setcode;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment