Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
Merge remote-tracking branch 'Fire-Head/master' into Standalone
# Conflicts:
#	src/render/Coronas.cpp
  • Loading branch information
Sergeanur committed Apr 17, 2020
2 parents 881d61f + a4922d5 commit b9c8ce0d37b2f094e2d8fe1a71db009718a0a006
Showing with 1,346 additions and 1,395 deletions.
  1. +1 −1 src/animation/RpAnimBlend.cpp
  2. +1 −1 src/animation/RpAnimBlend.h
  3. +12 −12 src/audio/AudioManager.cpp
  4. +1 −1 src/audio/DMAudio.cpp
  5. +1 −1 src/audio/DMAudio.h
  6. +8 −8 src/audio/PoliceRadio.cpp
  7. +0 −1 src/control/CarAI.cpp
  8. +19 −19 src/control/CarCtrl.cpp
  9. +18 −18 src/control/CarCtrl.h
  10. +1 −1 src/control/GameLogic.cpp
  11. +5 −5 src/control/PathFind.cpp
  12. +3 −3 src/control/PathFind.h
  13. +6 −6 src/control/Phones.cpp
  14. +6 −6 src/control/Phones.h
  15. +8 −8 src/control/Pickups.cpp
  16. +5 −5 src/control/Pickups.h
  17. +14 −14 src/control/Record.cpp
  18. +15 −15 src/control/Record.h
  19. +65 −69 src/control/Replay.cpp
  20. +62 −62 src/control/Replay.h
  21. +16 −16 src/control/Restart.cpp
  22. +16 −16 src/control/Restart.h
  23. +3 −3 src/control/RoadBlocks.cpp
  24. +3 −3 src/control/RoadBlocks.h
  25. +41 −41 src/control/Script.cpp
  26. +40 −40 src/control/Script.h
  27. +1 −1 src/core/Accident.cpp
  28. +1 −1 src/core/Accident.h
  29. +1 −1 src/core/Cam.cpp
  30. +3 −3 src/core/Camera.cpp
  31. +3 −3 src/core/Camera.h
  32. +10 −10 src/core/Clock.cpp
  33. +9 −9 src/core/Clock.h
  34. +1 −1 src/core/ControllerConfig.cpp
  35. +1 −1 src/core/ControllerConfig.h
  36. +0 −1 src/core/EventList.cpp
  37. +2 −2 src/core/FileMgr.cpp
  38. +2 −2 src/core/FileMgr.h
  39. +1 −1 src/core/Fire.cpp
  40. +1 −1 src/core/Fire.h
  41. +1 −1 src/core/Frontend.cpp
  42. +13 −9 src/core/Game.cpp
  43. +8 −8 src/core/Game.h
  44. +2 −2 src/core/IniFile.cpp
  45. +12 −12 src/core/Pad.cpp
  46. +11 −11 src/core/Pad.h
  47. +9 −9 src/core/Pools.cpp
  48. +9 −9 src/core/Pools.h
  49. +22 −22 src/core/Radar.cpp
  50. +2 −2 src/core/References.cpp
  51. +2 −2 src/core/References.h
  52. +53 −53 src/core/Stats.cpp
  53. +53 −53 src/core/Stats.h
  54. +42 −42 src/core/Streaming.cpp
  55. +28 −28 src/core/Streaming.h
  56. +1 −1 src/core/SurfaceTable.cpp
  57. +1 −2 src/core/SurfaceTable.h
  58. +13 −13 src/core/TempColModels.cpp
  59. +13 −13 src/core/TempColModels.h
  60. +3 −3 src/core/TimeStep.cpp
  61. +3 −3 src/core/TimeStep.h
  62. +22 −28 src/core/Timer.cpp
  63. +10 −10 src/core/Timer.h
  64. +4 −4 src/core/User.cpp
  65. +4 −4 src/core/User.h
  66. +2 −2 src/core/Wanted.cpp
  67. +2 −2 src/core/Wanted.h
  68. +15 −15 src/core/ZoneCull.cpp
  69. +14 −14 src/core/ZoneCull.h
  70. +12 −12 src/core/Zones.cpp
  71. +11 −11 src/core/Zones.h
  72. +1 −0 src/core/config.h
  73. +6 −11 src/core/main.cpp
  74. +6 −10 src/core/main.h
  75. +1 −4 src/modelinfo/ModelInfo.cpp
  76. +1 −1 src/modelinfo/ModelInfo.h
  77. +8 −8 src/modelinfo/VehicleModelInfo.cpp
  78. +5 −5 src/modelinfo/VehicleModelInfo.h
  79. +2 −2 src/objects/Object.cpp
  80. +2 −2 src/objects/Object.h
  81. +4 −4 src/objects/ParticleObject.cpp
  82. +4 −4 src/objects/ParticleObject.h
  83. +2 −2 src/render/Credits.cpp
  84. +2 −2 src/render/Credits.h
  85. +8 −8 src/render/Draw.cpp
  86. +8 −8 src/render/Draw.h
  87. +5 −5 src/render/Font.cpp
  88. +6 −5 src/render/Font.h
  89. +39 −39 src/render/Hud.cpp
  90. +3 −3 src/render/MBlur.cpp
  91. +3 −3 src/render/MBlur.h
  92. +5 −10 src/render/Particle.cpp
  93. +1 −6 src/render/Particle.h
  94. +3 −3 src/render/PointLights.cpp
  95. +2 −2 src/render/PointLights.h
  96. +6 −6 src/render/RenderBuffer.cpp
  97. +6 −6 src/render/RenderBuffer.h
  98. +17 −29 src/render/Shadows.cpp
  99. +15 −15 src/render/Shadows.h
  100. +7 −7 src/render/Sprite.cpp
  101. +4 −4 src/render/Sprite.h
  102. +95 −95 src/render/Timecycle.cpp
  103. +92 −92 src/render/Timecycle.h
  104. +2 −2 src/render/WaterLevel.cpp
  105. +1 −1 src/render/WaterLevel.h
  106. +24 −24 src/render/Weather.cpp
  107. +25 −25 src/render/Weather.h
  108. +12 −12 src/rw/Lights.cpp
  109. +1 −1 src/rw/NodeName.cpp
  110. +2 −0 src/rw/RwHelper.cpp
  111. +2 −2 src/rw/TexRead.cpp
  112. +2 −2 src/rw/TxdStore.cpp
  113. +18 −18 src/rw/VisibilityPlugins.cpp
  114. +15 −15 src/save/GenericGameStorage.cpp
  115. +1 −1 src/save/PCSave.cpp
  116. +1 −2 src/skel/skeleton.cpp
  117. +1 −1 src/skel/skeleton.h
  118. +10 −16 src/skel/win/win.cpp
  119. +3 −3 src/skel/win/win.h
  120. +3 −3 src/text/Messages.cpp
  121. +1 −1 src/text/Text.cpp
  122. +1 −1 src/vehicles/Automobile.cpp
  123. +5 −5 src/vehicles/Boat.cpp
  124. +2 −2 src/vehicles/Floater.cpp
  125. +1 −1 src/vehicles/HandlingMgr.cpp
  126. +6 −6 src/vehicles/Heli.cpp
  127. +35 −35 src/vehicles/Plane.cpp
  128. +0 −2 src/weapons/ShotInfo.cpp
  129. +0 −1 src/weapons/WeaponInfo.cpp
