Beispiel #1
0
void AGOSEngine::clearMenuStrip() {
    int i;

    for (i = 111; i != 115; i++)
        disableBox(i);

    if (getGameType() == GType_WW) {
        setWindowImageEx(2, 101);
    } else {
        setWindowImageEx(2, 102);
    }
}
Beispiel #2
0
void AGOSEngine_PN::opn_opcode52() {
	int32 mode = varval();
	if (mode == 1) {
		setWindowImage(mode, varval(), true);
	} else {
		setWindowImageEx(mode, varval());
	}

	setScriptReturn(true);
}
Beispiel #3
0
// Elvira 2 and Waxworks specific
void AGOSEngine::doMenuStrip(uint menuNum) {
    uint i;
    const uint var = (getGameType() == GType_WW) ? 11 : 1;

    for (i = 111; i != 115; i++)
        disableBox(i);

    for (i = var; i != (var + 5); i++)
        _variableArray[i] = 0;

    byte *srcPtr = _menuBase;
    while (menuNum--) {
        while (READ_BE_UINT16(srcPtr) != 0)
            srcPtr += 2;
        srcPtr += 2;
    }

    uint id = 111;
    uint v = var;

    while (READ_BE_UINT16(srcPtr) != 0) {
        uint verb = READ_BE_UINT16(srcPtr);
        _variableArray[v] = verb;

        HitArea *ha = findBox(id);
        if (ha != NULL) {
            ha->flags &= ~kBFBoxDead;
            ha->verb = verb;
        }

        id++;
        srcPtr += 2;
        v++;
    }

    _variableArray[var + 4] = id - 111;
    if (getGameType() == GType_WW) {
        setWindowImageEx(2, 102);
    } else {
        setWindowImageEx(2, 103);
    }
}
Beispiel #4
0
void AGOSEngine::o_picture() {
	// 96
	uint vga_res = getVarOrWord();
	uint mode = getVarOrByte();

	// WORKAROUND: For a script bug in the Amiga AGA/CD32 versions
	// When selecting locations on the magical map, the script looks
	// for vga_res 12701, but only vga_res 12700 exists.
	if (getGameType() == GType_SIMON1 && getPlatform() == Common::kPlatformAmiga &&
		vga_res == 12701) {
		return;
	}

	if (getGameType() == GType_PP && getGameId() != GID_DIMP) {
		if (vga_res == 8700 && getBitFlag(107)) {
			_vgaPeriod = 30;
		}

		_picture8600 = (vga_res == 8600);
	}

	setWindowImageEx(mode, vga_res);
}