Native support for Master Levels

SVN revision 1222 or later now have native support for playing the Master Levels as a set without modifying the maps in any way (or any other arbitrary collection of single-level PWADs, for that matter).

Support includes the following:

  • Choose levels from a menu at runtime and play them immediately.
  • All levels can be loaded simultaneously and do not overwrite each other, or any levels in the IWAD - a normal game can still be started from the menu or console.
  • Full savegame support. The level you were playing when you saved will be reloaded even if the game has been quit and restarted, and without requiring -file.
  • Selection menu reappears after finishing each level.
  • If a .txt file is present with the same base name as the WAD file, it will be parsed for title and author information.
A current limitation is that only single-level PWADs can be used in this manner, and no other resources will be loaded from them. This mode is also not supported for multiplayer or demo recording/playback.

This will be supported with a menu before the next release, but you can try it out right now with the following commands:
  • master_levels_dir "path" - Sets the directory to look for the files in. No assumptions are made about the files, so this could be a different collection of wads, and not all of them must be present.
  • w_masterlevels - Brings up the selection menu.
Some screenshots:
http://eternity.mancubus.net/pics/masterlvs.png
http://eternity.mancubus.net/pics/masterlvpick.png

Share this post


Link to post

This is win. I've always wanted a runtime menu (like at restaurant) to choose what I want to play, without having to see the dreary Windows MS-DOS prompt interface again, and the savegames to be recognizable -- like with any self-respecting game. It's good to know that it isn't limited to the Master Levels actually, and it has its non-hardcoded means to detect stuff from the standardized text files. Any plans to make it more flexible? Does it support Doom 1?

Share this post


Link to post

This is great news! I'm more and more impressed by this source port. Well done, dude! :)

Share this post


Link to post

It's not that new, it's just been a bit overlooked until Printz bumped it. ;)

By the way, if you enter in the console a path with spaces in it (such as, for example, the directory in which Steam will install them: <steam dir>\steamapps\common\master levels of doom\master\wads), the console will tell you that it cannot access filepath. I've tried with quotes, without quotes, with \ in front of the spaces, without, to no avail. But just pasting the directory within quotes in the cfg file works, though.

(If you ever want to do like Choco and ZDoom and autofind installed Doom-engine games in Steam, the other paths are also all within <steam dir>\steamapps\common\ and they're also full of spaces: doom 2\base, final doom\base, ultimate doom\base, heretic shadow of the serpent riders\base, hexen\base and hexen deathkings of the dark citadel\base. <steam dir> has to be queried from the Windows registry.)

Another little issue is that when you finish one of the levels, you're sent back to the level selection screen (normal) and you can't leave it other than by starting a level again. You can't use Escape, the console key, F7, F10, or any other key to cancel and go back to the normal menu. This does not do that when this screen is summoned from the console.

Share this post


Link to post
Gez said:

It's not that new, it's just been a bit overlooked until Printz bumped it. ;)

By the way, if you enter in the console a path with spaces in it (such as, for example, the directory in which Steam will install them: <steam dir>\steamapps\common\master levels of doom\master\wads), the console will tell you that it cannot access filepath. I've tried with quotes, without quotes, with \ in front of the spaces, without, to no avail. But just pasting the directory within quotes in the cfg file works, though.

This is probably a glitch in the console tokenizer >_> Thanks for bringing it to my attention cuz I can probably fix it easily.

EDIT: Actually I just tested, and it's not. The console tokenizes the path perfectly. But the C library function access() is returning a positive error code...

Gez said:

(If you ever want to do like Choco and ZDoom and autofind installed Doom-engine games in Steam, the other paths are also all within <steam dir>\steamapps\common\ and they're also full of spaces: doom 2\base, final doom\base, ultimate doom\base, heretic shadow of the serpent riders\base, hexen\base and hexen deathkings of the dark citadel\base. <steam dir> has to be queried from the Windows registry.)

There's some dead code looking to do this in EE already actually, taken from Choco. I just haven't gotten around to integrating it with the code in d_main yet ;)

Gez said:

Another little issue is that when you finish one of the levels, you're sent back to the level selection screen (normal) and you can't leave it other than by starting a level again. You can't use Escape, the console key, F7, F10, or any other key to cancel and go back to the normal menu. This does not do that when this screen is summoned from the console.

The reason is, there's nothing to go back to currently :/ The game is in a "dead" state at that point, between GS_INTERMISSION and GS_LEVEL. If I allowed the menu to be exited, you would in fact be stuck looking at a solid screen of HOM. Maybe I can think up something else, like a transition back to the demo loop...

Share this post


Link to post
Dragonsbrethren said:

Is there any way to start the game with this menu open from the command line?

Not currently. I'll consider if it's practical to make a way to do this though.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now