@@ -8,7 +8,7 @@
#include "AnimBlendAssociation.h"
#include "RpAnimBlend.h"

RwInt32 &ClumpOffset = *(RwInt32*)0x8F1B84;
RwInt32 ClumpOffset;

enum
{
@@ -11,7 +11,7 @@ struct AnimBlendFrameUpdateData
CAnimBlendNode *nodes[16];
};

extern RwInt32 &ClumpOffset;
extern RwInt32 ClumpOffset;
#define RPANIMBLENDCLUMPDATA(o) (RWPLUGINOFFSET(CAnimBlendClumpData*, o, ClumpOffset))

bool RpAnimBlendPluginAttach(void);
@@ -40,18 +40,18 @@
#include "sampman.h"

cAudioManager AudioManager;
uint32 gPornNextTime; // = *(uint32*)0x6508A0;
uint32 gSawMillNextTime; // = *(uint32*)0x6508A4;
uint32 gShopNextTime; // = *(uint32*)0x6508A8;
uint32 gAirportNextTime; // = *(uint32*)0x6508AC;
uint32 gCinemaNextTime; //= *(uint32*)0x6508B0;
uint32 gDocksNextTime; // = *(uint32*)0x6508B4;
uint32 gHomeNextTime; // = *(uint32*)0x6508B8;
uint32 gCellNextTime; // = *(uint32*)0x6508BC;
uint32 gNextCryTime; // = *(uint32*)0x6508C0;
uint8 gJumboVolOffsetPercentage; // = *(uint8 *)0x6508ED;
bool bPlayerJustEnteredCar; // = *(bool *)0x6508C4;
bool g_bMissionAudioLoadFailed; // = *(bool *)0x95CD8E;
uint32 gPornNextTime;
uint32 gSawMillNextTime;
uint32 gShopNextTime;
uint32 gAirportNextTime;
uint32 gCinemaNextTime;
uint32 gDocksNextTime;
uint32 gHomeNextTime;
uint32 gCellNextTime;
uint32 gNextCryTime;
uint8 gJumboVolOffsetPercentage;
bool bPlayerJustEnteredCar;
bool g_bMissionAudioLoadFailed;

