Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| trs:savegame:tr2 [2017/02/23 01:17] – zdimension | trs:savegame:tr2 [2024/12/05 12:18] (current) – [TR2] stohrendorf | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| <code cpp> | <code cpp> | ||
| - | struct | + | struct |
| { | { | ||
| - | uint8_t | + | uint8_t |
| - | int32_t | + | int32_t |
| - | 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. |
| + | // For simplicity, this includes the tile menu as a level. | ||
| struct | struct | ||
| { | { | ||
| - | uint16_t | + | uint16_t |
| - | uint16_t | + | uint16_t |
| - | uint16_t | + | uint16_t |
| - | uint16_t | + | uint16_t |
| - | uint16_t | + | uint16_t |
| - | uint16_t | + | uint16_t |
| - | uint16_t | + | uint16_t |
| - | uint8_t | + | uint8_t |
| - | uint8_t | + | uint8_t |
| - | uint8_t | + | uint8_t |
| - | uint8_t | + | uint8_t |
| - | uint8_t | + | uint8_t |
| /* 0 None | /* 0 None | ||
| * 1 Pistols | * 1 Pistols | ||
| Line 32: | Line 32: | ||
| * 7 Harpoon gun | * 7 Harpoon gun | ||
| */ | */ | ||
| - | uint8_t | + | uint8_t |
| - | /* 00000001 | + | /* 00000001 |
| * 00000010 Pistols | * 00000010 Pistols | ||
| * 00000100 Automatic pistols | * 00000100 Automatic pistols | ||
| Line 42: | Line 42: | ||
| * 10000000 Harpoon gun | * 10000000 Harpoon gun | ||
| */ | */ | ||
| - | | + | |
| - | uint8_t | + | uint8_t |
| - | } Blocks[23]; | + | uint32_t levelTime; // in game ticks |
| - | uint32_t | + | uint32_t weaponHits; |
| - | uint32_t | + | uint32_t weaponShots; |
| - | uint32_t | + | uint32_t travelledDistance; |
| - | uint32_t | + | uint16_t kills; |
| - | uint32_t | + | uint8_t secretBits; |
| + | uint8_t healthPacksUsed; | ||
| + | } levelInitData[24]; | ||
| + | uint32_t | ||
| + | uint32_t | ||
| + | uint32_t | ||
| + | uint32_t | ||
| + | uint32_t | ||
| /* 00000001 Bronze | /* 00000001 Bronze | ||
| * 00000010 Jade | * 00000010 Jade | ||
| * 00000100 Gold | * 00000100 Gold | ||
| */ | */ | ||
| - | uint8_t | + | uint8_t |
| - | uint8_t | + | uint8_t |
| - | | + | |
| - | uint8_t | + | uint8_t |
| - | uint8_t UnlimitedAmmo; // Enabled = 1 | + | uint8_t |
| - | uint8_t | + | uint8_t |
| - | uint8_t | + | uint8_t |
| - | uint8_t | + | |
| - | // This part needs to be studied | + | uint8_t flipStates[10]; |
| - | uint8_t | + | uint16_t trackFlags[64]; |
| - | uint16_t | + | uint8_t cameraFlags[]; |
| - | uint8_t | + | uint8_t itemData[]; // item-specific savegame data, needs to be studied |
| - | uint16_t | + | uint16_t laraObjectNumber; |
| - | uint8_t | + | uint16_t laraHandStatus; |
| + | uint16_t laraWeapon1; | ||
| + | uint16_t laraWeapon2; | ||
| + | uint16_t laraWeapon3; | ||
| + | uint16_t laraFallspeedOverride; | ||
| + | uint16_t laraWaterState; | ||
| + | uint8_t | ||
| + | uint16_t | ||
| + | uint16_t laraStumbleDir; | ||
| + | uint16_t laraAirTime; // in game ticks | ||
| + | uint8_t unknown8[4]; | ||
| + | uint16_t laraUnderwaterSpeed; | ||
| + | uint16_t stumbleTimeout; | ||
| + | uint16_t flareTimer; | ||
| + | uint16_t currentVehicleId; | ||
| + | uint16_t currentWeaponItemId; | ||
| + | uint16_t weaponObjectNumberLeftHand; | ||
| + | uint16_t weaponFrame; | ||
| + | uint16_t weaponFlags; | ||
| + | uint32_t distanceToWaterSurface; | ||
| + | Vector3_32 travelDistancePrevPos; | ||
| + | uint8_t | ||
| + | uint32_t laraMeshPtrs[15]; | ||
| + | uint32_t firingAtEnemy; | ||
| + | Vector2_16 aimAngles; | ||
| + | uint16_t | ||
| + | uint16_t moveAngle; | ||
| + | VectorYXZ_16 headRot; | ||
| + | VectorYXZ_16 torsoRot | ||
| + | |||
| + | struct WeaponAnimData { | ||
| + | uint32_t animFrame; // pointer to anim frame data | ||
| + | uint16_t frame; | ||
| + | uint16_t animId; | ||
| + | uint16_t canShoot; | ||
| + | VectorXY_16 aimAngles; | ||
| + | uint8_t unknown[2]; | ||
| + | uint16_t shooting; | ||
| + | }; | ||
| + | WeaponAnimData weaponAnimRight; | ||
| + | WeaponAnimData weaponAnimLeft; | ||
| + | uint32_t pistolsAmmo; | ||
| + | uint32_t magnumsAmmo; | ||
| + | uint32_t uziAmmo; | ||
| + | uint32_t shotgunAmmo; | ||
| + | uint32_t harpoonAmmo; | ||
| + | uint32_t grenadeLauncherAmmo; | ||
| + | uint32_t m16Ammo; | ||
| + | uint32_t unknown11; | ||
| + | uint32_t laraItemPtr; | ||
| + | uint32_t gameEffectsPtr; | ||
| + | uint16_t firstFreeEffect; | ||
| + | uint16_t firstFreeItem; | ||
| + | uint16_t firstActiveItem; | ||
| + | uint16_t lastEffect; | ||
| + | uint16_t bodyListHead; | ||
| + | |||
| + | if(weapon1 != -1) { | ||
| + | // data about this weapon | ||
| + | uint16_t weaponObjectId; | ||
| + | uint16_t weaponAnimNumber; | ||
| + | uint16_t weaponFrame; | ||
| + | uint16_t weaponAnimState; | ||
| + | uint16_t goalAnimState; | ||
| + | } | ||
| + | |||
| + | uint32_t currentFlipEffect; | ||
| + | uint32_t flipEffectDuration; | ||
| + | uint32_t unknown12; | ||
| + | uint32_t activeFlares; | ||
| + | |||
| + | struct FlareInfo { | ||
| + | int32_t x, y, z; | ||
| + | int16_t rotX, rotY, rotZ; | ||
| + | uint16_t room; | ||
| + | uint16_t speed; | ||
| + | uint16_t fallspeed; | ||
| + | uint32_t unknown; | ||
| + | }; | ||
| + | |||
| + | FlareInfo flareInfos[numFlares]; | ||
| + | |||
| + | // remainder is unused | ||
| + | uint8_t | ||
| }; | }; | ||
| </ | </ | ||
| Line 73: | Line 163: | ||
| ===== Identifications ===== | ===== Identifications ===== | ||
| - | The '' | + | The '' |
| ^ ID ^ Level ^ Puzzle ^^^^ Key ^^^^ | ^ ID ^ Level ^ Puzzle ^^^^ Key ^^^^ | ||
| Line 98: | Line 188: | ||
| | 20 | Wreck of the Maria Doria (// | | 20 | Wreck of the Maria Doria (// | ||
| | 21 | Tibetan Foothills (// | | 21 | Tibetan Foothills (// | ||
| + | ^ Golden Mask levels |||||||||| | ||
| + | | 1 | The Cold War | | | | | Guardroom Key | Shaft ' | ||
| + | | 2 | Fool's Gold | Circuit Board | | | | CardKey 1 | | | CardKey 2 | | ||
| + | | 3 | Furnace of the Gods | Mask Of Tornarsuk | ||
| + | | 4 | Kingdom | ||
| + | | 5 | Nightmare In Vegas | Elevator Junction | ||
