//======================================================================== // // PlanetController.cpp // // copyright 2001 Sony Online Entertainment // //======================================================================== #include "serverGame/FirstServerGame.h" #include "serverGame/PlanetController.h" #include "serverGame/PlanetObject.h" #include "serverGame/GameServer.h" #include "serverScript/GameScriptObject.h" #include "serverScript/ScriptParameters.h" #include "sharedFoundation/DynamicVariable.h" #include "sharedNetworkMessages/ObjectChannelMessages.h" #include "sharedNetworkMessages/MessageQueueGenericValueType.h" #include "sharedFoundation/GameControllerMessage.h" #include "sharedObject/AlterResult.h" #include "sharedObject/Object.h" #include "swgServerNetworkMessages/MessageQueuePlanetAddTravelPoint.h" //----------------------------------------------------------------------- PlanetController::PlanetController(PlanetObject * newOwner) : UniverseController(newOwner) { } //----------------------------------------------------------------------- PlanetController::~PlanetController() { } //----------------------------------------------------------------------- void PlanetController::handleMessage (const int message, const float value, const MessageQueue::Data* const data, const uint32 flags) { PlanetObject* const owner = dynamic_cast(getOwner()); NOT_NULL(owner); switch(message) { case CM_planetAddTravelPoint: { const MessageQueuePlanetAddTravelPoint* const message = safe_cast (data); if (message) owner->addTravelPoint (message->getTravelPointName (), message->getPosition_w (), message->getCost (), message->getInterplanetary (), static_cast(message->getType())); } break; case CM_planetRemoveTravelPoint: { const MessageQueueGenericValueType* const message = safe_cast*> (data); if (message) owner->removeTravelPoint (message->getValue ()); } break; case CM_setWeather: { const MessageQueueGenericValueType >* const message = safe_cast >*> (data); if (message != nullptr) { owner->setWeather( message->getValue().first, message->getValue().second.x, message->getValue().second.y, message->getValue().second.z); } } break; case CM_serverRemovePlanetMapLocation: { const MessageQueueGenericValueType * const message = safe_cast *> (data); if (message) owner->removeMapLocation (message->getValue ()); } break; case CM_serverAddPlanetMapLocation: { const MessageQueueGenericValueType > > * const message = safe_cast > > *> (data); if (message) owner->addMapLocation (message->getValue ().first, message->getValue ().second.first, (message->getValue ().second.second ? true : false)); } break; case CM_collectionRequestServerFirst: { const MessageQueueGenericValueType, std::pair > > * const message = safe_cast, std::pair > > *> (data); if (message) { CollectionsDataTable::CollectionInfoCollection const * const collectionInfo = CollectionsDataTable::getCollectionByName (message->getValue ().first.first); if (collectionInfo) owner->setCollectionServerFirst (*collectionInfo, message->getValue ().first.second, message->getValue ().second.first, message->getValue ().second.second); } } break; case CM_collectionRevokeServerFirst: { const MessageQueueGenericValueType * const message = safe_cast *> (data); if (message) { CollectionsDataTable::CollectionInfoCollection const * const collectionInfo = CollectionsDataTable::getCollectionByName (message->getValue ()); if (collectionInfo) owner->removeCollectionServerFirst (*collectionInfo); } } break; case CM_setConnectedCharacterLfgData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterLfgData(message->getValue().first, message->getValue().second); } } break; case CM_removeConnectedCharacterData: { const MessageQueueGenericValueType * const message = safe_cast *> (data); if (message) { owner->removeConnectedCharacterData(message->getValue()); } } break; case CM_setConnectedCharacterGroupData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterGroupData(message->getValue().first, message->getValue().second); } } break; case CM_setConnectedCharacterPlanetData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterPlanetData(message->getValue().second, message->getValue().first); } } break; case CM_setConnectedCharacterRegionData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterRegionData(message->getValue().second, message->getValue().first); } } break; case CM_setConnectedCharacterPlayerCityData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterPlayerCityData(message->getValue().second, message->getValue().first); } } break; case CM_setConnectedCharacterBiographyData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterBiographyData(message->getValue().second, message->getValue().first); } } break; case CM_removeConnectedCharacterBiographyData: { const MessageQueueGenericValueType * const message = safe_cast *> (data); if (message) { owner->removeConnectedCharacterBiographyData(message->getValue()); } } break; case CM_setConnectedCharacterLevelData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterLevelData(message->getValue().first, static_cast(message->getValue().second)); } } break; case CM_setConnectedCharacterProfessionData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterProfessionData(message->getValue().first, static_cast(message->getValue().second)); } } break; case CM_setConnectedCharacterSearchableByCtsSourceGalaxyData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterSearchableByCtsSourceGalaxyData(message->getValue().first, (message->getValue().second == 0) ? false : true); } } break; case CM_setConnectedCharacterDisplayLocationInSearchResultsData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterDisplayLocationInSearchResultsData(message->getValue().first, (message->getValue().second == 0) ? false : true); } } break; case CM_setConnectedCharacterAnonymousData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterAnonymousData(message->getValue().first, (message->getValue().second == 0) ? false : true); } } break; case CM_setConnectedCharacterInterestsData: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { owner->setConnectedCharacterInterestsData(message->getValue().first, message->getValue().second); } } break; case CM_addUniverseEvent: { const MessageQueueGenericValueType * const message = safe_cast *> (data); if (message) { owner->addUniverseEvent(message->getValue()); } } break; case CM_removeUniverseEvent: { const MessageQueueGenericValueType * const message = safe_cast *> (data); if (message) { owner->removeUniverseEvent(message->getValue()); } } break; case CM_adjustGcwImperialScore: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { const std::map & data = message->getValue(); for (std::map::const_iterator iter = data.begin(); iter != data.end(); ++iter) owner->adjustGcwImperialScore("CM_adjustGcwImperialScore", nullptr, iter->first, iter->second); } } break; case CM_adjustGcwRebelScore: { const MessageQueueGenericValueType > * const message = safe_cast > *> (data); if (message) { const std::map & data = message->getValue(); for (std::map::const_iterator iter = data.begin(); iter != data.end(); ++iter) owner->adjustGcwRebelScore("CM_adjustGcwRebelScore", nullptr, iter->first, iter->second); } } break; default: UniverseController::handleMessage(message, value, data, flags); break; } } // ======================================================================