home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 56 / CDPowerplay56Disc2.iso / demos / blade / data1.cab / Program_Executable_Files / Lib / Room.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2000-10-27  |  4.4 KB  |  118 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import Bladex
  5. import Traps_C
  6. Traps_C.InitSector()
  7. last_room = 0
  8. rooms = [
  9.     0,
  10.     0]
  11.  
  12. class ROOM:
  13.     
  14.     def __init__(self, enter, leave, sld):
  15.         self.n_entrances = 0
  16.         self.room = 0
  17.         self.entrance = 0
  18.         self.inside = 0
  19.         self.enter_func = enter
  20.         self.leave_func = leave
  21.         self.sld = sld
  22.         self.sld_doors = [
  23.             0,
  24.             0]
  25.  
  26.     
  27.     def IsInside(self):
  28.         return self.inside
  29.  
  30.     
  31.     def AddDoor(self, sector_x, sector_y, sector_z):
  32.         sector = Bladex.GetSector(sector_x, sector_y, sector_z)
  33.         i = Traps_C.AddSector(sector, self)
  34.         rooms[i:i] = [
  35.             self]
  36.         self.sld_doors[self.n_entrances:self.n_entrances] = [
  37.             sector.Index]
  38.         sector.OnEnter = EnterEntrance
  39.         sector.OnLeave = LeaveEntrance
  40.         self.n_entrances = self.n_entrances + 1
  41.  
  42.     
  43.     def AddEntity(self, name):
  44.         Traps_C.AddName(self.sld, name)
  45.         for i in range(self.n_entrances):
  46.             Traps_C.AddName(self.sld_doors[i], name)
  47.         
  48.  
  49.     
  50.     def AddAllObjects(self, v):
  51.         Traps_C.AddAllObjects(self.sld, v)
  52.         for i in range(self.n_entrances):
  53.             Traps_C.AddAllObjects(self.sld_doors[i], v)
  54.         
  55.  
  56.     
  57.     def AddAllPersons(self, v):
  58.         Traps_C.AddAllPersons(self.sld, v)
  59.         for i in range(self.n_entrances):
  60.             Traps_C.AddAllPersons(self.sld_doors[i], v)
  61.         
  62.  
  63.  
  64.  
  65. def CreateRoom(sector_x, sector_y, sector_z, enter_func, leave_func):
  66.     sector = Bladex.GetSector(sector_x, sector_y, sector_z)
  67.     room = ROOM(enter_func, leave_func, sector.Index)
  68.     i = Traps_C.AddSector(sector, room)
  69.     rooms[i:i] = [
  70.         room]
  71.     sector.OnEnter = EnterRoom
  72.     sector.OnLeave = LeaveRoom
  73.     return room
  74.  
  75.  
  76. def EnterEntrance(sld, entity):
  77.     i = Traps_C.IsValidEntity(sld, entity)
  78.     if i >= 0:
  79.         p = rooms[i]
  80.         p.entrance = 1
  81.         p.room = 0
  82.     
  83.  
  84.  
  85. def EnterRoom(sld, entity):
  86.     i = Traps_C.IsValidEntity(sld, entity)
  87.     if i >= 0:
  88.         p = rooms[i]
  89.         p.room = 1
  90.     
  91.  
  92.  
  93. def LeaveRoom(sld, entity):
  94.     i = Traps_C.IsValidEntity(sld, entity)
  95.     if i >= 0:
  96.         p = rooms[i]
  97.         p.room = 0
  98.         if p.inside:
  99.             p.inside = 0
  100.             if p.entrance:
  101.                 apply(p.leave_func, (sld, entity))
  102.             
  103.         
  104.     
  105.  
  106.  
  107. def LeaveEntrance(sld, entity):
  108.     i = Traps_C.IsValidEntity(sld, entity)
  109.     if i >= 0:
  110.         p = rooms[i]
  111.         p.entrance = 0
  112.         if p.room:
  113.             p.inside = 1
  114.             apply(p.enter_func, (sld, entity))
  115.         
  116.     
  117.  
  118.