this is an attempt to dynamically generate menu entries. the entries in doom2 IWAD are doom2strings = """ New game NEW GAME Choose Skill Level I'm too young to die. Hey, not too rough. Hurt me plenty. Ultra-Violence. Nightmare! (diff. font) Load game Save game Options End Game Screen Size Mouse sensitivity Sound Volume Sfx Volume Music Volume Quit Game """ (what about differences in IWAD versions and doom 1 etc.?) the entries we currently have in prboom.wad are: frags about automap chat doom demos enemies features general horizontal heads key messages mouse multiplayer setup sound status vertical video load weapons prboom The idea is we might be able to dynamically compose the required menu graphics by taking chunks of the patches for the existing menu entries and possibly composing them together, abusing the texture code. General capital G: NEW GAME e,n,r,l: Hurt me plenty. a: New game Setup S: Sound Volume e,t,u,p: Hurt me plenty. Doom Compability D: not present! lower case in "I'm too young to die" or, Deimos Anomaly? or, Dead simple? how big are the level texts/ o,m,i,t,y: I'm too young to die C: b: a,l: ultra violence a small python program later: orig_strings = doom2strings.replace(" ","_").split() >>> chars = {} >>> for string in orig_strings: ... for char in string: ... chars[char] = string pwad_strings = """frags about Automap Chat_Strings Doom_Compatibility Demos Features General horizontal heads_up_display Key_Bindings Messages mouse_options multiplayer player_setup Setup sound_options Status_Bar_/_HUD vertical video_options load_wad Weapons PrBoom""".split() >>> used = [] >>> for pwad_string in pwad_strings: ... print "%s:" % pwad_string ... for char in pwad_string: ... if char in used: ... continue ... used.append(char) ... if chars.has_key(char): ... print "\t%s: %s" % (char, chars[char]) ... else: ... print "\t%s: missing" % char ... frags: f: Sfx_Volume r: Screen_Size a: Quit_Game g: Save_game s: Music_Volume about: b: missing o: Music_Volume u: Quit_Game t: Quit_Game Automap: A: NEW_GAME m: Quit_Game p: Options Chat_Strings: C: Choose_Skill_Level h: Nightmare!_(diff._font) _: Quit_Game S: Sfx_Volume i: Quit_Game n: Sound_Volume Doom_Compatibility: D: missing l: Music_Volume y: Mouse_sensitivity Demos: e: Quit_Game Features: F: missing General: G: Quit_Game horizontal: z: Screen_Size heads_up_display: d: Sound_Volume Key_Bindings: K: missing B: missing Messages: M: Music_Volume mouse_options: multiplayer: player_setup: Setup: sound_options: Status_Bar_/_HUD: /: missing H: Hurt_me_plenty. U: Ultra-Violence. vertical: v: Mouse_sensitivity c: Music_Volume video_options: load_wad: w: New_game Weapons: W: NEW_GAME PrBoom: P: missing