and more V8. Now we again hit the charset limit, but this time caused by the script itself :-)

svn-id: r6077
This commit is contained in:
Max Horn
2002-12-23 18:56:43 +00:00
parent 6f5a18228d
commit 897fc9a91b
3 changed files with 50 additions and 14 deletions
+39 -3
View File
@@ -598,8 +598,21 @@ void Scumm_v8::o8_arrayOps()
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 @@ void Scumm_v8::o8_roomOps()
{
// 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_verbOps()
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]);
}
}
/*