Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
The Doommer

Problem uisng DeHackEd

Recommended Posts

GreyGhost said:

They're most likely in the old binary blob format, or for a no longer supported version of Doom/Doom2. Which wads are they for?

Cydream.deh , sod.deh almost all the wads

Share this post


Link to post

They should be possible to open. Maybe you were trying to open more DEHs at once? I don't know about WhackEd4 (which I presume you're using?), but WhackEd2 can only run one instance at a time, and you must close it before trying to open another deh with it.

Share this post


Link to post
scifista42 said:

Use SLADE3 to make a new lump inside your wad, name it "DECORATE", then either import a textfile into the lump, or directly open the lump in text mode and write your DECORATE code.

How to open the lump into text mode ?

Share this post


Link to post
scifista42 said:

They should be possible to open. Maybe you were trying to open more DEHs at once? I don't know about WhackEd4 (which I presume you're using?), but WhackEd2 can only run one instance at a time, and you must close it before trying to open another deh with it.

It gives me an error about an icon or picture...
And i'm not trying to open more than one wad file at a time.

Share this post


Link to post
The Doommer said:

How to open the lump into text mode ?

In SLADE3, click on the lump, then click "View as Text" in the right window.

The Doommer said:

It gives me an error about an icon or picture...

Post a screenshot of the error window, or quote it precisely.

I hope you are not trying to open .wad files with WhackEd. It's an editor of .deh or .bex patches.

Share this post


Link to post
scifista42 said:

In SLADE3, click on the lump, then click "View as Text" in the right window.

I confused a little...
Which lump you're talking about ???

Share this post


Link to post
scifista42 said:

I hope you are not trying to open .wad files with WhackEd. It's an editor of .deh or .bex patches.

No , DEH files...

Share this post


Link to post
The Doommer said:

Cydream.deh , sod.deh almost all the wads

Cyber110.deh? I had no problems opening that, though WhackEd warned that sod.deh might be corrupted, which appears to be due to a few key names being double-capitalised in that patch ("Reaction Time" & "Hit Points" instead of "Reaction time" & "Hit points").

Share this post


Link to post

It doesn't matter whether you create it before or after, below or above, etc. DECORATE will always take effect in the whole wad.

Share this post


Link to post

It doesn't really matter in which order you create stuff.

What matters is where you create it. Make sure the DECORATE lump is not put in the middle of the map lumps.

Share this post


Link to post
scifista42 said:

It doesn't matter whether you create it before or after, below or above, etc. DECORATE will always take effect in the whole wad.

Ok , Understood.
Thanks.

Share this post


Link to post

All native class names can be found here: http://zdoom.org/wiki/Classes

For example, if you want Doom monster class names, navigate to "Doom classes -> Characters -> Monsters".

Also, don't redefine native class names. Instead, define a new class with a new name, and use "replaces" keyword if you want to replace the native one in your maps. As shown here: http://zdoom.org/wiki/Using_inheritance

Share this post


Link to post
scifista42 said:

All native class names can be found here: http://zdoom.org/wiki/Classes

For example, if you want Doom monster class names, navigate to "Doom classes -> Characters -> Monsters".

Also, don't redefine native class names. Instead, define a new class with a new name, and use "replaces" keyword if you want to replace the native one in your maps. As shown here: http://zdoom.org/wiki/Using_inheritance

An important question :
i want to add some of wolfenstein enemies to the game , but their speed scale is diffrent from doom's. For example Spectre has 800 speed in wolfenstein.

Share this post


Link to post

Yeah, the Speed property is handled very differently depending on whether the actor is a monster, a projectile, or a player pawn.

Share this post


Link to post

No one got what i said...
How to solve the difference between speed scales of Doom & Wolfesntein ??
The monsters in doom have different speed scale with wolfenstein enemies.

Share this post


Link to post
The Doommer said:

An important question :
i want to add some of wolfenstein enemies to the game , but their speed scale is diffrent from doom's. For example Spectre has 800 speed in wolfenstein.


Disclaimer: I might be wrong about how Wolfenstein works, I'm not very familiar with it. But from what I can tell from a superficial glance, Wolfenstein uses a system in which actors, when they move, move every single tic. Also, Wolfenstein has 70 tics per second, instead of just 35 like Doom.

