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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import Bladex
  5. import InitDataField
  6. import AuxFuncs
  7. import GameStateAux
  8. import ObjStore
  9. import Scorer
  10. CLOSED = 0
  11. OPENED = 1
  12. AC = 2
  13. UNIF = 3
  14. AC_UNIF_DEC = 4
  15. UNIF_DEC = 5
  16. AC_UNIF = 6
  17. AC_DEC = 7
  18. DEC = 8
  19. Bladex.CreateTimer('DoorTimer', 0.1)
  20.  
  21. def DisplaceSound(sld_name, time):
  22.     sld_area = Bladex.GetEntity(sld_name)
  23.     door = sld_area.Data.doordata
  24.     door.currdispl = sld_area.Displacement
  25.     displ_var = door.prevdispl - door.currdispl
  26.     v = (door.surface[0] * displ_var, door.surface[1] * displ_var, door.surface[2] * displ_var)
  27.     door.soundpos = (door.soundpos[0] - v[0], door.soundpos[1] - v[1], door.soundpos[2] - v[2])
  28.     door.prevdispl = door.currdispl
  29.     if door.WhileOpenSound:
  30.         door.WhileOpenSound.Position = door.soundpos
  31.     
  32.     if door.WhileCloseSound:
  33.         door.WhileCloseSound.Position = door.soundpos
  34.     
  35.  
  36.  
  37. def EndOpenFunc(sld_name):
  38.     sld_area = Bladex.GetEntity(sld_name)
  39.     sld_area.RemoveFromList('DoorTimer')
  40.     door = sld_area.Data.doordata
  41.     door.currdispl = sld_area.Displacement
  42.     displ_var = door.prevdispl - door.currdispl
  43.     v = (door.surface[0] * displ_var, door.surface[1] * displ_var, door.surface[2] * displ_var)
  44.     door.soundpos = (door.soundpos[0] - v[0], door.soundpos[1] - v[1], door.soundpos[2] - v[2])
  45.     door.prevdispl = door.currdispl
  46.     if door.WhileOpenSound:
  47.         door.WhileOpenSound.StopSound()
  48.     
  49.     if door.EndOpenSound:
  50.         door.EndOpenSound.Position = door.soundpos
  51.         door.EndOpenSound.PlaySound(0)
  52.     
  53.     door.status = OPENED
  54.     if door.OnEndOpenFunc:
  55.         apply(door.OnEndOpenFunc, door.OnEndOpenArgs)
  56.     
  57.  
  58.  
  59. def EndCloseFunc(sld_name):
  60.     sld_area = Bladex.GetEntity(sld_name)
  61.     sld_area.RemoveFromList('DoorTimer')
  62.     door = sld_area.Data.doordata
  63.     door.currdispl = sld_area.Displacement
  64.     displ_var = door.prevdispl - door.currdispl
  65.     v = (door.surface[0] * displ_var, door.surface[1] * displ_var, door.surface[2] * displ_var)
  66.     door.soundpos = (door.soundpos[0] - v[0], door.soundpos[1] - v[1], door.soundpos[2] - v[2])
  67.     door.prevdispl = door.currdispl
  68.     if door.WhileCloseSound:
  69.         door.WhileCloseSound.StopSound()
  70.     
  71.     if door.EndCloseSound:
  72.         door.EndCloseSound.Position = door.soundpos
  73.         door.EndCloseSound.PlaySound(0)
  74.     
  75.     door.status = CLOSED
  76.     if door.OnEndCloseFunc:
  77.         apply(door.OnEndCloseFunc, door.OnEndCloseArgs)
  78.     
  79.  
  80.  
  81. def EndOpen(sld_name):
  82.     sld_area = Bladex.GetEntity(sld_name)
  83.     door = sld_area.Data.doordata
  84.     dec = (door.o_end_vel ** 2 - door.o_med_vel ** 2) / (2 * door.o_end_displ)
  85.     if door.o_med_vel < 0:
  86.         dec = -dec
  87.     
  88.     sld_area.SlideTo(door.closed_displ - door.o_init_displ - door.o_med_displ - door.o_end_displ, door.o_med_vel, dec)
  89.     sld_area.OnStopFunc = EndOpenFunc
  90.  
  91.  
  92. def MedOpen(sld_name):
  93.     sld_area = Bladex.GetEntity(sld_name)
  94.     door = sld_area.Data.doordata
  95.     sld_area.SlideTo(door.closed_displ - door.o_init_displ - door.o_med_displ, door.o_med_vel, 0)
  96.     if door.opentype == AC_UNIF_DEC:
  97.         sld_area.OnStopFunc = EndOpen
  98.     else:
  99.         sld_area.OnStopFunc = EndOpenFunc
  100.  
  101.  
  102. def EndClose(sld_name):
  103.     sld_area = Bladex.GetEntity(sld_name)
  104.     door = sld_area.Data.doordata
  105.     dec = (door.c_end_vel ** 2 - door.c_med_vel ** 2) / (2 * door.c_end_displ)
  106.     if door.c_med_vel < 0:
  107.         dec = -dec
  108.     
  109.     sld_area.SlideTo(door.opened_displ + door.c_init_displ + door.c_med_displ + door.c_end_displ, door.c_med_vel, dec)
  110.     sld_area.OnStopFunc = EndCloseFunc
  111.  
  112.  
  113. def MedClose(sld_name):
  114.     sld_area = Bladex.GetEntity(sld_name)
  115.     door = sld_area.Data.doordata
  116.     sld_area.SlideTo(door.opened_displ + door.c_init_displ + door.c_med_displ, door.c_med_vel, 0)
  117.     if door.closetype == AC_UNIF_DEC:
  118.         sld_area.OnStopFunc = EndClose
  119.     else:
  120.         sld_area.OnStopFunc = EndCloseFunc
  121.  
  122.  
  123. class Door:
  124.     ObjId = ''
  125.     Name = None
  126.     opentype = UNIF
  127.     o_init_vel = 0
  128.     o_med_vel = 0
  129.     o_end_vel = 0
  130.     o_init_displ = 0
  131.     o_med_displ = 0
  132.     o_end_displ = 0
  133.     closetype = UNIF
  134.     c_init_vel = 0
  135.     c_med_vel = 0
  136.     c_end_vel = 0
  137.     c_init_displ = 0
  138.     c_med_displ = 0
  139.     c_end_displ = 0
  140.     OnEndOpenFunc = ''
  141.     OnEndCloseFunc = ''
  142.     OnEndOpenArgs = ()
  143.     OnEndCloseArgs = ()
  144.     InitOpenSound = ''
  145.     WhileOpenSound = ''
  146.     EndOpenSound = ''
  147.     InitCloseSound = ''
  148.     WhileCloseSound = ''
  149.     EndCloseSound = ''
  150.     surface = (0, 1, 0)
  151.     closed_displ = 0
  152.     opened_displ = 0
  153.     currdispl = 0
  154.     prevdispl = 0
  155.     soundpos = (0, 0, 0)
  156.     Squezze = 1
  157.     status = 0
  158.     
  159.     def __init__(self, Name):
  160.         self.ObjId = ObjStore.GetNewId()
  161.         self.Name = Name
  162.         ObjStore.ObjectsStore[self.ObjId] = self
  163.  
  164.     
  165.     def __del__(self):
  166.         del ObjStore.ObjectsStore[self.ObjId]
  167.  
  168.     
  169.     def sld_area(self):
  170.         return Bladex.GetEntity(self.Name)
  171.  
  172.     
  173.     def OpenDoor(self):
  174.         if self.status == OPENED:
  175.             return None
  176.         
  177.         sld_area = Bladex.GetEntity(self.Name)
  178.         self.prevdispl = sld_area.Displacement
  179.         if self.Squezze:
  180.             sld_area = Bladex.GetEntity(self.Name)
  181.             sld_area.HitFunc = None
  182.         
  183.         if self.InitOpenSound:
  184.             self.InitOpenSound.Position = self.soundpos
  185.             self.InitOpenSound.PlaySound(0)
  186.         
  187.         if self.WhileOpenSound:
  188.             self.WhileOpenSound.Position = self.soundpos
  189.             self.WhileOpenSound.PlaySound(-1)
  190.         
  191.         sld_area.TimerFunc = DisplaceSound
  192.         sld_area.SubscribeToList('DoorTimer')
  193.         if self.opentype == AC and self.opentype == AC_UNIF_DEC and self.opentype == AC_UNIF or self.opentype == AC_DEC:
  194.             ac = (self.o_med_vel ** 2 - self.o_init_vel ** 2) / (2 * self.o_init_displ)
  195.             if self.o_med_vel < 0:
  196.                 ac = -ac
  197.             
  198.             sld_area.SlideTo(self.closed_displ - self.o_init_displ, self.o_init_vel, ac)
  199.             if self.opentype == AC_UNIF_DEC or self.opentype == AC_UNIF:
  200.                 sld_area.OnStopFunc = MedOpen
  201.             elif self.opentype == AC_DEC:
  202.                 sld_area.OnStopFunc = EndOpen
  203.             else:
  204.                 sld_area.OnStopFunc = EndOpenFunc
  205.             return None
  206.         
  207.         if self.opentype == UNIF or self.opentype == UNIF_DEC:
  208.             sld_area.SlideTo(self.closed_displ - self.o_med_displ, self.o_med_vel, 0)
  209.             if self.opentype == UNIF_DEC:
  210.                 sld_area.OnStopFunc = EndOpen
  211.             else:
  212.                 sld_area.OnStopFunc = EndOpenFunc
  213.             return None
  214.         
  215.         if self.opentype == DEC:
  216.             dec = (self.o_end_vel ** 2 - self.o_med_vel ** 2) / (2 * self.o_end_displ)
  217.             if self.o_med_vel < 0:
  218.                 dec = -dec
  219.             
  220.             sld_area.SlideTo(self.closed_displ - self.o_end_displ, self.o_med_vel, dec)
  221.             sld_area.OnStopFunc = EndOpenFunc
  222.         
  223.  
  224.     
  225.     def CloseDoor(self):
  226.         if self.status == CLOSED:
  227.             return None
  228.         
  229.         sld_area = Bladex.GetEntity(self.Name)
  230.         self.prevdispl = sld_area.Displacement
  231.         if self.Squezze:
  232.             sld_area.HitFunc = DoorHit
  233.         
  234.         if self.InitCloseSound:
  235.             self.InitCloseSound.Position = self.soundpos
  236.             self.InitCloseSound.PlaySound(0)
  237.         
  238.         if self.WhileCloseSound:
  239.             self.WhileCloseSound.Position = self.soundpos
  240.             self.WhileCloseSound.PlaySound(-1)
  241.         
  242.         sld_area.TimerFunc = DisplaceSound
  243.         sld_area.SubscribeToList('DoorTimer')
  244.         if self.closetype == AC and self.closetype == AC_UNIF_DEC and self.closetype == AC_UNIF or self.closetype == AC_DEC:
  245.             ac = (self.c_med_vel ** 2 - self.c_init_vel ** 2) / (2 * self.c_init_displ)
  246.             if self.c_med_vel < 0:
  247.                 ac = -ac
  248.             
  249.             sld_area.SlideTo(self.opened_displ + self.c_init_displ, self.c_init_vel, ac)
  250.             if self.closetype == AC_UNIF_DEC or self.closetype == AC_UNIF:
  251.                 sld_area.OnStopFunc = MedClose
  252.             elif self.closetype == AC_DEC:
  253.                 sld_area.OnStopFunc = EndClose
  254.             else:
  255.                 sld_area.OnStopFunc = EndCloseFunc
  256.             return None
  257.         
  258.         if self.closetype == UNIF or self.closetype == UNIF_DEC:
  259.             sld_area.SlideTo(self.opened_displ + self.c_med_displ, self.c_med_vel, 0)
  260.             if self.closetype == UNIF_DEC:
  261.                 sld_area.OnStopFunc = EndClose
  262.             else:
  263.                 sld_area.OnStopFunc = EndCloseFunc
  264.             return None
  265.         
  266.         if self.closetype == DEC:
  267.             dec = (self.c_end_vel ** 2 - self.c_med_vel ** 2) / (2 * self.c_end_displ)
  268.             if self.c_med_vel < 0:
  269.                 dec = -dec
  270.             
  271.             sld_area.SlideTo(self.opened_displ + self.c_end_displ, self.c_med_vel, dec)
  272.             sld_area.OnStopFunc = EndCloseFunc
  273.         
  274.  
  275.     
  276.     def SetInitOpenSound(self, sound):
  277.         self.InitOpenSound = sound
  278.  
  279.     
  280.     def SetWhileOpenSound(self, sound):
  281.         self.WhileOpenSound = sound
  282.  
  283.     
  284.     def SetEndOpenSound(self, sound):
  285.         self.EndOpenSound = sound
  286.  
  287.     
  288.     def SetInitCloseSound(self, sound):
  289.         self.InitCloseSound = sound
  290.  
  291.     
  292.     def SetWhileCloseSound(self, sound):
  293.         self.WhileCloseSound = sound
  294.  
  295.     
  296.     def SetEndCloseSound(self, sound):
  297.         self.EndCloseSound = sound
  298.  
  299.     
  300.     def persistent_id(self):
  301.         return self.ObjId
  302.  
  303.     
  304.     def __getstate__(self):
  305.         return (1, self.ObjId, self.Name, self.opentype, self.o_init_vel, self.o_med_vel, self.o_end_vel, self.o_init_displ, self.o_med_displ, self.o_end_displ, self.closetype, self.c_init_vel, self.c_med_vel, self.c_end_vel, self.c_init_displ, self.c_med_displ, self.c_end_displ, GameStateAux.SaveFunctionAux(self.OnEndOpenFunc), GameStateAux.SaveFunctionAux(self.OnEndCloseFunc), self.OnEndOpenArgs, self.OnEndCloseArgs, self.InitOpenSound, self.WhileOpenSound, self.EndOpenSound, self.InitCloseSound, self.WhileCloseSound, self.EndCloseSound, self.status, self.Squezze, self.closed_displ, self.opened_displ, self.surface, self.soundpos, self.prevdispl, GameStateAux.SaveNewMembers(self))
  306.  
  307.     
  308.     def __setstate__(self, parm):
  309.         if parm[0] == 1:
  310.             self.ObjId = parm[1]
  311.             ObjStore.ObjectsStore[self.ObjId] = self
  312.             self.Name = parm[2]
  313.             self.opentype = parm[3]
  314.             self.o_init_vel = parm[4]
  315.             self.o_med_vel = parm[5]
  316.             self.o_end_vel = parm[6]
  317.             self.o_init_displ = parm[7]
  318.             self.o_med_displ = parm[8]
  319.             self.o_end_displ = parm[9]
  320.             self.closetype = parm[10]
  321.             self.c_init_vel = parm[11]
  322.             self.c_med_vel = parm[12]
  323.             self.c_end_vel = parm[13]
  324.             self.c_init_displ = parm[14]
  325.             self.c_med_displ = parm[15]
  326.             self.c_end_displ = parm[16]
  327.             GameStateAux.LoadFunctionAux(parm[17], self, 'OnEndOpenFunc')
  328.             GameStateAux.LoadFunctionAux(parm[18], self, 'OnEndCloseFunc')
  329.             self.OnEndOpenArgs = parm[19]
  330.             self.OnEndCloseArgs = parm[20]
  331.             self.InitOpenSound = parm[21]
  332.             self.WhileOpenSound = parm[22]
  333.             self.EndOpenSound = parm[23]
  334.             self.InitCloseSound = parm[24]
  335.             self.WhileCloseSound = parm[25]
  336.             self.EndCloseSound = parm[26]
  337.             self.status = parm[27]
  338.             self.Squezze = parm[28]
  339.             self.closed_displ = parm[29]
  340.             self.opened_displ = parm[30]
  341.             self.surface = parm[31]
  342.             self.soundpos = parm[32]
  343.             self.prevdispl = parm[33]
  344.             GameStateAux.LoadNewMembers(self, parm[34])
  345.         else:
  346.             print 'Door.__setstate__() -> Version mismatch'
  347.             self.Name = 'Error loading'
  348.             self.ObjId = ObjStore.GetNewId()
  349.             ObjStore.ObjectsStore[self.ObjId] = self
  350.  
  351.  
  352.  
  353. def DoorHit(sld, per, x, y, z, dx, dy, dz, wcx, wcy, wcz, wdx, wdy, wdz):
  354.     print sld, per, x, y, z, dx, dy, dz
  355.     p = Bladex.GetEntity(per)
  356.     if dy != 0:
  357.         p.LaunchAnmType('dth_rock')
  358.     
  359.     p.Life = -1
  360.     if per == 'Player1':
  361.         cam = Bladex.GetEntity('Camera')
  362.         cam.SType = 0
  363.         cam.TType = 0
  364.         AuxFuncs.FadeTo(3.0, 60.0, 32, 0, 0)
  365.         Scorer.SetVisible(0)
  366.     
  367.  
  368.  
  369. def Restore():
  370.     cam = Bladex.GetEntity('Camera')
  371.     cam.SetPersonView('Player1')
  372.     cam.Cut()
  373.     AuxFuncs.FadeFrom(3.0, 0.0, 255, 0, 0)
  374.     char = Bladex.GetEntity('Player1')
  375.     char.UnFreeze()
  376.     char.Alpha = 1
  377.     char.SelfIlum = 0
  378.     char.LaunchAnmType('rlx')
  379.     Scorer.SetVisible(1)
  380.     char.Data.ReSpawn('Player1')
  381.  
  382.  
  383. def CreateDoor(sld_name, sector, sld_surface, opened_displ, closed_displ, init_status = CLOSED):
  384.     door = Door(sld_name)
  385.     sld_area = Bladex.CreateEntity(sld_name, 'Entity Sliding Area', sector[0], sector[1], sector[2])
  386.     sld_area.SlidingSurface = sld_surface
  387.     door.surface = sld_surface
  388.     if init_status == OPENED:
  389.         door.status = OPENED
  390.         v = (sld_surface[0] * closed_displ, sld_surface[1] * closed_displ, sld_surface[2] * closed_displ)
  391.         door.soundpos = (sector[0] - v[0], sector[1] - v[1], sector[2] - v[2])
  392.         door.prevdispl = door.currdispl = sld_area.Displacement = opened_displ
  393.     else:
  394.         door.status = CLOSED
  395.         door.soundpos = sector
  396.         door.prevdispl = door.currdispl = sld_area.Displacement = closed_displ
  397.     door.opened_displ = opened_displ
  398.     door.closed_displ = closed_displ
  399.     InitDataField.Initialise(sld_area)
  400.     sld_area.Data.doordata = door
  401.     door.Squezze = 0
  402.     return door
  403.  
  404.