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: */