Commit 6bdff452 authored by Chen Bill's avatar Chen Bill

DataManager: fix FormatAttribute, FormatRace

parent 6a2deaac
...@@ -304,39 +304,31 @@ const wchar_t* DataManager::FormatLocation(int location, int sequence) const { ...@@ -304,39 +304,31 @@ const wchar_t* DataManager::FormatLocation(int location, int sequence) const {
else else
return unknown_string; return unknown_string;
} }
const wchar_t* DataManager::FormatAttribute(int attribute) { std::wstring DataManager::FormatAttribute(unsigned int attribute) const {
wchar_t* p = attBuffer; std::wstring buffer;
unsigned filter = 1; for (int i = 0; i < ATTRIBUTES_COUNT; ++i) {
int i = 1010; if (attribute & (0x1U << i)) {
for(; filter != 0x80; filter <<= 1, ++i) { buffer.append(GetSysString(1010 + i));
if(attribute & filter) { buffer.push_back(L'|');
BufferIO::CopyWStrRef(GetSysString(i), p, 16);
*p = L'|';
*++p = 0;
} }
} }
if(p != attBuffer) if (buffer.empty())
*(p - 1) = 0; return std::wstring(unknown_string);
else buffer.pop_back();
return unknown_string; return buffer;
return attBuffer;
} }
const wchar_t* DataManager::FormatRace(int race) { std::wstring DataManager::FormatRace(unsigned int race) const {
wchar_t* p = racBuffer; std::wstring buffer;
unsigned filter = 1; for(int i = 0; i < RACES_COUNT; ++i) {
int i = 1020; if(race & (0x1U << i)) {
for(; filter < (1 << RACES_COUNT); filter <<= 1, ++i) { buffer.append(GetSysString(1020 + i));
if(race & filter) { buffer.push_back(L'|');
BufferIO::CopyWStrRef(GetSysString(i), p, 16);
*p = L'|';
*++p = 0;
} }
} }
if(p != racBuffer) if (buffer.empty())
*(p - 1) = 0; return std::wstring(unknown_string);
else buffer.pop_back();
return unknown_string; return buffer;
return racBuffer;
} }
const wchar_t* DataManager::FormatType(int type) { const wchar_t* DataManager::FormatType(int type) {
wchar_t* p = tpBuffer; wchar_t* p = tpBuffer;
......
...@@ -33,8 +33,8 @@ public: ...@@ -33,8 +33,8 @@ public:
std::vector<unsigned int> GetSetCodes(std::wstring setname) const; std::vector<unsigned int> GetSetCodes(std::wstring setname) const;
const wchar_t* GetNumString(int num, bool bracket = false); const wchar_t* GetNumString(int num, bool bracket = false);
const wchar_t* FormatLocation(int location, int sequence) const; const wchar_t* FormatLocation(int location, int sequence) const;
const wchar_t* FormatAttribute(int attribute); std::wstring FormatAttribute(unsigned int attribute) const;
const wchar_t* FormatRace(int race); std::wstring FormatRace(unsigned int race) const;
const wchar_t* FormatType(int type); const wchar_t* FormatType(int type);
const wchar_t* FormatSetName(const uint16_t setcode[]); const wchar_t* FormatSetName(const uint16_t setcode[]);
const wchar_t* FormatLinkMarker(int link_marker); const wchar_t* FormatLinkMarker(int link_marker);
...@@ -50,8 +50,6 @@ public: ...@@ -50,8 +50,6 @@ public:
wchar_t numStrings[301][4]{}; wchar_t numStrings[301][4]{};
wchar_t numBuffer[6]{}; wchar_t numBuffer[6]{};
wchar_t attBuffer[128]{};
wchar_t racBuffer[128]{};
wchar_t tpBuffer[128]{}; wchar_t tpBuffer[128]{};
wchar_t scBuffer[128]{}; wchar_t scBuffer[128]{};
wchar_t lmBuffer[32]{}; wchar_t lmBuffer[32]{};
......
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