WINTERMUTE: Convert ' correctly from CP1252

This commit is contained in:
Einar Johan Trøan Sømåen 2012-10-23 03:05:17 +02:00
parent 4aa1c63eb1
commit 228785eda2
2 changed files with 11 additions and 6 deletions

View File

@ -159,6 +159,11 @@ void BaseFontTT::drawText(const byte *text, int x, int y, int width, TTextAlign
// TODO: Why do we still insist on Widestrings everywhere?
/* if (_gameRef->_textEncoding == TEXT_UTF8) text = StringUtil::Utf8ToWide((char *)Text);
else text = StringUtil::AnsiToWide((char *)Text);*/
// HACK: J.U.L.I.A. uses CP1252, we need to fix that,
// And we still don't have any UTF8-support.
if (_gameRef->_textEncoding != TEXT_UTF8) {
textStr = StringUtil::ansiToWide((char *)text);
}
if (maxLength >= 0 && textStr.size() > (uint32)maxLength) {
textStr = Common::String(textStr.c_str(), (uint32)maxLength);

View File

@ -148,11 +148,11 @@ Utf8String StringUtil::wideToUtf8(const WideString &WideStr) {
// Currently this only does Ansi->ISO 8859, and only for carets.
char simpleAnsiToWide(const AnsiString &str, uint32 &offset) {
char c = str[offset];
byte c = str[offset];
if (c == 92) {
if (c == 146) {
offset++;
return '\'';
return 39; // Replace right-quote with apostrophe
} else {
offset++;
return c;
@ -162,11 +162,11 @@ char simpleAnsiToWide(const AnsiString &str, uint32 &offset) {
//////////////////////////////////////////////////////////////////////////
WideString StringUtil::ansiToWide(const AnsiString &str) {
// TODO: This function gets called a lot, so warnings like these drown out the usefull information
/*Common::String converted = "";
Common::String converted = "";
uint32 index = 0;
while (index != str.size()) {
converted += simpleAnsiToWide(str, index);
}*/
}
// using default os locale!
/* setlocale(LC_CTYPE, "");
@ -176,7 +176,7 @@ WideString StringUtil::ansiToWide(const AnsiString &str) {
WideString ResultString(wstr);
delete[] wstr;
return ResultString;*/
return WideString(str);
return WideString(converted);
}
//////////////////////////////////////////////////////////////////////////