guard for calling setLocation twice

This commit is contained in:
Joe Shochet 2005-03-16 00:05:16 +00:00
parent 25dd2c7217
commit 0b3f17397b

View File

@ -152,20 +152,22 @@ class DistributedObjectAI(DirectObject.DirectObject):
def setLocation(self, parentId, zoneId): def setLocation(self, parentId, zoneId):
oldParentId = self.parentId oldParentId = self.parentId
oldZoneId = self.zoneId oldZoneId = self.zoneId
self.zoneId = zoneId if ((oldParentId != parentId) or
self.parentId = parentId (oldZoneId != zoneId)):
self.air.changeDOZoneInTables(self, zoneId, oldZoneId) self.zoneId = zoneId
messenger.send(self.getZoneChangeEvent(), [zoneId, oldZoneId]) self.parentId = parentId
# if we are not going into the quiet zone, send a 'logical' zone self.air.changeDOZoneInTables(self, zoneId, oldZoneId)
# change message messenger.send(self.getZoneChangeEvent(), [zoneId, oldZoneId])
if zoneId != DistributedObjectAI.QuietZone: # if we are not going into the quiet zone, send a 'logical' zone
lastLogicalZone = oldZoneId # change message
if oldZoneId == DistributedObjectAI.QuietZone: if zoneId != DistributedObjectAI.QuietZone:
lastLogicalZone = self.lastNonQuietZone lastLogicalZone = oldZoneId
self.handleLogicalZoneChange(zoneId, lastLogicalZone) if oldZoneId == DistributedObjectAI.QuietZone:
self.lastNonQuietZone = zoneId lastLogicalZone = self.lastNonQuietZone
# self.air.storeObjectLocation(self.doId, parentId, zoneId) self.handleLogicalZoneChange(zoneId, lastLogicalZone)
self.__location = (parentId, zoneId) self.lastNonQuietZone = zoneId
# self.air.storeObjectLocation(self.doId, parentId, zoneId)
self.__location = (parentId, zoneId)
def getLocation(self): def getLocation(self):
return self.__location return self.__location