Add more menus.
authorDan Olson <theoddone33@icculus.org>
Fri, 27 Nov 2009 21:21:09 +0000 (13:21 -0800)
committerDan Olson <theoddone33@icculus.org>
Fri, 27 Nov 2009 21:21:09 +0000 (13:21 -0800)
heretic/menus.py
pyhexen.py

index f398543..c574bd7 100644 (file)
@@ -28,10 +28,80 @@ def CreateMenus(menu):
        episodeMenu.AddItem (episodeMenu.ITT_EFUNC, 'THE OSSUARY', SCEpisode, 4, None)
        episodeMenu.AddItem (episodeMenu.ITT_EFUNC, 'THE STAGNANT DEMESNE', SCEpisode, 5, None)
        menu.AddMenu (episodeMenu)
-       
+
+       fileMenu = pyhexen.menu.SubMenu (menu, 'files', 110, 60, 'main')
+       fileMenu.AddItem (fileMenu.ITT_EFUNC, 'LOAD GAME', SCNetCheck, 2, 'load')
+       fileMenu.AddItem (fileMenu.ITT_SETMENU, 'SAVE GAME', None, 0, 'save')
+
+       menu.AddMenu (fileMenu)
+
+       class SaveLoadMenu(pyhexen.menu.SubMenu):
+               def __init__ (self, menu, name, x, y, prev, text):
+                       pyhexen.menu.SubMenu.__init__(self, menu, name, x, y, prev)
+                       self.text = text
+                       self.textwidth = self.menu.TextBWidth (self.text)
+               
+               def DrawFileSlots (self):
+                       x = self.x
+                       y = self.y
+                       for i in range (0, 6):
+                               self.menu.vis.DrawPatch (x, y, self.menu.wad.CacheLumpName ('M_FSLOT'))
+                               # TODO: Draw slot text
+                               y = y + self.menu.ITEM_HEIGHT
+
+               def Draw (self):
+                       self.menu.DrawTextB (self.text, 160 - self.textwidth / 2, 10)
+                       self.DrawFileSlots ()
+
+       loadMenu = SaveLoadMenu (menu, 'load', 70, 30, 'files', 'LOAD GAME')
+       loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 0, None)
+       loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 1, None)
+       loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 2, None)
+       loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 3, None)
+       loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 4, None)
+       loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 5, None)
+
+       menu.AddMenu (loadMenu)
+
+       saveMenu = SaveLoadMenu (menu, 'save', 70, 30, 'files', 'SAVE GAME')
+       saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 0, None)
+       saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 1, None)
+       saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 2, None)
+       saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 3, None)
+       saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 4, None)
+       saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 5, None)
+
+       menu.AddMenu (saveMenu)
+
+       skillMenu = pyhexen.menu.SubMenu (menu, 'skill', 38, 30, 'episode')
+       skillMenu.AddItem (skillMenu.ITT_EFUNC, 'THOU NEEDETH A WET-NURSE', SCSkill, 0, None)
+       skillMenu.AddItem (skillMenu.ITT_EFUNC, 'YELLOWBELLIES-R-US', SCSkill, 1, None)
+       skillMenu.AddItem (skillMenu.ITT_EFUNC, 'BRINGEST THEM ONETH', SCSkill, 2, None)
+       skillMenu.AddItem (skillMenu.ITT_EFUNC, 'THOU ART A SMITE-MEISTER', SCSkill, 3, None)
+       skillMenu.AddItem (skillMenu.ITT_EFUNC, 'BLACK PLAGUE POSSESSES THEE', SCSkill, 4, None)
+
+       menu.AddMenu (skillMenu)
+
+       # TODO: Options menus stubbed
+       class OptionsMenu(pyhexen.menu.SubMenu):
+               pass
+
+       optionsMenu = OptionsMenu (menu, 'options', 88, 30, 'main')
+
+       menu.AddMenu (optionsMenu)
+
+       class Options2Menu(pyhexen.menu.SubMenu):
+               pass
+
+       options2Menu = Options2Menu (menu, 'options2', 90, 20, 'options')
+
+       menu.AddMenu (options2Menu)
+
+
+
 def SCNetCheck (arg):
        pass
-       
+
 def SCInfo (arg):
        pass
 
@@ -40,4 +110,13 @@ def SCQuitGame (arg):
 
 def SCEpisode (arg):
        pass
-       
+
+def SCLoadGame (arg):
+       pass
+
+def SCSaveGame (arg):
+       pass
+
+def SCSkill (arg):
+       pass
+
index caa00fb..fbd4423 100644 (file)
@@ -19,7 +19,9 @@ vid.SetPalette (wad.CacheLumpName('PLAYPAL'))
 
 menu = pyhexen.menu.Menu (wad, vid)
 
-heretic.menus.CreateMenus (menu)
+game = heretic
+
+game.menus.CreateMenus (menu)
 
 menu.Activate ()