void MystScriptParser::o_takePage(uint16 op, uint16 var, uint16 argc, uint16 *argv) { uint16 cursorId = argv[0]; uint16 oldPage = _globals.heldPage; debugC(kDebugScript, "Opcode %d: takePage Var %d CursorId %d", op, var, cursorId); // Take / drop page toggleVar(var); if (oldPage != _globals.heldPage) { _vm->_cursor->hideCursor(); _vm->redrawArea(var); // Set new cursor if (_globals.heldPage) _vm->setMainCursor(cursorId); else _vm->setMainCursor(kDefaultMystCursor); _vm->_cursor->showCursor(); } }
void MystScriptParser::o_takePage(uint16 var, const ArgumentsArray &args) { // In most game releases, the first opcode argument is the new mouse cursor. // However, in the original v1.0 English release this opcode takes no argument. uint16 cursorId; // = args[0]; switch (var) { case 41: // Vault white page cursorId = kWhitePageCursor; break; case 25: // Fireplace red page case 102: // Red page cursorId = kRedPageCursor; break; case 24: // Fireplace blue page case 103: // Blue page cursorId = kBluePageCursor; break; default: warning("Unexpected take page variable '%d'", var); cursorId = kDefaultMystCursor; } HeldPage oldPage = _globals.heldPage; // Take / drop page toggleVar(var); if (oldPage != _globals.heldPage) { _vm->_cursor->hideCursor(); _vm->getCard()->redrawArea(var); // Set new cursor if (_globals.heldPage != kNoPage) _vm->setMainCursor(cursorId); else _vm->setMainCursor(kDefaultMystCursor); _vm->_cursor->showCursor(); } }
void MystScriptParser::o_toggleVarNoRedraw(uint16 op, uint16 var, uint16 argc, uint16 *argv) { debugC(kDebugScript, "Opcode %d: toggleVarNoRedraw", op); toggleVar(var); }
void MystScriptParser::o_toggleVar(uint16 op, uint16 var, uint16 argc, uint16 *argv) { debugC(kDebugScript, "Opcode %d: Toggle var %d", op, var); toggleVar(var); _vm->redrawArea(var); }
void MystScriptParser::o_toggleVarNoRedraw(uint16 var, const ArgumentsArray &args) { toggleVar(var); }
void MystScriptParser::o_toggleVar(uint16 var, const ArgumentsArray &args) { toggleVar(var); _vm->getCard()->redrawArea(var); }