aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorTravis Howell2009-08-29 10:11:19 +0000
committerTravis Howell2009-08-29 10:11:19 +0000
commita6ec9f9f1735d07890a1a84fcba615ca7bd1ce36 (patch)
tree8aa4df2b954d68ed632edc44257116e1eb82c2c1 /engines/scumm
parent84c1fc6399c541a80e627a6a1970f255cc2d6d54 (diff)
downloadscummvm-rg350-a6ec9f9f1735d07890a1a84fcba615ca7bd1ce36.tar.gz
scummvm-rg350-a6ec9f9f1735d07890a1a84fcba615ca7bd1ce36.tar.bz2
scummvm-rg350-a6ec9f9f1735d07890a1a84fcba615ca7bd1ce36.zip
Add patch #2846476 - MM C64: german verbs fix.
svn-id: r43797
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/verbs.cpp52
1 files changed, 27 insertions, 25 deletions
diff --git a/engines/scumm/verbs.cpp b/engines/scumm/verbs.cpp
index 1ab9d72a58..06ff84fcd2 100644
--- a/engines/scumm/verbs.cpp
+++ b/engines/scumm/verbs.cpp
@@ -68,34 +68,43 @@ static const VerbSettings v0VerbTable_English[] = {
// FIXME: Replace * with the correct character
static const VerbSettings v0VerbTable_German[] = {
- { 1, 0, 1, 0, "Ziehe"},
- { 2, 0, 0, 0, "Dr<cke"},
- { 3, 7, 2, 4, "Lese"},
- { 4, 23, 0, 0, "Schlie*e auf"},
- { 5, 37, 1, 0, "Ein"},
- { 6, 37, 0, 0, "Aus"},
+ { 1, 7, 0, 0, "$ffne"},
+ { 2, 13, 1, 0, "Schlie*e"},
+ { 3, 0, 2, 4, "Gebe"},
+ { 4, 37, 1, 0, "Ein"},
+ { 5, 37, 0, 0, "Aus"},
+ { 6, 23, 1, 2, "Repariere"},
{ 7, 34, 2, 0, "Person"},
- { 8, 13, 1, 2, "Schlie*e"},
- { 9, 7, 1, 0, "Nimm"},
- {10, 0, 2, 0, "Gebe"},
- {11, 23, 1, 255, "Repariere"},
- {12, 7, 0, 0, "$ffne"},
+ { 8, 23, 0, 2, "Schlie*e auf"},
+ { 9, 0, 0, 0, "Dr<cke"},
+ {10, 0, 1, 0, "Ziehe"},
+ {11, 23, 2, 255, "Benutz"},
+ {12, 7, 2, 0, "Lese"},
{13, 13, 0, 0, "Gehe zu"},
- {14, 13, 2, 0, "Was ist"},
- {15, 23, 2, 0, "Benutz"}
+ {14, 7, 1, 0, "Nimm"},
+ {15, 13, 2, 0, "Was ist"}
};
void ScummEngine_v0::resetVerbs() {
VirtScreen *virt = &_virtscr[kVerbVirtScreen];
VerbSlot *vs;
+ const VerbSettings *vtable;
int i;
+ switch (_language) {
+ case Common::DE_DEU:
+ vtable = (const VerbSettings*)v0VerbTable_German;
+ break;
+ default:
+ vtable = (const VerbSettings*)v0VerbTable_English;
+ }
+
for (i = 1; i < 16; i++)
killVerb(i);
for (i = 1; i < 16; i++) {
vs = &_verbs[i];
- vs->verbid = v0VerbTable_English[i - 1].id;
+ vs->verbid = vtable[i - 1].id;
vs->color = 5;
vs->hicolor = 7;
vs->dimcolor = 11;
@@ -106,17 +115,10 @@ void ScummEngine_v0::resetVerbs() {
vs->key = 0;
vs->center = 0;
vs->imgindex = 0;
- vs->prep = v0VerbTable_English[i - 1].prep;
-
- if (_language == Common::DE_DEU) {
- vs->curRect.left = v0VerbTable_German[i - 1].x_pos * 8;
- vs->curRect.top = v0VerbTable_German[i - 1].y_pos * 8 + virt->topline + 8;
- loadPtrToResource(rtVerb, i, (const byte*)v0VerbTable_German[i - 1].name);
- } else {
- vs->curRect.left = v0VerbTable_English[i - 1].x_pos * 8;
- vs->curRect.top = v0VerbTable_English[i - 1].y_pos * 8 + virt->topline + 8;
- loadPtrToResource(rtVerb, i, (const byte*)v0VerbTable_English[i - 1].name);
- }
+ vs->prep = vtable[i - 1].prep;
+ vs->curRect.left = vtable[i - 1].x_pos * 8;
+ vs->curRect.top = vtable[i - 1].y_pos * 8 + virt->topline + 8;
+ loadPtrToResource(rtVerb, i, (const byte*)vtable[i - 1].name);
}
}