From 3576ea4cc93aa57ca450cbb01c10d2ea46414b95 Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Tue, 27 Jan 2004 00:54:02 +0000 Subject: [PATCH] don't send setZone msg if viz has not changed --- direct/src/level/DistributedLevel.py | 30 +++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/direct/src/level/DistributedLevel.py b/direct/src/level/DistributedLevel.py index 532cc2278b..15efad6a25 100755 --- a/direct/src/level/DistributedLevel.py +++ b/direct/src/level/DistributedLevel.py @@ -574,7 +574,10 @@ class DistributedLevel(DistributedObject.DistributedObject, # we should not have the uberZone in the list at this point assert not LevelConstants.UberZoneEntId in visibleZoneNums - + + # this flag will prevent a network msg from being sent if + # the list of visible zones has not changed + vizZonesChanged = 1 if DistributedLevel.HideZones: # figure out which zones are new and which are going invisible # use dicts because it's faster to use dict.has_key(x) @@ -592,15 +595,24 @@ class DistributedLevel(DistributedObject.DistributedObject, addedZoneNums.append(vz) else: removedZoneNums.append(vz) - # show the new, hide the old - DistributedLevel.notify.info('showing zones %s' % addedZoneNums) - for az in addedZoneNums: - self.showZone(az) - DistributedLevel.notify.info('hiding zones %s' % removedZoneNums) - for rz in removedZoneNums: - self.hideZone(rz) - self.setVisibility(visibleZoneNums.keys()) + if (not addedZoneNums) and (not removedZoneNums): + DistributedLevel.notify.info( + 'visible zone list has not changed') + vizZonesChanged = 0 + else: + # show the new, hide the old + DistributedLevel.notify.info('showing zones %s' % + addedZoneNums) + for az in addedZoneNums: + self.showZone(az) + DistributedLevel.notify.info('hiding zones %s' % + removedZoneNums) + for rz in removedZoneNums: + self.hideZone(rz) + + if vizZonesChanged: + self.setVisibility(visibleZoneNums.keys()) self.curZoneNum = zoneNum self.curVisibleZoneNums = visibleZoneNums