void Script::pauseRatpouch(uint16 v1, uint16 v2, uint16 v3) { Resources &res = Resources::getReference(); Hotspot *ratpouch = res.getActiveHotspot(RATPOUCH_ID); assert(ratpouch); ratpouch->setCharacterMode(CHARMODE_PAUSED); ratpouch->setDelayCtr(0x7fff); }
void Script::makeGoewinFollow(uint16 v1, uint16 v2, uint16 v3) { Resources &res = Resources::getReference(); Hotspot *hotspot = res.getActiveHotspot(GOEWIN_ID); hotspot->setTickProc(FOLLOWER_TICK_PROC_2); hotspot->currentActions().clear(); CharacterScheduleEntry *entry = res.charSchedules().getEntry(GOEWIN_CAVE_SUPPORT_ID); hotspot->currentActions().addFront(DISPATCH_ACTION, entry, ROOMNUM_CAVE); hotspot->setActions(hotspot->resource()->actions | (1 << (TELL - 1))); hotspot->setActionCtr(0); hotspot->setDelayCtr(0); hotspot->setCharacterMode(CHARMODE_NONE); }
void Script::makeGoewinWork(uint16 v1, uint16 v2, uint16 v3) { Resources &res = Resources::getReference(); Hotspot *goewin = res.getActiveHotspot(GOEWIN_ID); assert(goewin); goewin->updateMovement(); goewin->currentActions().addBack(EXEC_HOTSPOT_SCRIPT, 34); goewin->setHotspotScript(0x616); goewin->setDelayCtr(1500); goewin->setTickProc(GOEWIN_SHOP_TICK_PROC); // Set walk to position for Goewin whilst she's working goewin->resource()->walkX = 179; goewin->resource()->walkY = 138; }
void Script::fixGoewin(uint16 v1, uint16 v2, uint16 v3) { Resources &res = Resources::getReference(); Hotspot *hotspot = res.getActiveHotspot(GOEWIN_ID); assert(hotspot); hotspot->setTickProc(STANDARD_CHARACTER_TICK_PROC); CharacterScheduleEntry *entry = res.charSchedules().getEntry(GOEWIN_STANDARD_SUPPORT_ID); assert(entry); hotspot->currentActions().clear(); hotspot->currentActions().addFront(DISPATCH_ACTION, entry, hotspot->roomNumber()); hotspot->setActions(hotspot->resource()->actions & ~(1 << (TELL - 1))); hotspot->setActionCtr(0); hotspot->setDelayCtr(0); hotspot->setCharacterMode(CHARMODE_NONE); }
void Script::npcWait(uint16 hotspotId, uint16 v2, uint16 v3) { Hotspot *hotspot = Resources::getReference().getActiveHotspot(hotspotId); assert(hotspot); hotspot->setCharacterMode(CHARMODE_WAIT_FOR_INTERACT); hotspot->setDelayCtr(130); }