This version is outdated by a newer approved version.
This version (2017/02/23 14:47) is a draft.
Approvals: 0/1The Previously approved version (2017/02/01 18:48) is available.

Approvals: 0/1The Previously approved version (2017/02/01 18:48) is available.

This is an old revision of the document!
TR1
struct tr1_savegame { uint8_t SaveName[75]; // ASCII C string; null-terminated (there is always random data after \0, it is ignored); for accents see String Array section of TOMBPC.DAT page uint16_t SaveNumber; uint8_t Unknown2[17]; // First level use block 0, second use block 1... so that at the end of the game, // it sums up everything and/or checks if you found all secrets, etc struct { uint16_t Header; // Always 0x3E8 uint16_t Ammo_Magnums; // 65,535 means unlimited uint16_t Ammo_Uzis; uint16_t Ammo_Shotgun; uint8_t SmallMedipacks; // 255 means unlimited uint8_t LargeMedipacks; uint8_t NumScionPieces; /* 0 None * 1 Climbing * 2 ? * 3 Single shot.? * 4 Combat? */ uint8_t HandStatus; /* 0 None * 1 Pistols * 2 Magnums * 3 Uzis * 4 Shotgun */ uint8_t Weapon; // current held weapon /* 00000001 Always set * 00000010 Pistols * 00000100 Magnums * 00001000 Uzis * 00010000 Shotgun * 00100000 Midas Hand */ uint8_t Weapons; uint8_t Unknown2; } LevelInitData[21]; // for the 21 levels uint32_t ElapsedTime; // in game ticks (1/30th of a second), so divide by 30 for time in seconds uint32_t Kills; uint16_t SecretsFound; uint16_t LevelNumber; // First level = 1 uint8_t NumPickups; uint8_t UnlimitedAmmo; // Enabled = 1 uint8_t HasItem141; // From decompiled game source. uint8_t HasItem142; // Strangely, those (unknown) items aren't present in any official TR1 level uint8_t Puzzle[4]; uint8_t Keys[4]; uint8_t Pickup; // the pickup item uint8_t LevelInitDataCRC; // not implemented, always 0 // 10240 bytes starting from now uint8_t ReadToEOF[]; };
Identifications
TODO