const int channels = ARRAY_SIZE(cAudioManager::m_asActiveSamples);
const int policeChannel = channels + 1;
@@ -6,7 +6,7 @@
#include "AudioScriptObject.h"
#include "sampman.h"

cDMAudio &DMAudio = *(cDMAudio*)0x95CDBE;
cDMAudio DMAudio;

void
cDMAudio::Initialise(void)
@@ -256,4 +256,4 @@ class cDMAudio
void SetRadioInCar(uint32 radio);
void SetRadioChannel(int8 radio, int32 pos);
};
extern cDMAudio &DMAudio;
extern cDMAudio DMAudio;
@@ -21,14 +21,14 @@ struct tPoliceRadioZone {
int32 field_12;
};

tPoliceRadioZone (&ZoneSfx)[NUMAUDIOZONES] = *(tPoliceRadioZone(*)[NUMAUDIOZONES])*(uintptr*)0x880240;
char *SubZo2Label = (char*)0x6E9918;
char *SubZo3Label = (char*)0x6E9870;

int32 &g_nMissionAudioSfx = *(int32*)0x60ED84;
int8 &g_nMissionAudioPlayingStatus = *(int8*)0x60ED88;
uint8 &gSpecialSuspectLastSeenReport = *(uint8*)0x95CD4D;
uint32 (&gMinTimeToNextReport)[NUM_CRIME_TYPES] = *(uint32(*)[NUM_CRIME_TYPES])*(uintptr*)0x8E2828;
tPoliceRadioZone ZoneSfx[NUMAUDIOZONES];
char SubZo2Label[8];
char SubZo3Label[8];

int32 g_nMissionAudioSfx = TOTAL_AUDIO_SAMPLES;
int8 g_nMissionAudioPlayingStatus = 2;
uint8 gSpecialSuspectLastSeenReport;
uint32 gMinTimeToNextReport[NUM_CRIME_TYPES];

void
cAudioManager::InitialisePoliceRadioZones()
@@ -33,7 +33,6 @@ float CCarAI::FindSwitchDistanceFar(CVehicle* pVehicle)

