void EntertainingSessionImplementation::startPlayingMusic(const String& song, const String& instrumentAnimation, int instrid) { ManagedReference<CreatureObject*> entertainer = this->entertainer.get(); Locker locker(entertainer); ManagedReference<GroupObject*> group = entertainer->getGroup(); if (group != NULL) { if (group->getBandSong() != song) { Locker clocker(group, entertainer); group->setBandSong(song); } } sendEntertainingUpdate(entertainer, 0.0125, instrumentAnimation, 0x07352BAC, instrid); performanceName = song; playingMusic = true; entertainer->sendSystemMessage("@performance:music_start_self"); entertainer->setListenToID(entertainer->getObjectID(), true); externalInstrument = getInstrument(entertainer); if (externalInstrument != NULL) externalInstrument->setBeingUsed(true); updateEntertainerMissionStatus(true, MissionObject::MUSICIAN); entertainer->notifyObservers(ObserverEventType::STARTENTERTAIN, entertainer); startEntertaining(); }
void EntertainingSessionImplementation::startDancing(const String& dance, const String& animation) { ManagedReference<CreatureObject*> entertainer = this->entertainer.get(); Locker locker(entertainer); sendEntertainingUpdate(entertainer, /*0x3C4CCCCD*/0.0125, animation, 0x07339FF8, 0xDD); performanceName = dance; dancing = true; entertainer->sendSystemMessage("@performance:dance_start_self"); updateEntertainerMissionStatus(true, MissionObject::DANCER); startEntertaining(); }