aboutsummaryrefslogtreecommitdiff
path: root/scumm/script_v6he.cpp
diff options
context:
space:
mode:
authorTravis Howell2004-09-04 08:13:48 +0000
committerTravis Howell2004-09-04 08:13:48 +0000
commit255736dfb70099b7cacea3f071453b5d48307f5f (patch)
tree4f97028ede79a7e428a80f171da7324d1df7056c /scumm/script_v6he.cpp
parent4bd05071e511c077811040c7c746d1c5f8e8c3f8 (diff)
downloadscummvm-rg350-255736dfb70099b7cacea3f071453b5d48307f5f.tar.gz
scummvm-rg350-255736dfb70099b7cacea3f071453b5d48307f5f.tar.bz2
scummvm-rg350-255736dfb70099b7cacea3f071453b5d48307f5f.zip
Complete actor clipping override code for HE games.
Add akos speech queue for HE games Minor cleanup svn-id: r14883
Diffstat (limited to 'scumm/script_v6he.cpp')
-rw-r--r--scumm/script_v6he.cpp39
1 files changed, 21 insertions, 18 deletions
diff --git a/scumm/script_v6he.cpp b/scumm/script_v6he.cpp
index 853b0b7a51..d6416d59f9 100644
--- a/scumm/script_v6he.cpp
+++ b/scumm/script_v6he.cpp
@@ -549,7 +549,7 @@ void ScummEngine_v6he::o6_roomOps() {
void ScummEngine_v6he::o6_actorOps() {
Actor *a;
- int i, j, k, l;
+ int i, j, k;
int args[8];
byte b;
byte name[256];
@@ -571,18 +571,18 @@ void ScummEngine_v6he::o6_actorOps() {
break;
case 30:
// _heversion >= 70
- l = pop();
- k = pop();
- j = pop();
- i = pop();
+ _actorClipBottom = pop();
+ _actorClipRight = pop();
+ _actorClipTop = pop();
+ _actorClipLeft = pop();
warning("o6_actorOps: stub case %d", b);
break;
case 64:
// _heversion >= 72
- l = pop();
- k = pop();
- j = pop();
- i = pop();
+ _actorClipBottom = pop();
+ _actorClipRight = pop();
+ _actorClipTop = pop();
+ _actorClipLeft = pop();
warning("o6_actorOps: stub case %d", b);
break;
case 76: // SO_COSTUME
@@ -720,12 +720,16 @@ void ScummEngine_v6he::o6_actorOps() {
break;
case 225:
{
- byte string[256];
+ byte string[128];
copyScriptString(string);
- _actorToPrintStrFor = pop();
- _string[0].loadDefault();
- actorTalk(string);
- warning("o6_actorOps: stub case %d", b);
+ int slot = pop();
+
+ int len = resStrLen(string) + 1;
+ addMessageToStack(string, _queueTalkString[slot], len);
+
+ _queueTalkPosX[slot] = a->talkPosX;
+ _queueTalkPosY[slot] = a->talkPosY;
+ _queueTalkColor[slot] = a->talkColor;
break;
}
default:
@@ -790,7 +794,7 @@ void ScummEngine_v6he::o6_kernelSetFunctions() {
//Used before mini games in 3DO versions, seems safe to ignore.
break;
default:
- warning("o6_kernelSetFunctions: default case %d (param count %d)", args[0], num);
+ error("o6_kernelSetFunctions: default case %d (param count %d)", args[0], num);
break;
}
}
@@ -860,7 +864,6 @@ void ScummEngine_v6he::o6_kernelGetFunctions() {
case 1:
// Used to store images when decorating cake in
// Fatty Bear's Birthday Surprise
- // XXX gdi_virtScreen = 0;
writeVar(0, 0);
defineArray(0, kByteArray, 0, virtScreenSave(0, args[1], args[2], args[3], args[4]));
retval = readVar(0);
@@ -869,7 +872,7 @@ void ScummEngine_v6he::o6_kernelGetFunctions() {
push(retval);
break;
default:
- warning("o6_kernelGetFunctions: default case %d", args[0]);
+ error("o6_kernelGetFunctions: default case %d", args[0]);
}
}
@@ -1215,7 +1218,7 @@ void ScummEngine_v6he::o6_redimArray() {
redimArray(fetchScriptWord(), newX, newY, kByteArray);
break;
default:
- break;
+ error("o6_redimArray: default type %d", subcode);
}
}