That fix was in this build. But as The E stated in IRC, -1 is a valid range for the index, so a fixed fix is being built right now.
With Icculus being down, I'll post the data The E provided here:
Index: code/pilotfile/csg.cpp
===================================================================
--- code/pilotfile/csg.cpp (revision 6876)
+++ code/pilotfile/csg.cpp (working copy)
@@ -130,14 +130,12 @@
idx = cfread_int(cfp);
// check the idx is within bounds
- Assertion ((idx < (int)ship_list.size() && (idx >= 0)), "Campaign file contains an incorrect value for the last flown ship class. No data in ship_list for ship number %d.", idx);
- p->last_ship_flown_si_index = ship_list[idx].index;
+ Assertion ((idx < (int)ship_list.size()), "Campaign file contains an incorrect value for the last flown ship class. No data in ship_list for ship number %d.", idx);
+ if (idx != -1) {
+ p->last_ship_flown_si_index = ship_list[idx].index;
+ } else {
+ p->last_ship_flown_si_index = -1;
+ }
- if (p->last_ship_flown_si_index < 0) {
- // really shouldn't happen if things are ok, so just fail if we get here
- m_data_invalid = true;
- }
-
// progression state
Campaign.prev_mission = cfread_int(cfp);
Campaign.next_mission = cfread_int(cfp);
**Edit: First post updated. Build Revision 6877 now uploaded. Exec names are not name _Ant-8_ (like the first package was).
Includes the above posted code, but otherwise still based on the same Antipodes/Trunk revision.