[Scummvm-cvs-logs] CVS: scummvm/scumm script.cpp,1.20,1.21 script_v6.cpp,1.15,1.16 script_v8.cpp,2.12,2.13
Max Horn
fingolfin at users.sourceforge.net
Mon Dec 23 10:57:03 CET 2002
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv8793
Modified Files:
script.cpp script_v6.cpp script_v8.cpp
Log Message:
and more V8. Now we again hit the charset limit, but this time caused by the script itself :-)
Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- script.cpp 23 Dec 2002 18:37:56 -0000 1.20
+++ script.cpp 23 Dec 2002 18:56:42 -0000 1.21
@@ -1063,17 +1063,6 @@
return -1;
}
-void Scumm::arrayop_1(int a, byte *ptr)
-{
- ArrayHeader *ah;
- int r;
- int len = getStringLen(ptr);
-
- r = defineArray(a, 4, 0, len);
- ah = (ArrayHeader *)getResourceAddress(rtString, r);
- copyString(ah->data, ptr, len);
-}
-
void Scumm::copyString(byte *dst, byte *src, int len)
{
if (!src) {
Index: script_v6.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- script_v6.cpp 23 Dec 2002 15:46:53 -0000 1.15
+++ script_v6.cpp 23 Dec 2002 18:56:43 -0000 1.16
@@ -1924,6 +1924,17 @@
push(getVerbEntrypoint(v, e));
}
+void Scumm::arrayop_1(int a, byte *ptr)
+{
+ ArrayHeader *ah;
+ int r;
+ int len = getStringLen(ptr);
+
+ r = defineArray(a, 4, 0, len);
+ ah = (ArrayHeader *)getResourceAddress(rtString, r);
+ copyString(ah->data, ptr, len);
+}
+
void Scumm_v6::o6_arrayOps()
{
int a, b, c, d, num;
Index: script_v8.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v8.cpp,v
retrieving revision 2.12
retrieving revision 2.13
diff -u -d -r2.12 -r2.13
--- script_v8.cpp 23 Dec 2002 18:37:56 -0000 2.12
+++ script_v8.cpp 23 Dec 2002 18:56:43 -0000 2.13
@@ -598,8 +598,21 @@
switch (subOp) {
case 0x14: // SO_ASSIGN_STRING
+ {
+ int idx = pop();
+ ArrayHeader *ah;
+ int r;
+ int len = getStringLen(NULL);
+
+ r = defineArray(array, 4, 0, len);
+ ah = (ArrayHeader *)getResourceAddress(rtString, r);
+ copyString(ah->data + idx, NULL, len);
+ }
+ break;
case 0x15: // SO_ASSIGN_SCUMMVAR_LIST
+ // TODO
case 0x16: // SO_ASSIGN_2DIM_LIST
+ // TODO
default:
error("o8_arrayOps: default case %d (array %d)", subOp, array);
}
@@ -764,13 +777,22 @@
{
// TODO
byte subOp = fetchScriptByte();
+ int a;
+
switch (subOp) {
case 0x52: // SO_ROOM_PALETTE Set room palette
-// case 0x53: // SO_339
-// case 0x54: // SO_340
case 0x55: // SO_ROOM_INTENSITY Set room intensity
-// case 0x56: // SO_342
+ error("o8_roomOps: default case %d", subOp);
+ break;
case 0x57: // SO_ROOM_FADE Fade room
+ a = pop();
+ if (a) {
+ _switchRoomEffect = (byte)(a);
+ _switchRoomEffect2 = (byte)(a >> 8);
+ } else {
+ fadeIn(_newEffect);
+ }
+ break;
case 0x58: // SO_ROOM_RGB_INTENSITY Set room color intensity
case 0x59: // SO_ROOM_TRANSFORM Transform room
case 0x5A: // SO_ROOM_CYCLE_SPEED Set palette cycling speed
@@ -881,10 +903,24 @@
void Scumm_v8::o8_system()
{
+ // TODO
+ byte subOp = fetchScriptByte();
+ switch (subOp) {
+ default:
+ error("o8_system: default case %d", subOp);
+ }
}
void Scumm_v8::o8_kludge()
{
+ // TODO
+ int16 args[30];
+ getStackList(args, sizeof(args) / sizeof(args[0]));
+
+ switch (args[0]) {
+ default:
+ warning("o8_kludge: default case %d", args[0]);
+ }
}
/*
More information about the Scummvm-git-logs
mailing list