Raise ceiling in Heretic format

Ask about mapping, UDMF, using DoomBuilder/editor of choice, etc, here!

Moderator: GZDoom Developers

Forum rules
Before asking on how to use a ZDoom feature, read the ZDoom wiki first. If you still don't understand how to use a feature, then ask here.
Post Reply
Kzer-Za
Posts: 509
Joined: Sat Aug 19, 2017 11:52 pm
Graphics Processor: nVidia (Modern GZDoom)

Raise ceiling in Heretic format

Post 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?
User avatar
NicoTheGoat
Posts: 17
Joined: Sun Dec 29, 2019 6:36 pm
Contact:

Re: Raise ceiling in Heretic format

Post 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.
Attachments
loadacs.wad
UDMF-only specials in Doom format using ACS
(1.22 KiB) Downloaded 28 times
User avatar
Kappes Buur
 
 
Posts: 4122
Joined: Thu Jul 17, 2003 12:19 am
Graphics Processor: nVidia (Legacy GZDoom)
Location: British Columbia, Canada
Contact:

Re: Raise ceiling in Heretic format

Post 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.
Kzer-Za
Posts: 509
Joined: Sat Aug 19, 2017 11:52 pm
Graphics Processor: nVidia (Modern GZDoom)

Re: Raise ceiling in Heretic format

Post 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!
Post Reply

Return to “Mapping”