aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2004-09-12 01:12:06 +0000
committerTravis Howell2004-09-12 01:12:06 +0000
commitc77df77180c49a684de568cab7de6de7c38387d5 (patch)
tree5a3a25bb4bd119bda6b626416acba8451b227262 /scumm
parentad6c8217bcfc797b0017102f0ecbd3518599d34c (diff)
downloadscummvm-rg350-c77df77180c49a684de568cab7de6de7c38387d5.tar.gz
scummvm-rg350-c77df77180c49a684de568cab7de6de7c38387d5.tar.bz2
scummvm-rg350-c77df77180c49a684de568cab7de6de7c38387d5.zip
Use talkie resource for HE 99+ games.
svn-id: r15015
Diffstat (limited to 'scumm')
-rw-r--r--scumm/script_v72he.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp
index 92691f98b4..366f55e22d 100644
--- a/scumm/script_v72he.cpp
+++ b/scumm/script_v72he.cpp
@@ -1935,8 +1935,8 @@ void ScummEngine_v72he::o72_unknownFA() {
}
void ScummEngine_v72he::decodeParseString(int m, int n) {
- byte b;
- int i, id, color;
+ byte b, *ptr;
+ int i, color, size;
int args[31];
byte name[1024];
@@ -2008,8 +2008,24 @@ void ScummEngine_v72he::decodeParseString(int m, int n) {
}
break;
case 0xE1:
- id = pop();
- // Load and display talkie resource.
+ ptr = getResourceAddress(rtTalkie, pop());
+ size = READ_BE_UINT32(ptr + 12);
+ memcpy(name, ptr + 16, size);
+
+ switch (m) {
+ case 0:
+ actorTalk(name);
+ break;
+ case 1:
+ drawString(1, name);
+ break;
+ case 2:
+ unkMessage1(name);
+ break;
+ case 3:
+ unkMessage2(name);
+ break;
+ }
break;
case 0xF9:
color = pop();