Differences

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

Link to this comparison view

Next revision
Previous revision
trs:savegame:tr5 [2017/03/21 20:24] – created zdimensiontrs:savegame:tr5 [2018/10/12 17:49] (current) zdimension
Line 3: Line 3:
 Heavily based on the TR4 savegame format Heavily based on the TR4 savegame format
 <code cpp> <code cpp>
-struct tr5_savegame+struct TR5Savegame
 { {
-    uint8_t LevelName[75]; // CP437 C string; null-terminated (data after \0 is ignored) +    uint8_t levelName[75]; // CP437 C string; null-terminated (data after \0 is ignored) 
-    int32_t SaveNumber+    int32_t saveNumber
-    uint16_t Days+    uint16_t days
-    uint16_t Hours+    uint16_t hours
-    uint16_t Minutes+    uint16_t minutes
-    uint16_t Seconds+    uint16_t seconds
-    int16_t LaraIndex+    struct { 
-    int16_t LaraArmAction+        int16_t item_number
-    int16_t CurrentItemInHand+        int16_t gun_status
-    int16_t ChangeToItemInHand+        int16_t gun_type
-    /* 0 None +        int16_t request_gun_type
-     * 1 Pistols +        int16_t last_gun_type; 
-     * 2 Desert Eagle +        int16_t calc_fallspeed; 
-     * 3 Uzis +        int16_t water_status; 
-     * 4 Shotgun +        int16_t climb_status; 
-     * 5 H&K +        int16_t pose_count; 
-     * 6 Grappling Gun +        int16_t hit_frame; 
-     */ +        int16_t hit_direction; 
-    int16_t ActiveWeapon+        int16_t air; 
-    uint8_t unknown2[6]+        int16_t dive_count
-    int16_t LaraAir+        int16_t death_count
-    uint8_t unknown3[20]+        int16_t current_active
-    int16_t WeaponOnBack+        int16_t current_xvel
-    uint8_t unknown3b[2]+        int16_t current_yvel
-    int16_t LaraPoison1+        int16_t current_zvel
-    int16_t LaraPoison2+        int16_t spaz_effect_count
-    uint8_t unknown3a[16]+        int16_t flare_age
-    uint8_t LaraSpecialStatus// 0x4 = Normal0xC = Burning LaraAnything other = save doesn't appear +        int16_t BurnCount
-    uint8_t unknown4[95]+        int16_t weapon_item; 
-    int16_t LaraFacing// Matches data for item below +        int16_t back_gun; 
-    uint8_t unknown4a[108]; +        int16_t flare_frame
-    uint8_t Pistols// 0 = missing9 = present +        int16_t poisoned
-    uint8_t Uzis// 0 = missing; 1 = present +        int16_t dpoisoned
-    uint8_t Shotgun// 0 = missing9 = present +        uint8_t Anxiety; 
-    uint8_t Crossbow// 0 = missing9 = present13 = combined with lasersight +        uint8_t wet[15]; 
-    uint8_t GrenadeGun// 0 = missing9 = present +        uint16_t flare_control_left : 1; 
-    uint8_t Revolver// 0 = missing; 1 = present5 = combined with lasersight +        uint16_t Unused1 : 1
-    uint8_t LaserSight; // 0 = missing or combined; = present separated +        uint16_t look : 1; 
-    uint8_t Binoculars+        uint16_t burn : 1; 
-    uint8_t Crowbar+        uint16_t keep_ducked : 1; 
-    uint8_t MechanicalScarab+        uint16_t IsMoving : 1; 
-    uint8_t SmallWaterSkin+        uint16_t CanMonkeySwing : 1
-    int8_t LargeWaterSkin+        uint16_t BurnBlue : 2; 
-    uint8_t Examine[3]; +        uint16_t Gassed : 1; 
-    uint8_t PuzzleItems[12]; +        uint16_t BurnSmoke : 1
-    uint8_t PuzzleItem1_4Combo+        uint16_t IsDucked : 1; 
-    uint8_t PuzzleItem5_8Combo+        uint16_t has_fired : 1
-    uint8_t KeyItem1_8+        uint16_t Busy : 1; 
-    uint8_t KeyItem9_12+        uint16_t LitTorch : 1; 
-    uint8_t KeyItem1_4Combo+        uint16_t IsClimbing : 1; 
-    uint8_t KeyItem5_8Combo+        uint16_t Fired : 1; 
-    uint8_t PickupItem1_4+        int32_t water_surface_dist
-    uint8_t unknown5+        struct PHD_VECTOR last_pos
-    uint8_t PickupItem1_4Combo+        struct FX_INFO* spaz_effect
-    uint8_t unknown6+        int mesh_effects
-    uint8_t QuestItem1_6+        int16_t* mesh_ptrs[15]; 
-    uint8_t unknown7+        struct ITEM_INFO* target; 
-    int16_t SmallMediPacks// 65535 means unlimited +        int16_t target_angles[2]; 
-    int16_t LargeMediPacks// 65535 means unlimited +        int16_t turn_rate
-    int16_t Flares// 65535 means unlimited +        int16_t move_angle
-    int16_t PistolAmmo+        int16_t head_y_rot
-    int16_t UziAmmo+        int16_t head_x_rot
-    int16_t RevolverAmmo+        int16_t head_z_rot
-    int16_t ShotgunAmmo[2]; // normalwide, divide by 6 for real value +        int16_t torso_y_rot
-    int16_t GrenadeAmmo[3]// normalsuperflash +        int16_t torso_x_rot
-    int16_t CrossbowAmmo[3]// normalpoisonexplosive +        int16_t torso_z_rot
-    int16_t MEchanicalScarabRemaining+        struct lara_arm left_arm
-    uint8_t unknown8[57]+        struct lara_arm right_arm
-    uint8_t LevelNumber+        uint16_t holster
-    uint8_t unknown9// clock?? +        struct creature_info* creature
-    uint32_t TimeTaken// in game ticks (1/30th of a second), so divide by 30 for time in seconds +        int32_t CornerX
-    uint32_t DistanceTravelled// Divide by 419.15 for value in meters +        int32_t CornerZ
-    int32_t AmmoUsed+        int8_t RopeSegment; 
-    int32_t Hits+        int8_t RopeDirection; 
-    uint8_t unknown10[2]+        int16_t RopeArcFront
-    uint8_t Secrets+        int16_t RopeArcBack
-    uint8_t HealthPacksUsed+        int16_t RopeLastX
-    uint8_t unknown11[16]+        int16_t RopeMaxXForward
-    uint16_t Kills+        int16_t RopeMaxXBackward; 
-    uint8_t unknown11a[11]; +        int32_t RopeDFrame; 
-    struct+        int32_t RopeFrame; 
 +        uint16_t RopeFrameRate; 
 +        uint16_t RopeY; 
 +        int32_t RopePtr; 
 +        void* GeneralPtr; 
 +        int RopeOffset; 
 +        uint32_t RopeDownVel; 
 +        int8_t RopeFlag; 
 +        int8_t MoveCount; 
 +        int RopeCount; 
 +        int8_t skelebob; 
 +        int8_t pistols_type_carried; 
 +        int8_t uzis_type_carried; 
 +        int8_t shotgun_type_carried; 
 +        int8_t crossbow_type_carried; 
 +        int8_t hk_type_carried; 
 +        int8_t sixshooter_type_carried; 
 +        int8_t lasersight; 
 +        int8_t silencer; 
 +        int8_t binoculars; 
 +        int8_t crowbar; 
 +        int8_t examine1; 
 +        int8_t examine2; 
 +        int8_t examine3; 
 +        int8_t wetcloth; 
 +        int8_t bottle; 
 +        int8_t puzzleitems[12]; 
 +        uint16_t puzzleitemscombo
 +        uint16_t keyitems; 
 +        uint16_t keyitemscombo; 
 +        uint16_t pickupitems; 
 +        uint16_t pickupitemscombo; 
 +        int16_t num_small_medipack; 
 +        int16_t num_large_medipack; 
 +        int16_t num_flares
 +        int16_t num_pistols_ammo; 
 +        int16_t num_uzi_ammo; 
 +        int16_t num_revolver_ammo
 +        int16_t num_shotgun_ammo1
 +        int16_t num_shotgun_ammo2
 +        int16_t num_hk_ammo1
 +        int16_t num_crossbow_ammo1
 +        int16_t num_crossbow_ammo2
 +        int8_t location
 +        int8_t highest_location
 +        int8_t locationPad
 +        uint8_t TightRopeOnCount
 +        uint8_t TightRopeOff
 +        uint8_t TightRopeFall
 +        uint8_t ChaffTimer
 +    } lara   
 +     
 +    struct 
     {     {
-        uint8_t unused+        uint32_t timer// in game ticks (1/30th of a second), so divide by 30 for time in seconds 
-        uint8_t blue+        uint32_t distance; // Divide by 419.007 for value in meters 
-        uint8_t green+        uint32_t ammoUsed;  
-        uint8_t red+        uint32_t ammoHits; 
-    } FogColour+        uint16_t kills
-    int8_t AutoAimingForEnemy+        uint8_t secrets
-    uint8_t unknown12[172];+        uint8_t healthUsed
 +    } levelStats, gameStats;  
 +    int16_t weaponObject; 
 +    int16_t weaponAnim; 
 +    int16_t weaponFrame; 
 +    int16_t weaponCurrent; 
 +    int16_t weaponGoal; 
 +    uint32_t cutSceneTriggered1; 
 +    uint32_t cutSceneTriggered2
 +    int8_t gameComplete
 +    uint8_t currentLevel; 
 +    uint8_t campaignSecrets[4]
 +    uint8_t tlCount;
 }; };
 </code> </code>
trs/savegame/tr5.1490127870.txt.gz · Last modified: 2017/03/21 20:24 (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