void CellObjectImplementation::sendPermissionsTo(CreatureObject* creature, bool allowEntry) { if (!containerPermissions.hasInheritPermissionsFromParent() && !checkContainerPermission(creature, ContainerPermissions::WALKIN)) { BaseMessage* perm = new UpdateCellPermissionsMessage(getObjectID(), false); creature->sendMessage(perm); } else { BaseMessage* perm = new UpdateCellPermissionsMessage(getObjectID(), allowEntry); creature->sendMessage(perm); } }
/* uint8 ContainerImplementation::checkPermission(CreatureObject* player) { if (!isASubChildOf(player)) { if (parent == NULL || !getParent().get()->isCellObject()) return 0; else { BuildingObject* building = cast<BuildingObject*>( parent->getParent().get()); // TODO: Do this properly! if (building->isPublicStructure()) return 1; if (!building->isOnAdminList(player->getFirstName())) return 0; } } if (locked) return 0; return 2; } */ void ContainerImplementation::fillObjectMenuResponse(ObjectMenuResponse* menuResponse, CreatureObject* player) { TangibleObjectImplementation::fillObjectMenuResponse(menuResponse, player); if (checkContainerPermission(player, ContainerPermissions::MOVECONTAINER && getParent().get() != NULL && getParent().get()->checkContainerPermission(player, ContainerPermissions::MOVEOUT) && !(_this.getReferenceUnsafeStaticCast()->isRecycleToolObject()) && !(_this.getReferenceUnsafeStaticCast()->isAntiDecayKitObject()))) menuResponse->addRadialMenuItem(50, 3, "@base_player:set_name"); //Set Name if (isSliceable() && isContainerLocked() && player->hasSkill("combat_smuggler_novice")) menuResponse->addRadialMenuItem(69, 3, "@slicing/slicing:slice"); // Slice }
int ContainerImplementation::handleObjectMenuSelect(CreatureObject* player, byte selectedID) { if (selectedID == 50) { if (checkContainerPermission(player, ContainerPermissions::MOVECONTAINER && getParent().get() != NULL && getParent().get()->checkContainerPermission(player, ContainerPermissions::MOVEOUT))) { ManagedReference<SuiInputBox*> inputBox = new SuiInputBox(player, SuiWindowType::OBJECT_NAME, 0x00); inputBox->setPromptTitle("@sui:set_name_title"); inputBox->setPromptText("@sui:set_name_prompt"); inputBox->setUsingObject(_this.getReferenceUnsafeStaticCast()); inputBox->setMaxInputSize(255); inputBox->setDefaultInput(getCustomObjectName().toString()); player->getPlayerObject()->addSuiBox(inputBox); player->sendMessage(inputBox->generateMessage()); return 0; } } else if (selectedID == 69 && player->hasSkill("combat_smuggler_novice")) { ManagedReference<Facade*> facade = player->getActiveSession(SessionFacadeType::SLICING); ManagedReference<SlicingSession*> session = dynamic_cast<SlicingSession*>(facade.get()); if (session != NULL) { player->sendSystemMessage("@slicing/slicing:already_slicing"); return 0; } //Create Session session = new SlicingSession(player); session->initalizeSlicingMenu(player, _this.getReferenceUnsafeStaticCast()); return 0; } return TangibleObjectImplementation::handleObjectMenuSelect(player, selectedID); }