Jump to content
  • 0

GZDoom/UDMF line portal is blocking, not sure why


aRottenKomquat

Question

I have a GZDoom UDMF map idea that involves changing line portals at runtime via scripting, to have a 3D floor elevator move up and down in a shaft and appear to move between floors--a script will swap out the portal targets depending on the elevator's height to simulate room-over-room. I'm demoing out some stuff and running into problems.

 

I've attached a demo WAD (IWAD is Doom2 and I'm using GZDoom 4.10.0). When you spawn in, press the switch to activate the portal and the 3d floor elevator and shaft will appear in front of you. The problem I'm encountering is the north portal (red markers in screenshot) is often blocking, but it shouldn't be. You can test this by shooting at it with a plasma gun, and comparing to the other 3 portals which seem to work fine. You can also drop down into the hole and hug the portals, and the north one catches you for some reason. For my idea to work, you have to freely pass.

 

There are probably some caveats regarding line portals that I'm not aware of. Any ideas what's wrong here?

 

conduit_portal_problem.jpg.11b8dc0a7c09c0a18fed29806eddba6d.jpg

conduit_test.zip

Share this post


Link to post

3 answers to this question

Recommended Posts

  • 1

You are using the setflags for Line_SetBlocking instead of the clearflags.

This:

Line_SetBlocking(1000, BLOCKF_EVERYTHING, 0);
Line_SetBlocking(1009, BLOCKF_EVERYTHING, 0);

Should be:

Line_SetBlocking(1000, 0, BLOCKF_EVERYTHING);
Line_SetBlocking(1009, 0, BLOCKF_EVERYTHING);

Also #define is not a thing in ACS.

Share this post


Link to post
  • 0
5 minutes ago, BeachThunder said:

You are using the setflags for Line_SetBlocking instead of the clearflags.

This:


Line_SetBlocking(1000, BLOCKF_EVERYTHING, 0);
Line_SetBlocking(1009, BLOCKF_EVERYTHING, 0);

Should be:


Line_SetBlocking(1000, 0, BLOCKF_EVERYTHING);
Line_SetBlocking(1009, 0, BLOCKF_EVERYTHING);

Also #define is not a thing in ACS.

 

Oops, the Line_SetBlocking calls are scripting leftovers from a previous attempt that didn't work. Those are not supposed to be there.

 

#define seems to work. I do a lot of C development for my career and ACS looks like C at first, so I keep trying to use it like C.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...