Ok. I'm not going to post the source to the progam I was talking about, because I discovered it's on the EV add-ons page (http://www.ambrosias...tor10d1.sit.hqx). If you want this program to work with EVO files, go in the code and change all the occurances of MpďL to OpďL. Alternately, I know you can do the same thing in ResEdit. If I remember correctly, look under the "code" resource and make the same changes. I could be wrong; it's been a while.
What I will do is pass along the pilot file specs I received from Ambrosia. The spec are for EV pilot files, but I don't think the structure has changed (If anyone from Ambrosia is reading this, can you pass along a newer version of the pilot file specs, if this one is out of date?).
=======
/*
Escape Velocity Player File Specification
by Matt Burch
Revision 1 - 4/5/97
Valid for pilot files created by EV 1.0.4 or later
See EV Bible for additional information
Note: EV pilot files are encrypted with Andrew Welch's SimpleCrypt
algorithm, available
at (url="http://"http://www.ambrosiasw.com/XXXXXXXXXXX")http://www.ambrosiasw.com/XXXXXXXXXXX(/url). The code key used to
decrypt EV 'MpďL'
resources is 0xABCD1234. (pretty imaginative eh?)
*/
struct PlayerFileDataStruct // 'MpďL' resource 128 in the pilot
file
{
short lastStellar; // last stellar object to be visited (0-1499)
short shipClass; // player's ship class (0-63)
short cargo(6); // current quantity of each of the six
types of basic cargo
short unused; // unused
short fuel; // current fuel quantity, 100 units
per jump
short month, day, year; // current date
short exploration(1000); // current state of each system's
exploration: <= 0 means unexplored, 1 means player has visited, 2 means
player has visited and landed within this system
short itemCount(128); // how many of each type of outfit
item owned
short legalStatus(1000); // legal status in each system (0 =
neutral)
short weapCount(64); // how many of each type of weapon
the player's ship has
short ammo(64); // how much ammo each
weapon has (see EV Bible for restrictions and variations on ammo usage)
long cash; // how many credits
player has
MissionObjectives missionObj(8); // data on
currently-running missions' objectives
MissionData missionData(8); // data on
currently-running missions' parameters
Boolean missionBit(256); // the state of
each of the mission bits
Boolean stelDominated(1500); // whether or not each of
the stellar objects is dominated
short escortClass(36); // stores the player's current
escorts: for each one: -1 means not an escort data item, 0-63 means a
captured escort (the number is the escort's ship class), 1000-1063 means a
hired escort. (don't make EV crash by abusing the ability to have more than
the normal number of escorts!)
short fighterClass(36); // stores the player's current
deployed fighters: for each one: -1 means not a fighter data item, 0-63
means a fighter of a certain class
long rating; // player's combat rating
};
struct AltPlayerFileDataStruct // 'MpďL' resource 129 in the pilot
file - the name of this resource is the name of the player's ship
{
short versionInfo; // used internally
short strictPlayFlag; // 0 = strict play off
short stelShipCount(1500); // number of defense ships
remaining at each planet
short personActive(512); // flag to set each 'pers' active
or not
short personGrudge(512); // flag to give a 'pers' a grudge
against the player
short unused(64); // ignored
short stelAnnoyance(1500); // keeps track of planets'
propensity to overthrow your rule
Boolean seenIntroScreen; // the player has seen the game
intro screen
short disasterTime(128); // time left on active disasters
(<0 = inactive)
short disasterStellar(128); // where each disaster is currently
active
short junkQty(128); // how much of each type of
'junk' the player has aboard
short priceFlux(2)(2); // global price fluctuations
};
struct MissionObjectives
{
Boolean active; // mission is active
Boolean travelObjComplete; // player has visited assigned
destination
Boolean shipObjComplete; // player has completed
special-ship assignment
Boolean missionFailed; // mission was failed
DateTimeRec missionDeadline; // mission completion deadline (see
Inside Mac)
};
struct MissionData
{
short destStellar; // destination stellar
object (0-1499)
short destSystem; // destination system (0-999)
short returnStellar; // return stellar object (0-1499)
short specialShipCount; // number of remaining special ships
short specialShipDude; // special ship 'dude' type
short specialShipGoal; // special ship goal
short specialShipBehavior; // special ship behavior
short specialShipSyst; // special ship system
short cargoType, cargoQty; // mission cargo type and quantity
short pickupMode, dropoffMode; // mission cargo pickup/dropoff mode
short scanGovt; // which govt tries to scan the player for
this mission (0-127, or -1 if none)
short compBitSet(2); // which bits to set on completion
short compGovt, compReward; // successful-mission
government and reward
short failBitSet; // which bit to set on failure
long pay; // how many credits to give player upon successful
completion
short specialShipsKilled, specialShipsBoarded; // how many special
ships have been killed or boarded
short specialShipsDisabled; // how many special ships
have been disabled
short specialShipsJumpedIn, specialShipsJumpedOut; // how many
special ships have jumped in or out
short initialShipCount; // how many special ships there
were at the start of the mission
Boolean failIfScanned; // fail the mission if the player is scanned
Boolean canAbort; // player can abort this mission
Boolean cargoLoaded; // mission cargo is aboard
short briefText, quickBriefText, loadCargoText, dropOffCargoText,
compText, failText; // 'dësc' ID's for various text messages
short timeLeft; // number of days remaining
short specialShipNameResID; // ID of 'STR#' resource
used to name the special ships
short specialShipNameIndex; // index of the string
within the above 'STR#' resource
short unused; // ignored
short specialShipDelay; //
short unused2; // ignored
unsigned short flags; // mission flags (see EV Bible)
short auxShipCount, auxShipDude, auxShipSyst, auxShipsJumpedIn,
auxShipDelay, auxShipsLeft; // similar to above values, but for
auxShips
char specialShipName(32); // the name of the special ship(s)
Str255 missionName; // the name of the mission
};
------------------