aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2007-12-12 09:45:51 +0000
committerPaul Gilbert2007-12-12 09:45:51 +0000
commit69b1c7b4dd10eea8e16587ce4726e9563f289d40 (patch)
treea11dedaf299ebc3859d47f4e56fc1bac7988e4a8
parentc6871d145e13de0465a26af93791baf84d5fda06 (diff)
downloadscummvm-rg350-69b1c7b4dd10eea8e16587ce4726e9563f289d40.tar.gz
scummvm-rg350-69b1c7b4dd10eea8e16587ce4726e9563f289d40.tar.bz2
scummvm-rg350-69b1c7b4dd10eea8e16587ce4726e9563f289d40.zip
Dynamic fix for several incorrect accented characters in the Italian version
svn-id: r29836
-rw-r--r--engines/lure/surface.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/engines/lure/surface.cpp b/engines/lure/surface.cpp
index 9717c58d47..26d3f65471 100644
--- a/engines/lure/surface.cpp
+++ b/engines/lure/surface.cpp
@@ -44,9 +44,20 @@ static MemoryBlock *int_dialog_frame = NULL;
static uint8 fontSize[256];
int numFontChars;
+const byte char8A[8] = {0x40, 0x20, 0x00, 0x90, 0x90, 0x90, 0x68, 0x00}; // accented `u
+const byte char8D[8] = {0x80, 0x40, 0x00, 0xc0, 0x40, 0x40, 0x60, 0x00}; // accented `i
+const byte char95[8] = {0x40, 0x20, 0x00, 0x60, 0x90, 0x90, 0x60, 0x00}; // accented `o
+
void Surface::initialise() {
- int_font = Disk::getReference().getEntry(FONT_RESOURCE_ID);
- int_dialog_frame = Disk::getReference().getEntry(DIALOG_RESOURCE_ID);
+ Disk &disk = Disk::getReference();
+ int_font = disk.getEntry(FONT_RESOURCE_ID);
+ int_dialog_frame = disk.getEntry(DIALOG_RESOURCE_ID);
+
+ if (LureEngine::getReference().getLanguage() == IT_ITA) {
+ Common::copy(&char8A[0], &char8A[8], int_font->data() + (0x8A - 32) * 8);
+ Common::copy(&char8D[0], &char8D[8], int_font->data() + (0x8D - 32) * 8);
+ Common::copy(&char95[0], &char95[8], int_font->data() + (0x95 - 32) * 8);
+ }
numFontChars = int_font->size() / 8;
if (numFontChars > 256)