Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
trs:savegame:tr2 [2017/01/31 11:24]
zdimension
trs:savegame:tr2 [2017/03/25 18:45]
zdimension [Identifications]
Line 2: Line 2:
  
 <code cpp> <code cpp>
-struct tr2_savegame+struct TR2Savegame
 { {
-    uint8_t SaveName[33]; // ASCII C string; null-terminated (rdata after \0 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 
-    uint8_t Unknown1[42]; +    int32_t saveNumber
-    int32_t SaveNumber+    uint8_t unknown2[44];
-    uint8_t Unknown2[44];+
     // 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 (100) 
-        uint16_t Ammo_AutoPistols; // 65,535 means unlimited +        uint16_t ammoAutoPistols; // 65,535 means unlimited 
-        uint16_t Ammo_Uzis+        uint16_t ammoUzis
-        uint16_t Ammo_Shotgun+        uint16_t ammoShotgun
-        uint16_t Ammo_M16+        uint16_t ammoM16
-        uint16_t Ammo_Grenade+        uint16_t ammoGrenade
-        uint16_t Ammo_Harpoon+        uint16_t ammoHarpoon
-        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[2]; +        uint8_t unknown2[1]; 
-        /* 00000001 Always set+        /* 0 None 
 +         * 1 Pistols 
 +         * 2 Automatic pistols 
 +         * 3 Uzis 
 +         * 4 Shotgun 
 +         * 5 M16 
 +         * 6 Grenade launcher 
 +         * 7 Harpoon gun 
 +         */ 
 +        uint8_t weapon; // current held weapon 
 +        /* 00000001 Level unlocked
          * 00000010 Pistols          * 00000010 Pistols
          * 00000100 Automatic pistols          * 00000100 Automatic pistols
Line 33: Line 42:
          * 10000000 Harpoon gun          * 10000000 Harpoon gun
          */          */
-        uint8_t Weapons+        uint8_t weapons
-        uint8_t Unknown3[23]; +        uint8_t unknown3[23]; 
-    } Blocks[23];  +    } levelInitData[23];  
-    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 445.023 for value in meters +    uint32_t distanceTraveled; // Divide by 445.023 for value in meters 
-    uint32_t Kills;+    uint32_t kills;
     /* 00000001 Bronze     /* 00000001 Bronze
      * 00000010 Jade      * 00000010 Jade
      * 00000100 Gold      * 00000100 Gold
      */      */
-    uint8_t Secrets+    uint8_t secrets
-    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+    uint8_t unknown5a
-    uint8_t UnlimitedAmmo; // Enabled = 1 +    uint8_t unlimitedAmmo; // Enabled = 1 
-    uint8_t Unknown5b[2]; +    uint8_t unknown5b[2]; 
-    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 64: Line 73:
 ===== Identifications ===== ===== Identifications =====
  
-The ''LevelNumber'' field is used for determining what level the game should load when opening the savegame.+The ''levelNumber'' field is used for determining what level the game should load when opening the savegame.
  
 ^ ID ^ Level ^ Puzzle ^^^^ Key ^^^^ ^ ID ^ Level ^ Puzzle ^^^^ Key ^^^^
Line 89: Line 98:
 |  20 |  Wreck of the Maria Doria (//demo// |  Circuit Breaker  |    |    |    |  Rest Room Key  |  Rusty Key  |  Cabin Key  |    | |  20 |  Wreck of the Maria Doria (//demo// |  Circuit Breaker  |    |    |    |  Rest Room Key  |  Rusty Key  |  Cabin Key  |    |
 |  21 |  Tibetan Foothills (//demo// |    |    |    |  The Seraph  |  Drawbridge Key  |  Hut Key  |    |    | |  21 |  Tibetan Foothills (//demo// |    |    |    |  The Seraph  |  Drawbridge Key  |  Hut Key  |    |    |
 +^ Golden Mask levels |||||||||| 
 +|  1  |  The Cold War  |    |    |    |    |  Guardroom Key  |  Shaft 'B' Key  |    |    | 
 +|  2  |  Fool's Gold  |  Circuit Board  |    |    |    |  CardKey 1  |    |    |  CardKey 2  | 
 +|  3  |  Furnace of the Gods  |  Mask Of Tornarsuk  |  Gold Nugget  |    |    |    |    |    |    | 
 +|  4  |  Kingdom  |  Mask Of Tornarsuk  |    |    |    |    |    |    |    | 
 +|  5  |  Nightmare In Vegas  |  Elevator Junction  |  Door Circuit  |    |    |  Hotel Key  |    |    |    |
  
  
trs/savegame/tr2.txt · Last modified: 2017/03/25 18:45 (external edit)
Back to top
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0