aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2006-02-11 00:44:04 +0000
committerTravis Howell2006-02-11 00:44:04 +0000
commit44763fcce90a9ccfb40d1430e015b45546f08569 (patch)
treea79a216ba70de56ecda55789a2db85d3873bd86a
parent590289d937be8104f03a22727f0796c22106ffda (diff)
downloadscummvm-rg350-44763fcce90a9ccfb40d1430e015b45546f08569.tar.gz
scummvm-rg350-44763fcce90a9ccfb40d1430e015b45546f08569.tar.bz2
scummvm-rg350-44763fcce90a9ccfb40d1430e015b45546f08569.zip
Add support for Spanish version of balloon
svn-id: r20484
-rw-r--r--scumm/intern_he.h1
-rw-r--r--scumm/script.cpp16
-rw-r--r--scumm/script_v100he.cpp2
-rw-r--r--scumm/script_v72he.cpp10
-rw-r--r--scumm/script_v8.cpp12
-rw-r--r--scumm/script_v80he.cpp7
-rw-r--r--scumm/script_v90he.cpp2
-rw-r--r--scumm/scumm-md5.h3
-rw-r--r--scumm/scumm.h2
-rw-r--r--tools/scumm-md5.txt1
10 files changed, 33 insertions, 23 deletions
diff --git a/scumm/intern_he.h b/scumm/intern_he.h
index 1bd8e5afa2..1011d1b31f 100644
--- a/scumm/intern_he.h
+++ b/scumm/intern_he.h
@@ -370,6 +370,7 @@ protected:
void o80_stringToInt();
void o80_getSoundVar();
void o80_localizeArrayToRoom();
+ void o80_sourceDebug();
void o80_readConfigFile();
void o80_writeConfigFile();
void o80_cursorCommand();
diff --git a/scumm/script.cpp b/scumm/script.cpp
index f2562fef52..a3dee09d69 100644
--- a/scumm/script.cpp
+++ b/scumm/script.cpp
@@ -495,6 +495,22 @@ int ScummEngine::fetchScriptWordSigned() {
return (int16)fetchScriptWord();
}
+uint ScummEngine::fetchScriptDWord() {
+ int a;
+ if (*_lastCodePtr + sizeof(MemBlkHeader) != _scriptOrgPointer) {
+ uint32 oldoffs = _scriptPointer - _scriptOrgPointer;
+ getScriptBaseAddress();
+ _scriptPointer = _scriptOrgPointer + oldoffs;
+ }
+ a = READ_LE_UINT32(_scriptPointer);
+ _scriptPointer += 4;
+ return a;
+}
+
+int ScummEngine::fetchScriptDWordSigned() {
+ return (int32)fetchScriptDWord();
+}
+
int ScummEngine::readVar(uint var) {
int a;
diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp
index 091f2d55cc..9b1a3e8183 100644
--- a/scumm/script_v100he.cpp
+++ b/scumm/script_v100he.cpp
@@ -190,7 +190,7 @@ void ScummEngine_v100he::setupOpcodes() {
OPCODE(o6_delaySeconds),
OPCODE(o100_startSound),
/* 78 */
- OPCODE(o6_invalid),
+ OPCODE(o80_sourceDebug),
OPCODE(o100_setSpriteInfo),
OPCODE(o6_stampObject),
OPCODE(o72_startObject),
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp
index 8b335bf425..3501a88d41 100644
--- a/scumm/script_v72he.cpp
+++ b/scumm/script_v72he.cpp
@@ -766,15 +766,7 @@ int ScummEngine_v72he::findObject(int x, int y, int num, int *args) {
}
void ScummEngine_v72he::o72_pushDWord() {
- int a;
- if (*_lastCodePtr + sizeof(MemBlkHeader) != _scriptOrgPointer) {
- uint32 oldoffs = _scriptPointer - _scriptOrgPointer;
- getScriptBaseAddress();
- _scriptPointer = _scriptOrgPointer + oldoffs;
- }
- a = READ_LE_UINT32(_scriptPointer);
- _scriptPointer += 4;
- push(a);
+ push(fetchScriptDWordSigned());
}
void ScummEngine_v72he::o72_getScriptString() {
diff --git a/scumm/script_v8.cpp b/scumm/script_v8.cpp
index 72e5890b11..3ac41d51b6 100644
--- a/scumm/script_v8.cpp
+++ b/scumm/script_v8.cpp
@@ -377,19 +377,11 @@ const char *ScummEngine_v8::getOpcodeDesc(byte i) {
// In V8, the word size is 4 byte, not 2 bytes as in V6/V7 games
uint ScummEngine_v8::fetchScriptWord() {
- int a;
- if (*_lastCodePtr + sizeof(MemBlkHeader) != _scriptOrgPointer) {
- uint32 oldoffs = _scriptPointer - _scriptOrgPointer;
- getScriptBaseAddress();
- _scriptPointer = _scriptOrgPointer + oldoffs;
- }
- a = READ_LE_UINT32(_scriptPointer);
- _scriptPointer += 4;
- return a;
+ return fetchScriptDWord();
}
int ScummEngine_v8::fetchScriptWordSigned() {
- return (int32)fetchScriptWord();
+ return (int32)fetchScriptDWordSigned();
}
int ScummEngine_v8::readVar(uint var) {
diff --git a/scumm/script_v80he.cpp b/scumm/script_v80he.cpp
index 46fa09962a..a810332c94 100644
--- a/scumm/script_v80he.cpp
+++ b/scumm/script_v80he.cpp
@@ -138,7 +138,7 @@ void ScummEngine_v80he::setupOpcodes() {
OPCODE(o80_localizeArrayToRoom),
OPCODE(o6_wordArrayIndexedWrite),
/* 4C */
- OPCODE(o6_invalid),
+ OPCODE(o80_sourceDebug),
OPCODE(o80_readConfigFile),
OPCODE(o80_writeConfigFile),
OPCODE(o6_wordVarInc),
@@ -439,6 +439,11 @@ void ScummEngine_v80he::o80_localizeArrayToRoom() {
localizeArray(slot, 0xFF);
}
+void ScummEngine_v80he::o80_sourceDebug() {
+ fetchScriptDWord();
+ fetchScriptDWord();
+}
+
void ScummEngine_v80he::o80_readConfigFile() {
byte option[128], section[128], filename[256];
ArrayHeader *ah;
diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp
index e4a41c6f56..6708d072a2 100644
--- a/scumm/script_v90he.cpp
+++ b/scumm/script_v90he.cpp
@@ -136,7 +136,7 @@ void ScummEngine_v90he::setupOpcodes() {
OPCODE(o80_localizeArrayToRoom),
OPCODE(o6_wordArrayIndexedWrite),
/* 4C */
- OPCODE(o6_invalid),
+ OPCODE(o80_sourceDebug),
OPCODE(o80_readConfigFile),
OPCODE(o80_writeConfigFile),
OPCODE(o6_wordVarInc),
diff --git a/scumm/scumm-md5.h b/scumm/scumm-md5.h
index 9948a2ab27..f442f38ba3 100644
--- a/scumm/scumm-md5.h
+++ b/scumm/scumm-md5.h
@@ -1,5 +1,5 @@
/*
- This file was generated by the md5table tool on Sat Jan 21 12:36:17 2006
+ This file was generated by the md5table tool on Sat Feb 11 00:38:53 2006
DO NOT EDIT MANUALLY!
*/
@@ -80,6 +80,7 @@ static const MD5Table md5table[] = {
{ "2108d83dcf09f8adb4bc524669c8cf51", "PuttTime", Common::EN_USA, Common::kPlatformUnknown },
{ "21a6592322f92550f144f68a8a4e685e", "dig", Common::FR_FRA, Common::kPlatformMacintosh },
{ "21abe302e1b1e2b66d6f5c12e241ebfd", "freddicove", Common::RU_RUS, Common::kPlatformWindows },
+ { "2232b0b9411575b1f9961713ebc9de61", "balloon", Common::ES_ESP, Common::kPlatformWindows },
{ "225e18566e810c634bf7de63e7568e3e", "mustard", Common::EN_USA, Common::kPlatformUnknown },
{ "22c9eb04455440131ffc157aeb8d40a8", "fbear", Common::EN_USA, Common::kPlatformWindows },
{ "22d07d6c386c9c25aca5dac2a0c0d94b", "maniac", Common::SE_SWE, Common::kPlatformNES },
diff --git a/scumm/scumm.h b/scumm/scumm.h
index 92c0ea54ad..d2ba99a355 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -677,6 +677,8 @@ protected:
byte fetchScriptByte();
virtual uint fetchScriptWord();
virtual int fetchScriptWordSigned();
+ uint fetchScriptDWord();
+ int fetchScriptDWordSigned();
void ignoreScriptWord() { fetchScriptWord(); }
void ignoreScriptByte() { fetchScriptByte(); }
virtual void getResultPos();
diff --git a/tools/scumm-md5.txt b/tools/scumm-md5.txt
index 7cbd0a4e4f..eb2ec3a13b 100644
--- a/tools/scumm-md5.txt
+++ b/tools/scumm-md5.txt
@@ -565,6 +565,7 @@ Putt-Putt and Pep's Balloon-O-Rama
CD All en 8e3241ddd6c8dadf64305e8740d45e13 balloon Kirben
CD Windows en d7b247c26bf1f01f8f7daf142be84de3 balloon iziku
CD Windows ru 145bd3373574feb668cc2eea2ec6cf86 balloon sev
+ CD Windows es 2232b0b9411575b1f9961713ebc9de61 balloon exiltd
Putt-Putt and Pep's Dog on a Stick
CD All en eae95b2b3546d8ba86ae1d397c383253 dog Kirben