Browse Source

fixed no-visibility case

Darren Ranalli 22 years ago
parent
commit
16166d6573
1 changed files with 15 additions and 4 deletions
  1. 15 4
      direct/src/level/DistributedLevel.py

+ 15 - 4
direct/src/level/DistributedLevel.py

@@ -214,6 +214,13 @@ class DistributedLevel(DistributedObject.DistributedObject,
         firstZone = 16
         self.enterZone(firstZone)
 
+        # if no viz, listen to all the zones
+        if not DistributedLevel.WantVisibility:
+            zones = list(self.zoneNums)
+            zones.remove(0)
+            zones.remove(16)
+            self.sendSetZone(16, zones)
+
     def enterZone(self, zoneNum):
         if not DistributedLevel.WantVisibility:
             return
@@ -252,14 +259,18 @@ class DistributedLevel(DistributedObject.DistributedObject,
             for rz in removedZoneNums:
                 self.hideZone(rz)
 
+        self.sendSetZone(zoneNum, visibleZoneNums.keys())
+
+        self.curZoneNum = zoneNum
+        self.curVisibleZoneNums = visibleZoneNums
+
+    def sendSetZone(self, curZone, vizList):
         # convert the zone numbers into their actual zoneIds
         # always include Toontown and factory uberZones
         visibleZoneIds = [ToontownGlobals.UberZone, self.getZoneId(0)]
-        for vz in visibleZoneNums.keys():
+        for vz in vizList:
             visibleZoneIds.append(self.getZoneId(vz))
         assert(uniqueElements(visibleZoneIds))
         self.notify.debug('new viz list: %s' % visibleZoneIds)
 
-        toonbase.tcr.sendSetZoneMsg(self.getZoneId(zoneNum), visibleZoneIds)
-        self.curZoneNum = zoneNum
-        self.curVisibleZoneNums = visibleZoneNums
+        toonbase.tcr.sendSetZoneMsg(self.getZoneId(curZone), visibleZoneIds)