mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-13 12:39:56 +00:00
Add support for skipping introduction in Elivra 1/2/WW
svn-id: r24131
This commit is contained in:
parent
c22289416f
commit
7f99566784
@ -1768,9 +1768,21 @@ void AGOSEngine::waitForSync(uint a) {
|
||||
}
|
||||
}
|
||||
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();
|
||||
|
@ -1042,6 +1042,8 @@ public:
|
||||
void oww_textMenu();
|
||||
void oww_ifDoorOpen();
|
||||
void oww_opcode184();
|
||||
void oww_opcode185();
|
||||
void oww_opcode186();
|
||||
void oww_opcode187();
|
||||
|
||||
// Opcodes, Simon 1 only
|
||||
|
@ -245,12 +245,12 @@ static const char *const ww_opcode_name_table[256] = {
|
||||
/* 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 @@ static const char *const ww_opcode_name_table[256] = {
|
||||
"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] = {
|
||||
|
@ -379,6 +379,8 @@ void AGOSEngine::setupWaxworksOpcodes(OpcodeProc *op) {
|
||||
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 @@ void AGOSEngine::setupWaxworksOpcodes(OpcodeProc *op) {
|
||||
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 @@ void AGOSEngine::o_loadZone() {
|
||||
uint vga_res = getVarOrWord();
|
||||
|
||||
_lockWord |= 0x80;
|
||||
|
||||
vc27_resetSprite();
|
||||
vc29_stopAllSounds();
|
||||
|
||||
loadZone(vga_res);
|
||||
_lockWord &= ~0x80;
|
||||
}
|
||||
@ -1870,9 +1874,9 @@ void AGOSEngine::oww_whereTo() {
|
||||
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 @@ void AGOSEngine::oww_opcode184() {
|
||||
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() {
|
||||
}
|
||||
|
||||
|
@ -245,8 +245,12 @@ bool AGOSEngine::loadRoomItems(uint item) {
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user