[Scummvm-cvs-logs] SF.net SVN: scummvm: [22825] scummvm/trunk/engines/simon
kirben at users.sourceforge.net
kirben at users.sourceforge.net
Thu Jun 1 19:36:04 CEST 2006
Revision: 22825
Author: kirben
Date: 2006-06-01 19:35:04 -0700 (Thu, 01 Jun 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=22825&view=rev
Log Message:
-----------
Improve Hebrew support
Modified Paths:
--------------
scummvm/trunk/engines/simon/charset.cpp
scummvm/trunk/engines/simon/items.cpp
scummvm/trunk/engines/simon/saveload.cpp
Modified: scummvm/trunk/engines/simon/charset.cpp
===================================================================
--- scummvm/trunk/engines/simon/charset.cpp 2006-06-02 01:34:34 UTC (rev 22824)
+++ scummvm/trunk/engines/simon/charset.cpp 2006-06-02 02:35:04 UTC (rev 22825)
@@ -408,7 +408,7 @@
} else if (c == 13 || c == 10) {
video_putchar_newline(window);
} else if ((c == 1 && _language != Common::HB_ISR) || (c == 8)) {
- if (_language == Common::HB_ISR) { //Hebrew
+ if (_language == Common::HB_ISR) {
if (b >= 64 && b < 91)
width = _hebrewCharWidths [b - 64];
@@ -446,13 +446,13 @@
window->textRow--;
}
- if (_language == Common::HB_ISR) { //Hebrew
+ if (_language == Common::HB_ISR) {
if (c >= 64 && c < 91)
width = _hebrewCharWidths [c - 64];
- window->textColumnOffset -= width;
+ window->textColumnOffset -= width;
if (window->textColumnOffset >= width) {
+ window->textColumnOffset += 8;
window->textColumn++;
- window->textColumnOffset += 8;
}
video_putchar_drawchar(window, (window->width + window->x - window->textColumn) * 8, window->textRow * 8 + window->y, c);
window->textLength++;
Modified: scummvm/trunk/engines/simon/items.cpp
===================================================================
--- scummvm/trunk/engines/simon/items.cpp 2006-06-02 01:34:34 UTC (rev 22824)
+++ scummvm/trunk/engines/simon/items.cpp 2006-06-02 02:35:04 UTC (rev 22825)
@@ -1406,16 +1406,8 @@
// 177: inventory descriptions
uint vgaSpriteId = getVarOrByte();
uint color = getVarOrByte();
- const char *string_ptr = NULL;
- TextLocation *tl = NULL;
- char buf[256];
SubObject *subObject = (SubObject *)findChildOfType(getNextItemPtr(), 2);
- if (subObject != NULL && subObject->objectFlags & kOFText) {
- string_ptr = (const char *)getStringPtrByID(subObject->objectFlagValue[0]);
- tl = getTextLocation(vgaSpriteId);
- }
-
if (getFeatures() & GF_TALKIE) {
if (subObject != NULL && subObject->objectFlags & kOFVoice) {
uint offs = getOffsetOfChild2Param(subObject, kOFVoice);
@@ -1426,13 +1418,28 @@
}
}
- if (subObject != NULL && (subObject->objectFlags & kOFText) && _subtitles) {
+ if (subObject != NULL && subObject->objectFlags & kOFText && _subtitles) {
+ const char *stringPtr = (const char *)getStringPtrByID(subObject->objectFlagValue[0]);
+ TextLocation *tl = getTextLocation(vgaSpriteId);
+ char buf[256];
+ int j, k;
+
if (subObject->objectFlags & kOFNumber) {
- sprintf(buf, "%d%s", subObject->objectFlagValue[getOffsetOfChild2Param(subObject, kOFNumber)], string_ptr);
- string_ptr = buf;
+ if (_language == Common::HB_ISR) {
+ j = subObject->objectFlagValue[getOffsetOfChild2Param(subObject, kOFNumber)];
+ k = (j % 10) * 10;
+ k += j / 10;
+ if (!(j % 10))
+ sprintf(buf,"0%d%s", k, stringPtr);
+ else
+ sprintf(buf,"%d%s", k, stringPtr);
+ } else {
+ sprintf(buf,"%d%s", subObject->objectFlagValue[getOffsetOfChild2Param(subObject, kOFNumber)], stringPtr);
+ }
+ stringPtr = buf;
}
- if (string_ptr != NULL)
- printScreenText(vgaSpriteId, color, string_ptr, tl->x, tl->y, tl->width);
+ if (stringPtr != NULL)
+ printScreenText(vgaSpriteId, color, stringPtr, tl->x, tl->y, tl->width);
}
}
@@ -1704,16 +1711,8 @@
// 177: inventory descriptions
uint vgaSpriteId = getVarOrByte();
uint color = getVarOrByte();
- const char *string_ptr = NULL;
- TextLocation *tl = NULL;
- char buf[256];
SubObject *subObject = (SubObject *)findChildOfType(getNextItemPtr(), 2);
- if (subObject != NULL && subObject->objectFlags & kOFText) {
- string_ptr = (const char *)getStringPtrByID(subObject->objectFlagValue[0]);
- tl = getTextLocation(vgaSpriteId);
- }
-
if (getFeatures() & GF_TALKIE) {
if (subObject != NULL && subObject->objectFlags & kOFVoice) {
uint speechId = subObject->objectFlagValue[getOffsetOfChild2Param(subObject, kOFVoice)];
@@ -1768,13 +1767,28 @@
}
- if (subObject != NULL && (subObject->objectFlags & kOFText) && _subtitles) {
+ if (subObject != NULL && subObject->objectFlags & kOFText && _subtitles) {
+ const char *stringPtr = (const char *)getStringPtrByID(subObject->objectFlagValue[0]);
+ TextLocation *tl = getTextLocation(vgaSpriteId);
+ char buf[256];
+ int j, k;
+
if (subObject->objectFlags & kOFNumber) {
- sprintf(buf, "%d%s", subObject->objectFlagValue[getOffsetOfChild2Param(subObject, kOFNumber)], string_ptr);
- string_ptr = buf;
+ if (_language == Common::HB_ISR) {
+ j = subObject->objectFlagValue[getOffsetOfChild2Param(subObject, kOFNumber)];
+ k = (j % 10) * 10;
+ k += j / 10;
+ if (!(j % 10))
+ sprintf(buf,"0%d%s", k, stringPtr);
+ else
+ sprintf(buf,"%d%s", k, stringPtr);
+ } else {
+ sprintf(buf,"%d%s", subObject->objectFlagValue[getOffsetOfChild2Param(subObject, kOFNumber)], stringPtr);
+ }
+ stringPtr = buf;
}
- if (string_ptr != NULL)
- printScreenText(vgaSpriteId, color, string_ptr, tl->x, tl->y, tl->width);
+ if (stringPtr != NULL)
+ printScreenText(vgaSpriteId, color, stringPtr, tl->x, tl->y, tl->width);
}
}
Modified: scummvm/trunk/engines/simon/saveload.cpp
===================================================================
--- scummvm/trunk/engines/simon/saveload.cpp 2006-06-02 01:34:34 UTC (rev 22824)
+++ scummvm/trunk/engines/simon/saveload.cpp 2006-06-02 02:35:04 UTC (rev 22825)
@@ -60,7 +60,7 @@
showMessageFormat("\xC");
- memset(dst, 0, 18 * 6);
+ memset(dst, 0, 108);
slot = curpos;
@@ -70,10 +70,18 @@
in->read(dst, 18);
delete in;
+
last_slot = slot;
- if (slot < 10)
+ if (slot < 10) {
showMessageFormat(" ");
- showMessageFormat("%d", slot);
+ } else if (_language == Common::HB_ISR) {
+ last_slot = (slot % 10) * 10;
+ last_slot += slot / 10;
+ }
+
+ if (_language == Common::HB_ISR && !(slot % 10))
+ showMessageFormat("0");
+ showMessageFormat("%d", last_slot);
showMessageFormat(".%s\n", dst);
dst += 18;
slot++;
@@ -240,7 +248,7 @@
window->textRow = unk132_result;
- if (_language == Common::HB_ISR) { //Hebrew
+ if (_language == Common::HB_ISR) {
// init x offset with a 2 character savegame number + a period (18 pix)
window->textColumn = 3;
window->textColumnOffset = 6;
@@ -257,7 +265,7 @@
// now process entire savegame name to get correct x offset for cursor
name_len = 0;
while (name[name_len]) {
- if (_language == Common::HB_ISR) { //Hebrew
+ if (_language == Common::HB_ISR) {
byte width = 6;
if (name[name_len] >= 64 && name[name_len] < 91)
width = _hebrewCharWidths [name[name_len] - 64];
@@ -322,7 +330,7 @@
name_len--;
m = name[name_len];
- if (_language == Common::HB_ISR) //Hebrew
+ if (_language == Common::HB_ISR)
x = 8;
else
x = (name[name_len] == 'i' || name[name_len] == 'l') ? 1 : 8;
@@ -432,7 +440,7 @@
old_text = window->text_color;
window->text_color = window->fill_color;
- if (_language == Common::HB_ISR) { //Hebrew
+ if (_language == Common::HB_ISR) {
x = 128;
} else {
x += 120;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list