commit 7ea6122380541b09261e7330afd47f160639ba26 Author: devhc Date: Wed Jul 13 08:02:48 2011 +0200 add hacks for client numbers of >=32 diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c index b1af50c..89223ea 100644 --- a/src/game/g_buildable.c +++ b/src/game/g_buildable.c @@ -4486,7 +4486,9 @@ void G_UpdateBuildableRangeMarkers( void ) vectoangles( e->s.origin2, e->rangeMarker->s.apos.trBase ); e->rangeMarker->r.singleClient = 0; - e->rangeMarker->r.hiMask = 0; + + // remove any previously added noclient flags (see the hack below) + e->rangeMarker->r.svFlags &= ~SVF_NOCLIENT; for( i = 0; i < level.maxclients; ++i ) { @@ -4509,7 +4511,17 @@ void G_UpdateBuildableRangeMarkers( void ) if( ( team == TEAM_NONE || ( team == bTeam && weaponDisplays ) ) && wantsToSee ) { if( i >= 32 ) - e->rangeMarker->r.hiMask |= 1 << ( i - 32 ); + { + // HACK: there is no support for 64-bit client masks yet. + // resort to not sending any range markers (an alternative + // would be to send all range markers to everyone) + for( e = &g_entities[ MAX_CLIENTS ]; e < &g_entities[ level.num_entities ]; ++e ) + { + if( e->s.eType == ET_BUILDABLE && e->rangeMarker ) + e->rangeMarker->r.svFlags |= SVF_NOCLIENT; + } + return; + } else e->rangeMarker->r.singleClient |= 1 << i; }