Advertisement
Guest User

ObjectMenuComponent.cpp

a guest
Aug 24th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.90 KB | None | 0 0
  1. Readme: src/server/zone/objects/scene/components/ObjectMenuComponent.cpp
  2.  
  3.  
  4. /*
  5. * ObjectMenuComponent.cpp
  6. *
  7. * Created on: 26/05/2011
  8. * Author: victor
  9. */
  10.  
  11. #include "ObjectMenuComponent.h"
  12.  
  13. #include "server/zone/objects/building/BuildingObject.h"
  14. #include "server/zone/objects/creature/CreatureObject.h"
  15. #include "server/zone/packets/object/ObjectMenuResponse.h"
  16. #include "templates/SharedObjectTemplate.h"
  17. #include "server/zone/objects/player/PlayerObject.h"
  18. #include "server/zone/ZoneServer.h"
  19. #include "server/zone/ZoneProcessServer.h"
  20. #include "server/zone/Zone.h"
  21.  
  22. void ObjectMenuComponent::fillObjectMenuResponse(SceneObject* sceneObject, ObjectMenuResponse* menuResponse, CreatureObject* player) const {
  23. //All objects in a cell can be picked up, if the player is on the structures permission list.
  24. //This opens the door to allow admins to be able to drop/pickup items in public structures
  25. if (sceneObject == NULL)
  26. return;
  27.  
  28. ManagedReference<PlayerObject*> ghost = player->getPlayerObject();
  29. int adminLevelCheck = ghost->getAdminLevel();
  30.  
  31. Logger::console.info("adminLevelCheck: " + String::valueOf(adminLevelCheck), true);
  32.  
  33. ManagedReference<SceneObject*> parent = sceneObject->getParent().get();
  34. ManagedReference<SceneObject*> playersParent = player->getParent().get();
  35.  
  36. if (adminLevelCheck != 15) {
  37.  
  38. Logger::console.info("adminLevelCheck evaluated as a player", true);
  39.  
  40. if (parent == NULL || !parent->isCellObject())
  41. return;
  42.  
  43. ManagedReference<SceneObject*> obj = parent->getParent().get();
  44.  
  45. if (obj == NULL || !obj->isBuildingObject())
  46. return;
  47.  
  48. ManagedReference<BuildingObject*> buio = cast<BuildingObject*>( obj.get());
  49.  
  50. //Is this player on the permission list?
  51. if (!buio->isOnAdminList(player))
  52. return;
  53. }
  54.  
  55. if (sceneObject->isPlayerCreature() || sceneObject->isPet())
  56. return;
  57.  
  58. menuResponse->addRadialMenuItem(10, 3, "@ui_radial:item_pickup"); //Pick up
  59.  
  60. menuResponse->addRadialMenuItem(54, 1, "@ui_radial:item_move"); //Move
  61. menuResponse->addRadialMenuItem(51, 1, "@ui_radial:item_rotate"); //Rotate
  62.  
  63. menuResponse->addRadialMenuItemToRadialID(54, 55, 3, "@ui_radial:item_move_forward"); //Move Forward
  64. menuResponse->addRadialMenuItemToRadialID(54, 56, 3, "@ui_radial:item_move_back"); //Move Back
  65. menuResponse->addRadialMenuItemToRadialID(54, 57, 3, "@ui_radial:item_move_up"); //Move Up
  66. menuResponse->addRadialMenuItemToRadialID(54, 58, 3, "@ui_radial:item_move_down"); //Move Down
  67.  
  68. menuResponse->addRadialMenuItemToRadialID(51, 52, 3, "@ui_radial:item_rotate_left"); //Rotate Left
  69. menuResponse->addRadialMenuItemToRadialID(51, 53, 3, "@ui_radial:item_rotate_right"); //Rotate Right
  70.  
  71. if (adminLevelCheck == 15 && playersParent == NULL) {
  72. Logger::console.info("adminLevelCheck 15 OK and playersParent NULL", true);
  73. if (parent != NULL){
  74. Logger::console.info("object parent was not NULL", true);
  75. menuResponse->addRadialMenuItem(73, 3, "Admin Drop Outside");
  76. } else if (!sceneObject->isCreatureObject()){
  77. menuResponse->addRadialMenuItem(72, 3, "Admin Pickup Outside");
  78. }
  79. }
  80. }
  81.  
  82.  
  83. int ObjectMenuComponent::handleObjectMenuSelect(SceneObject* sceneObject, CreatureObject* player, byte selectedID) const {
  84. switch (selectedID) {
  85. case 10: //Pick Up
  86. {
  87. //String actionName = "transferitemmisc";
  88. //player->executeObjectControllerAction(actionName.hashCode(), getObjectID(), "");
  89. //transferitem
  90. break;
  91. }
  92. case 72: // Admin Pick Up
  93. {
  94. SceneObject* playerInventory = player->getSlottedObject("inventory");
  95. playerInventory->transferObject(sceneObject, -1, true);
  96.  
  97. break;
  98. }
  99. case 73: // Admin Drop
  100. {
  101. Vector3 worldPosition = player->getWorldPosition();
  102. sceneObject->initializePosition(worldPosition.getX(), worldPosition.getZ(), worldPosition.getY());
  103.  
  104. ManagedReference<Zone*> zone = player->getZone();
  105. zone->transferObject(sceneObject, -1, true);
  106.  
  107. break;
  108. }
  109. }
  110.  
  111. return 0;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement