bool CBellBot::TrueTalkTriggerActionMsg(CTrueTalkTriggerActionMsg *msg) { switch (msg->_action) { case 1: case 28: { _npcFlags &= ~NPCFLAG_IDLING; CDismissBotMsg dismissMsg; dismissMsg.execute(this); break; } case 5: _npcFlags &= ~NPCFLAG_20000; playClip("Walk Off", MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); movieEvent(); break; case 17: { CActMsg actMsg("ThrowTVDownWell"); actMsg.execute("ThrowTVDownWellControl"); break; } case 29: { CActMsg actMsg("BellbotGetLight"); actMsg.execute("BellbotGetLightCutScene"); startTalking(this, 158); break; } default: break; } return true; }
bool CBellBot::LeaveViewMsg(CLeaveViewMsg *msg) { if (_npcFlags & NPCFLAG_10000) { performAction(1); _npcFlags &= ~NPCFLAG_START_IDLING; CDismissBotMsg dismissMsg; dismissMsg.execute(this); } return true; }
bool CPetControl::dismissBot(const CString &name) { CGameManager *gameManager = getGameManager(); if (!gameManager) return false; CViewItem *view = gameManager->getView(); if (!view) return false; bool result = false; CDismissBotMsg dismissMsg; for (CTreeItem *treeItem = view->getFirstChild(); treeItem; treeItem = treeItem->scan(view)) { if (!treeItem->getName().compareToIgnoreCase(name)) dismissMsg.execute(treeItem); else result = true; } return result; }
bool CDoorbot::TrueTalkTriggerActionMsg(CTrueTalkTriggerActionMsg *msg) { switch (msg->_action) { case 3: playClip("Cloak On", MOVIE_NOTIFY_OBJECT); break; case 4: _npcFlags = (_npcFlags & ~NPCFLAG_IDLING) | NPCFLAG_4000000; playClip("Whizz Off Left", MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE); break; case 28: { _npcFlags &= ~(NPCFLAG_IDLING | NPCFLAG_START_IDLING); CDismissBotMsg dismissMsg; dismissMsg.execute(this); break; } } return true; }