void OSpit::xooffice30_closebook(const ArgumentArray &args) { // Close the blank linking book if it's open uint32 &book = _vm->_vars["odeskbook"]; if (book != 1) return; // Set the variable to be "closed" book = 0; // Play the movie RivenVideo *video = _vm->_video->openSlot(1); video->seek(0); video->playBlocking(); // Set the hotspots into their correct states RivenHotspot *closeBook = _vm->getCard()->getHotspotByName("closeBook"); RivenHotspot *nullHotspot = _vm->getCard()->getHotspotByName("null"); RivenHotspot *openBook = _vm->getCard()->getHotspotByName("openBook"); closeBook->enable(false); nullHotspot->enable(false); openBook->enable(true); _vm->getCard()->drawPicture(1); }
void BSpit::xbaitplate(const ArgumentArray &args) { // Remove the pellet from the plate and put it in your hand _vm->_cursor->setCursor(kRivenPelletCursor); _vm->getCard()->drawPicture(3); // Loop until the player lets go (or quits) while (mouseIsDown() && !_vm->hasGameEnded()) { _vm->doFrame(); } // Set back the cursor _vm->_cursor->setCursor(kRivenMainCursor); RivenHotspot *bait = _vm->getCard()->getHotspotByBlstId(9); RivenHotspot *baitPlate = _vm->getCard()->getHotspotByBlstId(16); // Set the bait if we put it on the plate, remove otherwise if (baitPlate->containsPoint(getMousePosition())) { _vm->_vars["bbait"] = 1; _vm->getCard()->drawPicture(4); bait->enable(false); // Disable bait hotspot baitPlate->enable(true); // Enable baitplate hotspot } else { _vm->_vars["bbait"] = 0; bait->enable(true); // Enable bait hotspot baitPlate->enable(false); // Disable baitplate hotspot } }
void TSpit::xtisland390_covercombo(const ArgumentArray &args) { // Called when clicking the telescope cover buttons. args[0] is the button number (1...5). uint32 &correctDigits = _vm->_vars["tcovercombo"]; if (correctDigits < 5 && args[0] == getComboDigit(_vm->_vars["tcorrectorder"], correctDigits)) correctDigits++; else correctDigits = 0; // If we have hit the correct 5 buttons in a row, activate the hotspot to open up the // telescope cover. RivenHotspot *openCover = _vm->getCard()->getHotspotByName("openCover"); openCover->enable(correctDigits == 5); }
void ASpit::xacathopenbook(const ArgumentArray &args) { // Get the variable uint32 page = _vm->_vars["acathbook"]; // Set hotspots depending on the page RivenHotspot *openBook = _vm->getCard()->getHotspotByName("openBook"); RivenHotspot *nextPage = _vm->getCard()->getHotspotByName("nextpage"); RivenHotspot *prevPage = _vm->getCard()->getHotspotByName("prevpage"); if (page == 1) { prevPage->enable(false); nextPage->enable(false); openBook->enable(true); } else { prevPage->enable(true); nextPage->enable(true); openBook->enable(false); } cathBookDrawPage(page); }
void ASpit::xaatrusopenbook(const ArgumentArray &args) { // Get the variable uint32 &page = _vm->_vars["aatrusbook"]; // Set hotspots depending on the page RivenHotspot *openBook = _vm->getCard()->getHotspotByName("openBook"); RivenHotspot *nextPage = _vm->getCard()->getHotspotByName("nextpage"); RivenHotspot *prevPage = _vm->getCard()->getHotspotByName("prevpage"); if (page == 1) { prevPage->enable(false); nextPage->enable(false); openBook->enable(true); } else { prevPage->enable(true); nextPage->enable(true); openBook->enable(false); } // Draw the image of the page _vm->getCard()->drawPicture(page); }
// Command 10: disable hotspot (blst_id) void RivenSimpleCommand::disableHotspot(uint16 op, const ArgumentArray &args) { RivenHotspot *hotspot = _vm->getCard()->getHotspotByBlstId(args[0]); if (hotspot) { hotspot->enable(false); } }