void CCarAI::UpdateCarAI(CVehicle* pVehicle)
{
//((void(*)(CVehicle*))(0x413E50))(pVehicle);
//return;
if (pVehicle->bIsLawEnforcer){
if (pVehicle->AutoPilot.m_nCarMission == MISSION_BLOCKCAR_FARAWAY ||
@@ -67,25 +67,25 @@
#define MIN_ANGLE_TO_APPLY_HANDBRAKE 0.7f
#define MIN_SPEED_TO_APPLY_HANDBRAKE 0.3f

int &CCarCtrl::NumLawEnforcerCars = *(int*)0x8F1B38;
int &CCarCtrl::NumAmbulancesOnDuty = *(int*)0x885BB0;
int &CCarCtrl::NumFiretrucksOnDuty = *(int*)0x9411F0;
bool &CCarCtrl::bCarsGeneratedAroundCamera = *(bool*)0x95CD8A;
float& CCarCtrl::CarDensityMultiplier = *(float*)0x5EC8B4;
int32 &CCarCtrl::NumMissionCars = *(int32*)0x8F1B54;
int32 &CCarCtrl::NumRandomCars = *(int32*)0x943118;
int32 &CCarCtrl::NumParkedCars = *(int32*)0x8F29E0;
int32 &CCarCtrl::NumPermanentCars = *(int32*)0x8F29F0;
int8 &CCarCtrl::CountDownToCarsAtStart = *(int8*)0x95CD63;
int32 &CCarCtrl::MaxNumberOfCarsInUse = *(int32*)0x5EC8B8;
uint32 &CCarCtrl::LastTimeLawEnforcerCreated = *(uint32*)0x8F5FF0;
uint32 &CCarCtrl::LastTimeFireTruckCreated = *(uint32*)0x880F5C;
uint32 &CCarCtrl::LastTimeAmbulanceCreated = *(uint32*)0x941450;
int32 (&CCarCtrl::TotalNumOfCarsOfRating)[TOTAL_CUSTOM_CLASSES] = *(int32(*)[TOTAL_CUSTOM_CLASSES])*(uintptr*)0x8F1A60;
int32 (&CCarCtrl::NextCarOfRating)[TOTAL_CUSTOM_CLASSES] = *(int32(*)[TOTAL_CUSTOM_CLASSES])*(uintptr*)0x9412AC;
int32 (&CCarCtrl::CarArrays)[TOTAL_CUSTOM_CLASSES][MAX_CAR_MODELS_IN_ARRAY] = *(int32(*)[TOTAL_CUSTOM_CLASSES][MAX_CAR_MODELS_IN_ARRAY])*(uintptr*)0x6EB860;
CVehicle* (&apCarsToKeep)[MAX_CARS_TO_KEEP] = *(CVehicle*(*)[MAX_CARS_TO_KEEP])*(uintptr*)0x70D830;
uint32 (&aCarsToKeepTime)[MAX_CARS_TO_KEEP] = *(uint32(*)[MAX_CARS_TO_KEEP])*(uintptr*)0x87F9A8;
int CCarCtrl::NumLawEnforcerCars;
int CCarCtrl::NumAmbulancesOnDuty;
int CCarCtrl::NumFiretrucksOnDuty;
bool CCarCtrl::bCarsGeneratedAroundCamera;
float CCarCtrl::CarDensityMultiplier = 1.0f;
int32 CCarCtrl::NumMissionCars;
int32 CCarCtrl::NumRandomCars;
int32 CCarCtrl::NumParkedCars;
int32 CCarCtrl::NumPermanentCars;
int8 CCarCtrl::CountDownToCarsAtStart;
int32 CCarCtrl::MaxNumberOfCarsInUse = 12;
uint32 CCarCtrl::LastTimeLawEnforcerCreated;
uint32 CCarCtrl::LastTimeFireTruckCreated;
uint32 CCarCtrl::LastTimeAmbulanceCreated;
int32 CCarCtrl::TotalNumOfCarsOfRating[TOTAL_CUSTOM_CLASSES];
int32 CCarCtrl::NextCarOfRating[TOTAL_CUSTOM_CLASSES];
int32 CCarCtrl::CarArrays[TOTAL_CUSTOM_CLASSES][MAX_CAR_MODELS_IN_ARRAY];
CVehicle* apCarsToKeep[MAX_CARS_TO_KEEP];
uint32 aCarsToKeepTime[MAX_CARS_TO_KEEP];

void
CCarCtrl::GenerateRandomCars()
@@ -120,23 +120,23 @@ class CCarCtrl
return angle;
}

static int32 &NumLawEnforcerCars;
static int32 &NumAmbulancesOnDuty;
static int32 &NumFiretrucksOnDuty;
static int32 &NumRandomCars;
static int32 &NumMissionCars;
static int32 &NumParkedCars;
static int32 &NumPermanentCars;
static bool &bCarsGeneratedAroundCamera;
static float &CarDensityMultiplier;
static int8 &CountDownToCarsAtStart;
static int32 &MaxNumberOfCarsInUse;
static uint32 &LastTimeLawEnforcerCreated;
static uint32 &LastTimeFireTruckCreated;
static uint32 &LastTimeAmbulanceCreated;
static int32 (&TotalNumOfCarsOfRating)[TOTAL_CUSTOM_CLASSES];
static int32 (&NextCarOfRating)[TOTAL_CUSTOM_CLASSES];
static int32 (&CarArrays)[TOTAL_CUSTOM_CLASSES][MAX_CAR_MODELS_IN_ARRAY];
static int32 NumLawEnforcerCars;
static int32 NumAmbulancesOnDuty;
static int32 NumFiretrucksOnDuty;
static int32 NumRandomCars;
static int32 NumMissionCars;
static int32 NumParkedCars;
static int32 NumPermanentCars;
static bool bCarsGeneratedAroundCamera;
static float CarDensityMultiplier;
static int8 CountDownToCarsAtStart;
static int32 MaxNumberOfCarsInUse;
static uint32 LastTimeLawEnforcerCreated;
static uint32 LastTimeFireTruckCreated;
static uint32 LastTimeAmbulanceCreated;
static int32 TotalNumOfCarsOfRating[TOTAL_CUSTOM_CLASSES];
static int32 NextCarOfRating[TOTAL_CUSTOM_CLASSES];
static int32 CarArrays[TOTAL_CUSTOM_CLASSES][MAX_CAR_MODELS_IN_ARRAY];
};

extern CVehicle* (&apCarsToKeep)[MAX_CARS_TO_KEEP];
extern CVehicle* apCarsToKeep[MAX_CARS_TO_KEEP];
@@ -20,7 +20,7 @@
#include "Script.h"
#include "Garages.h"

uint8 CGameLogic::ActivePlayers; // 0x95CD5E
uint8 CGameLogic::ActivePlayers;

void
CGameLogic::InitAtStartOfGame()
@@ -12,7 +12,7 @@ bool gbShowPedPaths;
bool gbShowCarPaths;
bool gbShowCarPathsLinks;

CPathFind &ThePaths = *(CPathFind*)0x8F6754;
CPathFind ThePaths;

#define MAX_DIST INT16_MAX-1
#define MIN_PED_ROUTE_DISTANCE 23.8f
@@ -21,11 +21,11 @@ CPathFind &ThePaths = *(CPathFind*)0x8F6754;
// 1 UseInRoadBlock
// 2 east/west road(?)

CPathInfoForObject *&InfoForTileCars = *(CPathInfoForObject**)0x8F1A8C;
CPathInfoForObject *&InfoForTilePeds = *(CPathInfoForObject**)0x8F1AE4;
CPathInfoForObject *InfoForTileCars;
CPathInfoForObject *InfoForTilePeds;
// unused
CTempDetachedNode *&DetachedNodesCars = *(CTempDetachedNode**)0x8E2824;
CTempDetachedNode *&DetachedNodesPeds = *(CTempDetachedNode**)0x8E28A0;
CTempDetachedNode *DetachedNodesCars;
CTempDetachedNode *DetachedNodesPeds;

bool
CPedPath::CalcPedRoute(int8 pathType, CVector position, CVector destination, CVector *pointPoses, int16 *pointsFound, int16 maxPoints)
@@ -138,8 +138,8 @@ struct CPathInfoForObject
int8 numRightLanes;
uint8 crossing : 1;
};
extern CPathInfoForObject *&InfoForTileCars;
extern CPathInfoForObject *&InfoForTilePeds;
extern CPathInfoForObject *InfoForTileCars;
extern CPathInfoForObject *InfoForTilePeds;

