Sync the "mission save" and "error reporting" versions of the SEXP variable string. Also use `stuff_sexp_text_string` to print the "bad node" token rather than `Sexp_nodes[bad_node].text`, so that a human-readable token is displayed instead of a magic number like 26.
Related to #4226, as the generated error message is formatted differently enough to be confusing.
While it may seem counterintuitive, we have to keep the standalone bogus ship from being added to the ship list so that we don't have to exclude it from all the places it could cause crashes or mysterious AI behaviors. Both were being observed, and this should fix them.
When parsing escort priority, FSO asserts that the escort flag is set,
but this assertion is only valid in missions output by FRED; it's fairly
trivial to use notepad to remove the flag without removing escort
priority, thereby triggering the assertion. Furthermore, there doesn't
actually seem to be a problem if a parse object has an escort priority
without the escort flag; the engine won't actually use the priority
until/unless the ship is manually added to the escort list, and then it
doesn't matter that one is set.
Followup to #4088. A few calls of `free_sexp` (especially in `free_sexp2`) did not supply the calling node, which left inconsistent SEXP tree structures and caused a crash in TranscendE1M6. This fixes the crash and fills in some of these places.
* Add a flag to allow the firing fail sound to play with locked primaries
* Adds an equivalent flag for Secondaries
* Make the flags accessible to FRED
* Fix whitespace mistakes
* Yet another whitespace fix
* Move primary fail sound flag check up to avoid wasting processing with unused shots
* Move secondary locked check up to avoid doing unnecessary checks
Adds the framework for loading and saving backgrounds with correct or incorrect angles. Backgrounds in FSO will all have fixed angles internally, and newly created backgrounds in FRED will have fixed angles, but existing mission files will have incorrect angles. The parser will determine whether the mission file contains fixed or unfixed angles and act accordingly. (Actually fixing the angles will be done in part 2.)
Same arrival warp when docked, same departure warp when docked, and associated changes to FRED, set-arrival-info, and set-departure-info.
Also fixes the nav-carry flag to properly save when a mission is saved. Previously that flag would always be cleared.
Implements feature from #4095.
* Merge all three comm_order arrays
Were Comm_orders, Sexp_comm_orders, and Player_orders. Now all Player_orders.
* Fix Warnings
* Fix erroneous order warning
* Update Int3 into a warning
* Fix missing location for warning
Previously, multiplayer missions with wings with waves would incorrectly set the `net_signature` of ships in the initial wave. The code is supposed to only set the `net_signature` if it was past the initial wave. This is because original ships in the wave have their `net signature` set at mission parse.
This PR fixes that and has been confirmed to work via multiplayer tests.
Some SEXP errors, although they indicate real problems, will not prevent the mission from running. Add these as exceptions. Implemented per requests from users of Blue Planet and Solaris.
1) Sync formatting of each place SEXP errors are reported
2) Add error location (event or goal) if possible when mission is loaded
Note that the two FRED error dialogs already indicate the event or goal.