Hard Light Productions Forums

General FreeSpace => FreeSpace & FreeSpace Open Support => Topic started by: Vakarias on January 31, 2014, 10:11:55 am

Title: ASSERTION: SHIP_NOT_FLYABLE
Post by: Vakarias on January 31, 2014, 10:11:55 am
I've been experiencing some engine issues. Log is available as a gist on GitHub:
https://gist.github.com/anonymous/7468922ab043904eb91c

I hope that this is sufficient. This issue gets even worse (ASSERTION: "sig > 0" at object.cpp:1979) if I try using the latest nightly.

I was directed to make this topic from #freespace, battuta is perplexed by this.
Title: Re: ASSERTION: SHIP_NOT_FLYABLE
Post by: General Battuta on January 31, 2014, 10:15:40 am
The issue occurs in bp2-20 'One Future' a short ways into the mission. The bug is 100% reproable for him and always occurs at the same point. He's running OS X, 3.7.0 release.

I haven't seen this particular error:

Quote
ASSERTION: "!(Ship_info[shipp->ship_info_index].flags & SIF_NOT_FLYABLE)" at missionmessage.cpp:1866

before.
Title: Re: ASSERTION: SHIP_NOT_FLYABLE
Post by: Kopachris on January 31, 2014, 10:39:27 am
Well, obviously it seems that either a navbuoy, sentry, or cargo container is trying to send a message.  Make sure 1) the ship's .tbl entry doesn't flag it as one of those, and/or 2) the mission isn't trying to have a navbuoy, sentry, or cargo container send a message.  Could be happening if the ship that was originally supposed to send the message was accidentally destroyed.  Do we know what the ship in question is?
Title: Re: ASSERTION: SHIP_NOT_FLYABLE
Post by: General Battuta on January 31, 2014, 10:42:31 am
Pretty sure that this 'message 'cruiser1: picking up macduff' with invalid head.  Fix by assigning persona to the message.' is unrelated to the error, it just happens to be adjacent in the log. That's a safe error that pops up all the time - it occurs 3 other times in this log alone and I've seen it hundreds in other places.

Or...are you spotting something else I'm not? Where are you getting all this business about navbuoys, sentries, or cargo containers?

e: are you looking at the code surrounding this assert? I'm just not following your diagnostic  :confused:
Title: Re: ASSERTION: SHIP_NOT_FLYABLE
Post by: zookeeper on January 31, 2014, 10:45:01 am
As far as I can tell, SIF_NOT_FLYABLE is a ship flag which gets set if the ship class flag is "cargo", "navbuoy" or "sentry gun", and apparently any such ships shouldn't be able to send messages (I have no idea whatsoever why).

I'd check the senders of the macduff message and/or any messages supposed to immediately follow it. Since it's a BP mission I'm going to assume that there's a lot of all sorts of complicated stuff going on, so maybe there's something which alters the sender's flags or something.

Oh well, Kopachris beat me to it.
Title: Re: ASSERTION: SHIP_NOT_FLYABLE
Post by: General Battuta on January 31, 2014, 10:52:40 am
There are a couple sentries in the mission, but I can't see how any of them would be sending a message. None of the message-sending ships in the mission have any of those flags, AFAICT. No alter-ship-flag SEXPs.

Could this be related to the player ship being a cruiser? The ship itself shouldn't be sending any messages, though, so I'm not sure why that'd matter.
Title: Re: ASSERTION: SHIP_NOT_FLYABLE
Post by: Kopachris on January 31, 2014, 11:06:08 am
Pretty sure that this 'message 'cruiser1: picking up macduff' with invalid head.  Fix by assigning persona to the message.' is unrelated to the error, it just happens to be adjacent in the log. That's a safe error that pops up all the time - it occurs 3 other times in this log alone and I've seen it hundreds in other places.

Or...are you spotting something else I'm not? Where are you getting all this business about navbuoys, sentries, or cargo containers?

e: are you looking at the code surrounding this assert? I'm just not following your diagnostic  :confused:

All I did was go to the line where the assert is and "Go to definition" on "SIF_NOT_FLYABLE", which takes me to ship.h, line 939: "#define   SIF_NOT_FLYABLE         (SIF_CARGO | SIF_NAVBUOY | SIF_SENTRYGUN)      // AL 11-24-97: this useful to know for targeting reasons".  Line 1862 in missionmessage.cpp is just a comment saying "be sure that this ship can actually send a message!!! (i.e. not-not-flyable -- get it!)"

Therefore, something's trying to send a message that shouldn't be.  It'd be nice if we knew which ship the assert was actually failing on.
Title: Re: ASSERTION: SHIP_NOT_FLYABLE
Post by: General Battuta on January 31, 2014, 11:09:36 am
That'd be ideal, yeah. A HA - there is a 'command habitat' with a cargo flag that sends a message, and it happens right around then! I bet that's the issue.

The question is why this has never popped up before. This message gets sent on every playthrough of the mission, very early on, and I don't think anyone's reported this error before.

e: less dumb wording
Title: Re: ASSERTION: SHIP_NOT_FLYABLE
Post by: General Battuta on January 31, 2014, 11:37:40 am
According to The_E this assert is a :v: original. He's pulling it from the code on charges of extreme worthlessness.
Title: Re: ASSERTION: SHIP_NOT_FLYABLE
Post by: zookeeper on January 31, 2014, 12:48:16 pm
The question is why this has never popped up before. This message gets sent on every playthrough of the mission, very early on, and I don't think anyone's reported this error before.

Is it possible that no one had simply played it that far on a debug build before?
Title: Re: ASSERTION: SHIP_NOT_FLYABLE
Post by: General Battuta on January 31, 2014, 12:52:29 pm
Possible, was this debug only? If so, why is he playing on a debug build?
Title: Re: ASSERTION: SHIP_NOT_FLYABLE
Post by: zookeeper on January 31, 2014, 12:55:13 pm
Possible, was this debug only?

Yes, asserts (of this kind, anyway) only trigger on debug builds.