struct CTempNode
{
@@ -234,7 +234,7 @@ class CPathFind
};
static_assert(sizeof(CPathFind) == 0x49bf4, "CPathFind: error");

extern CPathFind &ThePaths;
extern CPathFind ThePaths;

extern bool gbShowPedPaths;
extern bool gbShowCarPaths;
@@ -13,13 +13,13 @@
#include "RpAnimBlend.h"
#include "AnimBlendAssociation.h"

CPhoneInfo &gPhoneInfo = *(CPhoneInfo*)0x732A20;
CPhoneInfo gPhoneInfo;

bool &CPhoneInfo::bDisplayingPhoneMessage = *(bool*)0x6283AC; // is phone picked up
uint32 &CPhoneInfo::PhoneEnableControlsTimer = *(uint32*)0x6283A8;
CPhone *&CPhoneInfo::pPhoneDisplayingMessages = *(CPhone**)0x6283B0;
bool &CPhoneInfo::bPickingUpPhone = *(bool*)0x6283B4;
CPed *&CPhoneInfo::pCallBackPed = *(CPed**)0x6283B8; // ped who picking up the phone (reset after pickup cb)
bool CPhoneInfo::bDisplayingPhoneMessage; // is phone picked up
uint32 CPhoneInfo::PhoneEnableControlsTimer;
CPhone *CPhoneInfo::pPhoneDisplayingMessages;
bool CPhoneInfo::bPickingUpPhone;
CPed *CPhoneInfo::pCallBackPed; // ped who picking up the phone (reset after pickup cb)

