[Scummvm-cvs-logs] SF.net SVN: scummvm: [24131] scummvm/trunk/engines/agos
kirben at users.sourceforge.net
kirben at users.sourceforge.net
Fri Oct 6 06:51:30 CEST 2006
Revision: 24131
http://svn.sourceforge.net/scummvm/?rev=24131&view=rev
Author: kirben
Date: 2006-10-05 21:51:22 -0700 (Thu, 05 Oct 2006)
Log Message:
-----------
Add support for skipping introduction in Elivra 1/2/WW
Modified Paths:
--------------
scummvm/trunk/engines/agos/agos.cpp
scummvm/trunk/engines/agos/agos.h
scummvm/trunk/engines/agos/debug.h
scummvm/trunk/engines/agos/items.cpp
scummvm/trunk/engines/agos/rooms.cpp
Modified: scummvm/trunk/engines/agos/agos.cpp
===================================================================
--- scummvm/trunk/engines/agos/agos.cpp 2006-10-06 00:36:13 UTC (rev 24130)
+++ scummvm/trunk/engines/agos/agos.cpp 2006-10-06 04:51:22 UTC (rev 24131)
@@ -1768,9 +1768,21 @@
}
}
if (_exitCutscene) {
- if (getBitFlag(9)) {
- endCutscene();
- break;
+ if (getGameType() == GType_ELVIRA) {
+ if (_variableArray[105] == 0) {
+ _variableArray[105] = 255;
+ break;
+ }
+ } else if (getGameType() == GType_ELVIRA2 || getGameType() == GType_WW) {
+ if (_vgaWaitFor == 51) {
+ setBitFlag(244, 1);
+ break;
+ }
+ } else {
+ if (getBitFlag(9)) {
+ endCutscene();
+ break;
+ }
}
}
processSpecialKeys();
Modified: scummvm/trunk/engines/agos/agos.h
===================================================================
--- scummvm/trunk/engines/agos/agos.h 2006-10-06 00:36:13 UTC (rev 24130)
+++ scummvm/trunk/engines/agos/agos.h 2006-10-06 04:51:22 UTC (rev 24131)
@@ -1042,6 +1042,8 @@
void oww_textMenu();
void oww_ifDoorOpen();
void oww_opcode184();
+ void oww_opcode185();
+ void oww_opcode186();
void oww_opcode187();
// Opcodes, Simon 1 only
Modified: scummvm/trunk/engines/agos/debug.h
===================================================================
--- scummvm/trunk/engines/agos/debug.h 2006-10-06 00:36:13 UTC (rev 24130)
+++ scummvm/trunk/engines/agos/debug.h 2006-10-06 04:51:22 UTC (rev 24131)
@@ -245,12 +245,12 @@
/* 172 */
NULL,
NULL,
- NULL,
- "|LOCK_ZONES",
+ "W|UNK_174",
+ "|getDollar2",
/* 176 */
- "|UNLOCK_ZONES",
- "BBI|SCREEN_TEXT_POBJ",
- "WWBB|GETPATHPOSN",
+ "IWBB|UNK_176",
+ "B|UNK_177",
+ "B|UNK_178",
"IWWJ|IS_ADJ_NOUN",
/* 180 */
"B|SET_BIT2",
@@ -258,10 +258,14 @@
"BJ|IS_BIT2_CLEAR",
"BJ|IS_BIT2_SET",
/* 184 */
- "W|UNLOAD_ZONE",
- "W|LOAD_SOUND_FILES",
- "|UNFREEZE_ZONES",
- "|FADE_TO_BLACK",
+ "T|UNK_184",
+ "T|UNK_185",
+ "B|UNK_186",
+ "|UNK_187",
+ /* 188 */
+ "I|UNK_188",
+ "|UNK_189",
+ "|UNK_190",
};
static const char *const simon1dos_opcode_name_table[256] = {
Modified: scummvm/trunk/engines/agos/items.cpp
===================================================================
--- scummvm/trunk/engines/agos/items.cpp 2006-10-06 00:36:13 UTC (rev 24130)
+++ scummvm/trunk/engines/agos/items.cpp 2006-10-06 04:51:22 UTC (rev 24131)
@@ -379,6 +379,8 @@
op[182] = &AGOSEngine::o_b2Zero;
op[183] = &AGOSEngine::o_b2NotZero;
op[184] = &AGOSEngine::oww_opcode184;
+ op[185] = &AGOSEngine::oww_opcode185;
+ op[186] = &AGOSEngine::oww_opcode186;
op[187] = &AGOSEngine::oww_opcode187;
// Code difference, check if triggered
@@ -399,8 +401,6 @@
op[176] = NULL;
op[177] = NULL;
op[178] = NULL;
- op[185] = NULL;
- op[186] = NULL;
op[188] = NULL;
op[189] = NULL;
op[190] = NULL;
@@ -1106,6 +1106,10 @@
uint vga_res = getVarOrWord();
_lockWord |= 0x80;
+
+ vc27_resetSprite();
+ vc29_stopAllSounds();
+
loadZone(vga_res);
_lockWord &= ~0x80;
}
@@ -1870,9 +1874,9 @@
int16 f = getVarOrByte();
if (f == 1)
- _subjectItem = _itemArrayPtr[getExitOf(i, d)];
+ _subjectItem = derefItem(getExitOf(i, d));
else
- _objectItem = _itemArrayPtr[getExitOf(i, d)];
+ _objectItem = derefItem(getExitOf(i, d));
}
void AGOSEngine::oww_menu() {
@@ -1901,6 +1905,14 @@
printf("%s\n", getStringPtrByID(getNextStringID()));
}
+void AGOSEngine::oww_opcode185() {
+ printf("%s\n", getStringPtrByID(getNextStringID()));
+}
+
+void AGOSEngine::oww_opcode186() {
+ printf("%s\n", getStringPtrByID(_longText[getVarOrByte()]));
+}
+
void AGOSEngine::oww_opcode187() {
}
Modified: scummvm/trunk/engines/agos/rooms.cpp
===================================================================
--- scummvm/trunk/engines/agos/rooms.cpp 2006-10-06 00:36:13 UTC (rev 24130)
+++ scummvm/trunk/engines/agos/rooms.cpp 2006-10-06 04:51:22 UTC (rev 24131)
@@ -245,8 +245,12 @@
}
while ((i = in.readUint16BE()) != 0) {
- _itemArrayPtr[i] = (Item *)allocateItem(sizeof(Item));
- readItemFromGamePc(&in, _itemArrayPtr[i]);
+ _itemArrayPtr[i + 1] = (Item *)allocateItem(sizeof(Item));
+ readItemFromGamePc(&in, _itemArrayPtr[i + 1]);
+
+ Item *tmp = _itemArrayPtr[i + 1];
+ tmp->child = 0;
+ tmp->parent = 0;
}
in.close();
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