home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 1.5)
-
- import Bladex
- import BBLib
- import time
- import types
- import cPickle
- import os
- import shutil
- import string
- import GameStateAux
- import ObjStore
- NotSave = []
- ModulesToBeSaved = []
-
- def GetPickFileName(data):
- filename = None
-
- try:
- filename = '%s/%s.dat' % ('f', data.persistent_id())
- except:
- if type(data) in (types.DictionaryType, types.ListType, types.TupleType):
- filename = '%s/%s%s.dat' % ('f', str(type(data)), ObjStore.GetNewId())
- elif type(data) == types.FunctionType:
- filename = '%s/%s%s.dat' % ('f', data.func_name, ObjStore.GetNewId())
- elif type(data) == types.MethodType:
- filename = '%s/%s%s.dat' % ('f', data.im_func.func_name, ObjStore.GetNewId())
- else:
- filename = '%s/%s%s.dat' % ('f', str(type(data)), ObjStore.GetNewId())
-
- return filename
-
-
- def SavePickDataAux(file, aux_dir, data, assign):
- if data:
- filename = GetPickFileName(data)
- restorestring = 'GameStateAux.GetPickledData("%s")' % (filename,)
- file.write(assign % (restorestring,))
- GameStateAux.SavePickData(filename, data)
-
-
-
- def SavePickledObjects(file, aux_dir):
- filename = '%s/%s.dat' % (aux_dir, 'DinObjs')
- ObjStore.CheckStore()
- funcfile = open(filename, 'wt')
- p = cPickle.Pickler(funcfile)
- p.dump(ObjStore.ObjectsStore)
- funcfile.close()
- file.write('GameStateAux.GetPickledObjects("%s")\n' % (filename,))
-
-
- class EntityState:
-
- def __init__(self, entity):
- self.CreationProps = { }
- self.SpecialProps = { }
- self.CreationProps['Name'] = entity.Name
- self.CreationProps['Kind'] = entity.Kind
- self.CreationProps['Position'] = entity.Position
- self.SpecialProps['Data'] = entity.Data
- self.SpecialProps['FrameFunc'] = entity.FrameFunc
- self.SpecialProps['HitFunc'] = entity.HitFunc
- self.SpecialProps['InflictHitFunc'] = entity.InflictHitFunc
- self.SpecialProps['DamageFunc'] = entity.DamageFunc
- self.SpecialProps['TimerFunc'] = entity.TimerFunc
- self.SpecialProps['HearFunc'] = entity.HearFunc
- self.SpecialProps['UseFunc'] = entity.UseFunc
- self.SpecialProps['SeeFunc'] = entity.SeeFunc
- self.SpecialProps['StickFunc'] = entity.StickFunc
- self.InWorld = entity.InWorld
-
-
- def SaveCreation(self, file, aux_dir):
- file.write('\n\n\n')
- file.write('o=Bladex.CreateEntity("%s","%s",%f,%f,%f)\n' % (self.CreationProps['Name'], self.CreationProps['Kind'], self.CreationProps['Position'][0], self.CreationProps['Position'][1], self.CreationProps['Position'][2]))
-
-
- def SaveSpecialProperties(self, file, aux_dir):
- name = self.CreationProps['Name']
- for i in self.SpecialProps.keys():
- curr_func = self.SpecialProps[i]
- f_rest_string = 'o.%s=' % i
- SavePickDataAux(file, aux_dir, curr_func, f_rest_string + '%s\n')
-
-
-
- def SaveStatePass2(self, file, aux_dir):
- if self.SpecialProps.keys():
- save = 1
-
- if save or self.SpecialProps['Data']:
- file.write('o=Bladex.GetEntity("%s")\n' % self.CreationProps['Name'])
- self.SaveSpecialProperties(file, aux_dir)
- data = self.SpecialProps['Data']
- SavePickDataAux(file, aux_dir, data, 'o.Data=%s\n\n\n\n')
-
-
-
-
- class EntitySpotState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntityObjectState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntityPhysicState(EntityObjectState):
-
- def __init__(self, entity):
- EntityObjectState.__init__(self, entity)
- self.SpecialProps['OnStopFunc'] = entity.OnStopFunc
-
-
- def SaveSpecialProperties(self, file, aux_dir):
- EntityState.SaveSpecialProperties(self, file, aux_dir)
- SavePickDataAux(file, aux_dir, self.SpecialProps['OnStopFunc'], 'o.OnStopFunc=%s\n')
-
-
-
- class EntityWeaponState(EntityPhysicState):
-
- def __init__(self, entity):
- EntityPhysicState.__init__(self, entity)
- self.SpecialProps['HitShieldFunc'] = entity.HitShieldFunc
-
-
- def SaveSpecialProperties(self, file, aux_dir):
- EntityState.SaveSpecialProperties(self, file, aux_dir)
- SavePickDataAux(file, aux_dir, self.SpecialProps['HitShieldFunc'], 'o.HitShieldFunc=%s\n')
-
-
-
- class EntityActorState(EntityObjectState):
-
- def __init__(self, entity):
- EntityObjectState.__init__(self, entity)
-
-
-
- class EntityArrowState(EntityWeaponState):
-
- def __init__(self, entity):
- EntityWeaponState.__init__(self, entity)
-
-
-
- class EntityParticleSystemState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntityFireState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntityCameraState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntitySlidingAreaState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
- self.Displacement = entity.Displacement
- self.SpecialProps['OnStopFunc'] = entity.OnStopFunc
- self.Limit = entity.DisplacementLimit
- self.V_D = entity.V_D
- self.A_D = entity.A_D
- self.IsStopped = entity.IsStopped
-
-
- def SaveProperties(self, file, aux_dir):
- EntityState.SaveProperties(self, file, aux_dir)
- file.write('o.Displacement=%s\n' % str(self.Displacement))
-
-
- def SaveSpecialProperties(self, file, aux_dir):
- EntityState.SaveSpecialProperties(self, file, aux_dir)
- SavePickDataAux(file, aux_dir, self.SpecialProps['OnStopFunc'], 'o.OnStopFunc=%s\n')
-
-
-
- class EntityWaterState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
- self.SpecialProps['TouchFluidFunc'] = entity.TouchFluidFunc
-
-
- def SaveSpecialProperties(self, file, aux_dir):
- EntityState.SaveSpecialProperties(self, file, aux_dir)
- SavePickDataAux(file, aux_dir, self.SpecialProps['TouchFluidFunc'], 'o.TouchFluidFunc=%s\n')
-
-
-
- class EntitySoundState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntityMagicMissileState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntityElectricBoltState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntityPoolState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntityParticleState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntityDecalState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntityLavaState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
- self.SpecialProps['TouchFluidFunc'] = entity.TouchFluidFunc
-
-
- def SaveSpecialProperties(self, file, aux_dir):
- EntityState.SaveSpecialProperties(self, file, aux_dir)
- SavePickDataAux(file, aux_dir, self.SpecialProps['TouchFluidFunc'], 'o.TouchFluidFunc=%s\n')
-
-
-
- class EntityBipedState(EntityState):
-
- def __init__(self, entity):
- EntityState.__init__(self, entity)
-
-
-
- class EntityPersonState(EntityBipedState):
-
- def __init__(self, entity):
- EntityBipedState.__init__(self, entity)
- self.SpecialProps['EnterPrimaryAAFunc'] = entity.EnterPrimaryAAFunc
- self.SpecialProps['EnterSecondaryAAFunc'] = entity.EnterSecondaryAAFunc
- self.SpecialProps['EnterCloseFunc'] = entity.EnterCloseFunc
- self.SpecialProps['EnterLargeFunc'] = entity.EnterLargeFunc
- self.SpecialProps['AnmEndedFunc'] = entity.AnmEndedFunc
- self.SpecialProps['DelayNoSeenFunc'] = entity.DelayNoSeenFunc
- self.SpecialProps['RouteEndedFunc'] = entity.RouteEndedFunc
- self.SpecialProps['ImHurtFunc'] = entity.ImHurtFunc
- self.SpecialProps['ImDeadFunc'] = entity.ImDeadFunc
- self.SpecialProps['EnemyDeadFunc'] = entity.EnemyDeadFunc
- self.SpecialProps['NoAllowedAreaFunc'] = entity.NoAllowedAreaFunc
- self.SpecialProps['EnemyNoAllowedAreaFunc'] = entity.EnemyNoAllowedAreaFunc
- self.SpecialProps['CharSeeingEnemyFunc'] = entity.CharSeeingEnemyFunc
- self.SpecialProps['AnmTranFunc'] = entity.AnmTranFunc
- self.SpecialProps['TakeFunc'] = entity.TakeFunc
- self.SpecialProps['ThrowFunc'] = entity.ThrowFunc
- self.SpecialProps['MutilateFunc'] = entity.MutilateFunc
- self.SpecialProps['CombatDistFlag'] = entity.CombatDistFlag
- self.InitInventory(entity)
-
-
- def SaveSpecialProperties(self, file, aux_dir):
- pass
-
-
- def InitInventory(self, entity):
- import Actions
- inv = entity.GetInventory()
- self.Inventory = { }
- self.Inventory['Objects'] = []
- for i in range(inv.nKindObjects):
- for name in Actions.GetListOfObjectsAt(inv, i):
- self.Inventory['Objects'].append(name)
-
-
- self.Inventory['Weapons'] = []
- for i in range(inv.nWeapons):
- self.Inventory['Weapons'].append(inv.GetWeapon(i))
-
- self.Inventory['Shields'] = []
- for i in range(inv.nShields):
- self.Inventory['Shields'].append(inv.GetShield(i))
-
- self.Inventory['Quivers'] = []
- for i in range(inv.nQuivers):
- self.Inventory['Quivers'].append(inv.GetQuiver(i))
-
- self.Inventory['Keys'] = []
- for i in range(inv.nKeys):
- self.Inventory['Keys'].append(inv.GetKey(i))
-
- self.Inventory['SpecialKeys'] = []
- for i in range(inv.nSpecialKeys):
- self.Inventory['SpecialKeys'].append(inv.GetSpecialKey(i))
-
- self.Inventory['Tablets'] = []
- for i in range(inv.nTablets):
- self.Inventory['Tablets'].append(inv.GetTablet(i))
-
- self.Inventory['InvLeft'] = entity.InvLeft
- self.Inventory['InvLeft2'] = entity.InvLeft2
- self.Inventory['InvRight'] = entity.InvRight
- self.Inventory['InvLeftBack'] = entity.InvLeftBack
- self.Inventory['InvRightBack'] = entity.InvRightBack
-
-
- def SaveStatePass2(self, file, aux_dir):
- EntityBipedState.SaveStatePass2(self, file, aux_dir)
- file.write('\no=Bladex.GetEntity("%s")\n' % self.CreationProps['Name'])
- file.write('inv=o.GetInventory()\n')
- for i in self.Inventory['Objects']:
- file.write('Actions.ExtendedTakeObject(inv,"%s")\n' % (i,))
-
- for i in self.Inventory['Weapons']:
- file.write('GameStateAux.AddWeaponToInventory(inv,"%s")\n' % (i,))
-
- for i in self.Inventory['Shields']:
- file.write('inv.AddShield("%s")\n' % (i,))
- real_ent = Bladex.GetEntity(i)
-
- try:
- a = real_ent.Data.brkobjdata
- file.write('Breakings.SetBreakableWS("%s")\n' % (i,))
- except Exception:
- 0
- exc = 0
- self.Inventory['Shields']
- print 'Exception in SaveStatePass2', exc
- except:
- self.Inventory['Weapons']
-
-
- for i in self.Inventory['Quivers']:
- file.write('GameStateAux.AddQuiverToInventory(inv,"%s")\n' % (i,))
-
- for i in self.Inventory['Keys']:
- file.write('inv.AddKey("%s")\n' % (i,))
-
- for i in self.Inventory['SpecialKeys']:
- file.write('inv.AddSpecialKey("%s")\n' % (i,))
-
- for i in self.Inventory['Tablets']:
- file.write('inv.AddTablet("%s")\n' % (i,))
-
-
-
- v__entities_saved = 0
-
- class EntitiesStateAux:
-
- def __init__(self, EntClass):
- self.EntClass = EntClass
- self.Entities = []
-
-
- def AddEntityState(self, entity):
- self.Entities.append(self.EntClass(entity))
-
-
- def SaveStates(self, file, aux_dir):
- file.write('# There are %d entities\n\n' % (len(self.Entities),))
- for i in self.Entities:
- i.SaveState(file, aux_dir)
-
-
-
- def SaveStatesPass2(self, file, aux_dir):
- global v__entities_saved
- for i in self.Entities:
- v__entities_saved = v__entities_saved + 1
- i.SaveStatePass2(file, aux_dir)
-
-
-
- def DestroyEntities(self):
- for i in self.Entities:
- pass
-
- self.Entities = []
-
-
-
- class EntitiesState:
-
- def __init__(self):
- self.State = { }
- self.State['Entity Object'] = EntitiesStateAux(EntityObjectState)
- self.State['Entity PhysicObject'] = EntitiesStateAux(EntityPhysicState)
- self.State['Entity Weapon'] = EntitiesStateAux(EntityWeaponState)
- self.State['Entity Arrow'] = EntitiesStateAux(EntityArrowState)
- self.State['Entity Actor'] = EntitiesStateAux(EntityActorState)
- self.State['Entity Biped'] = EntitiesStateAux(EntityBipedState)
- self.State['Entity Person'] = EntitiesStateAux(EntityPersonState)
- self.State['Entity Spot'] = EntitiesStateAux(EntitySpotState)
- self.State['Entity PrtclSys'] = EntitiesStateAux(EntityParticleSystemState)
- self.State['Entity Particle System D1'] = EntitiesStateAux(EntityParticleSystemState)
- self.State['Entity Particle System D2'] = EntitiesStateAux(EntityParticleSystemState)
- self.State['Entity Particle System D3'] = EntitiesStateAux(EntityParticleSystemState)
- self.State['Entity Particle System Dobj'] = EntitiesStateAux(EntityParticleSystemState)
- self.State['Entity Particle System Dperson'] = EntitiesStateAux(EntityParticleSystemState)
- self.State['Entity Fire'] = EntitiesStateAux(EntityFireState)
- self.State['Entity Camera'] = EntitiesStateAux(EntityCameraState)
- self.State['Entity Water'] = EntitiesStateAux(EntityWaterState)
- self.State['Entity Sound'] = EntitiesStateAux(EntitySoundState)
- self.State['Entity Magic Missile'] = EntitiesStateAux(EntityMagicMissileState)
- self.State['Entity ElectricBolt'] = EntitiesStateAux(EntityElectricBoltState)
- self.State['Entity Pool'] = EntitiesStateAux(EntityPoolState)
- self.State['Entity Particle'] = EntitiesStateAux(EntityParticleState)
- self.State['Entity Decal'] = EntitiesStateAux(EntityDecalState)
- self.State['Entity Lava'] = EntitiesStateAux(EntityLavaState)
- self.State['Entity Sliding Area'] = EntitiesStateAux(EntitySlidingAreaState)
-
-
- def GetState(self):
- for i in range(Bladex.nEntities()):
- entity = Bladex.GetEntity(i)
- kind = entity.Kind
- state = None
- if kind in self.State.keys():
- self.State[kind].AddEntityState(entity)
- elif entity.Static:
- self.State['Entity Object'].AddEntityState(entity)
- elif entity.Person:
- self.State['Entity Person'].AddEntityState(entity)
- elif entity.Weapon:
- self.State['Entity Weapon'].AddEntityState(entity)
- elif entity.Arrow:
- self.State['Entity Arrow'].AddEntityState(entity)
- elif entity.Physic:
- self.State['Entity PhysicObject'].AddEntityState(entity)
-
-
-
-
- def SaveStatePass2(self, file, aux_dir):
- for i in self.State.keys():
- file.write('\n\n')
-
-
-
- def DestroyEntities(self):
- for i in self.State.keys():
- pass
-
-
-
-
- def CreateEntAux(obj_tuple, obj_kind):
- obj = Bladex.GetEntity(obj_tuple[0])
- if not obj:
- BBLib.ReadBOD(obj_tuple[2])
- obj = Bladex.CreateEntity(obj_tuple[0], obj_tuple[1], 0, 0, 0, obj_kind)
-
- return obj
-
-
- class SectorState:
-
- def __init__(self):
- self.Index = -1
- self.OnEnter = None
- self.OnLeave = None
- self.OnHit = None
- self.OnWalkOn = None
- self.OnWalkOut = None
- self.Active = None
- self.ActiveSurface = None
- self.Save = 0
- self.BreakInfo = None
-
-
- def GetState(self, idx):
- import Sparks
- s = Bladex.GetSector(idx)
- if s:
- self.Index = s.Index
- self.OnEnter = s.OnEnter
- self.OnLeave = s.OnLeave
- self.OnWalkOn = s.OnWalkOn
- self.OnWalkOut = s.OnWalkOut
- self.Active = s.Active
- self.ActiveSurface = s.ActiveSurface
- self.BreakInfo = s.BreakInfo
- if Sparks.GenericSectorOnHit != s.OnHit and s.OnHit != None:
- self.OnHit = s.OnHit
-
- if s.Active != 1 and s.BreakInfo and s.OnEnter and s.OnLeave and s.OnWalkOn and s.OnWalkOut or self.OnHit:
- self.Save = 1
-
-
-
-
- def SaveState(self, file, aux_dir):
- import Sparks
- if self.Save:
- file.write('s=Bladex.GetSector(%d)\n' % self.Index)
- self._SectorState__SaveCallbackFunction(file, 'OnEnter', aux_dir, self.OnEnter)
- self._SectorState__SaveCallbackFunction(file, 'OnLeave', aux_dir, self.OnLeave)
- self._SectorState__SaveCallbackFunction(file, 'OnHit', aux_dir, self.OnHit)
- self._SectorState__SaveCallbackFunction(file, 'OnWalkOn', aux_dir, self.OnWalkOn)
- self._SectorState__SaveCallbackFunction(file, 'OnWalkOut', aux_dir, self.OnWalkOut)
- file.write('s.Active=%d\n' % self.Active)
- if self.BreakInfo:
- file.write('s.BreakInfo=%s\n' % str(self.BreakInfo))
-
- file.write('\n\n')
-
-
-
- def __SaveCallbackFunction(self, file, cbname, aux_dir, function):
- r_cb_str = 's.%s=' % (cbname,)
- SavePickDataAux(file, aux_dir, function, r_cb_str + '%s\n')
-
-
-
- class MapState:
-
- def __init__(self):
- self.SectorsState = []
-
-
- def GetState(self):
- nSectors = Bladex.nSectors()
- for i in range(nSectors):
- s = SectorState()
- s.GetState(i)
-
-
-
- def SaveState(self, file, aux_dir):
- for i in self.SectorsState:
- i.SaveState(file, aux_dir)
-
-
-
-
- class TriggerSectorState:
-
- def __init__(self):
- self.Index = -1
- self.OnEnter = None
- self.OnLeave = None
- self.Data = None
- self.Name = None
- self.Grupo = None
- self.Points = []
- self.FloorHeight = 0
- self.RoofHeight = 0
-
-
- def GetState(self, idx):
- self.Name = Bladex.GetTriggerSectorName(idx)
- self.Index = idx
- self.OnEnter = Bladex.GetTriggerSectorFunc(self.Name, 'OnEnter')
- self.OnLeave = Bladex.GetTriggerSectorFunc(self.Name, 'OnLeave')
- self.Data = Bladex.GetTriggerSectorData(self.Name)
- self.Grupo = Bladex.GetTriggerSectorGroup(self.Name)
- self.Points = Bladex.GetTriggerSectorPoints(self.Name)
- self.FloorHeight = Bladex.GetTriggerSectorFloorHeight(self.Name)
- self.RoofHeight = Bladex.GetTriggerSectorRoofHeight(self.Name)
-
-
- def SaveState(self, file, aux_dir):
- file.write('Bladex.AddTriggerSector("%s","%s",%f,%f,%s)\n' % (self.Name, self.Grupo, self.FloorHeight, self.RoofHeight, self.Points))
- SavePickDataAux(file, aux_dir, self.OnEnter, 'Bladex.SetTriggerSectorFunc("' + self.Name + '","OnEnter",%s)\n')
- SavePickDataAux(file, aux_dir, self.OnLeave, 'Bladex.SetTriggerSectorFunc("' + self.Name + '","OnLeave",%s)\n')
- SavePickDataAux(file, aux_dir, self.Data, 'Bladex.SetTriggerSectorData("' + self.Name + '",%s)\n')
- file.write('\n\n')
-
-
-
- class TriggersState:
-
- def __init__(self):
- self.SectorsState = []
-
-
- def GetState(self):
- nSectors = Bladex.nTriggerSectors()
- for i in range(nSectors):
- s = TriggerSectorState()
- s.GetState(i)
- self.SectorsState.append(s)
-
-
-
- def SaveState(self, file, aux_dir):
- for i in self.SectorsState:
- i.SaveState(file, aux_dir)
-
-
-
-
- class WorldState:
-
- def __init__(self):
- self.EntitiesState = EntitiesState()
- self.MapState = MapState()
- self.TriggersState = TriggersState()
-
-
- def GetState(self):
- self.EntitiesState.GetState()
- self.MapState.GetState()
-
-
- def SaveState(self, filename):
- import os
- aux_dir = os.path.splitext(filename)[0] + '_files'
- if os.path.exists(aux_dir):
- shutil.rmtree(aux_dir)
-
-
- try:
- os.mkdir(aux_dir)
- except:
- pass
-
- self.SaveAutoBODs(aux_dir)
- file_data_aux = open('%s/%saux' % (aux_dir, 'aux'), 'wt')
- file_data_aux.write(Bladex.GetCurrentMap())
- file_data_aux.close()
- file = open(filename, 'wt')
- file.write('############################################################\n')
- file.write('# Blade Game State %s\n' % (filename,))
- file.write('# Do not modify\n')
- file.write('# File created %s \n' % (time.asctime(time.gmtime(time.time())),))
- file.write('############################################################\n\n\n\n')
- file.write('import Bladex\n')
- file.write('import BBLib\n')
- file.write('import cPickle\n')
- file.write('import GameStateAux\n')
- file.write('import Reference\n')
- file.write('import Breakings\n')
- file.write('import Sounds\n')
- file.write('import Actions\n')
- file.write('import os\n')
- file.write('import sys\n')
- file.write('import darfuncs\n\n\n\n')
- file.write('import LoadBar\n\n\n\n')
- file.write('############################################################\n')
- file.write('#\n\n\n')
- file.write('Bladex.BeginLoadGame()\n')
- file.write('__load_bar=LoadBar.AutoProgressBar(%d)\n' % (Bladex.nEntities() / 5,))
- file.write('GameStateAux.aux_dir="%s"\n' % (aux_dir,))
- file.write('InNewMap=0\n')
- file.write('if Bladex.GetCurrentMap()!="%s":\n' % (Bladex.GetCurrentMap(),))
- file.write(' InNewMap=1\n')
- file.write('print "InNewMap",InNewMap\n')
- file.write('Bladex.SetCurrentMap("%s")\n' % (Bladex.GetCurrentMap(),))
- file.write('sys.path.insert(0,os.getcwd())\n')
- file.write('Bladex.SetSaveInfo(%s)\n' % str(Bladex.GetSaveInfo()))
- ResFiles = self.GetMMPFiles()
- file.write('__load_bar.Increment("MMPs")\n')
- file.write('GameStateAux.LoadMMPs(%s)\n' % (str(ResFiles),))
- file.write('__load_bar.Increment()\n')
- ResFiles = self.GetBMPFiles()
- file.write('__load_bar.Increment("BMPs")\n')
- self.SaveList('GameStateAux.LoadBMPs(%s)\n', ResFiles, file)
- file.write('__load_bar.Increment()\n')
- ResFiles = self.GetAlphaBMPFiles()
- file.write('__load_bar.Increment("AlphaBMPs")\n')
- self.SaveList('GameStateAux.LoadAlphaBMPs(%s)\n', ResFiles, file)
- file.write('__load_bar.Increment()\n')
- file.write('__load_bar.Increment("Sounds")\n')
- file.write('if InNewMap:\n')
- file.write(' Bladex.LoadSoundDataBase("%s/Sounds.sdb")\n' % (aux_dir,))
- Bladex.SaveSoundDataBase('%s/Sounds.sdb' % (aux_dir,))
- file.write('__load_bar.Increment("AutoBODs")\n')
- file.write('BBLib.LoadAutoBODData("%s/AutoBOD.dat")\n\n\n' % (aux_dir,))
- file.write('Bladex.BodInspector()\n')
- psys_data_file = aux_dir + '/psys_data.dat'
- Bladex.SaveParticleSystemsData(psys_data_file)
- file.write('__load_bar.Increment("Particle Systems")\n')
- file.write('Bladex.LoadParticleSystemsData("%s")\n' % (psys_data_file,))
- file.write('__load_bar.Increment("ObjStore")\n')
- file.write('Bladex.SetTime(%f)\n' % (Bladex.GetTime(),))
- self.SaveTimers(file)
- file.write('if InNewMap:\n')
- file.write(' Bladex.LoadWorld("%s")\n' % (Bladex.GetWorldFileName(),))
- file.write('__load_bar.Increment()\n')
- file.write('import ObjStore\n')
- file.write('ObjStore.StoreIndex=%d\n' % (ObjStore.StoreIndex,))
- file.write('import BODInit\n')
- file.write('BODInit.Init()\n\n')
- file.write('__load_bar.Increment()\n')
- file.write('import PickInit\n')
- file.write('PickInit.Init()\n\n')
- file.write('__load_bar.Increment("Pick")\n')
- file.write('if InNewMap:\n')
- file.write(' __load_bar.Increment("SolidMask")\n')
- file.write(' import SolidMask\n')
- file.write(' SolidMask.Init()\n')
- file.write(' __load_bar.Increment("Material")\n')
- file.write(' import Material\n')
- file.write(' Material.Init()\n')
- file.write('__load_bar.Increment("AniSound")\n')
- file.write('import AniSound\n')
- file.write('__load_bar.Increment("anm_def")\n')
- file.write('import anm_def\n')
- file.write('anm_def.Init()\n')
- file.write('__load_bar.Increment("StepSounds")\n')
- file.write('import StepSounds\n')
- file.write('StepSounds.Init()\n')
- file.write('__load_bar.Increment("Enemies")\n')
- file.write('import Enemies\n')
- file.write('Enemies.Init()\n')
- file.write('__load_bar.Increment("Biped")\n')
- file.write('import Biped\n')
- file.write('Biped.Init()\n')
- file.write('__load_bar.Increment("anm_conv")\n')
- file.write('import anm_conv\n')
- file.write('anm_conv.Init()\n')
- file.write('__load_bar.Increment("Anm_Mdf")\n')
- file.write('import Anm_Mdf\n')
- file.write('Anm_Mdf.Init()\n')
- file.write('execfile("../../Scripts/AutoGenTextures.py")\n')
- file.write('__load_bar.Increment()\n')
- file.write('print "About to load World"\n')
- file.write('try:\n')
- file.write(' execfile("ActorsInit.py")\n')
- file.write('except IOError:\n')
- file.write(' print "Can\xd5\xb4 find ActorsInit.py"\n\n\n')
- combustion_data_file = aux_dir + '/combustion_data.dat'
- Bladex.SaveCombustionData(combustion_data_file)
- file.write('print "About to load Combustion data"\n')
- file.write('if InNewMap:\n')
- file.write(' Bladex.LoadCombustionData("%s")\n' % (combustion_data_file,))
- file.write('__load_bar.Increment()\n')
- ent_data_file = aux_dir + '/ent_data.dat'
- Bladex.SaveEntitiesData(ent_data_file)
- file.write('__load_bar.Increment("Entities")\n')
- file.write('Bladex.LoadEntitiesData("%s")\n' % (ent_data_file,))
- file.write('__load_bar.Increment()\n')
- import os
- import sys
- file.write('import sys\n')
- file.write('import os\n')
- str_path = os.getcwd()
- adj_str_path = string.replace(str_path, '\\\\', '/')
- adj_str_path = string.replace(adj_str_path, '\\', '/')
- file.write('sys.path.append("%s")\n\n' % (adj_str_path,))
- file.write('__load_bar.Increment("DefFuncs")\n')
- file.write('try:\n')
- file.write(' execfile("DefFuncs.py")\n')
- file.write('except IOError:\n')
- file.write(' print "Can\xb4t find DefFuncs.py"\n\n\n')
- file.write('__load_bar.Increment()\n')
- file.write('try:\n')
- file.write(' char=Bladex.GetEntity("Player1")\n')
- file.write(' execfile("MusicEvents.py")\n')
- file.write('except IOError:\n')
- file.write(' print "Can\xd5\xb4 find MusicEvents.py"\n\n\n')
- file.write('__load_bar.Increment()\n')
- file.write('try:\n')
- file.write(' execfile("TextureMaterials.py")\n')
- file.write('except IOError:\n')
- file.write(' print "Can\xd5\xb4 find TextureMaterials.py"\n\n\n')
- file.write('__load_bar.Increment()\n')
- file.write('\n')
- file.write('GameStateAux.InitGameState("%s")\n\n' % (aux_dir,))
- file.write('__load_bar.Increment()\n')
- file.write('__load_bar.Increment("Modules")\n')
- self.SaveModules(file)
- file.write('__load_bar.Increment("Vars")\n')
- self.SaveVars(file)
- file.write('__load_bar.Increment("Sounds")\n')
- self.SaveSounds(file)
- file.write('__load_bar.Increment("Sectors")\n')
- self.SaveSectors(file)
- file.write('__load_bar.Increment("Entities")\n')
- self.SaveEntities(file)
- file.write('__load_bar.Increment("PickledObjects")\n')
- SavePickledObjects(file, aux_dir)
- file.write('__load_bar.Increment("Python Objects")\n')
- self.SaveObjects(file, aux_dir)
- file.write('__load_bar.Increment("MapState")\n')
- self.MapState.SaveState(file, aux_dir)
- file.write('__load_bar.Increment("TriggerState")\n')
- self.TriggersState.GetState()
- self.TriggersState.SaveState(file, aux_dir)
- file.write('__load_bar.Increment("State pass2")\n')
- self.EntitiesState.SaveStatePass2(file, aux_dir)
- file.write('__load_bar.Increment()\n')
- file.write('print "About set objects relations"\n')
- file.write('__load_bar.Increment("Scheduled functions")\n')
- self.SaveCompVars(file, aux_dir)
- file.write('__load_bar.Increment("Global comp vars")\n')
- self.SaveScheduledFuncs(file)
- file.write('__load_bar.Increment("AfterFrame functions")\n')
- self.SaveAfterFrameFuncs(file)
- GameStateAux.SaveExtraDataAux(file, aux_dir)
- self.SaveModulesToBeSaved(file, aux_dir, ModulesToBeSaved)
- GameStateAux.EndGameState(aux_dir)
- file.write('\n')
- file.write('Bladex.SetCombos("Player1",%s)' % (Bladex.GetCombos('Player1'),))
- file.write('\n')
- file.write('# Scorer Data init\n')
- file.write('#\n')
- file.write('import Scorer\n')
- file.write('Scorer.ActivateScorer()\n\n')
- file.write('Scorer.SetVisible(1)\n\n')
- file.write('__load_bar.Increment()\n')
- file.write('import CharStats\n')
- file.write('__load_bar.Increment()\n')
- file.write('import GameText\n')
- file.write('GameText.SetLanguage("English")\n')
- file.write('import DefaultScorerData\n')
- file.write('DefaultScorerData.Init()\n\n')
- file.write('__load_bar.Increment()\n')
- file.write('# Inicio del personaje y sus marcadores\n')
- file.write('char=Bladex.GetEntity("Player1")\n')
- file.write('Scorer.SetLevelLimits(0,CharStats.GetCharExperienceCost(char.CharType,char.Level))\n')
- file.write('Scorer.SetLevelBarValue(char.PartialLevel)\n')
- file.write('#Scorer.SetLevelValue(char.Level)\n')
- file.write('#\n')
- file.write('# Controls ( keyboard,mouse...) stuff\n')
- file.write('#\n')
- file.write('execfile("../../Scripts/InputInit.py")\n')
- file.write('import acts\n')
- file.write('acts.InitBindings("Player1")\n')
- file.write('__load_bar.Increment()\n')
- file.write('try:\n')
- file.write(' execfile("../../Scripts/Control.py")\n')
- file.write(' print "BladeInit -> Executed Control.py"\n')
- file.write('except:\n')
- file.write(' execfile("../../Scripts/DefControl.py")\n')
- file.write(' print "BladeInit -> Executed DefControl.py"\n\n')
- file.write('__load_bar.Increment()\n')
- file.write('#\n')
- file.write('# Menu\n')
- file.write('#\n')
- file.write('#execfile("../../Scripts/Menu.py")\n')
- file.write('import Menu\n')
- file.write('Menu.InitMenuKeys()\n')
- file.write('__load_bar.Increment()\n')
- file.write('execfile("../../Scripts/Globals.py")\n')
- import GotoMapVars
- file.write('import GotoMapVars\n')
- file.write('GotoMapVars.Get2DMapValuesAux(%s)\n' % (str(GotoMapVars.Set2DMapValuesAux()),))
- import Reference
- file.write('Reference.PYTHON_DEBUG=%d\n' % (Reference.PYTHON_DEBUG,))
- file.write('if Reference.PYTHON_DEBUG >= 1:\n')
- file.write('############### DEBUG LEVEL ONE ###############\n')
- file.write(' execfile("..\\..\\Scripts\\DebugControl.py")\n')
- file.write('if Reference.PYTHON_DEBUG >= 2:\n')
- file.write('############### DEBUG LEVEL TWO ###############\n')
- file.write(' Bladex.SetCallCheck(3)\n')
- file.write('else:\n')
- file.write(' Bladex.SetCallCheck(0)\n')
- file.write('__load_bar.Increment("AnmCameras")\n')
- file.write('import AnmCameras\n')
- file.write('AnmCameras.Init()\n')
- file.write('Bladex.DoneLoadGame()\n')
- file.write('GameStateAux.CleanLoadTemp()\n\n\n')
- file.write('try:\n')
- file.write(' execfile("Positions.py")\n')
- file.write('except IOError:\n')
- file.write(' print "Can\xd5\xb4 find Positions.py"\n\n\n')
- file.write('__load_bar.Clear()\n')
- file.write('del __load_bar\n')
- file.write('Bladex.SetTime(%f)\n' % (Bladex.GetTime(),))
- file.write('# Good Bye! (Enjoy The Silence)\n')
- file.close()
-
-
- def SaveCompVars(self, file, aux_dir):
- globs = GetGlobals()
- globs_dict = { }
- global_vars = self.GetGlobalsAux(types.DictionaryType, globs)
- for i in global_vars:
- globs_dict[str(i[0])] = i[1]
-
- global_vars = self.GetGlobalsAux(types.ListType, globs)
- for i in global_vars:
- globs_dict[str(i[0])] = i[1]
-
- global_vars = self.GetGlobalsAux(types.TupleType, globs)
- for i in global_vars:
- globs_dict[str(i[0])] = i[1]
-
- filename = '%s/%s.dat' % (aux_dir, 'Globs')
- globfile = open(filename, 'wt')
- p = cPickle.Pickler(globfile)
- p.dump(globs_dict)
- globfile.close()
- file.write("GameStateAux.LoadGlobalCompVars('%s',globals())\n" % (filename,))
-
-
- def SaveVars(self, file):
- '''Saves variables in the global scope.'''
- globs = GetGlobals()
- global_vars = self.GetGlobalsAux(types.IntType, globs)
- file.write('\n# Integer variables\n')
- for i in global_vars:
- file.write('%s=%s\n' % (str(i[0]), str(i[1])))
-
- global_vars = self.GetGlobalsAux(types.FloatType, globs)
- file.write('\n# Float variables\n')
- for i in global_vars:
- file.write('%s=%s\n' % (str(i[0]), str(i[1])))
-
- global_vars = self.GetGlobalsAux(types.StringType, globs)
- file.write('\n# String variables\n')
- for i in global_vars:
- pass
-
-
-
- def SaveSounds(self, file):
- '''Saves sound objects in the global scope.'''
- gmadlig = Bladex.CreateSound('../../sounds/golpe_maderamed.wav', 'GolpeMaderaMediana')
- snd_vars = self.GetGlobalsAux(type(gmadlig))
- file.write('\n# Sound objects\n')
- snd_vars_names = []
- for i in snd_vars:
- snd_vars_names.append((str(i[0]), i[1].Name))
-
- for i in snd_vars_names:
- file.write('%s=Bladex.GetSound("%s")\n' % (i[0], i[1]))
-
-
-
- def SaveEntities(self, file):
- '''Saves entity objects in the global scope.'''
- ent = Bladex.GetEntity(0)
- ent_vars = self.GetGlobalsAux(type(ent))
- file.write('\n# Entity objects\n')
- ent_vars_names = []
- for i in ent_vars:
-
- try:
- ent_vars_names.append((str(i[0]), i[1].Name))
- except AttributeError:
- 0
- 0
- ent_vars
- except:
- 0
-
-
- for i in ent_vars_names:
- file.write('%s=Bladex.GetEntity("%s")\n' % (i[0], i[1]))
-
- file.write('\n\n')
-
-
- def SaveObjects(self, file, aux_dir):
- '''Saves objects (from Lib/Object.py) in the global scope.'''
- import Objects
- obj = Objects.DinObj()
- obj_vars = self.GetGlobalsAux(type(obj))
- file.write('\n# Object objects\n')
- obj_vars_names = []
- omit_objs = [
- '__main__.Flecha',
- 'state',
- 'InputManager']
- for i in obj_vars:
- print i
- if i is not self and str(i[1].__class__):
- if str(i[0]) not in omit_objs:
- obj_vars_names.append((str(i[0]), i[1]))
- else:
- print 'Omited', str(i[0])
-
-
- for i in obj_vars_names:
-
- try:
- SavePickDataAux(file, aux_dir, i[1], i[0] + '=%s\n')
- except Exception:
- 0
- exc = 0
- obj_vars_names
- print 'Failed saving of', i
- print exc
- except:
- 0
-
-
- file.write('\n\n')
-
-
- def SaveSectors(self, file):
- '''Saves sector objects in the global scope.'''
- sec = Bladex.GetSector(0)
- sec_vars = self.GetGlobalsAux(type(sec))
- file.write('\n\n# Sector objects\n')
- sec_vars_names = []
- for i in sec_vars:
- sec_vars_names.append((str(i[0]), i[1].Index))
-
- for i in sec_vars_names:
- file.write('%s=Bladex.GetSector(%d)\n' % (i[0], i[1]))
-
- file.write('\n\n')
-
-
- def SaveModulesToBeSaved(self, file, aux_dir, ModulesToBeSaved):
- for i in ModulesToBeSaved:
- filename = '%s/%sData.dat' % (aux_dir, i.__name__)
- file.write('__load_bar.Increment("Module")\n')
- i.SaveData(filename)
- file.write('import %s\n' % (i.__name__,))
- file.write('%s.LoadData("%s")\n\n' % (i.__name__, filename))
-
-
-
- def SaveScheduledFuncs(self, file):
- exclude_funcs = ('PowWidgetDraw', 'PeriodicAutoSelectPlayer1', 'PlayerRestoreEnergy', 'RepeatPeriodicSound', 'NextText', 'ClearText', 'PeriodicSound::PlayPeriodic')
- n_sched_funcs = Bladex.GetnScheduledFuncs()
- print 'SaveScheduledFuncs(). There are ', n_sched_funcs, 'functions.'
- for i in range(n_sched_funcs):
- f = Bladex.GetScheduledFunc(i)
- if f[2] not in exclude_funcs:
- func_string = 'GameStateAux.LoadFunctionAux(%s)' % (GameStateAux.SaveFunctionAux(f[0]),)
- filename = GetPickFileName(f[1])
- func_parms = 'GameStateAux.GetPickledData("%s")' % (filename,)
- print 'SaveScheduledFuncs() ', filename, f[1], f[2]
- GameStateAux.SavePickData(filename, f[1])
- file.write("Bladex.AddScheduledFunc(%d,%s,%s,'%s')\n" % (f[3], func_string, func_parms, f[2]))
-
-
-
-
- def SaveAfterFrameFuncs(self, file):
- exclude_funcs = ('InterpinterpLevelBar', 'InterpinterpStrengthBar', 'InterpinterpEnergyBar', 'InterpShields', 'InterpFadeText', 'InterpWeapons', 'InterpObjects', 'DefaultSelectionData', 'Fade')
- n_afrm_funcs = Bladex.GetnAfterFrameFuncs()
- print 'SaveAfterFrameFuncs(). There are ', n_afrm_funcs, 'functions.'
- for i in range(n_afrm_funcs):
- f_name = Bladex.GetAfterFrameFuncName(i)
- if f_name not in exclude_funcs:
- f = Bladex.GetAfterFrameFunc(f_name)
- filename = GetPickFileName(f)
- func_string = 'GameStateAux.GetPickledData("%s")' % (filename,)
- GameStateAux.SavePickData(filename, f)
- print 'SaveAfterFrameFuncs() ', filename, f, f_name, func_string
- file.write("Bladex.SetAfterFrameFunc('%s',%s)\n" % (f_name, func_string))
-
-
-
-
- def SaveModules(self, file):
- '''Saves modules in the global scope.'''
- import string
- OmitModules = [
- '__builtins__',
- 'Scorer',
- 'Menu',
- 'GameText',
- 'GameState',
- 'GameStateAux']
- global_mods = self.GetGlobalsAux(types.ModuleType)
- file.write('\n# Modules\n')
- for i in global_mods:
- pass
-
-
-
- def GetGlobalsAux(self, req_type, globs = None):
- g = None
- if globs:
- g = globs
- else:
- g = GetGlobals()
- elems = []
- for i in g.items():
- pass
-
- return elems
-
-
- def SaveAutoBODs(self, path):
- name = '%s/AutoBOD.dat' % (path,)
- BBLib.SaveAutoBODData(name)
-
-
- def SaveList(self, command, lista, file):
- nchunks = len(lista) / 5
- for i in range(nchunks):
- lolimit = 5 * i
- l = lista[lolimit:lolimit + 5]
- file.write(command % (str(l),))
-
-
-
- def __AuxGetResFiles(self, kind):
- RM = BBLib.GetResourceManager()
- nRes = RM.NResources(kind)
- ResFiles = []
- for i in range(nRes):
- res_file = RM.GetResourceFile(kind, i)
-
- return ResFiles
-
-
- def __AuxGetResFilesAndNames(self, kind):
- RM = BBLib.GetResourceManager()
- nRes = RM.NResources(kind)
- ResFiles = []
- for i in range(nRes):
- res_file = RM.GetResourceFile(kind, i)
- res_name = RM.GetResourceName(kind, i)
-
- return ResFiles
-
-
- def SaveTimers(self, file):
- file.write('\n# Timers\n')
- nTimers = Bladex.GetnTimers()
- for i in range(nTimers):
- cTimer = Bladex.GetTimerInfo(i)
- file.write('Bladex.CreateTimer("%s",%f)\n\n' % (cTimer[0], cTimer[1]))
-
- file.write('\n')
-
-
- def GetMMPFiles(self):
- return self._WorldState__AuxGetResFiles(BBLib.B_CID_BITMAP)
-
-
- def GetBODFiles(self):
- return self._WorldState__AuxGetResFiles(BBLib.B_CID_OBJDSCR)
-
-
- def GetBMPFiles(self):
- return self._WorldState__AuxGetResFilesAndNames(BBLib.B_CID_BMP)
-
-
- def GetAlphaBMPFiles(self):
- return self._WorldState__AuxGetResFilesAndNames(BBLib.B_CID_ALPHABMP)
-
-
-
- def GetGlobals():
- import sys
-
- try:
- 1 + ''
- except:
- frame = sys.exc_info()[2].tb_frame.f_back
-
- while frame:
- globs = frame.f_globals
- frame = frame.f_back
- return globs
-
-