View Issue Details

IDProjectCategoryView StatusLast Update
0002845FSSCPgameplaypublic2014-03-02 17:46
ReporterGoober5000 Assigned ToGoober5000  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.6.18 
Target Version3.6.19 
Summary0002845: Distance check doesn't work for "Unknown" ship in Destiny of Peace mission 5
DescriptionIt 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.
TagsNo tags attached.

Activities

FUBAR-BDHR

2013-04-16 04:55

developer   ~0014928

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.

Goober5000

2013-04-16 05:15

administrator   ~0014929

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.

karajorma

2013-04-17 01:18

administrator   ~0014930

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.

Goober5000

2013-04-18 04:55

administrator   ~0014931

Fix committed to trunk@9631.

Zacam

2013-04-19 05:54

administrator   ~0014932

Reopening as the commit included a series of other additional unrelated changes and was reverted.

karajorma

2013-04-20 01:30

administrator   ~0014934

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.

Goober5000

2013-04-22 04:59

administrator   ~0014946

Fix committed to trunk@9641.

Related Changesets

fs2open: trunk r9631

2013-04-18 01:45

Goober5000


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

Goober5000


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

Goober5000


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

Issue History

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