From: Andrew C. <ac...@us...> - 2003-02-03 19:39:01
|
Update of /cvsroot/planeshift/planeshift/src/server In directory sc8-pr-cvs1:/tmp/cvs-serv31478/src/server Modified Files: psserverbehave.cpp Log Message: Fixed for item deletion. Index: psserverbehave.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/psserverbehave.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** psserverbehave.cpp 11 Nov 2002 04:11:33 -0000 1.9 --- psserverbehave.cpp 3 Feb 2003 19:38:58 -0000 1.10 *************** *** 16,19 **** --- 16,21 ---- #include "pscelserver.h" + #include "util/log.h" + #define RANGE_TO_SELECT 5 *************** *** 33,36 **** --- 35,39 ---- MsgHandler* msghandler) { + pslog::Initialize(objReg); cel = celServer; msgHandler = msghandler; *************** *** 78,88 **** csRef<iPcProximityList> pcplayerproxlist = ! CEL_QUERY_PROPCLASS( playerEntity->GetPropertyClassList(), ! iPcProximityList ); CS_ASSERT( pcplayerproxlist != NULL ); - int clientNum = pcplayerproxlist->GetClientID(); ! bool result = false; ! // If the player is in range of the item. if ( pcplayerproxlist->RangeTo( entity ) < RANGE_TO_SELECT ) --- 81,93 ---- csRef<iPcProximityList> pcplayerproxlist = ! CEL_QUERY_PROPCLASS( playerEntity->GetPropertyClassList(), ! iPcProximityList ); ! CS_ASSERT( pcplayerproxlist != NULL ); ! int clientNum = pcplayerproxlist->GetClientID(); ! ! bool result = false; ! // If the player is in range of the item. if ( pcplayerproxlist->RangeTo( entity ) < RANGE_TO_SELECT ) *************** *** 90,113 **** if ( cel->MoveItemToInventory(playerEntity, entity) ) { ! // This block is required to decref proxlist before cel->RemoveItem is called. ! { ! csRef<iPcProximityList> pcproxlist = ! CEL_QUERY_PROPCLASS( entity->GetPropertyClassList(), ! iPcProximityList ); ! ! psCelPersistMessage msg(0, ! CELPERSISTCMD_REMOVE_ITEM, ! entity->GetID()); ! msgHandler->Multicast( msg.me, ! pcproxlist->GetClients().GetArray(), ! pcproxlist->GetClients().Length(), ! 0); ! } ! cel->RemoveItem(entity); ! charManager->SendInventory(clientNum); } --- 95,118 ---- if ( cel->MoveItemToInventory(playerEntity, entity) ) { ! { ! csRef<iPcProximityList> pcproxlist = ! CEL_QUERY_PROPCLASS( entity->GetPropertyClassList(), ! iPcProximityList ); ! ! psCelPersistMessage msg(0, ! CELPERSISTCMD_REMOVE_ITEM, ! PRIORITY_HIGH, ! entity->GetID()); ! msgHandler->Multicast( msg.me, ! pcproxlist->GetClients().GetArray(), ! pcproxlist->GetClients().Length(), ! 0); ! } ! cel->RemoveItem(entity); ! charManager->SendInventory(clientNum); } |