[Scummvm-cvs-logs] SF.net SVN: scummvm: [30351] scummvm/trunk/engines/agi
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Wed Jan 9 11:31:52 CET 2008
Revision: 30351
http://scummvm.svn.sourceforge.net/scummvm/?rev=30351&view=rev
Author: thebluegr
Date: 2008-01-09 02:31:52 -0800 (Wed, 09 Jan 2008)
Log Message:
-----------
Added a debug command, did some cleanup
Modified Paths:
--------------
scummvm/trunk/engines/agi/console.cpp
scummvm/trunk/engines/agi/console.h
scummvm/trunk/engines/agi/preagi_mickey.cpp
scummvm/trunk/engines/agi/preagi_mickey.h
Modified: scummvm/trunk/engines/agi/console.cpp
===================================================================
--- scummvm/trunk/engines/agi/console.cpp 2008-01-09 09:46:26 UTC (rev 30350)
+++ scummvm/trunk/engines/agi/console.cpp 2008-01-09 10:31:52 UTC (rev 30351)
@@ -251,6 +251,7 @@
_mickey = mickey;
DCmd_Register("curRoom", WRAP_METHOD(Mickey_Console, Cmd_CurRoom));
+ DCmd_Register("gotoRoom", WRAP_METHOD(Mickey_Console, Cmd_GotoRoom));
DCmd_Register("drawPic", WRAP_METHOD(Mickey_Console, Cmd_DrawPic));
DCmd_Register("drawObj", WRAP_METHOD(Mickey_Console, Cmd_DrawObj));
}
@@ -260,6 +261,14 @@
return true;
}
+bool Mickey_Console::Cmd_GotoRoom(int argc, const char **argv) {
+ if (argc != 2)
+ DebugPrintf("Usage: %s <Room number>\n", argv[0]);
+ else
+ _mickey->debugGotoRoom(atoi(argv[1]));
+ return true;
+}
+
bool Mickey_Console::Cmd_DrawPic(int argc, const char **argv) {
if (argc != 2)
DebugPrintf("Usage: %s <Picture number>\n", argv[0]);
Modified: scummvm/trunk/engines/agi/console.h
===================================================================
--- scummvm/trunk/engines/agi/console.h 2008-01-09 09:46:26 UTC (rev 30350)
+++ scummvm/trunk/engines/agi/console.h 2008-01-09 10:31:52 UTC (rev 30351)
@@ -103,6 +103,7 @@
Mickey *_mickey;
bool Cmd_CurRoom(int argc, const char **argv);
+ bool Cmd_GotoRoom(int argc, const char **argv);
bool Cmd_DrawPic(int argc, const char **argv);
bool Cmd_DrawObj(int argc, const char **argv);
};
Modified: scummvm/trunk/engines/agi/preagi_mickey.cpp
===================================================================
--- scummvm/trunk/engines/agi/preagi_mickey.cpp 2008-01-09 09:46:26 UTC (rev 30350)
+++ scummvm/trunk/engines/agi/preagi_mickey.cpp 2008-01-09 10:31:52 UTC (rev 30351)
@@ -220,6 +220,32 @@
free(buffer);
}
+bool Mickey::checkMenu() {
+ char *buffer = new char[sizeof(MSA_MENU)];
+ MSA_MENU menu;
+ int iSel0, iSel1;
+ MSA_DAT_HEADER hdr;
+ char szFile[256] = {0};
+ Common::File infile;
+
+ getDatFileName(_game.iRoom, szFile);
+ readDatHdr(szFile, &hdr);
+ if (!infile.open(szFile))
+ return false;
+ infile.seek(hdr.ofsRoom[_game.iRoom - 1] + IDI_MSA_OFS_DAT, SEEK_SET);
+ infile.read((uint8 *)buffer, sizeof(MSA_MENU));
+ infile.close();
+
+ memcpy(&menu, buffer, sizeof(MSA_MENU));
+ patchMenu(&menu);
+ memcpy(buffer, &menu, sizeof(MSA_MENU));
+
+ getMenuSel(buffer, &iSel0, &iSel1);
+ delete [] buffer;
+
+ return parse(menu.cmd[iSel0].data[iSel1], menu.arg[iSel0].data[iSel1]);
+}
+
void Mickey::drawMenu(MSA_MENU menu, int sel0, int sel1) {
int iWord;
int iRow;
@@ -2060,6 +2086,11 @@
}
}
+void Mickey::debugGotoRoom(int room) {
+ _game.iRoom = room;
+ drawRoom();
+}
+
Mickey::Mickey(PreAgiEngine *vm) : _vm(vm) {
_vm->_console = new Mickey_Console(_vm, this);
}
@@ -2119,13 +2150,7 @@
}
void Mickey::run() {
- char *buffer = new char[sizeof(MSA_MENU)];
- MSA_MENU menu;
- int iSel0, iSel1;
bool done;
- MSA_DAT_HEADER hdr;
- char szFile[256] = {0};
- Common::File infile;
// Game intro
intro();
@@ -2165,28 +2190,12 @@
_game.nAir = IDI_MSA_MAX_AIR_SUPPLY;
}
- // Read menu
- getDatFileName(_game.iRoom, szFile);
- readDatHdr(szFile, &hdr);
- if (!infile.open(szFile))
- return;
- infile.seek(hdr.ofsRoom[_game.iRoom - 1] + IDI_MSA_OFS_DAT, SEEK_SET);
- infile.read((uint8 *)buffer, sizeof(MSA_MENU));
- infile.close();
-
- memcpy(&menu, buffer, sizeof(MSA_MENU));
- patchMenu(&menu);
- memcpy(buffer, &menu, sizeof(MSA_MENU));
-
- getMenuSel(buffer, &iSel0, &iSel1);
- done = parse(menu.cmd[iSel0].data[iSel1], menu.arg[iSel0].data[iSel1]);
+ done = checkMenu();
}
_game.nFrame = 0;
}
- delete [] buffer;
-
gameOver();
}
Modified: scummvm/trunk/engines/agi/preagi_mickey.h
===================================================================
--- scummvm/trunk/engines/agi/preagi_mickey.h 2008-01-09 09:46:26 UTC (rev 30350)
+++ scummvm/trunk/engines/agi/preagi_mickey.h 2008-01-09 10:31:52 UTC (rev 30351)
@@ -737,6 +737,7 @@
void run();
void debugCurRoom();
+ void debugGotoRoom(int);
void drawPic(int);
void drawObj(ENUM_MSA_OBJECT, int, int);
@@ -757,6 +758,7 @@
void printExeStr(int);
void printExeMsg(int);
void printDesc(int);
+ bool checkMenu();
void drawMenu(MSA_MENU, int, int);
void getMouseMenuSelRow(MSA_MENU, int*, int*, int, int, int);
bool getMenuSelRow(MSA_MENU, int*, int*, int);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list