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

Floor_LowerInstant(const: 34, 0, 800);

Recommended Posts

This special multiplies the height with 8. In Hexen this was necessary because the parameters could at most be 255, so in order to achieve larger ranges they added this dumb multiplier.

What ZDoom and Zandronum versions did you test? Lowering by 8*800 = 6400 should place the platform below the pit.

Share this post


Link to post
Graf Zahl said:

This special multiplies the height with 8. In Hexen this was necessary because the parameters could at most be 255, so in order to achieve larger ranges they added this dumb multiplier.

What ZDoom version did you test?


So how can I set the floor goes IMMEDIATELY to -4000 floor (not more, not less) ?

I tried also "Floor_LowerByValueTimes8(arg1, arg2, arg3);"

but it's too way slow even with 255, and it goes only a short distance in zdoom

and quite good distance in zandroum (shouldn't be the distance the same??)

Graf Zahl said:

What ZDoom and Zandronum versions did you test?


also I overlooked your question

Well I have the newtest zdoom

and some older zandronum :)

Share this post


Link to post

I got it!

So the main difference between zandronum and zdoom is the limit Graf Zahl mentioned.

If you use Floor_LowerInstant(const: arg1, arg2, 800);

it goes just about 255(*8) tops in older zdoom (I tried the newest and it does nothing if the value is above 255).

In zandronum it really goes 800*8

Some examples

zdoom
10 = 10
200 = 200
255 = 255
256 = 255 or nothing
54654354684 = 255 or nothing

zandronum

10 = 10
200 = 200
255 = 255
256 = 256
54654354684 = 54654354684

:)

But if I want go deeper in zdoom, this does the trick:

Floor_LowerInstant(const: 27, 0, 255);
delay(const: 1);
Floor_LowerInstant(const: 27, 0, 255);
etc.

Share this post


Link to post

I need the exact versions to decide whether there's a bug or not.

'Newest' can be a lot. It can be 2.8.1 or it can be yesterday's devbuild.
I need also some context in which you are testing. When using Hexen with an original Hexen MAPINFO the values are indeed being truncated to byte values but in all other cases that should not happen.

Share this post


Link to post
Graf Zahl said:

I need the exact versions to decide whether there's a bug or not.

'Newest' can be a lot. It can be 2.8.1 or it can be yesterday's devbuild.
I need also some context in which you are testing. When using Hexen with an original Hexen MAPINFO the values are indeed being truncated to byte values but in all other cases that should not happen.


Well I wanted to make a trap.

When you jump onto this platform and pick up the icon of defender, the platform collapses and you die



Tag of the floor is 34

I wasn't sure how much deep it should go, so I put random number

Floor_LowerInstant(const: 34, 0, 800);

In some old version of Zandronum (I can't tell you a number because I installed the newest version now so it re-wrote everything. But the newtest version is 2.1.2)

And it worked fine - the platform collapsed and it kills the player.

But in the zdoom (version 2.7.1) it goes only a bit(like my picture shows) so it doesn't hurt the player at all).

In version 2.8.1 it does nothing at all (but if you set it under the 256, it works)

:)

Share this post


Link to post

So this is Hexen. That's already very important.
Did you add a MAPINFO or just load the map?
I guess the second because what happens here is that ZDoom tries to emulate original Hexen and treat the arguments as bytes. So 800 becomes (800%256) = 32.

If you want full parameter range you have to add a MAPINFO in modern ZDoom format to disable this truncation. In the other games it will never happen because this limitation was never present in ZDoom originally, it only got added to emulate Hexen more closely, and that's why your old Zandronum version does not have this effect.

If you want to get this working in other Hexen-capable engines it will always be like you experienced here with ZDoom.

Share this post


Link to post
Graf Zahl said:

So this is Hexen. That's already very important.
Did you add a MAPINFO or just load the map?
I guess the second because what happens here is that ZDoom tries to emulate original Hexen and treat the arguments as bytes. So 800 becomes (800%256) = 32.

If you want full parameter range you have to add a MAPINFO in modern ZDoom format to disable this truncation. In the other games it will never happen because this limitation was never present in ZDoom originally, it only got added to emulate Hexen more closely, and that's why your old Zandronum version does not have this effect.

If you want to get this working in other Hexen-capable engines it will always be like you experienced here with ZDoom.


Oh, thanks for your explanation! Thanks a lot!

But no... The map(s) I am working on should be the classical-Hexen-like, so no zdoom things. And if there is something limited to 255 (and it's almost everything - maximal number of scripts, maximal speed and now I know it's maximal height of lowering) I must respect it.

Besides, I can cheat the limit with double-command as I did above :) It works.

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
×