[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.272,2.273 script_v72he.cpp,2.135,2.136 script_v80he.cpp,2.41,2.42 script_v90he.cpp,2.57,2.58
Travis Howell
kirben at users.sourceforge.net
Wed Sep 29 04:33:05 CEST 2004
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7587/scumm
Modified Files:
intern.h script_v72he.cpp script_v80he.cpp script_v90he.cpp
Log Message:
Correct string for temp save/load, original load/save screens now displays in HE 71+ games.
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.272
retrieving revision 2.273
diff -u -d -r2.272 -r2.273
--- intern.h 26 Sep 2004 15:29:57 -0000 2.272
+++ intern.h 29 Sep 2004 11:25:21 -0000 2.273
@@ -755,6 +755,7 @@
void o72_printWizImage();
void o72_getArrayDimSize();
void o72_getNumFreeArrays();
+ void o72_roomOps();
void o72_actorOps();
void o72_verbOps();
void o72_findObject();
Index: script_v72he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v72he.cpp,v
retrieving revision 2.135
retrieving revision 2.136
diff -u -d -r2.135 -r2.136
--- script_v72he.cpp 28 Sep 2004 21:53:29 -0000 2.135
+++ script_v72he.cpp 29 Sep 2004 11:25:21 -0000 2.136
@@ -240,7 +240,7 @@
OPCODE(o6_invalid),
OPCODE(o70_resourceRoutines),
/* 9C */
- OPCODE(o60_roomOps),
+ OPCODE(o72_roomOps),
OPCODE(o72_actorOps),
OPCODE(o72_verbOps),
OPCODE(o6_getActorFromXY),
@@ -905,12 +905,111 @@
push (num);
}
+void ScummEngine_v72he::o72_roomOps() {
+ int a, b, c, d, e;
+ byte op;
+ byte filename[100];
+
+ op = fetchScriptByte();
+
+ switch (op) {
+ case 172: // SO_ROOM_SCROLL
+ b = pop();
+ a = pop();
+ if (a < (_screenWidth / 2))
+ a = (_screenWidth / 2);
+ if (b < (_screenWidth / 2))
+ b = (_screenWidth / 2);
+ if (a > _roomWidth - (_screenWidth / 2))
+ a = _roomWidth - (_screenWidth / 2);
+ if (b > _roomWidth - (_screenWidth / 2))
+ b = _roomWidth - (_screenWidth / 2);
+ VAR(VAR_CAMERA_MIN_X) = a;
+ VAR(VAR_CAMERA_MAX_X) = b;
+ break;
+
+ case 174: // SO_ROOM_SCREEN
+ b = pop();
+ a = pop();
+ initScreens(a, _screenHeight);
+ break;
+
+ case 175: // SO_ROOM_PALETTE
+ d = pop();
+ c = pop();
+ b = pop();
+ a = pop();
+ setPalColor(d, a, b, c);
+ break;
+
+ case 179: // SO_ROOM_INTENSITY
+ c = pop();
+ b = pop();
+ a = pop();
+ darkenPalette(a, a, a, b, c);
+ break;
+
+ case 180: // SO_ROOM_SAVEGAME
+ _saveTemporaryState = true;
+ _saveLoadSlot = pop();
+ _saveLoadFlag = pop();
+ break;
+
+ case 181: // SO_ROOM_FADE
+ // Defaults to 1 but doesn't use fade effects
+ a = pop();
+ break;
+
+ case 182: // SO_RGB_ROOM_INTENSITY
+ e = pop();
+ d = pop();
+ c = pop();
+ b = pop();
+ a = pop();
+ darkenPalette(a, b, c, d, e);
+ break;
+
+ case 213: // SO_ROOM_NEW_PALETTE
+ a = pop();
+ setPalette(a);
+ break;
+
+ case 220:
+ a = pop();
+ b = pop();
+ copyPalColor(a, b);
+ break;
+
+ case 221:
+ copyScriptString(filename);
+ _saveLoadFlag = pop();
+ _saveLoadSlot = 1;
+ _saveTemporaryState = true;
+ break;
+
+ case 234:
+ b = pop();
+ a = pop();
+ swapObjects(a, b);
+ break;
+
+ case 236:
+ b = pop();
+ a = pop();
+ warning("o72_roomOps: case %d (%d, %d)", op, b, a);
+ break;
+
+ default:
+ error("o72_roomOps: default case %d", op);
+ }
+}
+
void ScummEngine_v72he::o72_actorOps() {
Actor *a;
int i, j, k;
int args[32];
byte b;
- byte name[256];
+ byte string[256];
b = fetchScriptByte();
if (b == 197) {
@@ -1007,8 +1106,8 @@
a->talkColor = pop();
break;
case 88: // SO_ACTOR_NAME
- copyScriptString(name);
- loadPtrToResource(rtActorName, a->number, name);
+ copyScriptString(string);
+ loadPtrToResource(rtActorName, a->number, string);
break;
case 89: // SO_INIT_ANIMATION
a->_initFrame = pop();
@@ -1091,7 +1190,6 @@
break;
case 225:
{
- byte string[128];
copyScriptString(string);
int slot = pop();
@@ -1737,13 +1835,13 @@
mode = pop();
copyScriptString(filename);
- debug(1,"File %s", filename);
-
for (r = strlen((char*)filename); r != 0; r--) {
if (filename[r - 1] == '\\')
break;
}
+ debug(1,"File %s", filename + r);
+
slot = -1;
for (l = 0; l < 17; l++) {
if (_hFileTable[l].isOpen() == false) {
@@ -1758,7 +1856,7 @@
else if (mode == 2)
_hFileTable[slot].open((char*)filename + r, File::kFileWriteMode);
else
- error("o60_openFile(): wrong open file mode %d", mode);
+ error("o72_openFile(): wrong open file mode %d", mode);
if (_hFileTable[slot].isOpen() == false)
slot = -1;
@@ -1867,10 +1965,15 @@
void ScummEngine_v72he::o72_deleteFile() {
byte filename[100];
+ int r;
copyScriptString(filename);
+ for (r = strlen((char*)filename); r != 0; r--) {
+ if (filename[r - 1] == '\\')
+ break;
+ }
- debug(1, "stub o72_deleteFile(%s)", filename);
+ debug(1, "stub o72_deleteFile(%s)", filename + r);
}
void ScummEngine_v72he::o72_getPixel() {
Index: script_v80he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v80he.cpp,v
retrieving revision 2.41
retrieving revision 2.42
diff -u -d -r2.41 -r2.42
--- script_v80he.cpp 26 Sep 2004 15:29:57 -0000 2.41
+++ script_v80he.cpp 29 Sep 2004 11:25:21 -0000 2.42
@@ -240,7 +240,7 @@
OPCODE(o6_invalid),
OPCODE(o70_resourceRoutines),
/* 9C */
- OPCODE(o60_roomOps),
+ OPCODE(o72_roomOps),
OPCODE(o72_actorOps),
OPCODE(o72_verbOps),
OPCODE(o6_getActorFromXY),
Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.57
retrieving revision 2.58
diff -u -d -r2.57 -r2.58
--- script_v90he.cpp 26 Sep 2004 15:29:57 -0000 2.57
+++ script_v90he.cpp 29 Sep 2004 11:25:21 -0000 2.58
@@ -240,7 +240,7 @@
OPCODE(o6_invalid),
OPCODE(o70_resourceRoutines),
/* 9C */
- OPCODE(o60_roomOps),
+ OPCODE(o72_roomOps),
OPCODE(o72_actorOps),
OPCODE(o90_unknown9E),
OPCODE(o6_getActorFromXY),
More information about the Scummvm-git-logs
mailing list