- Optimised party x/y timer processing by excluding parties with no members online

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15045 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
epoque11 2011-12-09 03:59:34 +00:00
parent 75010f0a3a
commit aa2686893c

View File

@ -873,11 +873,16 @@ int party_send_xy_timer(int tid, unsigned int tick, int id, intptr_t data)
for( p = (struct party_data*)iter->first(iter,NULL); iter->exists(iter); p = (struct party_data*)iter->next(iter,NULL) ) for( p = (struct party_data*)iter->first(iter,NULL); iter->exists(iter); p = (struct party_data*)iter->next(iter,NULL) )
{ {
int i; int i;
if( !p->party.count )
{// no online party members so do not iterate
continue;
}
// for each member of this party, // for each member of this party,
for( i = 0; i < MAX_PARTY; i++ ) for( i = 0; i < MAX_PARTY; i++ )
{ {
//struct map_session_data* sd = p->data[i].sd; struct map_session_data* sd = p->data[i].sd;
struct map_session_data* sd = map_charid2sd(p->party.member[i].char_id); //temporary crashfix
if( !sd ) continue; if( !sd ) continue;
if( p->data[i].x != sd->bl.x || p->data[i].y != sd->bl.y ) if( p->data[i].x != sd->bl.x || p->data[i].y != sd->bl.y )