data.h

Go to the documentation of this file.
00001 #ifndef __DATA_H__
00002 #define __DATA_H__
00003 
00004 /*
00005     Copyright (C) 2005 Michael K. McCarty & Fritz Bronner
00006 
00007     This program is free software; you can redistribute it and/or modify
00008     it under the terms of the GNU General Public License as published by
00009     the Free Software Foundation; either version 2 of the License, or
00010     (at your option) any later version.
00011 
00012     This program is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015     GNU General Public License for more details.
00016 
00017     You should have received a copy of the GNU General Public License
00018     along with this program; if not, write to the Free Software
00019     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00020 */
00021 /**
00022 \page eventcards Event Card Structure
00023  * 
00024  * \section datafile Sample Work for Data File Saving and Loading
00025  * 
00026  * \subsection missioncode MissionCode
00027  *         x = Mission Type.
00028  * 
00029  * \todo A load of code uses these number directly.
00030  * We should fix this and attach propper attributes to 
00031  * the missions or keep lists of missions having these attributes.
00032  * 
00033  * \subsection turnonly TurnOnly
00034  * \li 1 = No new astronauts
00035  * \li 2 = No manned missions this year
00036  * \li 3 = Hardware 50% off this season
00037  * \li 4 = Hardware 50% off next season
00038  * \li 5 = 50% chance of explosion on pad
00039  * \li 6 = Only one launch this turn
00040  * 
00041  * \section futureplans FuturePlans
00042  * \li  1 = Multi-Manned Mission
00043  * \li  2 = Satellite
00044  * \li  3 = Manned Launch
00045  * \li  4 = Joint Mission
00046  * 
00047  * \section astronautstatus Astronaut.Status
00048  * \li   0 = Active
00049  * \li   1 = Dead
00050  * \li   2 = Retired
00051  * \li   3 = Injured
00052  * \li   4 = Training Season I
00053  * \li   5 = Training Season II
00054  * \li   6 = Training Season III
00055  * \li   7 = Advanced Training I
00056  * \li   8 = Advanced Training II
00057  * \li   9 = Advanced Training III
00058  * \li  10 = Advanced Training IV
00059  * 
00060  * \section astronauttraininglevel Astronaut.TrainingLevel:
00061  * \li   0 = None
00062  * \li   1 = Basic Training I
00063  * \li   2 = Basic Training II
00064  * \li   3 = Basic Training III
00065  * \li   4 = Advanced Training I
00066  * \li   5 = Advanced Training II
00067  * \li   6 = Advanced Training III
00068  * \li   7 = Advanced Training IV
00069  * 
00070  * \section astronautspecial Astros::Special
00071  *                 News specials
00072  * \li   1 = Retirement announcement
00073  * \li   2 = Actual retirement
00074  * \li   3 = ??? unused ???
00075  * \li   4 = ??? unused ???
00076  * \li   5 = Injury resolution
00077  * \li   6 = ??? Breaking Group/Replacing Astronaut ???
00078  * \li   7 = Finished Training
00079  * \li   8 = Finished Advanced
00080  * \li   9 = Injury during training
00081  * \li  10 = Retirement after training
00082 */
00083 
00084 // BARIS program definitions
00085 
00086 #define NUM_PLAYERS             2 /**< number of players */
00087 #define MAX_LAUNCHPADS          3 /**< number of launchpads available */
00088 #define MAX_MISSIONS            3 /**< number of concurrent missions available */
00089 
00090 /** \name Astronaut related
00091  *@{
00092  */
00093 #define ASTRONAUT_POOLS             5
00094 #define ASTRONAUT_CREW_MAX          8
00095 #define ASTRONAUT_FLT_CREW_MAX      4
00096 
00097 #define ASTRONAUT_MOOD_THRESHOLD    40
00098 /*@}*/
00099 
00100 #pragma pack (1)
00101 
00102 struct Prest_Upd {
00103  char Poss[10];
00104  char PossVal[10];
00105  char HInd;
00106  char Qty;
00107  char Mnth;
00108 };
00109 
00110 struct Defl {char Plr1,Plr2,Lev1,Lev2,Ast1,Ast2,Input,Anim,Music,Sound;};
00111 
00112 /** The Prestige for any achievement is stored in this.
00113 */
00114 struct PrestType {
00115     char Add[4];        /**< 4&5 used for qty completed */
00116     char Goal[2];       /**< Goal steps used for prest calculations */
00117     int16_t Points[2];  /**< Total points earned */
00118     char Indec;         /**< the index for the first into .History[] */
00119                         /**< \bug Indec is probably a typo. Should be Index. */
00120     char Place;         /**< Who got the prestige first. */
00121     char mPlace;        /**< If you've done it at all */
00122     char Month;         /**< Date of the First */
00123     char Year;          /**< Date of the First */
00124 };
00125 
00126 enum EquipmentIndex {
00127     EQUIP_PROBE = 0,    /**< unmanned satelite */
00128     EQUIP_ROCKET = 1,   /**< propulsion system */
00129     EQUIP_MANNED = 2,   /**< vehicle to transport humans */
00130     EQUIP_TECH = 3,     /**< piece of hardware to support other stuff */
00131 };
00132 
00133 typedef struct _Equipment {
00134     char Name[20];      /**< Name of Hardware */
00135     char ID[2];         /**< EquipID "C0 C1 C2 C3 : Acts as Index */
00136     int16_t Safety;     /**< current safety factor */
00137     int16_t MisSaf;     /**< Safety During Mission */
00138     int16_t MSF;        /**< used only to hold safety for docking kludge */
00139     char Base;          /**< initial safety factor */
00140     int16_t InitCost;   /**< Startup Cost of Unit */
00141     char UnitCost;      /**< Individual Cost */
00142     int16_t UnitWeight; /**< Weight of the Item */
00143     int16_t MaxPay;     /**< Maximum payload */
00144     char RDCost;        /**< Cost of R&D per roll */
00145     char Code;          /**< Equipment Code for qty scheduled */
00146     char Num;           /**< quantity in inventory */
00147     char Spok;          /**< qty being used on missions */
00148     char Seas;          /**< Seasons Program is Active */
00149     char Used;          /**< total number used in space */
00150     char IDX[2];        /**< EquipID "C0 C1 C2 C3 : Acts as Index */
00151     int16_t Steps;      /**< Program Steps Used */
00152     int16_t Failures;   /**< number of program failures */
00153     char MaxRD;         /**< maximum R & D */
00154     char MaxSafety;     /**< maximum safety factor */
00155     char SMods;         /**< safety factor mods for next launch */
00156     char SaveCard;      /**< counter next failure in this prog */
00157     char Delay;         /**< delay in purchase - in seasons */
00158     char Duration;      /**< Days it can last in space */
00159     char Damage;        /**< Damage percent for next launch */
00160     char DCost;         /**< Cost to repair damage */
00161     char MisSucc;       /**< Mission Successes */
00162     char MisFail;       /**< Mission Failures */
00163 } Equipment;
00164 
00165 struct MissionType {
00166     char Name[25];      /**< name of mission */
00167     char MissionCode;   /**< internal code of mission type */
00168     char Patch;         /**< Patch Used on this Mission */
00169     char part;          /**< primary/secondary portion */
00170     char Hard[6];       /**< Prime,Kick,LEM,PayLoad,Rocket */
00171     char Joint;         /**< Joint Mission flag */
00172     char Rushing;       /**< rushing time 0-3 */
00173     char Month;         /**< Month of Launch */
00174     char Duration;      /**< Duration time */
00175     char Men;           /**< Qty of men used in mission */
00176     char Prog;          /**< Hardware program used */
00177     char PCrew;         /**< Primary Crew */
00178     char BCrew;         /**< Backup Crew */
00179     char Crew;          /**< Actual Mission Crew */
00180 };
00181 
00182 /**
00183  * \brief Number of astronauts to recruit in each level
00184 */
00185 enum AstronautPoolClass
00186 {
00187     ASTRO_POOL_LVL1 = 7,
00188     ASTRO_POOL_LVL2 = 9,
00189     ASTRO_POOL_LVL3 = 14,
00190     ASTRO_POOL_LVL4 = 16,
00191     ASTRO_POOL_LVL5 = 14
00192 };
00193 
00194 /**
00195 \brief This is a structure representing astronauts/cosmonauts.
00196 */
00197 struct Astros
00198 {
00199     char Name[14];     /**< Astronaut Name */
00200     char Face;         /**< Code for Astronaut Face */
00201     char Sex;          /**< Male or Female */
00202     char Compat;       /**< Compatability Code */
00203     char CR;           /**< Range of Compatability Right */
00204     char CL;           /**< Range of Compatability Left */
00205     char Moved;        /**< if 0 Astro Moved around this turn */
00206     char Mis;          /**< Successful Mission this Turn */
00207     char Happy;        /**< \brief Happy within group */
00208                        /**< \li 1 = Successful Mission */
00209                        /**< \li 2 = Personal First */
00210     char Prime;        /**< \brief indicates the type of crew s/he's in */
00211                        /**< \li 2 = Primary Crew Member */
00212                        /**< \li 1 = Backup Crew Member */
00213                        /**< \li 0 = Not selected */
00214     char Active;       /**< Seasons Active */
00215     char AISpecial;    /**< AI Special Astro Note */
00216     char Service;      /**< Service of Origination */
00217     char Status;       /**< Current status of Astronaut */
00218     char Focus;        /**< Focus of Advanced Training 0-4 */
00219     char IDelay;       /**< Injury Delay - Ok if 0 */
00220     char RDelay;       /**< Retire Delay - Retire if 0 */
00221     char RetReas;      /**< Retire Reason flag */
00222     char Special;      /**< Special for announcements */
00223     char Assign;       /**< Location of Astro 0=limbo */
00224     char oldAssign;    /**< program of last turn */
00225     char Una;          /**< Unassigned flag */
00226     char Crew;         /**< Crew Assiciated in prog Assigm */
00227     char Task;         /**< What his job is in Flt Crew */
00228     int16_t Prestige;  /**< Prestige Earned */
00229     char Days;         /**< Days in Space */
00230     char Medals;       /**< Medals Earned */
00231     char Save;         /**< Astro Saving Roll Percent */
00232     char Missions;     /**< Number of Missions Flown */
00233     char MissionNum[10];       /**< Mission numbers participated */
00234     char Cap;          /**< Capsule Pilot Skills */
00235     char LM;           /**< LEM Pilot Skills */
00236     char EVA;          /**< EVA Skills */
00237     char Docking;      /**< Docking Skills */
00238     char Endurance;    /**< Constitution Skills */
00239     char TrainingLevel;/**< Level of Schooling */
00240     char Group;        /**< Group Entered with */
00241     char Mood;         /**< Mood of Astronaut */
00242     char Pool;         /**< Temp Storage for Astros */
00243     char Hero;         /**< Hero Status */
00244 };
00245 
00246 /**
00247  * \brief For Records of Missions
00248 */
00249 struct PastInfo
00250 {
00251     char MissionName[2][25];       /**< Name of Mission */
00252     char Patch[2];                 /**< Patch Type */
00253     char MissionCode;              /**< Type of Mission */
00254     char MissionYear;              /**< Year Mission Took Place */
00255     char Month;                    /**< Month of Launch */
00256     char Time;                     /**< Early / Late Flag */
00257     char Man[2][4];                /**< Astros # involved in Mis */
00258     char Hard[2][5];               /**< Set of hardware */
00259     uint16_t result;               /**< Success / Failure */
00260     uint16_t spResult;             /**< Actual deciding Result */
00261     char Event;                    /**< Single event code */
00262     char Saf;                      /**< Safety of the Equipment for delays */
00263     char Part;                     /**< Participant in event code */
00264     int16_t Prestige;              /**< Prestige Earned on this Mission */
00265     char Duration;                 /**< Length of Mission (units:ABCDEF) */
00266 };
00267 
00268 struct BuzzData {                   // master data list for Buzz Aldrin's
00269     char Header[4];                  // Sync information
00270     char Name[20];                   // Player Name
00271     char Level;                      // Level of Play
00272     int16_t Cash;                      // Current Cash on Hand
00273     int16_t Budget;                    // Next Season's Budget
00274     int16_t Prestige;                    // Prestige Earned
00275     int16_t PrestHist[5][2];             // Prestige History array
00276     int16_t PresRev[5];                  // Pres. Review History
00277     int16_t tempPrestige[2];                 // Holds this and prev prestige
00278     int16_t BudgetHistory[40];         // Record of Last 40 Budgets
00279     int16_t BudgetHistoryF[40];        // Record of Last 40 Budgets
00280     int16_t Spend[5][4];                 // Record of last 5 seasons spending
00281                                          //  of each equip type
00282     char RDMods;                     // R & D Mods for turn only
00283     char RDYear;                     // R & D Mods for full year
00284     char TurnOnly;                   // Events for this turn only
00285     char Plans;                      // Code for future plans
00286                                          // 1 = Manned Launch, -10 MB
00287     char FuturePlans;                // Special future mission
00288     char DurLevel;                      // Current Duration Level
00289     char LMpts;                      // Accumulation of any LM Test points
00290 #if 0
00291     Equipment Hardware[4][7];
00292 #else
00293     Equipment Probe[7];       // 0 = Orbital
00294                                          // 1 = Inter Planetary
00295                                          // 2 = Lunar Probe
00296     Equipment Rocket[7];      // 0 = One Stage
00297                                          // 1 = Two Stage
00298                                          // 2 = Three Stage
00299                                          // 3 = Mega Stage
00300                                          // 4 = Strap On Boosters
00301     Equipment Manned[7];      // 0 = One Man Capsule
00302                                          // 1 = Two Man Capsule
00303                                          // 2 = Three Man Capsule
00304                                          // 3 = Minishuttle
00305                                          // 4 = Four Man Cap/Mod
00306                                          // 5 = Two Man Module
00307                                          // 6 = One Man Module
00308     Equipment Misc[7];        // 0 = Kicker Level A
00309                                          // 1 = Kicker Level B
00310                                          // 2 = Kicker Level C
00311                                          // 3 = EVA Suits
00312                                          // 4 = Docking Modules
00313                                          // 5 = Photo Recon
00314 #endif
00315     char ZCost;                      // Cost for Zond upgrade 10-20
00316     char ZFlag;                      // Flag for Zond program
00317     char DMod;                       // Docking Module in Orbit
00318   /** \todo what is LaunchFacility == 1? */
00319     char LaunchFacility[MAX_LAUNCHPADS];    /**< Cost to repair (-1=no facility; 0 = all okay) */
00320     char AstroCount;                 // Current # in Program
00321     char AstroLevel;                 // Level of selection
00322     char AstroDelay;                 // Wait until next selection
00323     struct Astros Pool[65];          // Pool of SpaceMen
00324     struct WantList {
00325       char Vle;
00326       char Asp;
00327     } WList[5];
00328    struct Prest_Upd Udp[3];
00329     char WTop;
00330     char VList[5];
00331     char VTop;
00332     char Table[5][7];                // safety factor for intelligence
00333     char Gcnt[ASTRONAUT_POOLS+1][ASTRONAUT_CREW_MAX];                 // Count of num in groups
00334     char Crew[ASTRONAUT_POOLS+1][ASTRONAUT_CREW_MAX][ASTRONAUT_FLT_CREW_MAX+1];              // Flt Crews
00335                      // [5] - Program #
00336                      // [8] - Eight Crews Max
00337                      // [4] - Four Max per Crew
00338     char Female;                     // Females allowed in program
00339     struct MissionType Mission[MAX_MISSIONS];   // Current Mission Info
00340     char Block;                      // Blocked Mission Number
00341     struct MissionType Future[MAX_MISSIONS];    // Future Mission Info
00342     struct PastInfo History[100];    // Past Mission History
00343     int16_t PastMis;                   // Number of Past Missions
00344     char Other;                      // Catastrophic Fail on Turn
00345                      // 1 = Cat Failure
00346                      // 2 = Program Death
00347                      // 3 = Program First
00348     char Buy[4][7];                  // Record of R&D for Turn
00349   char eCount;
00350     struct Intelligence {
00351       char code;
00352       int16_t num;
00353       char prog;
00354       char cur;
00355       char index;
00356       char sf;
00357       char cdex;
00358      } PastIntel[30];
00359     char AIpath[23];                 // Track AI choices from evts
00360     char Track[10];                  // Misc Values
00361     char AILunar,                    // Flag to tell way to moon
00362          AIPrim,                     // Currect Primary Prog
00363          AISec,                      // Currect Secondary Prog
00364          AIEva,
00365          AIDur,
00366          AIDck,
00367          AIStat,                     // the status of program
00368          AITech,                     // Level of AI technology
00369          AILem;
00370     char X[20];                      // AI where the hell am I status
00371     char M[62];                      // How many missions of type done
00372     char BadCard[15];                // Flag for Bad Events
00373    char Port[40];                   // Levels for SPort display
00374 };
00375 
00376 struct Players {
00377     char BUZZ[4];                    /**< Save Version Marker */
00378     uint32_t Checksum;               /**< Checksum of Data */
00379     char plr[NUM_PLAYERS];           /**< Order of Turns */
00380     struct Defl Def;                 /**< Defaults */
00381     char Year;                       /**< Game Turn */
00382     char Season;                     /**< Season of Year */
00383     struct PrestType Prestige[28];   /**< Definitions of Prest Vals */
00384     struct BuzzData P[NUM_PLAYERS];  /**< Player Game Data */
00385     char EMark[4];                   /**< Event Marker */
00386     char Events[100];                /**< History of Event Cards */
00387     char Count;                      /**< Number of Events Picked */
00388     char PD[NUM_PLAYERS][28];
00389     char Mile[NUM_PLAYERS][10];      /**< MileStone Calcs */
00390 };
00391 
00392 
00393 
00394 /** MissionHard Descriptions
00395  * \verbatim
00396    0=Capsule
00397    1=Kicker
00398    2=LM
00399    3=Probe/DM
00400    4=Primary Booster
00401    5=EVA
00402    6=Photo Recon
00403    7=Secondary Booster
00404  * \endverbatim
00405 */
00406 enum MissionHardwareType
00407 {
00408     Mission_Capsule = 0,            // 0
00409     Mission_Kicker,                     // 1
00410     Mission_LM,                             // 2
00411     Mission_Probe_DM,                   // 3
00412     Mission_PrimaryBooster,     // 4
00413     Mission_EVA,                            // 5
00414     Mission_PhotoRecon,             // 6
00415     Mission_SecondaryBooster    // 7
00416 };
00417 
00418 struct MisAst {  // This struct will be -1's if empty 
00419   struct Astros *A;
00420   char loc;         
00421 };
00422 
00423 struct MisEval {
00424   char step;             // actual step id number
00425   char loc;              // Mission Step Name Index
00426   uint16_t StepInfo; // ID of step success  1=succ   !1=fail
00427   Equipment *E;   // Pointer into equipment`
00428   char Prest;            // Prestige Step #  (-1 for none)
00429   char PComp;            // PComp will be set to amt of prest to be awarded.
00430   char pad;              // pad location  (Index into First Part of MH[x][]
00431   char Class;            // VAB Order index into Class types MH[][x]
00432   char fgoto;            // goto on failure
00433   char sgoto;            // goto on success
00434   char dgoto;            // where to branch on deaths
00435   char trace;            // allow tracing of mission (for prest)
00436   char dice;             // Die roll to check safety against
00437   int16_t rnum;              // Random number holder for failure type
00438   char ast;              // Astro specialist num
00439   char asf;              // Astro specialist safety addition
00440   char FName[5];         // Name of Failure File (without .DAT)
00441   char Name[10];         // Name of Anim Code
00442 };
00443 
00444 struct XFails {
00445   int32_t per;               // Failure Key number
00446   int16_t code,val,xtra;     // Failure Codes
00447   int16_t fail;              // failure value ID
00448   char text[200];// Failure Text
00449 };
00450 
00451 struct AnimType {
00452   char ID[8];
00453   char OVL[4];
00454   char SD[2][4];         // Sound ID : Max 2
00455   int16_t w,h;
00456   uint8_t sPlay[2];// Frame to play the Sound
00457   uint8_t fNum;    // Number of frames
00458   uint8_t fLoop;   // Times to loop
00459   uint8_t cOff;    // Color offsets
00460   uint8_t cNum;    // Number of Colors
00461   // char cPal[cNum];    // Placemarker for RGB Colors
00462 };
00463 
00464 struct BlockHead {
00465   uint8_t cType;   // Type of Compression
00466   int32_t fSize;            // Size of data frame
00467   // char aFrame[fSize];
00468 };
00469 
00470 struct mStr {
00471     char Index;       /**< Mission Index Number */
00472     char Name[50];    /**< Name of Mission */
00473     char Abbr[24];    /**< Name of Mission Abbreviated */
00474     char Code[62];    /**< Mission Coding String */
00475     char Alt[36];     /**< Alternate Sequence */
00476     char AltD[36];    /**< Alternate Sequence for Deaths (Jt Missions Only) */
00477     char Days,        /**< Duration Level */
00478     Dur,              /**< Duration Mission */
00479     Doc,              /**< Docking Mission */
00480     EVA,              /**< EVA Mission */
00481     LM,               /**< LM Mission */
00482     Jt,               /**< Joint Mission */
00483     Lun,              /**< Lunar Mission */
00484     mEq,              /**< Minimum Equipment */
00485     mCrew;            /**< Useful for Morgans Code */
00486     uint8_t mVab[2];  /**< Hardware Requirements */
00487     char PCat[5],     /**< Prestige Category List */
00488     LMAd;             /**< LM Addition Points */
00489 };
00490 
00491 struct MXM {
00492    char Code[8];
00493    int16_t  Qty;
00494    int32_t Offset[6];
00495 };
00496 
00497 struct VInfo {char name[15],qty,ac,sf,dex,img;int16_t wt;};
00498 struct ManPool {char Name[14],Sex,Cap,LM,EVA,Docking,Endurance;};
00499 struct order {int16_t plr,loc,budget,date;};    
00500 
00501 struct mfab {
00502   char Text[2][75];
00503   char qty;
00504   int16_t idx[4];
00505 };
00506 
00507 
00508 
00509 // Space port overlays
00510 enum SpacePortOverlays
00511 {
00512   PORT_Monument = 0,        // 00 Washington's Monument
00513   PORT_Pentagon,            // 01 The Pentagon
00514   PORT_Capitol,             // 02 Capitol Building
00515   PORT_Cemetery,            // 03 Arlington Cemetery
00516   PORT_VAB,                 // 04 Vehicle Assembly
00517   PORT_Museum,              // 05 Museum of Space History
00518   PORT_Admin,               // 06 Administration
00519   PORT_AstroComplex,        // 07 Astronaut Complex
00520   PORT_MedicalCtr,          // 08 Medical Center
00521   PORT_BasicTraining,       // 09 Basic Training
00522   PORT_Helipad,             // 10 Helipad: Adv LM
00523   PORT_Pool,                // 11 Pool: Adv EVA
00524   PORT_Planetarium,         // 12 Planetarium: Adv Docking
00525   PORT_Centrifuge,          // 13 Centrifuge: Adv Endurance
00526   PORT_Airfield,            // 14 Airfield: Adv Capsule
00527   PORT_Satellite,           // 15 Satellite Programs
00528   PORT_LM,                  // 16 LM Program
00529   PORT_Jupiter,             // 17 Jupiter Program
00530   PORT_XMS,                 // 18 XMS Program
00531   PORT_Apollo,              // 19 Apollo Program
00532   PORT_Gemini,              // 20 Gemini Program
00533   PORT_Mercury,             // 21 Mercury Program
00534   PORT_Research,            // 22 Research & Development
00535   PORT_LaunchPad_A,         // 23 Launch Facility A
00536   PORT_LaunchPad_B,         // 24 Launch Facility B
00537   PORT_LaunchPad_C,         // 25 Launch Facility C
00538   PORT_MissionControl,      // 26 Mission Control
00539   PORT_ViewingStand,        // 27 Viewing Stand
00540   PORT_FlagPole,            // 28 Flag Pole: End Turn
00541   PORT_Gate,                // 29 Security Gate: Quit
00542   PORT_Moon,                // 30 Moon
00543   PORT_SovMonumentAlt,      // 31 Soviet Monument #2
00544   PORT_Zond,                // 32 Zond - unused
00545   PORT_Tracking,            // 33 Tracking Station
00546   PORT_SVHQ,                // 34 Strategic Visions H.Q.
00547 };
00548 
00549 // Typical 
00550 typedef struct _patch {
00551   int16_t w;
00552   int16_t h;
00553   uint16_t size;
00554   uint32_t offset;
00555 } PatchHdr;
00556 
00557 // Typical, or maybe not?
00558 typedef struct {
00559   int8_t w;
00560   int8_t h;
00561   uint16_t size;
00562   uint32_t offset;
00563 } PatchHdrSmall;
00564 
00565 
00566 #define MAX_REPLAY_ITEMS        200L
00567 #define MAX_REPLAY_ITEM_OFFSETS 35
00568 
00569 // Mission Replay Data Structure
00570 typedef struct ReplayItem {
00571    uint8_t Qty;         // Number of Animated Sequences
00572    uint16_t Off[35];     // Offsets to Each animated Part
00573 } REPLAY;
00574 
00575 enum Opponent_Status {Ahead,Equal,Behind};
00576 
00577 typedef struct oldNews {
00578   uint32_t offset;
00579   uint16_t size;
00580 } ONEWS;
00581 
00582 // Save Game related typedefs
00583 //#define RaceIntoSpace_Signature   'RiSP'
00584 #define RaceIntoSpace_Signature 0x52695350      
00585 #define RaceIntoSpace_Old_Sig 0x49443a00  //'ID:\0"
00586 #define SAVEFILE_UNK_MAGIC  0x1A
00587 
00588 typedef enum {
00589     SAVEGAME_Normal = 0,
00590     SAVEGAME_PlayByMail,
00591     SAVEGAME_Modem
00592 } SaveGameType;
00593 
00594 typedef struct {
00595     uint32_t ID;        // Going to use this to determine endianness of the save file
00596     char Name[23],PName[2][20],Country[2],Season,Year;
00597     uint16_t dataSize;      // Size of Players struct
00598     uint16_t compSize;      // Compressed size of data
00599 } SaveFileHdr;
00600 
00601 
00602 typedef struct {
00603     char Name[15],Title[23];
00604     uint16_t time,date;
00605 } SFInfo;
00606 
00607 
00608 #endif // __DATA_H__
00609 
00610 /* vim: set noet ts=4 sw=4 tw=77: */

Generated on Fri Sep 28 00:35:45 2007 for raceintospace by  doxygen 1.5.3