Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Fellowzdoomer

DeHackED Question

Recommended Posts

Can't be done. To end an episode early, you'd need to either use port-specific MAPINFO lump(s) or put in some sort of unexitable end map like in UAC Ultra, BTSX E1, or the original release of Scythe 2 to keep players from progressing to the stock maps you haven't replaced.

edit: In Ultimate Doom it might be possible to shorten the episode slightly by abusing the secret map slot. I'm not positive, but I think it might work differently than Doom 2 (where secret exits on unexpected maps just cause it to repeat the same map you're on). But that assumes you don't want to have a secret map, so it may or may not be any help.

Share this post


Link to post
esselfortium said:

edit: In Ultimate Doom it might be possible to shorten the episode slightly by abusing the secret map slot. I'm not positive, but I think it might work differently than Doom 2

Yep. When you use a secret exit, Doom uses a switch on current episode to know where you go. But Doom II has no episodes, so it uses a switch on map number instead. Result: in Doom, you're guaranteed to get into one of the switch's cases because all episodes are accounted for, but in Doom II the switch only accounts for MAP15 and MAP31, so if you're in any other slot you don't get anything. (They really should have used an 'if slot == MAP31 go to MAP32 else go to MAP31' logic instead, because a switch for two cases is kind of ridiculous.)

    // wminfo.next is 0 biased, unlike gamemap
    if ( gamemode == commercial)
    {
	if (secretexit)
	    switch(gamemap)
	    {
	      case 15: wminfo.next = 30; break;
	      case 31: wminfo.next = 31; break;
	    }
	else
	    switch(gamemap)
	    {
	      case 31:
	      case 32: wminfo.next = 15; break;
	      default: wminfo.next = gamemap;
	    }
    }
    else
    {
	if (secretexit) 
	    wminfo.next = 8; 	// go to secret level 
	else if (gamemap == 9) 
	{
	    // returning from secret level 
	    switch (gameepisode) 
	    { 
	      case 1: 
		wminfo.next = 3; 
		break; 
	      case 2: 
		wminfo.next = 5; 
		break; 
	      case 3: 
		wminfo.next = 6; 
		break; 
	      case 4:
		wminfo.next = 2;
		break;
	    }                
	} 
	else 
	    wminfo.next = gamemap;          // go to next level 
    }

Share this post


Link to post
Gez said:

Yep. When you use a secret exit, Doom uses a switch on current episode to know where you go. But Doom II has no episodes, so it uses a switch on map number instead. Result: in Doom, you're guaranteed to get into one of the switch's cases because all episodes are accounted for, but in Doom II the switch only accounts for MAP15 and MAP31, so if you're in any other slot you don't get anything. (They really should have used an 'if slot == MAP31 go to MAP32 else go to MAP31' logic instead, because a switch for two cases is kind of ridiculous.)

Should be noted also that the if(secretexit) switch is missing a default case so, when you hit that, wminfo.next retains whatever value it had before - meaning the behavior of secret exits in Doom II can be inconsistent depending on how you've played the game so far.

Share this post


Link to post
esselfortium said:

But that assumes you don't want to have a secret map, so it may or may not be any help.


You can still have a secret map this way: have the normal exit go to the secret level, and have the secret exit go to the next normal level, which then always exits to the secret level. e: works better on Episodes 2&3 though.

Also, if you just want the ExM8 map slot for boss fights, I believe you can use DeHackEd to give the KeenDie action to boss deaths, making them trigger sectors tagged 666.

Share this post


Link to post

The clipboard object is not read from or written to the EXE or DEH files, it's merely a temporary space for copying an object's properties without having to overwrite another object. Without it there's no way to rearrange the order of Things in the Thing Table (some properties, such as which monsters drop which weapons, are determined by the position of the relevant Things in the Table and this is the only way to change that).

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
Sign in to follow this  
×