From 90b50207a29d53ab22970548d7c1a3d878d93f6b Mon Sep 17 00:00:00 2001 From: Dan Olson Date: Fri, 27 Nov 2009 13:21:09 -0800 Subject: [PATCH] Add more menus. --- heretic/menus.py | 85 ++++++++++++++++++++++++++++++++++++++++++++++-- pyhexen.py | 4 ++- 2 files changed, 85 insertions(+), 4 deletions(-) diff --git a/heretic/menus.py b/heretic/menus.py index f398543..c574bd7 100644 --- a/heretic/menus.py +++ b/heretic/menus.py @@ -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 + diff --git a/pyhexen.py b/pyhexen.py index caa00fb..fbd4423 100644 --- a/pyhexen.py +++ b/pyhexen.py @@ -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 () -- 2.39.2