From: <ral...@us...> - 2014-03-03 01:59:59
|
Revision: 9307 http://sourceforge.net/p/planeshift/code/9307 Author: ralphcampbell Date: 2014-03-03 01:59:56 +0000 (Mon, 03 Mar 2014) Log Message: ----------- Don't send psPersistActor message twice when calling gemObject::UpdateProxList(force). The message was sent twice because objects are near themselves and 'force' overrode the StartWatching() check. Modified Paths: -------------- trunk/src/server/gem.cpp Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2014-03-03 01:44:30 UTC (rev 9306) +++ trunk/src/server/gem.cpp 2014-03-03 01:59:56 UTC (rev 9307) @@ -900,13 +900,18 @@ #endif } - if((!nearobj->GetClient() || (nearobj->GetClient() && nearobj->GetClient()->IsReady())) && nearobj->SeesObject(this, range)) + if((!nearobj->GetClient() || nearobj->GetClient()->IsReady()) && + nearobj->SeesObject(this, range)) { #ifdef PSPROXDEBUG log.AppendFmt("-%s can see %s\n",nearobj->GetName(),GetName()); #endif // true means new addition, false means already on list - if(nearobj->GetProxList()->StartWatching(this, range) || force) + if(nearobj->GetProxList()->StartWatching(this, range) || + (force && + // Don't send info a second time, loop above handles + // the case when object sees itself and 'force' is true. + nearobj != this)) { #ifdef PSPROXDEBUG log.AppendFmt("-%s started watching %s\n",nearobj->GetName(),GetName()); @@ -3902,7 +3907,7 @@ ^ v / | / | y - /a} | + /a | o------> xz */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |