[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.88,2.89 script_v6.cpp,1.117,1.118
Jonathan Gray
khalek at users.sourceforge.net
Sun May 18 21:30:23 CEST 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv18748
Modified Files:
intern.h script_v6.cpp
Log Message:
sync local changes, fix pickOneOf
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.88
retrieving revision 2.89
diff -u -d -r2.88 -r2.89
--- intern.h 18 May 2003 12:52:27 -0000 2.88
+++ intern.h 19 May 2003 04:29:41 -0000 2.89
@@ -326,6 +326,7 @@
int getStackList(int *args, uint maxnum);
int popRoomAndObj(int *room);
void shuffleArray(int num, int minIdx, int maxIdx);
+ void unknownEA_func(int a, int b, int c, int d, int e);
/* Version 6 script opcodes */
void o6_setBlastObjectWindow();
@@ -494,6 +495,7 @@
void o6_localizeArray();
void o6_shuffle();
void o6_unknownFA();
+ void o6_unknownEA();
byte VAR_VIDEONAME;
Index: script_v6.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6.cpp,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -d -r1.117 -r1.118
--- script_v6.cpp 18 May 2003 21:03:57 -0000 1.117
+++ script_v6.cpp 19 May 2003 04:29:41 -0000 1.118
@@ -334,7 +334,7 @@
/* E8 */
OPCODE(o6_invalid),
OPCODE(o6_invalid),
- OPCODE(o6_invalid),
+ OPCODE(o6_unknownEA),
OPCODE(o6_invalid),
/* EC */
OPCODE(o6_getActorLayer),
@@ -783,8 +783,9 @@
void Scumm_v6::o6_cursorCommand() {
int a, i;
int args[16];
+ int op = fetchScriptByte();
- switch (fetchScriptByte()) {
+ switch (op) {
case 0x90:
_cursor.state = 1;
verbMouseOver(0);
@@ -816,6 +817,10 @@
_userPut--;
break;
case 0x99:{
+ if (_features & GF_AFTER_HEV7) {
+ warning("cursorCommand 0x99 PC_SetCursorToID(%d) stub", pop());
+ break;
+ }
int room, obj = popRoomAndObj(&room);
setCursorImg(obj, room, 1);
break;
@@ -836,7 +841,7 @@
makeCursorColorTransparent(pop());
break;
default:
- error("o6_cursorCommand: default case");
+ error("o6_cursorCommand: default case %x", op);
}
VAR(VAR_CURSORSTATE) = _cursor.state;
@@ -1353,9 +1358,10 @@
}
void Scumm_v6::o6_resourceRoutines() {
- int resid;
+ int resid, op;
+ op = fetchScriptByte();
- switch (fetchScriptByte()) {
+ switch (op) {
case 100: /* load script */
resid = pop();
if (_features & GF_AFTER_V7)
@@ -1453,7 +1459,7 @@
break;
}
default:
- error("o6_resourceRoutines: default case");
+ error("o6_resourceRoutines: default case %d", op);
}
}
@@ -2769,8 +2775,8 @@
num = getStackList(args, ARRAYSIZE(args));
i = pop();
- if (i < 0 || i >= num)
- error("o6_pickOneOf: out of range");
+ if (i < 0 || i > num)
+ error("o6_pickOneOf: %d out of range (0, %d)", i, num - 1);
push(args[i]);
}
@@ -3010,6 +3016,34 @@
len = resStrLen(_scriptPointer);
warning("stub o6_unknownFA(%d, \"%s\")", a, _scriptPointer);
_scriptPointer += len + 1;
+}
+
+void Scumm_v6::o6_unknownEA() {
+ int edi, esi, eax;
+ edi = pop();
+ esi = pop();
+
+ if (edi == 0) {
+ eax = esi;
+ esi = edi;
+ edi = eax;
+ }
+
+ eax = fetchScriptByte();
+ switch (eax) {
+ case 197:
+ unknownEA_func(5, esi, edi, fetchScriptWord(), eax);
+ break;
+ case 202:
+ unknownEA_func(3, esi, edi, fetchScriptWord(), eax);
+ break;
+ default:
+ break;
+ }
+}
+
+void Scumm_v6::unknownEA_func(int a, int b, int c, int d, int e) {
+ warning("unknownEA_func(%d, %d, %d, %d, %d) stub\n", a, b, c, d, e);
}
void Scumm_v6::o6_localizeArray() {
More information about the Scummvm-git-logs
mailing list