4 "Setup game-specific menus"
5 class MainMenu(pyhexen.menu.SubMenu):
6 def __init__ (self, menu, name, x, y, prev):
7 pyhexen.menu.SubMenu.__init__(self, menu, name, x, y, prev)
8 self.SkullBaseLump = self.menu.wad.GetNumForName("M_SKL00")
11 frame = (self.menu.time/3) % 18
12 self.menu.vid.DrawPatch (88, 0, self.menu.wad.CacheLumpName ('M_HTIC'))
13 self.menu.vid.DrawPatch (40, 10, self.menu.wad.CacheLumpNum (self.SkullBaseLump + (17 - frame)))
14 self.menu.vid.DrawPatch (232, 10, self.menu.wad.CacheLumpNum (self.SkullBaseLump + frame))
16 mainMenu = MainMenu (menu, 'main', 110, 56, None)
17 mainMenu.AddItem (mainMenu.ITT_EFUNC, 'NEW GAME', SCNetCheck, 1, 'episode')
18 mainMenu.AddItem (mainMenu.ITT_SETMENU, 'OPTIONS', None, None, 'options')
19 mainMenu.AddItem (mainMenu.ITT_SETMENU, 'GAME FILES', None, None, 'files')
20 mainMenu.AddItem (mainMenu.ITT_EFUNC, 'INFO', SCInfo, 0, None)
21 mainMenu.AddItem (mainMenu.ITT_EFUNC, 'QUIT GAME', SCQuitGame, 0, None)
22 menu.AddMenu (mainMenu)
24 episodeMenu = pyhexen.menu.SubMenu (menu, 'episode', 80, 50, 'main')
25 episodeMenu.AddItem (episodeMenu.ITT_EFUNC, 'CITY OF THE DAMNED', SCEpisode, 1, None)
26 episodeMenu.AddItem (episodeMenu.ITT_EFUNC, "HELL'S MAW", SCEpisode, 2, None)
27 episodeMenu.AddItem (episodeMenu.ITT_EFUNC, "THE DOME OF D'SPARIL", SCEpisode, 3, None)
28 episodeMenu.AddItem (episodeMenu.ITT_EFUNC, 'THE OSSUARY', SCEpisode, 4, None)
29 episodeMenu.AddItem (episodeMenu.ITT_EFUNC, 'THE STAGNANT DEMESNE', SCEpisode, 5, None)
30 menu.AddMenu (episodeMenu)
32 fileMenu = pyhexen.menu.SubMenu (menu, 'files', 110, 60, 'main')
33 fileMenu.AddItem (fileMenu.ITT_EFUNC, 'LOAD GAME', SCNetCheck, 2, 'load')
34 fileMenu.AddItem (fileMenu.ITT_SETMENU, 'SAVE GAME', None, 0, 'save')
36 menu.AddMenu (fileMenu)
38 class SaveLoadMenu(pyhexen.menu.SubMenu):
39 def __init__ (self, menu, name, x, y, prev, text):
40 pyhexen.menu.SubMenu.__init__(self, menu, name, x, y, prev)
42 self.textwidth = self.menu.TextBWidth (self.text)
44 def DrawFileSlots (self):
47 for i in range (0, 6):
48 self.menu.vis.DrawPatch (x, y, self.menu.wad.CacheLumpName ('M_FSLOT'))
49 # TODO: Draw slot text
50 y = y + self.menu.ITEM_HEIGHT
53 self.menu.DrawTextB (self.text, 160 - self.textwidth / 2, 10)
56 loadMenu = SaveLoadMenu (menu, 'load', 70, 30, 'files', 'LOAD GAME')
57 loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 0, None)
58 loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 1, None)
59 loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 2, None)
60 loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 3, None)
61 loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 4, None)
62 loadMenu.AddItem (loadMenu.ITT_EFUNC, '', SCLoadGame, 5, None)
64 menu.AddMenu (loadMenu)
66 saveMenu = SaveLoadMenu (menu, 'save', 70, 30, 'files', 'SAVE GAME')
67 saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 0, None)
68 saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 1, None)
69 saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 2, None)
70 saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 3, None)
71 saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 4, None)
72 saveMenu.AddItem (saveMenu.ITT_EFUNC, '', SCSaveGame, 5, None)
74 menu.AddMenu (saveMenu)
76 skillMenu = pyhexen.menu.SubMenu (menu, 'skill', 38, 30, 'episode')
77 skillMenu.AddItem (skillMenu.ITT_EFUNC, 'THOU NEEDETH A WET-NURSE', SCSkill, 0, None)
78 skillMenu.AddItem (skillMenu.ITT_EFUNC, 'YELLOWBELLIES-R-US', SCSkill, 1, None)
79 skillMenu.AddItem (skillMenu.ITT_EFUNC, 'BRINGEST THEM ONETH', SCSkill, 2, None)
80 skillMenu.AddItem (skillMenu.ITT_EFUNC, 'THOU ART A SMITE-MEISTER', SCSkill, 3, None)
81 skillMenu.AddItem (skillMenu.ITT_EFUNC, 'BLACK PLAGUE POSSESSES THEE', SCSkill, 4, None)
83 menu.AddMenu (skillMenu)
85 # TODO: Options menus stubbed
86 class OptionsMenu(pyhexen.menu.SubMenu):
89 optionsMenu = OptionsMenu (menu, 'options', 88, 30, 'main')
91 menu.AddMenu (optionsMenu)
93 class Options2Menu(pyhexen.menu.SubMenu):
96 options2Menu = Options2Menu (menu, 'options2', 90, 20, 'options')
98 menu.AddMenu (options2Menu)
102 def SCNetCheck (arg):
108 def SCQuitGame (arg):
114 def SCLoadGame (arg):
117 def SCSaveGame (arg):