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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import MenuText
  5. import Bladex
  6. import netwidgets
  7. import MenuWidget
  8. import os
  9. import time
  10. import string
  11. import Reference
  12. EMPTY_SLOT = '<Empty Slot>'
  13. DATE_FORMAT = '%d/%m %H:%M'
  14. SaveCounter = []
  15. for i in range(2):
  16.     SaveCounter.append('Awesome!')
  17.  
  18. for i in range(3):
  19.     SaveCounter.append('Heroic')
  20.  
  21. for i in range(4):
  22.     SaveCounter.append('Bold')
  23.  
  24. for i in range(5):
  25.     SaveCounter.append('Normal')
  26.  
  27. for i in range(6):
  28.     SaveCounter.append('Cautious')
  29.  
  30. for i in range(7):
  31.     SaveCounter.append('Overcautious')
  32.  
  33. SaveCounter.append('Lame')
  34.  
  35. def ElUsuarioPresionaLaTeclaEscape(Salio):
  36.     return 1
  37.  
  38.  
  39. def LoadGameAux(name):
  40.     path = '../../Save/%s_files' % (name,)
  41.     execfile = "execfile('../../Scripts/sys_init.py');execfile('../../Save/%s.py')" % (name,)
  42.     file_data_aux = open('%s/%saux' % (path, 'aux'), 'rt')
  43.     text = file_data_aux.read()
  44.     print text
  45.     file_data_aux.close()
  46.     Bladex.BeginLoadGame()
  47.     Bladex.CloseLevel(execfile, text)
  48.  
  49.  
  50. def LoadGameFromDisk(menu_class):
  51.     LoadGameAux('SaveGame' + menu_class.MenuDescr['Clave'])
  52.  
  53.  
  54. def SaveGameToDisk(menu_class):
  55.     global SaveGameString
  56.     import Menu
  57.     import Scorer
  58.     import MenuText
  59.     import GameText
  60.     Menu._MainMenu.DeActivateMenuItem()
  61.     Menu._MainMenu.DeActivateMenuItem()
  62.     Menu._MainMenu.DeActivateMenuItem()
  63.     Menu._MainMenu.DeActivateMenuItem()
  64.     file = open('../../Save/' + menu_class.MenuDescr['Clave'] + '.sv', 'w')
  65.     char = Bladex.GetEntity('Player1')
  66.     if char.Kind[0] == 'K':
  67.         cad = MenuText.GetMenuText('Knight')
  68.     
  69.     if char.Kind[0] == 'B':
  70.         cad = MenuText.GetMenuText('Barbarian')
  71.     
  72.     if char.Kind[0] == 'D':
  73.         cad = MenuText.GetMenuText('Dwarf')
  74.     
  75.     if char.Kind[0] == 'A':
  76.         cad = MenuText.GetMenuText('Amazon')
  77.     
  78.     cadtime = time.strftime(DATE_FORMAT, time.localtime(time.time()))
  79.     cad = `char.Level + 1` + ' Lv. ' + cad + ' ' + ' - ' + cadtime + ' - '
  80.     cad = cad + GameText.MapDescriptor(Bladex.GetCurrentMap())
  81.     Reference.TimesSaved = Reference.TimesSaved + 1
  82.     if Reference.TimesSaved >= len(SaveCounter):
  83.         DisgustingMessage = SaveCounter[len(SaveCounter) - 1]
  84.     else:
  85.         DisgustingMessage = SaveCounter[Reference.TimesSaved - 1]
  86.     cad = cad + ' - ' + `Reference.TimesSaved` + ' (' + MenuText.GetMenuText(DisgustingMessage) + ')'
  87.     file.write(cad)
  88.     file.close()
  89.     print cad
  90.     Scorer.SetVisible(0)
  91.     Bladex.SaveScreenShot('../../Save/' + menu_class.MenuDescr['Clave'] + '.BMP', 160, 120)
  92.     SaveGameString = "import GameState;state=GameState.WorldState();state.GetState();state.SaveState('../../Save/SaveGame" + menu_class.MenuDescr['Clave'] + ".py');state=None;"
  93.     SavegameMessage = "import SaveGameImage;SaveGameImage.ShowImage('../Blade_save.bmp');"
  94.     Bladex.StopTime()
  95.     Bladex.SetRunString(SavegameMessage + SaveGameString + 'Scorer.SetVisible(1);Bladex.RestartTime();')
  96.  
  97.  
  98. def GetBack(menu_class):
  99.     import Menu
  100.     Menu._MainMenu.DeActivateMenuItem()
  101.  
  102. SaveBitmaps = (('1', '../../Save/1.BMP'), ('2', '../../Save/2.BMP'), ('3', '../../Save/3.BMP'), ('4', '../../Save/4.BMP'), ('5', '../../Save/5.BMP'), ('6', '../../Save/6.BMP'), ('7', '../../Save/7.BMP'), ('8', '../../Save/8.BMP'))
  103.  
  104. def GetSaveStatus():
  105.     if EmptyImage:
  106.         return '0'
  107.     elif FirstSaved:
  108.         return FirstSaved
  109.     else:
  110.         return '1'
  111.  
  112.  
  113. def FocusOnBitmap(menu_class = 0, parametro = 0):
  114.     netwidgets.ChangePlayer(menu_class.MenuDescr['Clave'])
  115.  
  116.  
  117. def CreateSaveMenu():
  118.     import Menu
  119.     import GameText
  120.     InspectSaveList()
  121.     if AllEmpty and not GameText.MapList.has_key(string.upper(Bladex.GetCurrentMap())):
  122.         
  123.         try:
  124.             Menu.GetMenuItem([
  125.                 'Game',
  126.                 'Load Saved'])['Kind'] = MenuWidget.B_MenuItemTextNoFXNoFocus
  127.         except:
  128.             pass
  129.  
  130.         
  131.         try:
  132.             del Menu.GetMenuItem([
  133.                 'Game',
  134.                 'Load Saved'])['ListDescr']
  135.         except:
  136.             pass
  137.  
  138.     else:
  139.         
  140.         try:
  141.             CreateMenu('Load Saved', 0)
  142.         except:
  143.             pass
  144.  
  145.         
  146.         try:
  147.             del Menu.GetMenuItem([
  148.                 'Game',
  149.                 'Load Saved'])['Kind']
  150.         except:
  151.             pass
  152.  
  153.     if Bladex.GetEntity('Player1').Life <= 0 or not GameText.MapList.has_key(string.upper(Bladex.GetCurrentMap())):
  154.         
  155.         try:
  156.             Menu.GetMenuItem([
  157.                 'Game',
  158.                 'Save Current'])['Kind'] = MenuWidget.B_MenuItemTextNoFXNoFocus
  159.         except:
  160.             pass
  161.  
  162.     else:
  163.         
  164.         try:
  165.             del Menu.GetMenuItem([
  166.                 'Game',
  167.                 'Save Current'])['Kind']
  168.         except:
  169.             pass
  170.  
  171.         
  172.         try:
  173.             CreateMenu('Save Current', 1)
  174.         except:
  175.             pass
  176.  
  177.  
  178.  
  179. def InspectSaveList():
  180.     global FirstSaved, AllEmpty, SaveBitmaps, AllEmpty, FirstSaved
  181.     FirstSaved = None
  182.     AllEmpty = 1
  183.     SaveBitmaps = []
  184.     path = '../../Save/'
  185.     ListDir = os.listdir(path)
  186.     for i in range(6):
  187.         cad = `i + 1` + '.BMP'
  188.         if cad in ListDir:
  189.             file = open(path + `i + 1` + '.sv', 'r')
  190.             name = file.readline()
  191.             file.close()
  192.             SaveBitmaps.append(`i + 1`, path + cad, name)
  193.             AllEmpty = 0
  194.             if not FirstSaved:
  195.                 FirstSaved = `i + 1`
  196.             
  197.         else:
  198.             SaveBitmaps.append(`i + 1`, '../../Data/Empty.BMP', EMPTY_SLOT)
  199.     
  200.     SaveBitmaps.append('0', '../../Data/Empty.BMP', EMPTY_SLOT)
  201.  
  202.  
  203. def RestartLevel(menu_class):
  204.     Bladex.LoadLevel(Bladex.GetCurrentMap())
  205.  
  206.  
  207. def MenuStart(EntityName):
  208.     import AuxFuncs
  209.     Bladex.GetEntity(EntityName).Freeze()
  210.     print EntityName, 'is  death'
  211.     AuxFuncs.FadeTo(1.0, 1.0)
  212.     Bladex.AddScheduledFunc(Bladex.GetTime() + 1.0, ActivaMenuDeRegreso, ())
  213.  
  214.  
  215. def ActivaMenuDeRegreso():
  216.     import Menu
  217.     if Bladex.GetEntity('Player1').Life <= 0:
  218.         Menu.GetMenuItem([
  219.             'Back To Game'])['Kind'] = MenuWidget.B_MenuItemTextNoFXNoFocus
  220.         Menu.EscapeFunction = ElUsuarioPresionaLaTeclaEscape
  221.     
  222.     Menu.ActivateMenu()
  223.     Menu._MainMenu.ActivateMenuItem()
  224.     Menu._MainMenu.MenuNextItem()
  225.     Menu._MainMenu.ActivateMenuItem()
  226.  
  227.  
  228. def CreateMenu(MenuName, SaveFlag):
  229.     global EmptyImage
  230.     import Menu
  231.     import MenuText
  232.     import GameText
  233.     menuItem = Menu.GetMenuItem([
  234.         'Game',
  235.         MenuName])
  236.     if menuItem == 1:
  237.         return None
  238.     
  239.     Save_Menu = []
  240.     if not SaveFlag:
  241.         pass
  242.     EmptyImage = GameText.MapList.has_key(string.upper(Bladex.GetCurrentMap()))
  243.     Save_Menu.append({
  244.         'Name': MenuText.GetMenuText(MenuName),
  245.         'VSep': 30,
  246.         'Font': Menu.MenuFontBig,
  247.         'Kind': MenuWidget.B_MenuItemTextNoFXNoFocus })
  248.     Save_Menu.append({
  249.         'Name': 'GameList',
  250.         'Kind': netwidgets.B_ImageListWidget,
  251.         'ImageList': SaveBitmaps,
  252.         'GetCharType': GetSaveStatus,
  253.         'VSep': 10 })
  254.     if EmptyImage:
  255.         Save_Menu.append({
  256.             'Name': MenuText.GetMenuText('Restart') + ' "' + GameText.MapDescriptor(Bladex.GetCurrentMap()) + '"',
  257.             'VSep': 10,
  258.             'Clave': '0',
  259.             'FocusCallBack': FocusOnBitmap,
  260.             'Font': Menu.MenuFontMed,
  261.             'Kind': MenuWidget.B_MenuItemTextNoFX,
  262.             'Command': RestartLevel })
  263.         menuItem['iFocus'] = 3
  264.     elif menuItem.has_key('iFocus'):
  265.         del menuItem['iFocus']
  266.     
  267.     for i in range(6):
  268.         SaveGameName = SaveBitmaps[i][2]
  269.         if SaveFlag:
  270.             val = {
  271.                 'Name': SaveGameName,
  272.                 'VSep': 10,
  273.                 'Font': Menu.MenuFontMed,
  274.                 'FocusCallBack': FocusOnBitmap,
  275.                 'Clave': `i + 1`,
  276.                 'iFocus': 1,
  277.                 'ListDescr': [
  278.                     {
  279.                         'Name': MenuText.GetMenuText('Overwrite a previous saved game?'),
  280.                         'VSep': 200,
  281.                         'Font': Menu.MenuFontBig,
  282.                         'Kind': MenuWidget.B_MenuItemTextNoFXNoFocus },
  283.                     {
  284.                         'Name': MenuText.GetMenuText('Yes'),
  285.                         'VSep': 20,
  286.                         'Command': SaveGameToDisk,
  287.                         'Font': Menu.MenuFontMed,
  288.                         'Clave': `i + 1` },
  289.                     {
  290.                         'Name': MenuText.GetMenuText('No'),
  291.                         'VSep': 10,
  292.                         'Font': Menu.MenuFontMed,
  293.                         'Command': GetBack },
  294.                     {
  295.                         'Name': 'Back',
  296.                         'Kind': MenuWidget.B_BackBlank }] }
  297.             Save_Menu.append(val)
  298.         else:
  299.             val = {
  300.                 'Name': SaveGameName,
  301.                 'VSep': 10,
  302.                 'Font': Menu.MenuFontMed,
  303.                 'Kind': MenuWidget.B_MenuItemTextNoFX,
  304.                 'Command': LoadGameFromDisk,
  305.                 'FocusCallBack': FocusOnBitmap,
  306.                 'Clave': `i + 1` }
  307.             if SaveGameName == EMPTY_SLOT:
  308.                 val['Kind'] = MenuWidget.B_MenuItemTextNoFXNoFocus
  309.             
  310.             Save_Menu.append(val)
  311.     
  312.     Save_Menu.append(Menu.BackOption)
  313.     Save_Menu.append({
  314.         'Name': 'Back',
  315.         'Kind': MenuWidget.B_BackBlank })
  316.     menuItem['ListDescr'] = Save_Menu
  317.  
  318.