diff --git a/sc2/src/uqm/load.c b/sc2/src/uqm/load.c index d7788c8e0..14234ee3c 100644 --- a/sc2/src/uqm/load.c +++ b/sc2/src/uqm/load.c @@ -152,7 +152,6 @@ LoadShipQueue (void *fh, QUEUE *pQueue) HSHIPFRAG hStarShip; SHIP_FRAGMENT *FragPtr; COUNT Index; - BYTE tmpb; read_16 (fh, &Index); @@ -184,7 +183,6 @@ LoadRaceQueue (void *fh, QUEUE *pQueue) HFLEETINFO hStarShip; FLEET_INFO *FleetPtr; COUNT Index; - BYTE tmpb; read_16 (fh, &Index); @@ -195,10 +193,8 @@ LoadRaceQueue (void *fh, QUEUE *pQueue) read_16 (fh, &FleetPtr->allied_state); read_8 (fh, &FleetPtr->days_left); read_8 (fh, &FleetPtr->growth_fract); - read_8 (fh, &tmpb); - FleetPtr->crew_level = tmpb; - read_8 (fh, &tmpb); - FleetPtr->max_crew = tmpb; + read_16 (fh, &FleetPtr->crew_level); + read_16 (fh, &FleetPtr->max_crew); read_8 (fh, &FleetPtr->growth); read_8 (fh, &FleetPtr->max_energy); read_16s(fh, &FleetPtr->loc.x); @@ -228,20 +224,17 @@ LoadGroupQueue (void *fh, QUEUE *pQueue) { HIPGROUP hGroup; IP_GROUP *GroupPtr; - BYTE tmpb; hGroup = BuildGroup (pQueue, 0); GroupPtr = LockIpGroup (pQueue, hGroup); read_16 (fh, &GroupPtr->group_counter); read_8 (fh, &GroupPtr->race_id); - read_8 (fh, &tmpb); /* was var2 */ - GroupPtr->sys_loc = LONIBBLE (tmpb); - GroupPtr->task = HINIBBLE (tmpb); + read_8 (fh, &GroupPtr->sys_loc); + read_8 (fh, &GroupPtr->task); read_8 (fh, &GroupPtr->in_system); /* was crew_level */ - read_8 (fh, &tmpb); /* was energy_level */ - GroupPtr->dest_loc = LONIBBLE (tmpb); - GroupPtr->orbit_pos = HINIBBLE (tmpb); + read_8 (fh, &GroupPtr->dest_loc); + read_8 (fh, &GroupPtr->orbit_pos); read_8 (fh, &GroupPtr->group_id); /* was max_energy */ read_16s(fh, &GroupPtr->loc.x); read_16s(fh, &GroupPtr->loc.y); @@ -254,7 +247,6 @@ static void LoadEncounter (ENCOUNTER *EncounterPtr, void *fh) { COUNT i; - BYTE tmpb; EncounterPtr->pred = 0; EncounterPtr->succ = 0; @@ -378,11 +370,11 @@ LoadSummary (SUMMARY_DESC *SummPtr, void *fp) DWORD nameSize = 0; if (!read_32s (fp, &magic)) return FALSE; - if (magic == SAVE_MAGIC) + if (magic == SAVEFILE_TAG) { - if (read_32 (fp, &magic) != 1 || magic != SUMMARY_MAGIC) + if (read_32 (fp, &magic) != 1 || magic != SUMMARY_TAG) return FALSE; - if (read_32 (fp, &magic) != 1 || magic < 161) + if (read_32 (fp, &magic) != 1 || magic < 160) return FALSE; nameSize = magic - 160; } @@ -475,7 +467,7 @@ LoadGame (COUNT which_game, SUMMARY_DESC *SummPtr) GlobData.SIS_state = SummPtr->SS; chunk = 0; - while (chunk != OMNIBUS_MAGIC) + while (chunk != OMNIBUS_TAG) { if (read_32(in_fp, &chunk) != 1) { @@ -487,7 +479,7 @@ LoadGame (COUNT which_game, SUMMARY_DESC *SummPtr) res_CloseResFile (in_fp); return FALSE; } - if (chunk == OMNIBUS_MAGIC) + if (chunk == OMNIBUS_TAG) break; log_add (log_Debug, "Skipping chunk of tag %08X (size %u)", chunk, chunkSize); diff --git a/sc2/src/uqm/save.c b/sc2/src/uqm/save.c index 8b2791a17..27505e4cb 100644 --- a/sc2/src/uqm/save.c +++ b/sc2/src/uqm/save.c @@ -212,8 +212,8 @@ SaveRaceQueue (SAVEBUF *fh, QUEUE *pQueue) cwrite_16 (fh, FleetPtr->allied_state); cwrite_8 (fh, FleetPtr->days_left); cwrite_8 (fh, FleetPtr->growth_fract); - cwrite_8 (fh, FleetPtr->crew_level); - cwrite_8 (fh, FleetPtr->max_crew); + cwrite_16 (fh, FleetPtr->crew_level); + cwrite_16 (fh, FleetPtr->max_crew); cwrite_8 (fh, FleetPtr->growth); cwrite_8 (fh, FleetPtr->max_energy); cwrite_16 (fh, FleetPtr->loc.x); @@ -250,13 +250,11 @@ SaveGroupQueue (SAVEBUF *fh, QUEUE *pQueue) cwrite_16 (fh, GroupPtr->group_counter); cwrite_8 (fh, GroupPtr->race_id); - assert (GroupPtr->sys_loc < 0x10 && GroupPtr->task < 0x10); - cwrite_8 (fh, MAKE_BYTE (GroupPtr->sys_loc, GroupPtr->task)); - /* was var2 */ + cwrite_8 (fh, GroupPtr->sys_loc); + cwrite_8 (fh, GroupPtr->task); cwrite_8 (fh, GroupPtr->in_system); /* was crew_level */ - assert (GroupPtr->dest_loc < 0x10 && GroupPtr->orbit_pos < 0x10); - cwrite_8 (fh, MAKE_BYTE (GroupPtr->dest_loc, GroupPtr->orbit_pos)); - /* was energy_level */ + cwrite_8 (fh, GroupPtr->dest_loc); + cwrite_8 (fh, GroupPtr->orbit_pos); cwrite_8 (fh, GroupPtr->group_id); /* was max_energy */ cwrite_16 (fh, GroupPtr->loc.x); cwrite_16 (fh, GroupPtr->loc.y); @@ -385,8 +383,8 @@ static BOOLEAN SaveSummary (const SUMMARY_DESC *SummPtr, void *fp) { if ( - write_32 (fp, SAVE_MAGIC) != 1 || - write_32 (fp, SUMMARY_MAGIC) != 1 || + write_32 (fp, SAVEFILE_TAG) != 1 || + write_32 (fp, SUMMARY_TAG) != 1 || write_32 (fp, 160 + strlen(SummPtr->SaveName)) != 1 ) return FALSE; @@ -773,7 +771,7 @@ SaveGame (COUNT which_game, SUMMARY_DESC *SummPtr, const char *name) success = SaveSummary (SummPtr, out_fp); // Then write the rest of the data. - if (success && write_32 (out_fp, OMNIBUS_MAGIC) != 1) + if (success && write_32 (out_fp, OMNIBUS_TAG) != 1) success = FALSE; if (success && write_32 (out_fp, flen) != 1) success = FALSE; diff --git a/sc2/src/uqm/save.h b/sc2/src/uqm/save.h index 62602eb90..d96669c63 100644 --- a/sc2/src/uqm/save.h +++ b/sc2/src/uqm/save.h @@ -31,11 +31,13 @@ extern "C" { // is only used for displaying savegame summaries. There is also // room for only 16 devices on screen. #define MAX_EXCLUSIVE_DEVICES 16 -#define SAVE_MAGIC 0x01534d55 // "UMS\x01": UQM Save version 1 -#define SUMMARY_MAGIC 0x6d6d7553 // "Summ": Summary. Must be first! -#define OMNIBUS_MAGIC 0x696e6d4f // "Omni": All data, uncompressed #define SAVE_NAME_SIZE 64 +// The savefile tag numbers. +#define SAVEFILE_TAG 0x01534d55 // "UMS\x01": UQM Save version 1 +#define OMNIBUS_TAG 0x696e6d4f // "Omni": All data, uncompressed +#define SUMMARY_TAG 0x6d6d7553 // "Summ": Summary. Must be first! + typedef struct { SIS_STATE SS;