[Scummvm-cvs-logs] CVS: scummvm/scumm actor.h,1.11,1.12 debugger.cpp,1.14,1.15 intern.h,2.30,2.31 resource.cpp,1.53,1.54 script_v8.cpp,2.128,2.129 scummvm.cpp,2.45,2.46
James Brown
ender at users.sourceforge.net
Sat Jan 25 22:18:01 CET 2003
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1:/tmp/cvs-serv4762/scumm
Modified Files:
actor.h debugger.cpp intern.h resource.cpp script_v8.cpp
scummvm.cpp
Log Message:
LCA03 sync: Modified version of the untrap patch, debugger
savegame/loadgame changes, attempts at making the ComI save/load screen
(F1) work. The savegame part of the screen does not work due to a crash,
the load part SHOULD... but something resets the saveload flags before
they are processed (help! :)
Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- actor.h 6 Jan 2003 16:03:59 -0000 1.11
+++ actor.h 26 Jan 2003 06:17:24 -0000 1.12
@@ -127,9 +127,9 @@
void setBox(int box);
int updateActorDirection(bool is_walking);
- void adjustActorPos();
public:
+ void adjustActorPos();
AdjustBoxResult adjustXYToBeInBox(int dstX, int dstY, int pathfrom);
void setDirection(int direction);
Index: debugger.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/debugger.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- debugger.cpp 18 Jan 2003 16:26:53 -0000 1.14
+++ debugger.cpp 26 Jan 2003 06:17:25 -0000 1.15
@@ -284,25 +284,25 @@
_s->_saveLoadCompatible = false;
_detach_now = true;
- } else {
- Debug_Printf("Syntax: savegame <slotnum>\n");
+ return false;
}
- return false;
+
+ Debug_Printf("Syntax: loadgame <slotnum>\n");
+ return true;
}
bool ScummDebugger::Cmd_SaveGame(int argc, const char **argv) {
- if (argc > 1) {
+ if (argc > 2) {
int slot = atoi(argv[1]);
-
+
+ strcpy(_s->_saveLoadName, argv[2]);
_s->_saveLoadSlot = slot;
_s->_saveLoadFlag = 1;
_s->_saveLoadCompatible = false;
-
- _detach_now = true;
- } else {
- Debug_Printf("Syntax: savegame <slotnum>\n");
- }
- return false;
+ } else
+ Debug_Printf("Syntax: savegame <slotnum> <name>\n");
+
+ return true;
}
bool ScummDebugger::Cmd_Actor(int argc, const char **argv) {
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.30
retrieving revision 2.31
diff -u -d -r2.30 -r2.31
--- intern.h 6 Jan 2003 13:41:29 -0000 2.30
+++ intern.h 26 Jan 2003 06:17:25 -0000 2.31
@@ -416,6 +416,7 @@
void o8_blastText();
void o8_cursorCommand();
+ void o8_createBoxMatrix();
void o8_resourceRoutines();
void o8_roomOps();
void o8_actorOps();
Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/resource.cpp,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -d -r1.53 -r1.54
--- resource.cpp 19 Jan 2003 04:17:13 -0000 1.53
+++ resource.cpp 26 Jan 2003 06:17:25 -0000 1.54
@@ -1143,7 +1143,7 @@
{
byte *b = getResourceAddress(rtString, i);
if (!b)
- return b;
+ return NULL;
if (_features & GF_NEW_OPCODES)
return ((ArrayHeader *)b)->data;
Index: script_v8.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v8.cpp,v
retrieving revision 2.128
retrieving revision 2.129
diff -u -d -r2.128 -r2.129
--- script_v8.cpp 25 Jan 2003 12:13:41 -0000 2.128
+++ script_v8.cpp 26 Jan 2003 06:17:25 -0000 2.129
@@ -249,7 +249,7 @@
OPCODE(o6_pickupObject),
OPCODE(o6_setBoxFlags),
/* A8 */
- OPCODE(o6_createBoxMatrix),
+ OPCODE(o8_createBoxMatrix),
OPCODE(o6_invalid),
OPCODE(o8_resourceRoutines),
OPCODE(o8_roomOps),
@@ -865,6 +865,20 @@
_vars[VAR_USERPUT] = _userPut;
}
+void Scumm_v8::o8_createBoxMatrix()
+{
+ int i;
+ Actor *a;
+
+ createBoxMatrix();
+
+ for(i = 1; i < NUM_ACTORS; i++) {
+ a = &_actors[i];
+ if (a && a->isInCurrentRoom())
+ a->adjustActorPos();
+ }
+}
+
void Scumm_v8::o8_resourceRoutines()
{
// TODO
@@ -1457,15 +1471,35 @@
case 24: // clearTextQueue
warning("o8_kernelSetFunctions: clearTextQueue()");
break;
- case 25: // saveGameWrite
- warning("o8_kernelSetFunctions: saveGameWrite(%d, %d)", args[1], args[2]);
+ case 25: { // saveGameReadName
+ SaveFileManager *mgr = _system->get_savefile_manager();
+ char *address = (char*)getStringAddress(args[2]);
+ char name[30];
+
+ if (!address) {
+ warning("o8_kernelSetFunctions: saveGameReadName failed finding slot string %d", args[2]);
+ break;
+ }
+ getSavegameName(args[1] - 1, name, mgr);
+ if (strlen(name) > 0 && strlen(name) < 30)
+ strcpy(address, name);
break;
- case 26: // saveGameRead
- warning("o8_kernelSetFunctions: saveGameRead(%d, %d)", args[1], args[2]);
+ }
+ case 26: { // saveGame?
+ //SaveFileManager *mgr = _system->get_savefile_manager();
+ //char *address = (char*)getStringAddress(args[2]);
+ char address[30];
+ warning("o8_kernelSetFunctions: saveGame?(%d, %s)", args[1], address);
break;
- case 27: // saveGameReadName
- warning("o8_kernelSetFunctions: saveGameReadName(%d)", args[1]);
+ }
+ case 27: { // FIXME: This doesn't work
+ // saveGameRead
+ _saveLoadSlot = 0;
+ _saveLoadFlag = 2;
+ _saveLoadCompatible = false;
+ warning("Sgl: %d\n", args[1]);
break;
+ }
case 28: // saveGameStampScreenshot
warning("o8_kernelSetFunctions: saveGameStampScreenshot(%d, %d, %d, %d, %d, %d)", args[1], args[2], args[3], args[4], args[5], args[6]);
break;
@@ -1686,14 +1720,18 @@
void Scumm_v8::o8_getStringWidth()
{
+ char temp[1024];
int charset = pop();
int len = resStrLen(_scriptPointer);
int oldID = _charset->getCurID();
int width;
+ // Parse the string to get rid of substitution codes
+ strcpy(temp, (char*)_scriptPointer);
+ addMessageToStack((byte*)&temp);
// Temporary set the specified charset id
_charset->setCurID(charset);
- width = _charset->getStringWidth(0, _scriptPointer);
+ width = _charset->getStringWidth(0, (byte*)temp);
_charset->setCurID(oldID);
push(width);
Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scummvm.cpp,v
retrieving revision 2.45
retrieving revision 2.46
diff -u -d -r2.45 -r2.46
--- scummvm.cpp 24 Jan 2003 06:41:10 -0000 2.45
+++ scummvm.cpp 26 Jan 2003 06:17:25 -0000 2.46
@@ -1,6 +1,6 @@
/* ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
- * wCopyright (C) 2001/2002 The ScummVM project
+ * Copyright (C) 2001-2003 The ScummVM project
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -461,7 +461,7 @@
_vars[VAR_GAME_LOADED] = 0;
if (_saveLoadFlag) {
bool success;
- const char *errMsg = "Succesfully saved game state to file:\n\n%s";
+ const char *errMsg = "Succesfully saved/loaded game state in file:\n\n%s";
char filename[256];
if (_saveLoadFlag == 1) {
More information about the Scummvm-git-logs
mailing list