Spoiler

void T_Will (objtype *ob)
{
	long move;
	int	dx,dy,dist;
	boolean	dodge;

	dodge = false;
	dx = abs(ob->tilex - player->tilex);
	dy = abs(ob->tiley - player->tiley);
	dist = dx>dy ? dx : dy;

	if (CheckLine(ob))						// got a shot at player?
	{
		if ( US_RndT() < (tics<<3) )
		{
		//
		// go into attack frame
		//
			if (ob->obclass == willobj)
				NewState (ob,&s_willshoot1);
			else if (ob->obclass == angelobj)
				NewState (ob,&s_angelshoot1);
			else
				NewState (ob,&s_deathshoot1);
			return;
		}
		dodge = true;
	}

	if (ob->dir == nodir)
	{
		if (dodge)
			SelectDodgeDir (ob);
		else
			SelectChaseDir (ob);
		if (ob->dir == nodir)
			return;							// object is blocked in
	}

	move = ob->speed*tics;

	while (move)
	{
		if (ob->distance < 0)
		{
		//
		// waiting for a door to open
		//
			OpenDoor (-ob->distance-1);
			if (doorobjlist[-ob->distance-1].action != dr_open)
				return;
			ob->distance = TILEGLOBAL;	// go ahead, the door is now opoen
		}

		if (move < ob->distance)
		{
			MoveObj (ob,move);
			break;
		}

		//
		// reached goal tile, so select another one
		//

		//
		// fix position to account for round off during moving
		//
		ob->x = ((long)ob->tilex<<TILESHIFT)+TILEGLOBAL/2;
		ob->y = ((long)ob->tiley<<TILESHIFT)+TILEGLOBAL/2;

		move -= ob->distance;

		if (dist <4)
			SelectRunDir (ob);
		else if (dodge)
			SelectDodgeDir (ob);
		else
			SelectChaseDir (ob);

		if (ob->dir == nodir)
			return;							// object is blocked in
	}

}
Relevant parts here are "move = ob->speed*tics;" and "ob->distance = TILEGLOBAL;".

That means that in one second of movement, a spectre moves 800x70=56000 units. Wolfenstein's world is tile-based, and one Wolfenstein tile is 65536 tiles long on each side. So a spectre moves 0.8545 tiles per second.
Spoiler

#define TILEGLOBAL	0x10000
#define HALFTILE	0x8000
#define TILESHIFT	16
If you're not familiar with hexadecimal numbers, 0x10000 is 65536.

Let's suppose you convert a Wolfenstein tile to 64 map units on the side: the spectre has to move 55 Doom map units per second to approximate that speed. But now, Doom monster movement is not done each tic, it's only done whenever they take a step (through A_Chase). Typically, you'll call A_Chase something like once every four tics (it can be more, or less, depending on the monster, we'll go with 4 here). That corresponds to about nine steps per second (a bit less than that, but it's all very approximative). So a single step should be about 7 units. That's your speed for the actor.

If you say a tile is 128 map units long, like in the easter egg maps in Doom II, then instead you have to take 110 map units per second, so for a step every four tics it'll gives you a speed of 13.

Share this post


Link to post

No. Gez said either 7 or 13. That guess sounds reasonable. Most Doom enemies use speed 8, sometimes 10. Speed 55 sounds unreasonable, because as we told you, it's the distance of one step. A step 55 units long would make for an extremely erratic movement.

Share this post


Link to post
The Doommer said:

Let me check , does Spectre have 55 speed in doom converting ??

Only if you do one step per second, so you call A_Chase every 35 tics. It's going to look extremely janky. You want smooth movement, so you call A_Chase every three or four tics, and that means that you'll get 7 or 8 steps per seconds, so you have to divide 55 by 7 or 8...

Basically the exercise is to do this:
1. Convert Wolfenstein speed value into number of tiles per second (multiply by 70, and divide by 65536)
2. Convert tiles per second into map units per second (depends on value chosen for map units per tile, 64 or 128)
3. Convert map units per second into map units per step (depends on number of steps per second, which depends on monster coding)

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
×