Page 1 of 1

Raise ceiling in Heretic format

PostPosted: Wed Dec 30, 2020 4:15 am
by Kzer-Za
I want the ceiling in a certain sector to be raised to the highest ceiling not by crossing a line, but by activating a switch. My map is in Heretic format.

As far as I understand, maps in Heretic format did not have a line special for raising a ceiling by activating the said line, only by crossing it. But if I understand it correctly, I could assign a line special manually, by its number, and in GZDoom it would have the desired effect. Or not?

I have tried assigning a special "262" (https://zdoom.org/wiki/Action_specials) to the switch line, but it has no effect.

So, is it possible to raise the ceiling by a switch, while keeping the map in Heretic format?

Re: Raise ceiling in Heretic format

PostPosted: Wed Dec 30, 2020 8:03 am
by NicoTheGoat
The action specials listed on the wiki can only be directly used in UDMF format maps.
However, you can set the line's special and activation via ACS using the SetLineSpecial and SetLineActivation functions respectively, letting you use UDMF-only specials on non-UDMF maps.

The attached wad shows how to do this in Doom/Heretic format.

Re: Raise ceiling in Heretic format

PostPosted: Wed Dec 30, 2020 7:45 pm
by Kappes Buur
Kzer-Za wrote:I want the ceiling in a certain sector to be raised to the highest ceiling not by crossing a line, but by activating a switch. My map is in Heretic format.


I assume that you want the sector's ceiling height to move to the height of an adjacent sector's ceiling height.


Kzer-Za wrote:So, is it possible to raise the ceiling by a switch, while keeping the map in Heretic format?


Use action special 41: Ceiling_RaiseByValue to move the ceiling by the difference in ceiling heights, attached to a switch with the press use trigger. Do not forget to assign an appropriate id tag. Of course you could do this with a script if you wanted something else to occur at the same time.

Action special 262 is a hack-in for EE compatibility and cannot be used by Heretic.

Re: Raise ceiling in Heretic format

PostPosted: Sat Jan 02, 2021 3:44 am
by Kzer-Za
Kappes Buur wrote:Use action special 41: Ceiling_RaiseByValue to move the ceiling by the difference in ceiling heights, attached to a switch with the press use trigger. Do not forget to assign an appropriate id tag. Of course you could do this with a script if you wanted something else to occur at the same time.

Action special 262 is a hack-in for EE compatibility and cannot be used by Heretic.


That was exactly the problem, that I couldn't assign additional parameters to line actions. I assume it is possible when editing the map in UDMF format (I haven't tried it yet), but in Heretic or Doom format it's not possible.

NicoTheGoat wrote:The action specials listed on the wiki can only be directly used in UDMF format maps.
However, you can set the line's special and activation via ACS using the SetLineSpecial and SetLineActivation functions respectively, letting you use UDMF-only specials on non-UDMF maps.

The attached wad shows how to do this in Doom/Heretic format.


Thanks, that works!

BTW, it turns out that the wiki description of these ACS functions is wrong, or at least unclear. It gives the impression that the first argument is the line id, whereas it needs to be the number of the tag assigned to the line in question. When I adapted your example to my map, I first used the line id and couldn't understand why it's not working until I took a second look at the map in your example and realized that the first argument is actually tag, not the line id. So thanks again for such a complete example that contains everything that's needed to understand it!