// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #include "stdpch.h" // game share //#include "game_share/msg_combat_move_service.h" //sabrina #include "sabrina_message_callbacks.h" //#include "phrase_utilities_functions.h" /* extern CMirror Mirror; extern CMirroredDataSet *FeTempDataset; */ //-------------------------------------------------------------- // CEGSExecuteMsg::callback() //-------------------------------------------------------------- void CEGSExecuteMsgImp::callback (const std::string &serviceName, NLNET::TServiceId serviceId) { nlwarning("*** Received untreated message 'CEGSExecuteMsgImp' from service %s(%d)",serviceName.c_str(),serviceId); // if ( ! Mirror.mirrorIsReady() ) // { // nlwarning("CEGSExecuteMsgImp::callback(): Message received from %s(%d) service but mirror not yet ready", serviceName.c_str(), sid ); // return; // } // // //PhraseManager->executePhrase( TheDataset.getEntityId(PlayerId), TheDataset.getEntityId(TargetId), Bricks/*, MPsSheet, MPsQty, MPsQuality*/, (BRICK_TYPE::EBrickType)Type, Index ); // PhraseManager->executePhrase( ActorRowId, TargetRowId, BrickIds, Cyclic ); } // CEGSExecuteMsg::callback // //-------------------------------------------------------------- // CBSAIEventReportMsg::callback() //-------------------------------------------------------------- void CBSAIDeathReport::callback(const std::string &serviceName, NLNET::TServiceId serviceId) { nlwarning("*** Received untreated message 'CBSAIDeathReport' from service %s(%d)",serviceName.c_str(),serviceId); // Nothing to do. } //-------------------------------------------------------------- // CBSAIEventReportMsg::callback() //-------------------------------------------------------------- void CBSAIEventReportMsg::callback(const std::string &serviceName, NLNET::TServiceId serviceId) { nlwarning("*** Received untreated message 'CBSAIEventReportMsg' from service %s(%d)",serviceName.c_str(),serviceId); // empty , unused } // CBSAIEventReportMsg::callback // namespace SABRINA { //-------------------------------------------------------------- // cbCancelPhrase() //-------------------------------------------------------------- void cbCancelPhrase( NLNET::CMessage& msgin, const std::string &serviceName, uint16 serviceId ) { nlwarning("*** Received untreated message 'cbCancelPhrase' from service %s(%d)",serviceName.c_str(),serviceId); // if ( ! Mirror.mirrorIsReady() ) // { // nlwarning(" Received from %s service but mirror not yet ready", serviceName.c_str() ); // return; // } // // if (NLMISC::nlstricmp(serviceName.c_str(),"AIS")==0) // { // TDataSetRow playerId; // msgin.serial( playerId ); // // BRICK_TYPE::EBrickType type = BRICK_TYPE::UNKNOWN; // msgin.serialEnum( type ); // // uint8 index; // msgin.serial( index ); // // //PhraseManager->cancelSentence( TheDataset.getEntityId(playerId), type, index ); // } // else // { // NLMISC::CEntityId playerId; // msgin.serial( playerId ); // // BRICK_TYPE::EBrickType type = BRICK_TYPE::UNKNOWN; // msgin.serialEnum( type ); // // uint8 index; // msgin.serial( index ); // // //PhraseManager->cancelSentence( playerId, type, index ); // } } // cbCancelPhrase // //-------------------------------------------------------------- // cbCancelCurrentPhrase() //-------------------------------------------------------------- void cbCancelCurrentPhrase( NLNET::CMessage& msgin, const std::string &serviceName, uint16 serviceId ) { nlwarning("*** Received untreated message 'cbCancelCurrentPhrase' from service %s(%d)",serviceName.c_str(),serviceId); // if ( ! Mirror.mirrorIsReady() ) // { // nlwarning(" Received from %s service but mirror not yet ready", serviceName.c_str() ); // return; // } // // if (NLMISC::nlstricmp(serviceName.c_str(),"AIS")==0) // { // TDataSetRow playerId; // msgin.serial( playerId ); // //// PhraseManager->cancelCurrentSentence( TheDataset.getEntityId(playerId) ); // } // else // { // NLMISC::CEntityId playerId; // msgin.serial( playerId ); // //// PhraseManager->cancelCurrentSentence( playerId ); // } } // cbCancelCurrentPhrase // //-------------------------------------------------------------- // cbCancelAllPhrases() //-------------------------------------------------------------- void cbCancelAllPhrases( NLNET::CMessage& msgin, const std::string &serviceName, uint16 serviceId ) { nlwarning("*** Received untreated message 'cbCancelAllPhrases' from service %s(%d)",serviceName.c_str(),serviceId); // if ( ! Mirror.mirrorIsReady() ) // { // nlwarning(" Received from %s service but mirror not yet ready", serviceName.c_str() ); // return; // } // // if (NLMISC::nlstricmp(serviceName.c_str(),"AIS")==0) // { // TDataSetRow playerId; // msgin.serial( playerId ); // //// PhraseManager->cancelAllSentences( TheDataset.getEntityId(playerId) ); // } // else // { // NLMISC::CEntityId playerId; // msgin.serial( playerId ); // //// PhraseManager->cancelAllSentences( playerId ); // } } // cbCancelAllPhrases // //-------------------------------------------------------------- // cbRegisterService() //-------------------------------------------------------------- void cbRegisterService( NLNET::CMessage& msgin, const std::string &serviceName, uint16 serviceId ) { nlwarning("*** Received untreated message 'cbRegisterService' from service %s(%d)",serviceName.c_str(),serviceId); // PhraseManager->registerService( serviceName ); } // cbRegisterService // //-------------------------------------------------------------- // cbUnregisterService() //-------------------------------------------------------------- void cbUnregisterService( NLNET::CMessage& msgin, const std::string &serviceName, uint16 serviceId ) { nlwarning("*** Received untreated message 'cbUnregisterService' from service %s(%d)",serviceName.c_str(),serviceId); // PhraseManager->unregisterService( serviceName ); } // cbUnregisterService // //-------------------------------------------------------------- // cbRegisterServiceAI() //-------------------------------------------------------------- void cbRegisterServiceAI( NLNET::CMessage& msgin, const std::string &serviceName, uint16 serviceId ) { nlwarning("*** Received untreated message 'cbRegisterServiceAI' from service %s(%d)",serviceName.c_str(),serviceId); // PhraseManager->registerServiceForAI( serviceName ); } // cbRegisterServiceAI // //-------------------------------------------------------------- // cbUnregisterServiceAI() //-------------------------------------------------------------- void cbUnregisterServiceAI( NLNET::CMessage& msgin, const std::string &serviceName, uint16 serviceId ) { nlwarning("*** Received untreated message 'cbUnregisterServiceAI' from service %s(%d)",serviceName.c_str(),serviceId); // PhraseManager->unregisterServiceForAI( serviceName ); } // cbUnregisterServiceAI // //-------------------------------------------------------------- // cbDisengageNotification() //-------------------------------------------------------------- void cbDisengageNotification( NLNET::CMessage& msgin, const std::string &serviceName, uint16 serviceId ) { nlwarning("*** Received untreated message 'cbDisengageNotification' from service %s(%d)",serviceName.c_str(),serviceId); // if ( ! Mirror.mirrorIsReady() ) // { // nlwarning(" Received from %s service but mirror not yet ready", serviceName.c_str() ); // return; // } // // if (NLMISC::nlstricmp(serviceName.c_str(),"AIS")==0) // { // TDataSetRow entityRowId; // msgin.serial( entityRowId ); // //// INFOLOG(" received disengage notification for entity %s", TheDataset.getEntityId(entityRowId).toString().c_str()); // // PhraseManager->disengage( entityRowId, true ); // } // else // { // CEntityId entityId; // msgin.serial( entityId ); // // INFOLOG(" received disengage notification for entity %s", entityId.toString().c_str()); // // PhraseManager->disengage( TheDataset.getDataSetRow(entityId), true ); // } } // cbDisengageNotification // //-------------------------------------------------------------- // cbDisengage() //-------------------------------------------------------------- void cbDisengage( NLNET::CMessage& msgin, const std::string &serviceName, uint16 serviceId ) { nlwarning("*** Received untreated message 'cbDisengage' from service %s(%d)",serviceName.c_str(),serviceId); // // if ( ! Mirror.mirrorIsReady() ) // { // nlwarning(" Received from %s service but mirror not yet ready", serviceName.c_str() ); // return; // } // // if (NLMISC::nlstricmp(serviceName.c_str(),"AIS")==0) // { // TDataSetRow entityRowId; // msgin.serial( entityRowId ); // // DEBUGLOG(" AIS Disengage entity %s", TheDataset.getEntityId(entityRowId).toString().c_str() ); // // PhraseManager->disengage( entityRowId, true /*chatMsg*/, true /*disengageCreature*/); // } // else // { // CEntityId entityId; // msgin.serial( entityId ); // // DEBUGLOG(" Service %s Disengage entity %s", serviceName.c_str(), entityId.toString().c_str() ); // // PhraseManager->disengage( TheDataset.getDataSetRow(entityId), true ); // } // } // cbDisengage // //class CEntitiesSortFunctor //{ //public: // inline CEntitiesSortFunctor() // {} // // inline bool operator() (const pair &arg1, const pair &arg2) // { // return ( arg1.second < arg2.second); // } //}; //-------------------------------------------------------------- // cbVisionAnswer() //-------------------------------------------------------------- void cbVisionAnswer( NLNET::CMessage& msgin, const std::string &serviceName, uint16 serviceId ) { nlwarning("*** Received untreated message 'cbVisionAnswer' from service %s(%d)",serviceName.c_str(),serviceId); // if ( ! Mirror.mirrorIsReady() ) // { // nlwarning(" Received from %s service but mirror not yet ready", serviceName.c_str() ); // return; // } ///* // if (NLMISC::nlstricmp(serviceName.c_str(),"AIS")==0) // { // //get the answer to the vision request // sint32 rid; // sint32 range; // TDataSetRow id; // vector > entities; // // msgin.serial(rid); // const sint32 msgLength = (sint32)msgin.length(); // //while( msgin.getPos() <= msgin.length()-1 ) // while( msgin.getPos() < msgLength ) // { // msgin.serial(id); // msgin.serial(range); // entities.push_back(make_pair(TheDataset.getEntityId(id),range)); // } // //#ifdef NL_DEBUG // DEBUGLOG("Received entities :"); // for (uint i = 0 ; i < entities.size() ; ++i) // { // DEBUGLOG("Entity %s, distance = %d", entities[i].first.toString().c_str(),entities[i].second); // } //#endif // // // sort entities by the distance from the area center // sort( entities.begin(), entities.end(), CEntitiesSortFunctor() ); // //#ifdef NL_DEBUG // DEBUGLOG("After sorting :"); // for (uint j = 0 ; j < entities.size() ; ++j) // { // DEBUGLOG("Entity %s, distance = %d", entities[j].first.toString().c_str(),entities[j].second); // } //#endif // // //get the functionalities which requested the vision // map >& functionalities = PhraseManager->getFunctionalitiesAwaitingArea(); // map >::iterator it = functionalities.find(rid); // if ( it != functionalities.end() ) // { // IAreaFunctionality *areaFunc = (*it).second.first; // CSentence *sentence = (*it).second.second; // // if ( areaFunc && sentence ) // { // areaFunc->processEntitiesInArea( entities, sentence ); // } // functionalities.erase(it); // } // // } // else // { // //get the answer to the vision request // sint32 rid; // sint32 range; // CEntityId id; // vector > entities; // // msgin.serial(rid); // const sint32 msgLength = (sint32)msgin.length(); // //while( msgin.getPos() <= msgin.length()-1 ) // while( msgin.getPos() < msgLength ) // { // msgin.serial(id); // msgin.serial(range); // entities.push_back(make_pair(id,range)); // } // //#ifdef NL_DEBUG // DEBUGLOG("Received entities :"); // for (uint i = 0 ; i < entities.size() ; ++i) // { // DEBUGLOG("Entity %s, distance = %d", entities[i].first.toString().c_str(),entities[i].second); // } //#endif // // // sort entities by the distance from the area center // sort( entities.begin(), entities.end(), CEntitiesSortFunctor() ); // //#ifdef NL_DEBUG // DEBUGLOG("After sorting :"); // for (uint j = 0 ; j < entities.size() ; ++j) // { // DEBUGLOG("Entity %s, distance = %d", entities[j].first.toString().c_str(),entities[j].second); // } //#endif // // //get the functionalities which requested the vision // map >& functionalities = PhraseManager->getFunctionalitiesAwaitingArea(); // map >::iterator it = functionalities.find(rid); // if ( it != functionalities.end() ) // { // IAreaFunctionality *areaFunc = (*it).second.first; // CSentence *sentence = (*it).second.second; // // if ( areaFunc && sentence ) // { // areaFunc->processEntitiesInArea( entities, sentence ); // } // functionalities.erase(it); // } // // } //*/ } // cbVisionAnswer // }