View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002845 | FSSCP | gameplay | public | 2013-04-16 04:25 | 2014-03-02 17:46 |
Reporter | Goober5000 | Assigned To | Goober5000 | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 3.6.18 | ||||
Target Version | 3.6.19 | ||||
Summary | 0002845: Distance check doesn't work for "Unknown" ship in Destiny of Peace mission 5 | ||||
Description | It turns out that this isn't actually a problem with the distance check. The OSWPT code is checking the IFF names before checking ship names, and it just so happens that "Unknown" is also an IFF. It never gets to the ship code. | ||||
Tags | No tags attached. | ||||
|
FRED should be throwing a warning about giving a ship an IFF name (or wing or any other group). Is this possibly a case of the FREDder ignoring the warning? The check is in shipeditordlg.cpp around line 1076. |
|
The culprit is revision 9277... specifically, the addition of iff_lookup to the team check. This seems redundant, since sexp_determine_team already checks for e.g. "<any unknown>". FUBAR reports that FRED checks for any ship that shares a name with an IFF, but this is useless for campaigns that have already been released, such as Destiny of Peace, as well as the main FS2 campaign itself. Looking through all uses of sexp_get_object_ship_wing_point_team(), I don't see any reason to keep iff_lookup when we already have sexp_determine_team. So I need to ask karajorma what exactly he had in mind here. |
|
Well the idea was to allow you to use the team name rather than <any team name>. If it's causing problems, it can be removed, SEXPs which allow you to pick those names will need to be altered though. And get_listing_opf_ship_wing_team() would need to be altered to use <any team name> rather than simply using the IFF name. |
|
Fix committed to trunk@9631. |
|
Reopening as the commit included a series of other additional unrelated changes and was reverted. |
|
FUBAR pointed out to me that if we simply move the iff_lookup(object_name) test to the bottom of the function then the problem goes away without any compatibility issues. I'd suggest simply moving the entire team test below that for ships. |
|
Fix committed to trunk@9641. |
fs2open: trunk r9631 2013-04-18 01:45 Ported: N/A Details Diff |
cleanup due to Mantis 0002845... straighten out and standardize the differences between the various OPF_SHIP_WING_* argument types make sure all ships using an OPF_SHIP_WING_* type actually specify and handle the type they need to (removing the ones that don't make sense, e.g. you can't set the orientation of a waypoint) fix num-ships-in-battle and is-in-box which were both broken and make sure the sexp lookup for IFFs uses sexp_determine_team rather than iff_lookup (which is the actual fix for Mantis 0002845) |
Affected Issues 0002845 |
|
mod - /trunk/fs2_open/code/fred2/sexp_tree.cpp | Diff File | ||
mod - /trunk/fs2_open/code/fred2/sexp_tree.h | Diff File | ||
mod - /trunk/fs2_open/code/parse/sexp.cpp | Diff File | ||
mod - /trunk/fs2_open/code/parse/sexp.h | Diff File | ||
fs2open: trunk r9641 2013-04-22 01:50 Ported: N/A Details Diff |
the fix for Mantis 0002845 in isolation |
Affected Issues 0002845 |
|
mod - /trunk/fs2_open/code/parse/sexp.cpp | Diff File | ||
fs2open: trunk r9643 2013-04-22 03:33 Ported: N/A Details Diff |
code cleanup related to Mantis 0002845... straighten out and standardize the differences between the various OPF_SHIP_WING_* argument types make sure all ships using an OPF_SHIP_WING_* type actually specify and handle the type they need to (removing the ones that don't make sense, e.g. you can't set the orientation of a waypoint) enforce type safety by clarifying the distinction between "any ship on a team" and "every ship on a team", and splitting the OSWPT_TYPE_TEAM type to accommodate this (which maintains compatibility with the original OPF_SHIP_WING_TEAM type) |
Affected Issues 0002845 |
|
mod - /trunk/fs2_open/code/fred2/sexp_tree.cpp | Diff File | ||
mod - /trunk/fs2_open/code/fred2/sexp_tree.h | Diff File | ||
mod - /trunk/fs2_open/code/parse/sexp.cpp | Diff File | ||
mod - /trunk/fs2_open/code/parse/sexp.h | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-04-16 04:25 | Goober5000 | New Issue | |
2013-04-16 04:25 | Goober5000 | Status | new => assigned |
2013-04-16 04:25 | Goober5000 | Assigned To | => Goober5000 |
2013-04-16 04:55 | FUBAR-BDHR | Note Added: 0014928 | |
2013-04-16 05:15 | Goober5000 | Note Added: 0014929 | |
2013-04-17 01:18 | karajorma | Note Added: 0014930 | |
2013-04-18 04:55 | Goober5000 | Changeset attached | => fs2open trunk r9631 |
2013-04-18 04:55 | Goober5000 | Note Added: 0014931 | |
2013-04-18 04:55 | Goober5000 | Status | assigned => resolved |
2013-04-18 04:55 | Goober5000 | Resolution | open => fixed |
2013-04-19 05:54 | Zacam | Note Added: 0014932 | |
2013-04-19 05:54 | Zacam | Status | resolved => confirmed |
2013-04-20 01:30 | karajorma | Note Added: 0014934 | |
2013-04-22 04:59 | Goober5000 | Changeset attached | => fs2open trunk r9641 |
2013-04-22 04:59 | Goober5000 | Note Added: 0014946 | |
2013-04-22 04:59 | Goober5000 | Status | confirmed => resolved |
2013-04-22 06:42 | Goober5000 | Changeset attached | => fs2open trunk r9643 |