PDA

View Full Version : Changing level order dynamically


Kresjah
December 15th, 2004, 07:25 AM
Is there any way at all, without editing the source or modifying levels and WADS, to dynamically change the order of levels being played in jDoom? Or even expand the 32 maps limit?

E.g. if I wish to make a simple modification that changes the standard level order to represent PSX Doom (or any other console port) level order, is there a way to do this via DEDs or anything similar that doesn't include modifying the jDoom source or modifying the levels or WADs physically?

Vermil
December 15th, 2004, 07:56 AM
In Jdoom you can't change level progression without editing the dll.

However you can have more than 32 maps by editng maps.ded.

Kresjah
December 15th, 2004, 07:58 AM
Annoying, but having more than 32 maps would do the trick too. I've tried looking at the maps.ded file earlier today, but I wasn't able to figure out how you could work around that limit in there. Could you give me a quick example?

Vermil
December 15th, 2004, 08:05 AM
Annoying, but having more than 32 maps would do the trick too. I've tried looking at the maps.ded file earlier today, but I wasn't able to figure out how you could work around that limit in there. Could you give me a quick example?

You just have to copy one of the existing map defenitions and change the "ID field".

Theres also a blank map definition at the bottom of maps.ded.

Though something I forgot about in my previous post, you can control level progression via XG, but theres no way to carry the players equipment over (i.e you would start map x with a pistol and 50 bullets)

Kresjah
December 15th, 2004, 08:07 AM
I'm still having problems seeing how that would make it possible for me to have e.g. 33 maps in Doom II.

Vermil
December 15th, 2004, 08:12 AM
Map Info {
ID = "MAP33";
Name = "Level 33: New Level";
Author = "id Software";
Gravity = 1;
Sky height = 0.49;
Horizon offset = -0.105;
Sky Layer 1 {
Flags = "slf_enable";
Texture = "SKY3";
};
}

The above is an example map definition for Map33. Obviously you'll need a wad with MAP33 in to get any use out of it.

However the intermission screen for any map above 32 will crash Dday unless you have completed at least one map 1-32 in the same Dday session. To fix this you have to edit the dll.

Kresjah
December 15th, 2004, 08:19 AM
So by just making a definition for map 33 (and making the finale.ded last screen 'skippable'), one can naturally progress to map 33? Hmm... I'm trying to make a quick map 33 now to test.

Vermil
December 15th, 2004, 08:26 AM
Doh! You've just reminded me, the exits on Map32 (Making Map30's finale skippable will take you to Map31) are hard coded to take you to Map16. Hence the only way to access Map33 is via XG (or cheating).

BTW apologies for the disorganized posts, I should have mentioned allot of what I've posted in a single post.

Kresjah
December 15th, 2004, 08:28 AM
I kinda knew that about the exits from the secret level... XG is one thing I definately have no hang of. Wellwell, I think I'll just throw that idea out the window until one can dynamically edit map order and add maps.

Jimi
December 15th, 2004, 09:46 AM
I think it won't crash if the wad with the MAP33 lump has also a CWILV32 (they start from 00) graphic lump. So it crashes because the intermission screen can't display the graphics needed for the next map.

Vermil
December 15th, 2004, 10:19 AM
At least for me...

If you simply complete a map above 32, Dday will crash regardless of whether there is a CWILV lump named correctly.

However strangely, if before trying to complete a map above 32, you complete a map before 32 in the same session of Dday (i.e. since you launched Dday), Dday will run through the intermission for a map above 32 without crashing, though it still doesn't display a CWILV graphic.

Kresjah
December 15th, 2004, 10:38 AM
I wish I knew how to code C++. I started with a book many years ago, but I didn't get far of some reason (can't remember why). I'll just peek at the source and see what I find, although I'll probably find nada.

EDIT: Nope, nothing in there that I was able to see relating to the problem and at the same time understand enough to do anything with.