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

[not ZDoom] Are floating teleport destinations possible?

Recommended Posts

I'm using MBF/PrBoom+ and Dehacked. Is it possible to manipulate a teleport destination to float somewhere, such as the ceiling? I'd rather this be selectable on the map than global with Dehacked (i.e. I don't want all teleport destinations to hang from ceiling).

Can I teleport the teleport destinations with conveyors? Can I somehow thrust them by wind so they end up somewhere in air? [after I do any necessary Dehacked modifications]

Does it require Final Doom or is plain Doom enough?

Case in point: boxes in the ceiling, with teleport destinations in the middle, and flying monsters teleporting into them.

Share this post


Link to post

Could you fake it with fake floors or self referencing sectors? Or do you want the effect of monsters dropping from the sky?

Share this post


Link to post

Yes, you can. You need dehacked to change the Teleport Destination thing's properties to allow it to be moved and activate triggers. Set up your teleport as normal but without the tdt. Put that one on a conveyor and use a line to line teleport to deliver it to its intended sector. This way you can have a "deactivated" teleport that you can switch on later.

I mentioned this on the ZDoom forums before (search for "mord") since ZDoom did not support this.

You can make it float but that won't help you: target always lands at floor level regardless.

Share this post


Link to post

Not sure if this is what you're looking for, but for the player you could always have the teleport player line right after a lower floor line. Set teleport on a thin, un-sidedef-ed sector that glides down sometimes after the player teleports?

My hacky take on your question. :/

Share this post


Link to post
Mordeth said:

You can make it float but that won't help you: target always lands at floor level regardless.

I've suspected this to be true. Also, Teleport Destination is just 1 thing type, so if you alter it via DEHACKED, all Teleport Destinations will be affected this way, without a workaround.

Share this post


Link to post

Altering the tid in the way I described above doesn't change its normal behaviour. At least not in full Boom compatible ports.

Whenever I wanted to teleport a monster at a certain height, I used an invisible raised pillar. To hide the base and thus avoid the player from bumping into it, you can use some level geometry obstacle, like a small crate or a support strut for a railing.

Share this post


Link to post
Mordeth said:

You can make it float but that won't help you: target always lands at floor level regardless.

Then I guess the best I can try is only a (possibly limited) Lost Soul spawner hanging from ceiling. And I can't just use "Spawn" unless it's about non-solid monsters, because otherwise they would get stuck with each other.

Hmm, idea. What happens if I use the "Spawn" codepointer with a huge "Unknown 2" z offset? Will it spawn just below the ceiling? If so, then for each needed monster I can define such a spawner thing in Dehacked. Then when it sees the player, it spawns the monster at the highest z coordinate and disappears. It will even keep a correct Kills count if it has COUNTKILL and only spawns one monster. And I'll be able to teleport it around with conveyors as well, in order to "activate" such traps. I'd still have the problem of it getting stuck on anyone who's there at that time...

The only problem may be that I need room in Dehacked for it, but it may not be much needed :)

Share this post


Link to post

It would be interesting to have a floating teleport destination being propelled by barrel exposions and slowly sliding along a direction. That could be part of some elaborate timing-based puzzle, and even work in vanilla. Of couse, the limitation would be that the teleporter would still need to be confined in the sector where the teleporter trigger is pointing at (or at least into a sector with the same tag), otherwise unpleasant things might happen.

Share this post


Link to post
printz said:

Hmm, idea. What happens if I use the "Spawn" codepointer with a huge "Unknown 2" z offset? Will it spawn just below the ceiling?


No. The mobj will be spawned at spawner z + misc2<<FRACBITS value.

Mobjs are spawned right below the ceiling when their spawn z is ONCEILINGZ, which is defined as MAXINT (0x7FFFFFFF, or 2147483647). You cannot easily do that with A_Spawn, since you need 0x7FFFFFFF to be equal to floorz + misc2<<FRACBITS. Only way you can obtain that is if misc2 is 32767, and the floor height where you put your spawner is 65535.

So what happens if instead you put a high value. Not high enough to get to the magic number of ONCEILINGZ, but high enough to be higher than the ceiling? Well, the result is that you get a monster stuck in the ceiling.

So, your only way to make it work is to use your spawners only in rooms with a predefined height. For example, 256 map units between floor and ceiling. A lost soul height is 56, so 256 - 56 = 200, use a misc2 of 200 and the spawner will spawn lost souls right below the ceiling. Put the spawner in a room with a ceiling at 512, the lost souls spawn right below halfway up, put it in a room with a ceiling at 128 and the lost souls spawn stuck in the ceiling.


I guess you can make the spawner small enough (in its radius) to "fall" in a 2x2 hole in the ground, using self-reference tricks so that the hole will be hidden by texture floodfill. This way you can adjust the spawner's height to be always a certain height below the ceiling. The hole will be too small for the player (or drop items) to fall into, and it will be hidden. I suppose the spawner is not supposed to be a visible actor.

Share this post


Link to post
Gez said:

So what happens if instead you put a high value. Not high enough to get to the magic number of ONCEILINGZ, but high enough to be higher than the ceiling? Well, the result is that you get a monster stuck in the ceiling.

Well actually I tried it in Eternity by making some things spawn something on their second frame, using Spawn, then disappear. The Z offset was set to 4000 (very high) and the spawned monster was a floater (such as a cacodemon). They would just spawn right below the ceiling, facing east.

Apart from some Doom 2 1.666 mod called RJDoom totally lost off the Internet, which probably used undefined behaviour to teleport Lucifer (modded archviles), I've never encountered anyone in Doom getting stuck under the floor or above the ceiling.

On another note, the multiple-actor getting-stuck problem can be solved by making the spawner solid (and disappearing after their act).

Share this post


Link to post
Maes said:

It would be interesting to have a floating teleport destination being propelled by barrel exposions and slowly sliding along a direction. That could be part of some elaborate timing-based puzzle, and even work in vanilla.

Kinda like this? :) teledestTOD.zip

Share this post


Link to post
TimeOfDeath said:

Kinda like this? :) teledestTOD.zip


That's amazing man! That looks like something that could belong to a WAD like Cyberdreams. I'm surprised none tried that before. Think of all the possibilities (e.g. timing-based puzzles, apparently erratic teleporting), and since the teleport object appears capable of triggering linedefs, perhaps some effects thought only possible with Boom such as conveyor belts or voodoo doll logic, might be possible to some extent even on vanilla.

Man, this game never ceases to amaze me O_o

It is just a game...right?

Share this post


Link to post
Maes said:

Man, this game never ceases to amaze me O_o

It is just a game...right?

Not just a game. Not just a playground. It's a universe. It's a lifestyle, too. And it's wisdom. :D

Share this post


Link to post
Maes said:

apparently erratic teleporting

I believe Dr. Kleiner's Teleporter would be the proper scientific term, by analogy with Schrödinger's Cat.

edit: teleporter

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  
×