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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import Bladex
  5. import InitDataField
  6. import Actions
  7. import Reference
  8. import GameStateAux
  9. import ObjStore
  10. import darfuncs
  11. import types
  12. LOCK = 0
  13. UNLOCK = 1
  14.  
  15. def ActivateLock(pj_name, event):
  16.     pj = Bladex.GetEntity(pj_name)
  17.     lock = pj.Data.obj_used.Data.lockdata
  18.     if lock.state == UNLOCK:
  19.         lock.Lock()
  20.     elif lock.state == LOCK:
  21.         lock.UnLock()
  22.     
  23.     pj.Data.obj_used = None
  24.     pj.DelAnmEventFunc('Activate')
  25.  
  26.  
  27. def PlayerHasKey(EntityName, key):
  28.     pj = Bladex.GetEntity('Player1')
  29.     inv = pj.GetInventory()
  30.     for x in range(0, inv.nKeys):
  31.         pass
  32.     
  33.     return 0
  34.  
  35.  
  36. def KeyDown(pj_name, event):
  37.     pj = Bladex.GetEntity(pj_name)
  38.     inv = pj.GetInventory()
  39.     inv.LinkRightHand('None')
  40.     pj.DelAnmEventFunc('Key_down')
  41.  
  42.  
  43. def LockUseFunc(lock_name, use_from):
  44.     import GameText
  45.     import MenuText
  46.     obj = Bladex.GetEntity(lock_name)
  47.     lock = obj.Data.lockdata
  48.     pj = Bladex.GetEntity('Player1')
  49.     if pj.Wuea == Reference.WUEA_WAIT:
  50.         return None
  51.     
  52.     if PlayerHasKey(pj.Name, lock.key):
  53.         if not (pj.InvRight):
  54.             pj.Data.SwitchedWeapon = 0
  55.             Actions.QuickTurnToFaceEntity('Player1', lock_name)
  56.             LockUseFunc2(pj.Name)
  57.         elif Actions.IsRightHandStandardObject(pj.Name):
  58.             if Actions.TryDropRight(pj.Name):
  59.                 Actions.DropReleaseEventHandler(pj.Name, 'DropRightEvent')
  60.             
  61.             pj.Wuea = Reference.WUEA_ENDED
  62.             if not (pj.InvRight):
  63.                 pj.Data.SwitchedWeapon = 0
  64.                 Actions.QuickTurnToFaceEntity('Player1', lock_name)
  65.                 LockUseFunc2(pj.Name)
  66.             
  67.         else:
  68.             pj.AddAnmEventFunc('ChangeREvent', Actions.ToggleWEvent)
  69.             pj.LaunchAnmType('Chg_r')
  70.             pj.Data.SwitchedWeapon = 1
  71.             Actions.QuickTurnToFaceEntity('Player1', lock_name)
  72.             pj.AnmEndedFunc = LockUseFunc2
  73.     else:
  74.         GameText.WriteTextAux(MenuText.GetMenuText("You don't have the key."), 2.0, 255, 255, 255, [])
  75.  
  76.  
  77. def LockUseFunc2(EntityName):
  78.     pj = Bladex.GetEntity(EntityName)
  79.     obj = pj.Data.obj_used
  80.     lock = obj.Data.lockdata
  81.     inv = pj.GetInventory()
  82.     inv.LinkRightHand(lock.key)
  83.     pj.LaunchAnmType('key')
  84.     pj.AddAnmEventFunc('Activate', ActivateLock)
  85.     pj.AddAnmEventFunc('Key_down', KeyDown)
  86.     pj.AnmEndedFunc = LockUseFunc3
  87.  
  88.  
  89. def LockUseFunc3(EntityName):
  90.     pj = Bladex.GetEntity(EntityName)
  91.     if pj.Data.SwitchedWeapon:
  92.         pj.AddAnmEventFunc('ChangeREvent', Actions.ToggleWEvent)
  93.         pj.LaunchAnmType('Chg_r')
  94.     
  95.  
  96.  
  97. class Lock:
  98.     ObjId = ''
  99.     state = LOCK
  100.     key = 'Key'
  101.     OnLockFunc = None
  102.     OnLockArgs = ()
  103.     OnUnLockFunc = None
  104.     OnUnLockArgs = ()
  105.     UnUsed = 0
  106.     obj = None
  107.     
  108.     def __init__(self):
  109.         self.ObjId = ObjStore.GetNewId()
  110.         ObjStore.ObjectsStore[self.ObjId] = self
  111.  
  112.     
  113.     def __del__(self):
  114.         del ObjStore.ObjectsStore[self.ObjId]
  115.  
  116.     
  117.     def DecUser(self):
  118.         if self.UnUsed:
  119.             ll = Bladex.GetEntity(self.key)
  120.             if type(ll.Data) is types.IntType:
  121.                 auxv = ll.Data
  122.                 ll.Data = darfuncs.EmptyClass()
  123.                 ll.Data.Used = auxv
  124.             
  125.             if ll.Data == None:
  126.                 ll.Data = darfuncs.EmptyClass()
  127.                 ll.Data.Used = 0
  128.             else:
  129.                 ll.Data.Used = ll.Data.Used - 1
  130.             self.UnUsed = 0
  131.         
  132.  
  133.     
  134.     def Lock(self):
  135.         if self.state == UNLOCK:
  136.             self.state = LOCK
  137.             if self.OnLockFunc:
  138.                 self.DecUser()
  139.                 apply(self.OnLockFunc, self.OnLockArgs)
  140.             
  141.         
  142.  
  143.     
  144.     def UnLock(self):
  145.         if self.state == LOCK:
  146.             self.state = UNLOCK
  147.             if self.OnUnLockFunc:
  148.                 self.DecUser()
  149.                 apply(self.OnUnLockFunc, self.OnUnLockArgs)
  150.             
  151.         
  152.  
  153.     
  154.     def persistent_id(self):
  155.         return self.ObjId
  156.  
  157.     
  158.     def __getstate__(self):
  159.         return (1, self.ObjId, self.state, self.key, GameStateAux.SaveFunctionAux(self.OnLockFunc), self.OnLockArgs, GameStateAux.SaveFunctionAux(self.OnUnLockFunc), self.OnUnLockArgs, self.UnUsed, GameStateAux.SaveEntityAux(self.obj), GameStateAux.SaveNewMembers(self))
  160.  
  161.     
  162.     def __setstate__(self, parm):
  163.         if parm[0] == 1:
  164.             self.ObjId = parm[1]
  165.             ObjStore.ObjectsStore[self.ObjId] = self
  166.             self.state = parm[2]
  167.             self.key = parm[3]
  168.             GameStateAux.LoadFunctionAux(parm[4], self, 'OnLockFunc')
  169.             self.OnLockArgs = parm[5]
  170.             GameStateAux.LoadFunctionAux(parm[6], self, 'OnUnLockFunc')
  171.             self.OnUnLockArgs = parm[7]
  172.             self.UnUsed = parm[8]
  173.             self.obj = (GameStateAux.LoadEntityAux(parm[9]),)
  174.             GameStateAux.LoadNewMembers(self, parm[10])
  175.         else:
  176.             print 'Lever.__setstate__() -> Version mismatch'
  177.             self.ObjId = ObjStore.GetNewId()
  178.             ObjStore.ObjectsStore[self.ObjId] = self
  179.             self.state = LOCK
  180.             self.key = 'Key'
  181.             self.OnLockFunc = None
  182.             self.OnLockArgs = ()
  183.             self.OnUnLockFunc = None
  184.             self.OnUnLockArgs = ()
  185.             self.UnUsed = 0
  186.  
  187.  
  188.  
  189. def PlaceLock(name, type, position, orientation, scale):
  190.     lock = Lock()
  191.     lock.UnUsed = 1
  192.     lock.obj = Bladex.CreateEntity(name, type, position[0], position[1], position[2])
  193.     lock.obj.Orientation = orientation
  194.     lock.obj.Scale = scale
  195.     InitDataField.Initialise(lock.obj)
  196.     lock.obj.Data.lockdata = lock
  197.     lock.obj.UseFunc = LockUseFunc
  198.     return lock
  199.  
  200.