Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Starke Von Oben

Limitations of Polyobjects?

Recommended Posts

Is there a list of do's and dont's for Polyobjects? What are the limitations of them, and how can level designers work around these limitations?

Currently experiencing problems with them in my current level. I'm trying to make a T-corridor to a cell block with lots of Polyobjects for the doors. It all works fine until I start putting polyobjects on the southern part of the corridor, then I get that nasty error where you can see the Polyobject through the wall as It moves into it.

What is this error?

Share this post


Link to post

Also regarding the movement angle of the polyobject, what are the relative numbers for north, south, east and west?

It seems that 64 moves the object north. What are the numbers for the other ones?

Share this post


Link to post

From my experiments it seems to be determined as to where you place the sectors with the polyobject.

In that case, what is the best advice with regards placing the polyobject sector? What do mappers usually do?

Share this post


Link to post
Starke Von Oben said:

From my experiments it seems to be determined as to where you place the sectors with the polyobject.

You mean the sector where you build them? Usually, it is as close as possible to the spot where the polyobjects appear in the game, so you can easily find them in the editor, but this certainly is not a requirement.

Use a polyobject aware nodebuilder, which makes sure the sector where the polyobject appears won't be split.

Make sure, the sector where the polyobject appears is convex. (Otherwise, a split is unavoidable.)

If you still get glitches, zoom in the automap and watch closely if the polyobject crosses any linedefs.

Share this post


Link to post
LogicDeLuxe said:

You mean the sector where you build them? Usually, it is as close as possible to the spot where the polyobjects appear in the game, so you can easily find them in the editor, but this certainly is not a requirement.

Use a polyobject aware nodebuilder, which makes sure the sector where the polyobject appears won't be split.

Make sure, the sector where the polyobject appears is convex. (Otherwise, a split is unavoidable.)

If you still get glitches, zoom in the automap and watch closely if the polyobject crosses any linedefs.


My nodebuilder is zdbsp, I assume that's polyobject aware?

What is covex?

I know for a fact no linedefs are being crossed. It seems to be dependant on where I place the polyobject sectors. Is it allowed or possible to allocate all polyobjects (such as doors) in one sector? Or does that cause errors? I am not doing this currently.

Share this post


Link to post

Each polyobject should appear in its own sector. You can build as many as you like in the dummy sector though.

If you could upload an example, someone might take a look to find out what causes the problem.

Share this post


Link to post

Angles: 0 is east, 64 north, 128 west, 192 south. That's Byte Angle Measurement (BAM) with east as the reference point.

Limits of polyobjects:

1. cannot be concave, that it is to say, they cannot have a cavity. (See? Etymology is useful!)
2. must remain always in the same subsector (a subsector being a convex subpart of a sector, as created by the nodebuilder) and cannot share this subsector with another polyobject.

Eternity, however, has overhauled the polyobject code to remove limit #2. I think limit #1 still applies.

Share this post


Link to post
Gez said:

Eternity, however, has overhauled the polyobject code to remove limit #2. I think limit #1 still applies.


Correct.

Share this post


Link to post
LogicDeLuxe said:

Use a polyobject aware nodebuilder, which attempts to keep the sector where the polyobject appears from being split.

My corrections in italics. Polyobject-aware nodebuilders can at best test other available partition lines instead of picking one that splits a polyobject sector. If none such is available, then there's nothing it can do. It is easy to create hypothetical situations where other polyobjects cause an exhaustion of available node lines that will not split any other polyobjects.

Because of this ultimate futility, a system such as dynasegs is necessary to guarantee proper behavior in all situations.

Share this post


Link to post
Starke Von Oben said:

Is there a list of do's and dont's for Polyobjects? What are the limitations of them, and how can level designers work around these limitations?

Are you asking regarding vanilla Hexen or perhaps a port such as Doomsday, Eternity or ZDoom? Each handles polyobjects somewhat differently. Consequently, what is a "do" for vanilla Hexen may not mater in the slightest in a port.

Doomsday for example handles polyobjects entirely differently. For example, polyobject linedefs are completely ignored during the internal BSP and "glnode" build process.

Share this post


Link to post

To make it require a key you would need to use the ACS_ExecuteLocked (or LockedExecute?? 6_9) line special instead of the normal Polyobj_* special. Then call the Polyobj special from inside your script.

Share this post


Link to post
Quasar said:

To make it require a key you would need to use the ACS_ExecuteLocked (or LockedExecute?? 6_9) line special instead of the normal Polyobj_* special. Then call the Polyobj special from inside your script.


Now I'm getting out of my depth!

ACS execute locked? I've not come across this yet.

Help!

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
×