Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
trs:savegame:tr3 [2017/02/23 00:59] zdimensiontrs:savegame:tr3 [2017/03/25 19:13] (current) zdimension
Line 2: Line 2:
  
 <code cpp> <code cpp>
-struct tr3_savegame+struct TR3Savegame
 { {
-    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 +    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 
-    int32_t SaveNumber+    int32_t saveNumber
-    uint8_t Unknown2[135];+    uint8_t unknown2[135];
     // First level use block 0, second use block 1... so that at the end of the game,      // 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     // it sums up everything and/or checks if you found all secrets, etc
     struct     struct
     {     {
-        uint16_t Header; // Always 0x3E8 +        uint16_t header; // Always 0x3E8 
-        uint16_t Ammo_DesertEagle; // 65,535 means unlimited +        uint16_t ammoDesertEagle; // 65,535 means unlimited 
-        uint16_t Ammo_Uzis+        uint16_t ammoUzis
-        uint16_t Ammo_Shotgun+        uint16_t ammoShotgun
-        uint16_t Ammo_MP5+        uint16_t ammoMP5
-        uint16_t Ammo_Rocket+        uint16_t ammoRocket
-        uint16_t Ammo_Harpoon+        uint16_t ammoHarpoon
-        uint16_t Ammo_Grenade+        uint16_t ammoGrenade
-        uint8_t SmallMedipacks; // 255 means unlimited +        uint8_t smallMedipacks; // 255 means unlimited 
-        uint8_t LargeMedipacks+        uint8_t largeMedipacks
-        uint8_t Unknown+        uint8_t unknown
-        uint8_t Flares+        uint8_t flares
-        uint8_t Unknown2[3]; +        uint8_t unknown2[2]; 
-        /* 00000000 00000001 Always set+        /* 0 None 
 +         * 1 Pistols 
 +         * 2 Desert Eagle 
 +         * 3 Uzis 
 +         * 4 Shotgun 
 +         * 5 MP5 
 +         * 6 Rocket launcher 
 +         * 7 Grenade launcher 
 +         * 8 Harpoon gun 
 +         */ 
 +        uint8_t weapon; // current held weapon 
 +        /* 00000000 00000001 Level unlocked
          * 00000000 00000010 Pistols          * 00000000 00000010 Pistols
          * 00000000 00000100 Desert Eagle          * 00000000 00000100 Desert Eagle
Line 34: Line 45:
          * 00000001 00000000 Harpoon gun // The presence of the new rocket launcher requires a 2-bytes field          * 00000001 00000000 Harpoon gun // The presence of the new rocket launcher requires a 2-bytes field
          */          */
-        uint16_t Weapons+        uint16_t weapons
-        uint8_t Unknown3a[2]; +        uint8_t unknown3a[2]; 
-        uint8_t InfadaStone+        uint8_t infadaStone
-        uint8_t Element115+        uint8_t element115
-        uint8_t IsisEye+        uint8_t isisEye
-        uint8_t DaggerOfOra+        uint8_t daggerOfOra
-        uint8_t Unknown3[20]; +        uint8_t unknown3[20]; 
-    } Blocks[24];  +    } levelInitData[24];  
-    uint32_t ElapsedTime; // in game ticks (1/30th of a second), so divide by 30 for time in seconds +    uint32_t elapsedTime; // in game ticks (1/30th of a second), so divide by 30 for time in seconds 
-    uint32_t AmmoUsed+    uint32_t ammoUsed
-    uint32_t Hits+    uint32_t hits
-    uint32_t DistanceTraveled; // Divide by 448.18 for value in meters +    uint32_t distanceTraveled; // Divide by 448.18 for value in meters 
-    uint32_t Kills+    uint32_t kills
-    uint8_t Secrets; // TODO: study TR3's secrets system +    uint8_t secrets; // TODO: study TR3's secrets system 
-    uint8_t HealthPacksUsed; // Divide by 2 for value. Large medipack = 1; Small = 0.5 +    uint8_t healthPacksUsed; // Divide by 2 for value. Large medipack = 1; Small = 0.5 
-    uint8_t LevelNumber; // First level = 1 +    uint8_t levelNumber; // First level = 1 
-    uint8_t Unknown5a[2]; +    uint8_t unknown5a[2]; 
-    uint8_t UnlimitedAmmo; // Enabled = 1 +    uint8_t unlimitedAmmo; // Enabled = 1 
-    uint8_t Unknown5b[17]; +    uint8_t unknown5b[17]; 
-    uint8_t LevelNumber+    uint8_t levelNumber
-    uint8_t Unknown5c[4]; +    uint8_t unknown5c[4]; 
-    uint8_t Puzzle[4]; // Corresponds to TOMBPC.DAT Puzzle & Keys entries +    uint8_t puzzle[4]; // Corresponds to TOMBPC.DAT Puzzle & Keys entries 
-    uint8_t Keys[4];+    uint8_t keys[4];
     // This part needs to be studied     // This part needs to be studied
-    uint8_t Unknown6[744]; +    uint8_t unknown6[744]; 
-    uint16_t Health; // Divide by 10 for floating point value between 0 and 100; 32767 (0x7FFF) means unlimited +    uint16_t health; // Divide by 10 for floating point value between 0 and 100; 32767 (0x7FFF) means unlimited 
-    uint8_t Unknown7[1952]; +    uint8_t unknown7[1952]; 
-    uint16_t Air+    uint16_t air
-    uint8_t ReadToEOF[];+    uint8_t readToEOF[];
 }; };
 </code> </code>
Line 68: Line 79:
 ===== Identifications ===== ===== Identifications =====
  
-The ''LevelNumber'' field is used for determining what level the game should load when opening the savegame. Although in TR3 you can choose in what order you go to Nevada, South Pacific and London, the order of levels here seems to be constant:+The ''levelNumber'' field is used for determining what level the game should load when opening the savegame. Although in TR3 you can choose in what order you go to Nevada, South Pacific and London, the order of levels here seems to be constant:
  
 ^ ID ^ Level ^ Puzzle ^^^^ Key ^^^^ ^ ID ^ Level ^ Puzzle ^^^^ Key ^^^^
Line 92: Line 103:
 |  19 |  Meteorite Cavern  |  |  |  |  |  |  |  |  | |  19 |  Meteorite Cavern  |  |  |  |  |  |  |  |  |
 |  20 |  All Hallows  |  |  |  |  |  Vault Key  |  |  |  | |  20 |  All Hallows  |  |  |  |  |  Vault Key  |  |  |  |
 +^ The Lost Artifact levels ||||||||||
 +|  1 |  Highland Fling  |  Crowbar  |  Thistle Stone  |  |  |  |  |  |  |
 +|  2 |  Willard's Lair  |  Crowbar  |  |  |  |  Cairn Key  |  |  |  |
 +|  3 |  Shakespeare Cliff  |  Pump Access Disk  |  |  |  |  Drill Activator Key  |  |  |  |
 +|  4 |  Sleeping with the Fishes  |  Circuit Bulb  |  Mutant Sample  |  Mutant Sample  |  Circuit Bulb  |  |  |  |  |
 +|  5 |  It's a Madhouse!  |  The Hand Of Rathmore  |  |  |  |  Zoo Key  |  |  |  Aviary Key  |
 +|  6 |  Reunion  |  The Hand Of Rathmore  |  |  |  |  |  |  |  |
trs/savegame/tr3.1487811583.txt.gz · Last modified: 2017/02/23 00:59 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