Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Altima

P_CrossSubsector

Recommended Posts

So, I'm working on a map and I'm consistently getting this error during play on vanilla Doom2 v1.9, and I've been looking around for some sort of explanation and I'm at a complete loss as to what to do. I'm wanting the map to be vanilla compatible, but I need some help in pinpointing the cause of this first.

This is the exact error message I'm getting:

P_CrossSubsector: ss 28743 with numss = 0



Any advice would be greatly appreciated =)

Share this post


Link to post

There seems to be something very wrong with your nodes.

boolean P_CrossSubsector (int num)
{
<snip variable declaration>
	
#ifdef RANGECHECK
    if (num>=numsubsectors)
	I_Error ("P_CrossSubsector: ss %i with numss = %i",
		 num,
		 numsubsectors);
#endif

I don't think that well-formed vanilla-compatible nodes would claim there are zero subsectors total.

Share this post


Link to post

So it's a node problem? What would be my best course of action to fix it, or would a node builder handle that?

Share this post


Link to post

Open your map with a lump editor like Slade 3, and then find your map in the list. Take a peek at the SSECTORS lump for that map. It should come right after SEGS (which itself is right after VERTEXES). If it's not present at all or it's very small in size (say, 0 bytes), then the nodes were probably not built correctly for your map.

I've had this error happen back in the golden days, but could never figure out why. Looking back, it was probably due to some overflow during the node generation. Basically, my level geometry was way too complex for a vanilla map and although it would run, whenever any monsters were awakened, the game would crash with this error (so it's probably related to line-of-sight checking or something).

Looking at the number your error provided, you have quite a few subsectors in your map, although I'd have to see the other lumps to know how much you're pushing the map limits. I think it's safe to say you're approaching the maximum level size Doom can handle, if you're not already there.

Share this post


Link to post

The irony is that the map really isn't that big, unless it's either *somehow* the teleport cages or the outdoor area that's only for decoration that's causing it... which would be my luck.

Share this post


Link to post

I tried ZDBSP and almost got through the map except I had an intercepts overflow and everything ghosted, I'll give it another try and see if I can prevent that from happening too since that seems fairly frequent.

Edit: I did get through it without an intercepts overflow, but there's a few HOM effects that don't make any sense as to why they show up but they aren't so noticeable so I suppose it's not that bad a trade-off.

Share this post


Link to post
Dragonsbrethren said:

Drawsegs overflow.


I think I understand that. So if I split the linedef then will that fix it or make it worse?

I will give Chocorenderlimits a go, thank you for the link EarthQuake.

Share this post


Link to post
Altima said:

I think I understand that. So if I split the linedef then will that fix it or make it worse?


It will make it worse, because a drawseg overflows occurs when there are more than 256 segs (line segment... and not necessarily "linedef") rendered in any particular view. They are harmless as far as I know, but once you go past that 256 seg limit, it can't draw any more and the columns that make up those leftover segs will HOM up. I believe the ones that are closest to the player are drawn first, so usually when you see this error happen, it appears in the distance as HOM.

Visplane overflows are what you really have to worry about here. It's the bane of all vanilla mappers. A visplane overflow is similar to a drawseg overflow, but instead of talking about segs in view, we're talking about unique planes in view (floors/ceilings with different visual properties). The max was 128, which is extremely limiting for some people. Go past this limit and you get a nasty crash.

You might consider dropping vanilla compatibility in favor of limit-removing instead. Pretty much everyone nowadays use a source port of some kind, and nearly all source ports are limit-removing.

Share this post


Link to post

Yeah, I know about the visplane overflow, and I know how to fix that since it's an easy thing to cause in vanilla due to the reasons you gave. The ones that piss me off most are intercepts overflows and ... well, right now just that one. I want to try to maintain vanilla compatibility for as long as I can, but if it comes down to it then I'll adjust for PRBoom+ since that is my source port of choice. It sucks that the engine has these sorts of limits, but given the game's age it probably couldn't be helped in some places.

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
Sign in to follow this  
×