int CityDecorationMenuComponent::handleObjectMenuSelect(SceneObject* sceneObject, CreatureObject* player, byte selectedID) { if (!sceneObject->isTangibleObject()) return 0; if (!player->isPlayerCreature()) return 0; if ( selectedID == 233 ) { Reference<CityDecorationTask*> task = new CityDecorationTask(player, cast<TangibleObject*>(sceneObject), CityDecorationTask::PLACE); task->execute(); return 0; } else if (selectedID == 234) { Reference<CityDecorationTask*> task = new CityDecorationTask(player, cast<TangibleObject*>(sceneObject), CityDecorationTask::REMOVE); task->execute(); return 0; } else if (selectedID == 74 || selectedID == 75 || selectedID == 76 || selectedID == 77) { ManagedReference<CityRegion*> city = player->getCityRegion(); CityManager* cityManager = sceneObject->getZoneServer()->getCityManager(); cityManager->alignAmenity(city, player, sceneObject, selectedID - 74); return 0; } return TangibleObjectMenuComponent::handleObjectMenuSelect(sceneObject, player, selectedID); }
int MissionTerminalImplementation::handleObjectMenuSelect(CreatureObject* player, byte selectedID) { ManagedReference<CityRegion*> city = player->getCityRegion(); if (selectedID == 69 && player->hasSkill("combat_smuggler_slicing_01")) { if (city != NULL && !city->isClientRegion() && city->isBanned(player->getObjectID())) { player->sendSystemMessage("@city/city:banned_services"); // You are banned from using this city's services. return 0; } if (player->containsActiveSession(SessionFacadeType::SLICING)) { player->sendSystemMessage("@slicing/slicing:already_slicing"); return 0; } if (!player->checkCooldownRecovery("slicing.terminal")) { player->sendSystemMessage("@slicing/slicing:not_again"); return 0; } //Create Session ManagedReference<SlicingSession*> session = new SlicingSession(player); session->initalizeSlicingMenu(player, _this.getReferenceUnsafeStaticCast()); return 0; } else if (selectedID == 72) { if (city != NULL && city->isMayor(player->getObjectID())) { CityRemoveAmenityTask* task = new CityRemoveAmenityTask(_this.getReferenceUnsafeStaticCast(), city); task->execute(); player->sendSystemMessage("@city/city:mt_removed"); // The object has been removed from the city. } return 0; } else if (selectedID == 74 || selectedID == 75 || selectedID == 76 || selectedID == 77) { CityManager* cityManager = getZoneServer()->getCityManager(); cityManager->alignAmenity(city, player, _this.getReferenceUnsafeStaticCast(), selectedID - 74); return 0; } return TangibleObjectImplementation::handleObjectMenuSelect(player, selectedID); }