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

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

trs/savegame/tr1.1487861231.txt.gz · Last modified: 2017/02/23 14:47 by zdimension
Back to top
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0