/*
Entering phonebooth cutscene, showing messages and triggering these things
@@ -36,11 +36,11 @@ static_assert(sizeof(CPhone) == 0x34, "CPhone: error");

class CPhoneInfo {
public:
static bool &bDisplayingPhoneMessage;
static uint32 &PhoneEnableControlsTimer;
static CPhone *&pPhoneDisplayingMessages;
static bool &bPickingUpPhone;
static CPed *&pCallBackPed;
static bool bDisplayingPhoneMessage;
static uint32 PhoneEnableControlsTimer;
static CPhone *pPhoneDisplayingMessages;
static bool bPickingUpPhone;
static CPed *pCallBackPed;

int32 m_nMax;
int32 m_nScriptPhonesMax;
@@ -63,7 +63,7 @@ class CPhoneInfo {
void Update(void);
};

extern CPhoneInfo &gPhoneInfo;
extern CPhoneInfo gPhoneInfo;

void PhonePutDownCB(CAnimBlendAssociation *assoc, void *arg);
void PhonePickUpCB(CAnimBlendAssociation *assoc, void *arg);
@@ -31,16 +31,16 @@
#include "WaterLevel.h"
#include "World.h"

CPickup(&CPickups::aPickUps)[NUMPICKUPS] = *(CPickup(*)[NUMPICKUPS])*(uintptr*)0x878C98;
int16 CPickups::NumMessages;// = *(int16*)0x95CC98;
int32 CPickups::aPickUpsCollected[NUMCOLLECTEDPICKUPS];// = *(int32(*)[NUMCOLLECTEDPICKUPS])*(uintptr*)0x87C538;
int16 CPickups::CollectedPickUpIndex;// = *(int16*)0x95CC8A;
CPickup CPickups::aPickUps[NUMPICKUPS];
int16 CPickups::NumMessages;
int32 CPickups::aPickUpsCollected[NUMCOLLECTEDPICKUPS];
int16 CPickups::CollectedPickUpIndex;

// unused
bool &CPickups::bPickUpcamActivated = *(bool*)0x95CD71;
CVehicle *&CPickups::pPlayerVehicle = *(CVehicle**)0x8F29E8;
CVector &CPickups::StaticCamCoors = *(CVector*)0x9404C8;
uint32 &CPickups::StaticCamStartTime = *(uint32*)0x8E289C;
bool CPickups::bPickUpcamActivated;
CVehicle *CPickups::pPlayerVehicle;
CVector CPickups::StaticCamCoors;
uint32 CPickups::StaticCamStartTime;

tPickupMessage CPickups::aMessages[NUMPICKUPMESSAGES];

@@ -89,13 +89,13 @@ class CPickups
static void Load(uint8 *buf, uint32 size);
static void Save(uint8 *buf, uint32 *size);

static CPickup(&aPickUps)[NUMPICKUPS];
static CPickup aPickUps[NUMPICKUPS];

// unused
static bool &bPickUpcamActivated;
static CVehicle *&pPlayerVehicle;
static CVector &StaticCamCoors;
static uint32 &StaticCamStartTime;
static bool bPickUpcamActivated;
static CVehicle *pPlayerVehicle;
static CVector StaticCamCoors;
static uint32 StaticCamStartTime;
};

extern uint16 AmmoForWeapon[20];
@@ -10,11 +10,11 @@
#include "VehicleModelInfo.h"
#include "World.h"

uint16 &CRecordDataForGame::RecordingState = *(uint16*)0x95CC24;
uint8*& CRecordDataForGame::pDataBuffer = *(uint8**)0x8F1B70;
uint8*& CRecordDataForGame::pDataBufferPointer = *(uint8**)0x8F1AB0;
int& CRecordDataForGame::FId = *(int*)0x885BA4;
tGameBuffer& CRecordDataForGame::pDataBufferForFrame = *(tGameBuffer*)0x72CED0;
uint16 CRecordDataForGame::RecordingState;
uint8* CRecordDataForGame::pDataBuffer;
uint8* CRecordDataForGame::pDataBufferPointer;
int CRecordDataForGame::FId;
tGameBuffer CRecordDataForGame::pDataBufferForFrame;

#define MEMORY_FOR_GAME_RECORD (150000)

@@ -176,15 +176,15 @@ uint16 CRecordDataForGame::CalcGameChecksum(void)
return checksum ^ checksum >> 16;
}

uint8& CRecordDataForChase::Status = *(uint8*)0x95CDCE;
int& CRecordDataForChase::PositionChanges = *(int*)0x8F59C8;
uint8& CRecordDataForChase::CurrentCar = *(uint8*)0x95CDC9;
CAutomobile* (&CRecordDataForChase::pChaseCars)[NUM_CHASE_CARS] = *(CAutomobile * (*)[NUM_CHASE_CARS])*(uintptr*)0x6F46A8;
uint32& CRecordDataForChase::AnimStartTime = *(uint32*)0x8F1AEC;
float& CRecordDataForChase::AnimTime = *(float*)0x880F88;
CCarStateEachFrame* (&CRecordDataForChase::pBaseMemForCar)[NUM_CHASE_CARS] = *(CCarStateEachFrame * (*)[NUM_CHASE_CARS])*(uintptr*)0x70EA18;
float& CRecordDataForChase::TimeMultiplier = *(float*)0x8E2A94;
int& CRecordDataForChase::FId2 = *(int*)0x8E2C18;
uint8 CRecordDataForChase::Status;
int CRecordDataForChase::PositionChanges;
uint8 CRecordDataForChase::CurrentCar;
CAutomobile* CRecordDataForChase::pChaseCars[NUM_CHASE_CARS];
uint32 CRecordDataForChase::AnimStartTime;
float CRecordDataForChase::AnimTime;
CCarStateEachFrame* CRecordDataForChase::pBaseMemForCar[NUM_CHASE_CARS];
float CRecordDataForChase::TimeMultiplier;
int CRecordDataForChase::FId2;

#define CHASE_SCENE_LENGTH_IN_SECONDS (80)
#define CHASE_SCENE_FRAMES_PER_SECOND (15) // skipping every second frame

0 comments on commit b9c8ce0

Please sign in to comment.