Merge remote-tracking branch 'Fire-Head/master' into Standalone

# Conflicts:
#	src/render/Coronas.cpp
This commit is contained in:
Sergeanur 2020-04-17 10:17:38 +03:00
commit b9c8ce0d37
129 changed files with 1316 additions and 1365 deletions

View File

@ -8,7 +8,7 @@
#include "AnimBlendAssociation.h" #include "AnimBlendAssociation.h"
#include "RpAnimBlend.h" #include "RpAnimBlend.h"
RwInt32 &ClumpOffset = *(RwInt32*)0x8F1B84; RwInt32 ClumpOffset;
enum enum
{ {

View File

@ -11,7 +11,7 @@ struct AnimBlendFrameUpdateData
CAnimBlendNode *nodes[16]; CAnimBlendNode *nodes[16];
}; };
extern RwInt32 &ClumpOffset; extern RwInt32 ClumpOffset;
#define RPANIMBLENDCLUMPDATA(o) (RWPLUGINOFFSET(CAnimBlendClumpData*, o, ClumpOffset)) #define RPANIMBLENDCLUMPDATA(o) (RWPLUGINOFFSET(CAnimBlendClumpData*, o, ClumpOffset))
bool RpAnimBlendPluginAttach(void); bool RpAnimBlendPluginAttach(void);

View File

@ -40,18 +40,18 @@
#include "sampman.h" #include "sampman.h"
cAudioManager AudioManager; cAudioManager AudioManager;
uint32 gPornNextTime; // = *(uint32*)0x6508A0; uint32 gPornNextTime;
uint32 gSawMillNextTime; // = *(uint32*)0x6508A4; uint32 gSawMillNextTime;
uint32 gShopNextTime; // = *(uint32*)0x6508A8; uint32 gShopNextTime;
uint32 gAirportNextTime; // = *(uint32*)0x6508AC; uint32 gAirportNextTime;
uint32 gCinemaNextTime; //= *(uint32*)0x6508B0; uint32 gCinemaNextTime;
uint32 gDocksNextTime; // = *(uint32*)0x6508B4; uint32 gDocksNextTime;
uint32 gHomeNextTime; // = *(uint32*)0x6508B8; uint32 gHomeNextTime;
uint32 gCellNextTime; // = *(uint32*)0x6508BC; uint32 gCellNextTime;
uint32 gNextCryTime; // = *(uint32*)0x6508C0; uint32 gNextCryTime;
uint8 gJumboVolOffsetPercentage; // = *(uint8 *)0x6508ED; uint8 gJumboVolOffsetPercentage;
bool bPlayerJustEnteredCar; // = *(bool *)0x6508C4; bool bPlayerJustEnteredCar;
bool g_bMissionAudioLoadFailed; // = *(bool *)0x95CD8E; bool g_bMissionAudioLoadFailed;
const int channels = ARRAY_SIZE(cAudioManager::m_asActiveSamples); const int channels = ARRAY_SIZE(cAudioManager::m_asActiveSamples);
const int policeChannel = channels + 1; const int policeChannel = channels + 1;

View File

@ -6,7 +6,7 @@
#include "AudioScriptObject.h" #include "AudioScriptObject.h"
#include "sampman.h" #include "sampman.h"
cDMAudio &DMAudio = *(cDMAudio*)0x95CDBE; cDMAudio DMAudio;
void void
cDMAudio::Initialise(void) cDMAudio::Initialise(void)

View File

@ -256,4 +256,4 @@ public:
void SetRadioInCar(uint32 radio); void SetRadioInCar(uint32 radio);
void SetRadioChannel(int8 radio, int32 pos); void SetRadioChannel(int8 radio, int32 pos);
}; };
extern cDMAudio &DMAudio; extern cDMAudio DMAudio;

View File

@ -21,14 +21,14 @@ struct tPoliceRadioZone {
int32 field_12; int32 field_12;
}; };
tPoliceRadioZone (&ZoneSfx)[NUMAUDIOZONES] = *(tPoliceRadioZone(*)[NUMAUDIOZONES])*(uintptr*)0x880240; tPoliceRadioZone ZoneSfx[NUMAUDIOZONES];
char *SubZo2Label = (char*)0x6E9918; char SubZo2Label[8];
char *SubZo3Label = (char*)0x6E9870; char SubZo3Label[8];
int32 &g_nMissionAudioSfx = *(int32*)0x60ED84; int32 g_nMissionAudioSfx = TOTAL_AUDIO_SAMPLES;
int8 &g_nMissionAudioPlayingStatus = *(int8*)0x60ED88; int8 g_nMissionAudioPlayingStatus = 2;
uint8 &gSpecialSuspectLastSeenReport = *(uint8*)0x95CD4D; uint8 gSpecialSuspectLastSeenReport;
uint32 (&gMinTimeToNextReport)[NUM_CRIME_TYPES] = *(uint32(*)[NUM_CRIME_TYPES])*(uintptr*)0x8E2828; uint32 gMinTimeToNextReport[NUM_CRIME_TYPES];
void void
cAudioManager::InitialisePoliceRadioZones() cAudioManager::InitialisePoliceRadioZones()

View File

@ -33,7 +33,6 @@ float CCarAI::FindSwitchDistanceFar(CVehicle* pVehicle)
void CCarAI::UpdateCarAI(CVehicle* pVehicle) void CCarAI::UpdateCarAI(CVehicle* pVehicle)
{ {
//((void(*)(CVehicle*))(0x413E50))(pVehicle);
//return; //return;
if (pVehicle->bIsLawEnforcer){ if (pVehicle->bIsLawEnforcer){
if (pVehicle->AutoPilot.m_nCarMission == MISSION_BLOCKCAR_FARAWAY || if (pVehicle->AutoPilot.m_nCarMission == MISSION_BLOCKCAR_FARAWAY ||

View File

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

View File

@ -120,23 +120,23 @@ public:
return angle; return angle;
} }
static int32 &NumLawEnforcerCars; static int32 NumLawEnforcerCars;
static int32 &NumAmbulancesOnDuty; static int32 NumAmbulancesOnDuty;
static int32 &NumFiretrucksOnDuty; static int32 NumFiretrucksOnDuty;
static int32 &NumRandomCars; static int32 NumRandomCars;
static int32 &NumMissionCars; static int32 NumMissionCars;
static int32 &NumParkedCars; static int32 NumParkedCars;
static int32 &NumPermanentCars; static int32 NumPermanentCars;
static bool &bCarsGeneratedAroundCamera; static bool bCarsGeneratedAroundCamera;
static float &CarDensityMultiplier; static float CarDensityMultiplier;
static int8 &CountDownToCarsAtStart; static int8 CountDownToCarsAtStart;
static int32 &MaxNumberOfCarsInUse; static int32 MaxNumberOfCarsInUse;
static uint32 &LastTimeLawEnforcerCreated; static uint32 LastTimeLawEnforcerCreated;
static uint32 &LastTimeFireTruckCreated; static uint32 LastTimeFireTruckCreated;
static uint32 &LastTimeAmbulanceCreated; static uint32 LastTimeAmbulanceCreated;
static int32 (&TotalNumOfCarsOfRating)[TOTAL_CUSTOM_CLASSES]; static int32 TotalNumOfCarsOfRating[TOTAL_CUSTOM_CLASSES];
static int32 (&NextCarOfRating)[TOTAL_CUSTOM_CLASSES]; static int32 NextCarOfRating[TOTAL_CUSTOM_CLASSES];
static int32 (&CarArrays)[TOTAL_CUSTOM_CLASSES][MAX_CAR_MODELS_IN_ARRAY]; 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];

View File

@ -20,7 +20,7 @@
#include "Script.h" #include "Script.h"
#include "Garages.h" #include "Garages.h"
uint8 CGameLogic::ActivePlayers; // 0x95CD5E uint8 CGameLogic::ActivePlayers;
void void
CGameLogic::InitAtStartOfGame() CGameLogic::InitAtStartOfGame()

View File

@ -12,7 +12,7 @@ bool gbShowPedPaths;
bool gbShowCarPaths; bool gbShowCarPaths;
bool gbShowCarPathsLinks; bool gbShowCarPathsLinks;
CPathFind &ThePaths = *(CPathFind*)0x8F6754; CPathFind ThePaths;
#define MAX_DIST INT16_MAX-1 #define MAX_DIST INT16_MAX-1
#define MIN_PED_ROUTE_DISTANCE 23.8f #define MIN_PED_ROUTE_DISTANCE 23.8f
@ -21,11 +21,11 @@ CPathFind &ThePaths = *(CPathFind*)0x8F6754;
// 1 UseInRoadBlock // 1 UseInRoadBlock
// 2 east/west road(?) // 2 east/west road(?)
CPathInfoForObject *&InfoForTileCars = *(CPathInfoForObject**)0x8F1A8C; CPathInfoForObject *InfoForTileCars;
CPathInfoForObject *&InfoForTilePeds = *(CPathInfoForObject**)0x8F1AE4; CPathInfoForObject *InfoForTilePeds;
// unused // unused
CTempDetachedNode *&DetachedNodesCars = *(CTempDetachedNode**)0x8E2824; CTempDetachedNode *DetachedNodesCars;
CTempDetachedNode *&DetachedNodesPeds = *(CTempDetachedNode**)0x8E28A0; CTempDetachedNode *DetachedNodesPeds;
bool bool
CPedPath::CalcPedRoute(int8 pathType, CVector position, CVector destination, CVector *pointPoses, int16 *pointsFound, int16 maxPoints) CPedPath::CalcPedRoute(int8 pathType, CVector position, CVector destination, CVector *pointPoses, int16 *pointsFound, int16 maxPoints)

View File

@ -138,8 +138,8 @@ struct CPathInfoForObject
int8 numRightLanes; int8 numRightLanes;
uint8 crossing : 1; uint8 crossing : 1;
}; };
extern CPathInfoForObject *&InfoForTileCars; extern CPathInfoForObject *InfoForTileCars;
extern CPathInfoForObject *&InfoForTilePeds; extern CPathInfoForObject *InfoForTilePeds;
struct CTempNode struct CTempNode
{ {
@ -234,7 +234,7 @@ public:
}; };
static_assert(sizeof(CPathFind) == 0x49bf4, "CPathFind: error"); static_assert(sizeof(CPathFind) == 0x49bf4, "CPathFind: error");
extern CPathFind &ThePaths; extern CPathFind ThePaths;
extern bool gbShowPedPaths; extern bool gbShowPedPaths;
extern bool gbShowCarPaths; extern bool gbShowCarPaths;

View File

@ -13,13 +13,13 @@
#include "RpAnimBlend.h" #include "RpAnimBlend.h"
#include "AnimBlendAssociation.h" #include "AnimBlendAssociation.h"
CPhoneInfo &gPhoneInfo = *(CPhoneInfo*)0x732A20; CPhoneInfo gPhoneInfo;
bool &CPhoneInfo::bDisplayingPhoneMessage = *(bool*)0x6283AC; // is phone picked up bool CPhoneInfo::bDisplayingPhoneMessage; // is phone picked up
uint32 &CPhoneInfo::PhoneEnableControlsTimer = *(uint32*)0x6283A8; uint32 CPhoneInfo::PhoneEnableControlsTimer;
CPhone *&CPhoneInfo::pPhoneDisplayingMessages = *(CPhone**)0x6283B0; CPhone *CPhoneInfo::pPhoneDisplayingMessages;
bool &CPhoneInfo::bPickingUpPhone = *(bool*)0x6283B4; bool CPhoneInfo::bPickingUpPhone;
CPed *&CPhoneInfo::pCallBackPed = *(CPed**)0x6283B8; // ped who picking up the phone (reset after pickup cb) CPed *CPhoneInfo::pCallBackPed; // ped who picking up the phone (reset after pickup cb)
/* /*
Entering phonebooth cutscene, showing messages and triggering these things Entering phonebooth cutscene, showing messages and triggering these things

View File

@ -36,11 +36,11 @@ static_assert(sizeof(CPhone) == 0x34, "CPhone: error");
class CPhoneInfo { class CPhoneInfo {
public: public:
static bool &bDisplayingPhoneMessage; static bool bDisplayingPhoneMessage;
static uint32 &PhoneEnableControlsTimer; static uint32 PhoneEnableControlsTimer;
static CPhone *&pPhoneDisplayingMessages; static CPhone *pPhoneDisplayingMessages;
static bool &bPickingUpPhone; static bool bPickingUpPhone;
static CPed *&pCallBackPed; static CPed *pCallBackPed;
int32 m_nMax; int32 m_nMax;
int32 m_nScriptPhonesMax; int32 m_nScriptPhonesMax;
@ -63,7 +63,7 @@ public:
void Update(void); void Update(void);
}; };
extern CPhoneInfo &gPhoneInfo; extern CPhoneInfo gPhoneInfo;
void PhonePutDownCB(CAnimBlendAssociation *assoc, void *arg); void PhonePutDownCB(CAnimBlendAssociation *assoc, void *arg);
void PhonePickUpCB(CAnimBlendAssociation *assoc, void *arg); void PhonePickUpCB(CAnimBlendAssociation *assoc, void *arg);

View File

@ -31,16 +31,16 @@
#include "WaterLevel.h" #include "WaterLevel.h"
#include "World.h" #include "World.h"
CPickup(&CPickups::aPickUps)[NUMPICKUPS] = *(CPickup(*)[NUMPICKUPS])*(uintptr*)0x878C98; CPickup CPickups::aPickUps[NUMPICKUPS];
int16 CPickups::NumMessages;// = *(int16*)0x95CC98; int16 CPickups::NumMessages;
int32 CPickups::aPickUpsCollected[NUMCOLLECTEDPICKUPS];// = *(int32(*)[NUMCOLLECTEDPICKUPS])*(uintptr*)0x87C538; int32 CPickups::aPickUpsCollected[NUMCOLLECTEDPICKUPS];
int16 CPickups::CollectedPickUpIndex;// = *(int16*)0x95CC8A; int16 CPickups::CollectedPickUpIndex;
// unused // unused
bool &CPickups::bPickUpcamActivated = *(bool*)0x95CD71; bool CPickups::bPickUpcamActivated;
CVehicle *&CPickups::pPlayerVehicle = *(CVehicle**)0x8F29E8; CVehicle *CPickups::pPlayerVehicle;
CVector &CPickups::StaticCamCoors = *(CVector*)0x9404C8; CVector CPickups::StaticCamCoors;
uint32 &CPickups::StaticCamStartTime = *(uint32*)0x8E289C; uint32 CPickups::StaticCamStartTime;
tPickupMessage CPickups::aMessages[NUMPICKUPMESSAGES]; tPickupMessage CPickups::aMessages[NUMPICKUPMESSAGES];

View File

@ -89,13 +89,13 @@ public:
static void Load(uint8 *buf, uint32 size); static void Load(uint8 *buf, uint32 size);
static void Save(uint8 *buf, uint32 *size); static void Save(uint8 *buf, uint32 *size);
static CPickup(&aPickUps)[NUMPICKUPS]; static CPickup aPickUps[NUMPICKUPS];
// unused // unused
static bool &bPickUpcamActivated; static bool bPickUpcamActivated;
static CVehicle *&pPlayerVehicle; static CVehicle *pPlayerVehicle;
static CVector &StaticCamCoors; static CVector StaticCamCoors;
static uint32 &StaticCamStartTime; static uint32 StaticCamStartTime;
}; };
extern uint16 AmmoForWeapon[20]; extern uint16 AmmoForWeapon[20];

View File

@ -10,11 +10,11 @@
#include "VehicleModelInfo.h" #include "VehicleModelInfo.h"
#include "World.h" #include "World.h"
uint16 &CRecordDataForGame::RecordingState = *(uint16*)0x95CC24; uint16 CRecordDataForGame::RecordingState;
uint8*& CRecordDataForGame::pDataBuffer = *(uint8**)0x8F1B70; uint8* CRecordDataForGame::pDataBuffer;
uint8*& CRecordDataForGame::pDataBufferPointer = *(uint8**)0x8F1AB0; uint8* CRecordDataForGame::pDataBufferPointer;
int& CRecordDataForGame::FId = *(int*)0x885BA4; int CRecordDataForGame::FId;
tGameBuffer& CRecordDataForGame::pDataBufferForFrame = *(tGameBuffer*)0x72CED0; tGameBuffer CRecordDataForGame::pDataBufferForFrame;
#define MEMORY_FOR_GAME_RECORD (150000) #define MEMORY_FOR_GAME_RECORD (150000)
@ -176,15 +176,15 @@ uint16 CRecordDataForGame::CalcGameChecksum(void)
return checksum ^ checksum >> 16; return checksum ^ checksum >> 16;
} }
uint8& CRecordDataForChase::Status = *(uint8*)0x95CDCE; uint8 CRecordDataForChase::Status;
int& CRecordDataForChase::PositionChanges = *(int*)0x8F59C8; int CRecordDataForChase::PositionChanges;
uint8& CRecordDataForChase::CurrentCar = *(uint8*)0x95CDC9; uint8 CRecordDataForChase::CurrentCar;
CAutomobile* (&CRecordDataForChase::pChaseCars)[NUM_CHASE_CARS] = *(CAutomobile * (*)[NUM_CHASE_CARS])*(uintptr*)0x6F46A8; CAutomobile* CRecordDataForChase::pChaseCars[NUM_CHASE_CARS];
uint32& CRecordDataForChase::AnimStartTime = *(uint32*)0x8F1AEC; uint32 CRecordDataForChase::AnimStartTime;
float& CRecordDataForChase::AnimTime = *(float*)0x880F88; float CRecordDataForChase::AnimTime;
CCarStateEachFrame* (&CRecordDataForChase::pBaseMemForCar)[NUM_CHASE_CARS] = *(CCarStateEachFrame * (*)[NUM_CHASE_CARS])*(uintptr*)0x70EA18; CCarStateEachFrame* CRecordDataForChase::pBaseMemForCar[NUM_CHASE_CARS];
float& CRecordDataForChase::TimeMultiplier = *(float*)0x8E2A94; float CRecordDataForChase::TimeMultiplier;
int& CRecordDataForChase::FId2 = *(int*)0x8E2C18; int CRecordDataForChase::FId2;
#define CHASE_SCENE_LENGTH_IN_SECONDS (80) #define CHASE_SCENE_LENGTH_IN_SECONDS (80)
#define CHASE_SCENE_FRAMES_PER_SECOND (15) // skipping every second frame #define CHASE_SCENE_FRAMES_PER_SECOND (15) // skipping every second frame

View File

@ -23,7 +23,7 @@ public:
CVector pos; CVector pos;
}; };
extern char* gString; extern char gString[256];;
class CRecordDataForChase class CRecordDataForChase
{ {
@ -37,15 +37,15 @@ class CRecordDataForChase
STATE_PLAYBACK = 3, STATE_PLAYBACK = 3,
STATE_PLAYBACK_BEFORE_RECORDING = 4 STATE_PLAYBACK_BEFORE_RECORDING = 4
}; };
static uint8 &Status; static uint8 Status;
static int &PositionChanges; static int PositionChanges;
static uint8 &CurrentCar; static uint8 CurrentCar;
static CAutomobile*(&pChaseCars)[NUM_CHASE_CARS]; static CAutomobile*pChaseCars[NUM_CHASE_CARS];
static float &AnimTime; static float AnimTime;
static uint32 &AnimStartTime; static uint32 AnimStartTime;
static CCarStateEachFrame* (&pBaseMemForCar)[NUM_CHASE_CARS]; static CCarStateEachFrame* pBaseMemForCar[NUM_CHASE_CARS];
static float &TimeMultiplier; static float TimeMultiplier;
static int &FId2; static int FId2;
public: public:
static bool IsRecording(void) { return Status == STATE_RECORD; } static bool IsRecording(void) { return Status == STATE_RECORD; }
@ -86,11 +86,11 @@ class CRecordDataForGame
STATE_RECORD = 1, STATE_RECORD = 1,
STATE_PLAYBACK = 2, STATE_PLAYBACK = 2,
}; };
static uint16& RecordingState; static uint16 RecordingState;
static uint8* &pDataBuffer; static uint8* pDataBuffer;
static uint8* &pDataBufferPointer; static uint8* pDataBufferPointer;
static int &FId; static int FId;
static tGameBuffer &pDataBufferForFrame; static tGameBuffer pDataBufferForFrame;
public: public:
static bool IsRecording() { return RecordingState == STATE_RECORD; } static bool IsRecording() { return RecordingState == STATE_RECORD; }

View File

@ -39,71 +39,70 @@
#include "Camera.h" #include "Camera.h"
#include "Radar.h" #include "Radar.h"
uint8 &CReplay::Mode = *(uint8*)0x95CD5B; uint8 CReplay::Mode;
CAddressInReplayBuffer &CReplay::Record = *(CAddressInReplayBuffer*)0x942F7C; CAddressInReplayBuffer CReplay::Record;
CAddressInReplayBuffer &CReplay::Playback = *(CAddressInReplayBuffer*)0x8F5F48; CAddressInReplayBuffer CReplay::Playback;
uint8 *&CReplay::pBuf0 = *(uint8**)0x8E2C64; uint8 *CReplay::pBuf0;
CAutomobile *&CReplay::pBuf1 = *(CAutomobile**)0x8E2C68; CAutomobile *CReplay::pBuf1;
uint8 *&CReplay::pBuf2 = *(uint8**)0x8E2C6C; uint8 *CReplay::pBuf2;
CPlayerPed *&CReplay::pBuf3 = *(CPlayerPed**)0x8E2C70; CPlayerPed *CReplay::pBuf3;
uint8 *&CReplay::pBuf4 = *(uint8**)0x8E2C74; uint8 *CReplay::pBuf4;
CCutsceneHead *&CReplay::pBuf5 = *(CCutsceneHead**)0x8E2C78; CCutsceneHead *CReplay::pBuf5;
uint8 *&CReplay::pBuf6 = *(uint8**)0x8E2C80; uint8 *CReplay::pBuf6;
CPtrNode *&CReplay::pBuf7 = *(CPtrNode**)0x8E2C84; CPtrNode *CReplay::pBuf7;
uint8 *&CReplay::pBuf8 = *(uint8**)0x8E2C54; uint8 *CReplay::pBuf8;
CEntryInfoNode *&CReplay::pBuf9 = *(CEntryInfoNode**)0x8E2C58; CEntryInfoNode *CReplay::pBuf9;
uint8 *&CReplay::pBuf10 = *(uint8**)0x8F2C28; uint8 *CReplay::pBuf10;
CDummyPed *&CReplay::pBuf11 = *(CDummyPed**)0x8F2C2C; CDummyPed *CReplay::pBuf11;
uint8 *&CReplay::pRadarBlips = *(uint8**)0x8F29F8; uint8 *CReplay::pRadarBlips;
uint8 *&CReplay::pStoredCam = *(uint8**)0x8F2C34; uint8 *CReplay::pStoredCam;
uint8 *&CReplay::pWorld1 = *(uint8**)0x8E29C4; uint8 *CReplay::pWorld1;
CReference *&CReplay::pEmptyReferences = *(CReference**)0x8F256C; CReference *CReplay::pEmptyReferences;
CStoredDetailedAnimationState *&CReplay::pPedAnims = *(CStoredDetailedAnimationState**)0x8F6260; CStoredDetailedAnimationState *CReplay::pPedAnims;
uint8 *&CReplay::pPickups = *(uint8**)0x8F1A48; uint8 *CReplay::pPickups;
uint8 *&CReplay::pReferences = *(uint8**)0x880FAC; uint8 *CReplay::pReferences;
uint8(&CReplay::BufferStatus)[NUM_REPLAYBUFFERS] = *(uint8(*)[NUM_REPLAYBUFFERS])*(uintptr*)0x8804D8; uint8 CReplay::BufferStatus[NUM_REPLAYBUFFERS];
uint8(&CReplay::Buffers)[NUM_REPLAYBUFFERS][REPLAYBUFFERSIZE] = *(uint8(*)[NUM_REPLAYBUFFERS][REPLAYBUFFERSIZE])*(uintptr*)0x779958; uint8 CReplay::Buffers[NUM_REPLAYBUFFERS][REPLAYBUFFERSIZE];
bool &CReplay::bPlayingBackFromFile = *(bool*)0x95CD58; bool CReplay::bPlayingBackFromFile;
bool &CReplay::bReplayEnabled = *(bool*)0x617CAC; bool CReplay::bReplayEnabled = true;
uint32 &CReplay::SlowMotion = *(uint32*)0x9414D4; uint32 CReplay::SlowMotion;
uint32 &CReplay::FramesActiveLookAroundCam = *(uint32*)0x880F84; uint32 CReplay::FramesActiveLookAroundCam;
bool &CReplay::bDoLoadSceneWhenDone = *(bool*)0x95CD76; bool CReplay::bDoLoadSceneWhenDone;
CPtrList &CReplay::WorldPtrList = *(CPtrList*)0x880F90; CPtrList CReplay::WorldPtrList;
CPtrList &CReplay::BigBuildingPtrList = *(CPtrList*)0x941284; CPtrList CReplay::BigBuildingPtrList;
CWanted &CReplay::PlayerWanted = *(CWanted*)0x8F6278; CWanted CReplay::PlayerWanted;
CPlayerInfo &CReplay::PlayerInfo = *(CPlayerInfo*)0x8F5840; CPlayerInfo CReplay::PlayerInfo;
uint32 &CReplay::Time1 = *(uint32*)0x8F29DC; uint32 CReplay::Time1;
uint32 &CReplay::Time2 = *(uint32*)0x8F29D0; uint32 CReplay::Time2;
uint32 &CReplay::Time3 = *(uint32*)0x8F29D4; uint32 CReplay::Time3;
uint32 &CReplay::Time4 = *(uint32*)0x8F29C8; uint32 CReplay::Time4;
uint32 &CReplay::Frame = *(uint32*)0x8F2554; uint32 CReplay::Frame;
uint8 &CReplay::ClockHours = *(uint8*)0x95CDC5; uint8 CReplay::ClockHours;
uint8 &CReplay::ClockMinutes = *(uint8*)0x95CDA2; uint8 CReplay::ClockMinutes;
uint16 &CReplay::OldWeatherType = *(uint16*)0x95CCEA; uint16 CReplay::OldWeatherType;
uint16 &CReplay::NewWeatherType = *(uint16*)0x95CC6E; uint16 CReplay::NewWeatherType;
float &CReplay::WeatherInterpolationValue = *(float*)0x8F1A28; float CReplay::WeatherInterpolationValue;
float &CReplay::TimeStepNonClipped = *(float*)0x8F5FF4; float CReplay::TimeStepNonClipped;
float &CReplay::TimeStep = *(float*)0x8F2C24; float CReplay::TimeStep;
float &CReplay::TimeScale = *(float*)0x880E20; float CReplay::TimeScale;
float &CReplay::CameraFixedX = *(float*)0x943054; float CReplay::CameraFixedX;
float &CReplay::CameraFixedY = *(float*)0x943058; float CReplay::CameraFixedY;
float &CReplay::CameraFixedZ = *(float*)0x94305C; float CReplay::CameraFixedZ;
int32 &CReplay::OldRadioStation = *(int32*)0x94151C; int32 CReplay::OldRadioStation;
int8 &CReplay::CameraMode = *(int8*)0x95CD5F; int8 CReplay::CameraMode;
bool &CReplay::bAllowLookAroundCam = *(bool*)0x95CDCD; bool CReplay::bAllowLookAroundCam;
float &CReplay::LoadSceneX = *(float*)0x880F9C; float CReplay::LoadSceneX;
float &CReplay::LoadSceneY = *(float*)0x880F98; float CReplay::LoadSceneY;
float &CReplay::LoadSceneZ = *(float*)0x880F94; float CReplay::LoadSceneZ;
float &CReplay::CameraFocusX = *(float*)0x942F5C; float CReplay::CameraFocusX;
float &CReplay::CameraFocusY = *(float*)0x942F74; float CReplay::CameraFocusY;
float &CReplay::CameraFocusZ = *(float*)0x942F58; float CReplay::CameraFocusZ;
bool &CReplay::bPlayerInRCBuggy = *(bool*)0x95CDC3; bool CReplay::bPlayerInRCBuggy;
float &CReplay::fDistanceLookAroundCam = *(float*)0x885B44; float CReplay::fDistanceLookAroundCam;
float &CReplay::fBetaAngleLookAroundCam = *(float*)0x94072C; float CReplay::fBetaAngleLookAroundCam;
float &CReplay::fAlphaAngleLookAroundCam = *(float*)0x8F2A0C; float CReplay::fAlphaAngleLookAroundCam;
static void(*(&CBArray)[30])(CAnimBlendAssociation*, void*) = *(void(*(*)[30])(CAnimBlendAssociation*, void*))*(uintptr*)0x61052C; static void(*CBArray[])(CAnimBlendAssociation*, void*) =
static void(*CBArray_RE3[])(CAnimBlendAssociation*, void*) =
{ {
nil, &CPed::PedGetupCB, &CPed::PedStaggerCB, &CPed::PedEvadeCB, &CPed::FinishDieAnimCB, nil, &CPed::PedGetupCB, &CPed::PedStaggerCB, &CPed::PedEvadeCB, &CPed::FinishDieAnimCB,
&CPed::FinishedWaitCB, &CPed::FinishLaunchCB, &CPed::FinishHitHeadCB, &CPed::PedAnimGetInCB, &CPed::PedAnimDoorOpenCB, &CPed::FinishedWaitCB, &CPed::FinishLaunchCB, &CPed::FinishHitHeadCB, &CPed::PedAnimGetInCB, &CPed::PedAnimDoorOpenCB,
@ -119,16 +118,13 @@ static uint8 FindCBFunctionID(void(*f)(CAnimBlendAssociation*, void*))
if (CBArray[i] == f) if (CBArray[i] == f)
return i; return i;
} }
for (int i = 0; i < sizeof(CBArray_RE3) / sizeof(*CBArray_RE3); i++) {
if (CBArray_RE3[i] == f)
return i;
}
return 0; return 0;
} }
static void(*FindCBFunction(uint8 id))(CAnimBlendAssociation*, void*) static void(*FindCBFunction(uint8 id))(CAnimBlendAssociation*, void*)
{ {
return CBArray_RE3[id]; return CBArray[id];
} }
static void ApplyPanelDamageToCar(uint32 panels, CAutomobile* vehicle, bool flying) static void ApplyPanelDamageToCar(uint32 panels, CAutomobile* vehicle, bool flying)

View File

@ -205,68 +205,68 @@ class CReplay
static_assert(sizeof(tVehicleUpdatePacket) == 48, "tVehicleUpdatePacket: error"); static_assert(sizeof(tVehicleUpdatePacket) == 48, "tVehicleUpdatePacket: error");
private: private:
static uint8 &Mode; static uint8 Mode;
static CAddressInReplayBuffer &Record; static CAddressInReplayBuffer Record;
static CAddressInReplayBuffer &Playback; static CAddressInReplayBuffer Playback;
static uint8 *&pBuf0; static uint8 *pBuf0;
static CAutomobile *&pBuf1; static CAutomobile *pBuf1;
static uint8 *&pBuf2; static uint8 *pBuf2;
static CPlayerPed *&pBuf3; static CPlayerPed *pBuf3;
static uint8 *&pBuf4; static uint8 *pBuf4;
static CCutsceneHead *&pBuf5; static CCutsceneHead *pBuf5;
static uint8 *&pBuf6; static uint8 *pBuf6;
static CPtrNode *&pBuf7; static CPtrNode *pBuf7;
static uint8 *&pBuf8; static uint8 *pBuf8;
static CEntryInfoNode *&pBuf9; static CEntryInfoNode *pBuf9;
static uint8 *&pBuf10; static uint8 *pBuf10;
static CDummyPed *&pBuf11; static CDummyPed *pBuf11;
static uint8 *&pRadarBlips; static uint8 *pRadarBlips;
static uint8 *&pStoredCam; static uint8 *pStoredCam;
static uint8 *&pWorld1; static uint8 *pWorld1;
static CReference *&pEmptyReferences; static CReference *pEmptyReferences;
static CStoredDetailedAnimationState *&pPedAnims; static CStoredDetailedAnimationState *pPedAnims;
static uint8 *&pPickups; static uint8 *pPickups;
static uint8 *&pReferences; static uint8 *pReferences;
static uint8 (&BufferStatus)[NUM_REPLAYBUFFERS]; static uint8 BufferStatus[NUM_REPLAYBUFFERS];
static uint8 (&Buffers)[NUM_REPLAYBUFFERS][REPLAYBUFFERSIZE]; static uint8 Buffers[NUM_REPLAYBUFFERS][REPLAYBUFFERSIZE];
static bool &bPlayingBackFromFile; static bool bPlayingBackFromFile;
static bool &bReplayEnabled; static bool bReplayEnabled;
static uint32 &SlowMotion; static uint32 SlowMotion;
static uint32 &FramesActiveLookAroundCam; static uint32 FramesActiveLookAroundCam;
static bool &bDoLoadSceneWhenDone; static bool bDoLoadSceneWhenDone;
static CPtrList &WorldPtrList; static CPtrList WorldPtrList;
static CPtrList &BigBuildingPtrList; static CPtrList BigBuildingPtrList;
static CWanted &PlayerWanted; static CWanted PlayerWanted;
static CPlayerInfo &PlayerInfo; static CPlayerInfo PlayerInfo;
static uint32 &Time1; static uint32 Time1;
static uint32 &Time2; static uint32 Time2;
static uint32 &Time3; static uint32 Time3;
static uint32 &Time4; static uint32 Time4;
static uint32 &Frame; static uint32 Frame;
static uint8 &ClockHours; static uint8 ClockHours;
static uint8 &ClockMinutes; static uint8 ClockMinutes;
static uint16 &OldWeatherType; static uint16 OldWeatherType;
static uint16 &NewWeatherType; static uint16 NewWeatherType;
static float &WeatherInterpolationValue; static float WeatherInterpolationValue;
static float &TimeStepNonClipped; static float TimeStepNonClipped;
static float &TimeStep; static float TimeStep;
static float &TimeScale; static float TimeScale;
static float &CameraFixedX; static float CameraFixedX;
static float &CameraFixedY; static float CameraFixedY;
static float &CameraFixedZ; static float CameraFixedZ;
static int32 &OldRadioStation; static int32 OldRadioStation;
static int8 &CameraMode; static int8 CameraMode;
static bool &bAllowLookAroundCam; static bool bAllowLookAroundCam;
static float &LoadSceneX; static float LoadSceneX;
static float &LoadSceneY; static float LoadSceneY;
static float &LoadSceneZ; static float LoadSceneZ;
static float &CameraFocusX; static float CameraFocusX;
static float &CameraFocusY; static float CameraFocusY;
static float &CameraFocusZ; static float CameraFocusZ;
static bool &bPlayerInRCBuggy; static bool bPlayerInRCBuggy;
static float &fDistanceLookAroundCam; static float fDistanceLookAroundCam;
static float &fAlphaAngleLookAroundCam; static float fAlphaAngleLookAroundCam;
static float &fBetaAngleLookAroundCam; static float fBetaAngleLookAroundCam;
public: public:
static void Init(void); static void Init(void);

View File

@ -4,22 +4,22 @@
#include "Zones.h" #include "Zones.h"
#include "PathFind.h" #include "PathFind.h"
uint8 &CRestart::OverrideHospitalLevel = *(uint8*)0x95CD4C; uint8 CRestart::OverrideHospitalLevel;
uint8 &CRestart::OverridePoliceStationLevel = *(uint8*)0x95CD50; uint8 CRestart::OverridePoliceStationLevel;
bool &CRestart::bFadeInAfterNextArrest = *(bool*)0x95CD69; bool CRestart::bFadeInAfterNextArrest;
bool &CRestart::bFadeInAfterNextDeath = *(bool*)0x95CD9D; bool CRestart::bFadeInAfterNextDeath;
bool &CRestart::bOverrideRestart = *(bool*)0x95CD5D; bool CRestart::bOverrideRestart;
CVector &CRestart::OverridePosition = *(CVector*)0x8E2C00; CVector CRestart::OverridePosition;
float &CRestart::OverrideHeading = *(float*)0x8F2A18; float CRestart::OverrideHeading;
CVector(&CRestart::HospitalRestartPoints)[NUM_RESTART_POINTS] = *(CVector(*)[NUM_RESTART_POINTS])*(uintptr*)0x87F9B0; CVector CRestart::HospitalRestartPoints[NUM_RESTART_POINTS];
float(&CRestart::HospitalRestartHeadings)[NUM_RESTART_POINTS] = *(float(*)[NUM_RESTART_POINTS])*(uintptr*)0x6F1D40; float CRestart::HospitalRestartHeadings[NUM_RESTART_POINTS];
uint16 &CRestart::NumberOfHospitalRestarts = *(uint16*)0x95CC46; uint16 CRestart::NumberOfHospitalRestarts;
CVector(&CRestart::PoliceRestartPoints)[NUM_RESTART_POINTS] = *(CVector(*)[NUM_RESTART_POINTS])*(uintptr*)0x846228; CVector CRestart::PoliceRestartPoints[NUM_RESTART_POINTS];
float(&CRestart::PoliceRestartHeadings)[NUM_RESTART_POINTS] = *(float(*)[NUM_RESTART_POINTS])*(uintptr*)0x6F1D20; float CRestart::PoliceRestartHeadings[NUM_RESTART_POINTS];
uint16 &CRestart::NumberOfPoliceRestarts = *(uint16*)0x95CC44; uint16 CRestart::NumberOfPoliceRestarts;
void void
CRestart::Initialise() CRestart::Initialise()

View File

@ -17,20 +17,20 @@ public:
static void LoadAllRestartPoints(uint8 *buf, uint32 size); static void LoadAllRestartPoints(uint8 *buf, uint32 size);
static void SaveAllRestartPoints(uint8 *buf, uint32 *size); static void SaveAllRestartPoints(uint8 *buf, uint32 *size);
static uint8 &OverrideHospitalLevel; static uint8 OverrideHospitalLevel;
static uint8 &OverridePoliceStationLevel; static uint8 OverridePoliceStationLevel;
static bool &bFadeInAfterNextArrest; static bool bFadeInAfterNextArrest;
static bool &bFadeInAfterNextDeath; static bool bFadeInAfterNextDeath;
static bool &bOverrideRestart; static bool bOverrideRestart;
static CVector &OverridePosition; static CVector OverridePosition;
static float &OverrideHeading; static float OverrideHeading;
static CVector(&HospitalRestartPoints)[NUM_RESTART_POINTS]; static CVector HospitalRestartPoints[NUM_RESTART_POINTS];
static float (&HospitalRestartHeadings)[NUM_RESTART_POINTS]; static float HospitalRestartHeadings[NUM_RESTART_POINTS];
static uint16 &NumberOfHospitalRestarts; static uint16 NumberOfHospitalRestarts;
static CVector (&PoliceRestartPoints)[NUM_RESTART_POINTS]; static CVector PoliceRestartPoints[NUM_RESTART_POINTS];
static float (&PoliceRestartHeadings)[NUM_RESTART_POINTS]; static float PoliceRestartHeadings[NUM_RESTART_POINTS];
static uint16 &NumberOfPoliceRestarts; static uint16 NumberOfPoliceRestarts;
}; };

View File

@ -15,9 +15,9 @@
#include "CarCtrl.h" #include "CarCtrl.h"
#include "General.h" #include "General.h"
int16 &CRoadBlocks::NumRoadBlocks = *(int16*)0x95CC34; int16 CRoadBlocks::NumRoadBlocks;
int16 (&CRoadBlocks::RoadBlockObjects)[NUMROADBLOCKS] = *(int16(*)[NUMROADBLOCKS]) * (uintptr*)0x72B3A8; int16 CRoadBlocks::RoadBlockObjects[NUMROADBLOCKS];
bool (&CRoadBlocks::InOrOut)[NUMROADBLOCKS] = *(bool(*)[NUMROADBLOCKS]) * (uintptr*)0x733810; bool CRoadBlocks::InOrOut[NUMROADBLOCKS];
void void
CRoadBlocks::Init(void) CRoadBlocks::Init(void)

View File

@ -6,9 +6,9 @@ class CVehicle;
class CRoadBlocks class CRoadBlocks
{ {
public: public:
static int16 (&NumRoadBlocks); static int16 NumRoadBlocks;
static int16 (&RoadBlockObjects)[NUMROADBLOCKS]; static int16 RoadBlockObjects[NUMROADBLOCKS];
static bool (&InOrOut)[NUMROADBLOCKS]; static bool InOrOut[NUMROADBLOCKS];
static void Init(void); static void Init(void);
static void GenerateRoadBlockCopsForCar(CVehicle* pVehicle, int32 roadBlockType, int16 roadBlockNode); static void GenerateRoadBlockCopsForCar(CVehicle* pVehicle, int32 roadBlockType, int16 roadBlockNode);

View File

@ -87,47 +87,47 @@
#define FEET_IN_METER 3.33f #define FEET_IN_METER 3.33f
#endif #endif
uint8 (&CTheScripts::ScriptSpace)[SIZE_SCRIPT_SPACE] = *(uint8(*)[SIZE_SCRIPT_SPACE])*(uintptr*)0x74B248; uint8 CTheScripts::ScriptSpace[SIZE_SCRIPT_SPACE];
CRunningScript(&CTheScripts::ScriptsArray)[MAX_NUM_SCRIPTS] = *(CRunningScript(*)[MAX_NUM_SCRIPTS])*(uintptr*)0x6F5C08; CRunningScript CTheScripts::ScriptsArray[MAX_NUM_SCRIPTS];
int32(&CTheScripts::BaseBriefIdForContact)[MAX_NUM_CONTACTS] = *(int32(*)[MAX_NUM_CONTACTS])*(uintptr*)0x880200; int32 CTheScripts::BaseBriefIdForContact[MAX_NUM_CONTACTS];
int32(&CTheScripts::OnAMissionForContactFlag)[MAX_NUM_CONTACTS] = *(int32(*)[MAX_NUM_CONTACTS])*(uintptr*)0x8622F0; int32 CTheScripts::OnAMissionForContactFlag[MAX_NUM_CONTACTS];
intro_text_line (&CTheScripts::IntroTextLines)[MAX_NUM_INTRO_TEXT_LINES] = *(intro_text_line (*)[MAX_NUM_INTRO_TEXT_LINES])*(uintptr*)0x70EA68; intro_text_line CTheScripts::IntroTextLines[MAX_NUM_INTRO_TEXT_LINES];
intro_script_rectangle (&CTheScripts::IntroRectangles)[MAX_NUM_INTRO_RECTANGLES] = *(intro_script_rectangle (*)[MAX_NUM_INTRO_RECTANGLES])*(uintptr*)0x72D108; intro_script_rectangle CTheScripts::IntroRectangles[MAX_NUM_INTRO_RECTANGLES];
CSprite2d (&CTheScripts::ScriptSprites)[MAX_NUM_SCRIPT_SRPITES] = *(CSprite2d(*)[MAX_NUM_SCRIPT_SRPITES])*(uintptr*)0x72B090; CSprite2d CTheScripts::ScriptSprites[MAX_NUM_SCRIPT_SRPITES];
script_sphere_struct(&CTheScripts::ScriptSphereArray)[MAX_NUM_SCRIPT_SPHERES] = *(script_sphere_struct(*)[MAX_NUM_SCRIPT_SPHERES])*(uintptr*)0x727D60; script_sphere_struct CTheScripts::ScriptSphereArray[MAX_NUM_SCRIPT_SPHERES];
tCollectiveData(&CTheScripts::CollectiveArray)[MAX_NUM_COLLECTIVES] = *(tCollectiveData(*)[MAX_NUM_COLLECTIVES])*(uintptr*)0x6FA008; tCollectiveData CTheScripts::CollectiveArray[MAX_NUM_COLLECTIVES];
tUsedObject(&CTheScripts::UsedObjectArray)[MAX_NUM_USED_OBJECTS] = *(tUsedObject(*)[MAX_NUM_USED_OBJECTS])*(uintptr*)0x6E69C8; tUsedObject CTheScripts::UsedObjectArray[MAX_NUM_USED_OBJECTS];
int32(&CTheScripts::MultiScriptArray)[MAX_NUM_MISSION_SCRIPTS] = *(int32(*)[MAX_NUM_MISSION_SCRIPTS])*(uintptr*)0x6F0558; int32 CTheScripts::MultiScriptArray[MAX_NUM_MISSION_SCRIPTS];
tBuildingSwap(&CTheScripts::BuildingSwapArray)[MAX_NUM_BUILDING_SWAPS] = *(tBuildingSwap(*)[MAX_NUM_BUILDING_SWAPS])*(uintptr*)0x880E30; tBuildingSwap CTheScripts::BuildingSwapArray[MAX_NUM_BUILDING_SWAPS];
CEntity*(&CTheScripts::InvisibilitySettingArray)[MAX_NUM_INVISIBILITY_SETTINGS] = *(CEntity*(*)[MAX_NUM_INVISIBILITY_SETTINGS])*(uintptr*)0x8620F0; CEntity* CTheScripts::InvisibilitySettingArray[MAX_NUM_INVISIBILITY_SETTINGS];
CStoredLine (&CTheScripts::aStoredLines)[MAX_NUM_STORED_LINES] = *(CStoredLine(*)[MAX_NUM_STORED_LINES])*(uintptr*)0x743018; CStoredLine CTheScripts::aStoredLines[MAX_NUM_STORED_LINES];
bool &CTheScripts::DbgFlag = *(bool*)0x95CD87; bool CTheScripts::DbgFlag;
uint32 &CTheScripts::OnAMissionFlag = *(uint32*)0x8F1B64; uint32 CTheScripts::OnAMissionFlag;
int32 &CTheScripts::StoreVehicleIndex = *(int32*)0x8F5F3C; int32 CTheScripts::StoreVehicleIndex;
bool &CTheScripts::StoreVehicleWasRandom = *(bool*)0x95CDBC; bool CTheScripts::StoreVehicleWasRandom;
CRunningScript *&CTheScripts::pIdleScripts = *(CRunningScript**)0x9430D4; CRunningScript *CTheScripts::pIdleScripts;
CRunningScript *&CTheScripts::pActiveScripts = *(CRunningScript**)0x8E2BF4; CRunningScript *CTheScripts::pActiveScripts;
uint32 &CTheScripts::NextFreeCollectiveIndex = *(uint32*)0x942F98; uint32 CTheScripts::NextFreeCollectiveIndex;
int32 &CTheScripts::LastRandomPedId = *(int32*)0x8F251C; int32 CTheScripts::LastRandomPedId;
uint16 &CTheScripts::NumberOfUsedObjects = *(uint16*)0x95CC72; uint16 CTheScripts::NumberOfUsedObjects;
bool &CTheScripts::bAlreadyRunningAMissionScript = *(bool*)0x95CDB3; bool CTheScripts::bAlreadyRunningAMissionScript;
bool &CTheScripts::bUsingAMultiScriptFile = *(bool*)0x95CD55; bool CTheScripts::bUsingAMultiScriptFile;
uint16 &CTheScripts::NumberOfMissionScripts = *(uint16*)0x95CC9A; uint16 CTheScripts::NumberOfMissionScripts;
uint32 &CTheScripts::LargestMissionScriptSize = *(uint32*)0x9414C8; uint32 CTheScripts::LargestMissionScriptSize;
uint32 &CTheScripts::MainScriptSize = *(uint32*)0x9405A4; uint32 CTheScripts::MainScriptSize;
uint8 &CTheScripts::FailCurrentMission = *(uint8*)0x95CD41; uint8 CTheScripts::FailCurrentMission;
uint8 &CTheScripts::CountdownToMakePlayerUnsafe = *(uint8*)0x95CD51; uint8 CTheScripts::CountdownToMakePlayerUnsafe;
uint8 &CTheScripts::DelayMakingPlayerUnsafeThisTime = *(uint8*)0x95CD88; uint8 CTheScripts::DelayMakingPlayerUnsafeThisTime;
uint16 &CTheScripts::NumScriptDebugLines = *(uint16*)0x95CC42; uint16 CTheScripts::NumScriptDebugLines;
uint16 &CTheScripts::NumberOfIntroRectanglesThisFrame = *(uint16*)0x95CC88; uint16 CTheScripts::NumberOfIntroRectanglesThisFrame;
uint16 &CTheScripts::NumberOfIntroTextLinesThisFrame = *(uint16*)0x95CC32; uint16 CTheScripts::NumberOfIntroTextLinesThisFrame;
uint8 &CTheScripts::UseTextCommands = *(uint8*)0x95CD57; uint8 CTheScripts::UseTextCommands;
CMissionCleanup (&CTheScripts::MissionCleanup) = *(CMissionCleanup*)0x8F2A24; CMissionCleanup CTheScripts::MissionCleanup;
CUpsideDownCarCheck (&CTheScripts::UpsideDownCars) = *(CUpsideDownCarCheck*)0x6EE450; CUpsideDownCarCheck CTheScripts::UpsideDownCars;
CStuckCarCheck (&CTheScripts::StuckCars) = *(CStuckCarCheck*)0x87C588; CStuckCarCheck CTheScripts::StuckCars;
uint16 &CTheScripts::CommandsExecuted = *(uint16*)0x95CCA6; uint16 CTheScripts::CommandsExecuted;
uint16 &CTheScripts::ScriptsUpdated = *(uint16*)0x95CC5E; uint16 CTheScripts::ScriptsUpdated;
int32(&ScriptParams)[32] = *(int32(*)[32])*(uintptr*)0x6ED460; int32 ScriptParams[32];
CMissionCleanup::CMissionCleanup() CMissionCleanup::CMissionCleanup()
{ {

View File

@ -240,46 +240,46 @@ enum {
class CTheScripts class CTheScripts
{ {
static uint8(&ScriptSpace)[SIZE_SCRIPT_SPACE]; static uint8 ScriptSpace[SIZE_SCRIPT_SPACE];
static CRunningScript(&ScriptsArray)[MAX_NUM_SCRIPTS]; static CRunningScript ScriptsArray[MAX_NUM_SCRIPTS];
static int32(&BaseBriefIdForContact)[MAX_NUM_CONTACTS]; static int32 BaseBriefIdForContact[MAX_NUM_CONTACTS];
static int32(&OnAMissionForContactFlag)[MAX_NUM_CONTACTS]; static int32 OnAMissionForContactFlag[MAX_NUM_CONTACTS];
static intro_text_line(&IntroTextLines)[MAX_NUM_INTRO_TEXT_LINES]; static intro_text_line IntroTextLines[MAX_NUM_INTRO_TEXT_LINES];
static intro_script_rectangle(&IntroRectangles)[MAX_NUM_INTRO_RECTANGLES]; static intro_script_rectangle IntroRectangles[MAX_NUM_INTRO_RECTANGLES];
static CSprite2d(&ScriptSprites)[MAX_NUM_SCRIPT_SRPITES]; static CSprite2d ScriptSprites[MAX_NUM_SCRIPT_SRPITES];
static script_sphere_struct(&ScriptSphereArray)[MAX_NUM_SCRIPT_SPHERES]; static script_sphere_struct ScriptSphereArray[MAX_NUM_SCRIPT_SPHERES];
static tCollectiveData(&CollectiveArray)[MAX_NUM_COLLECTIVES]; static tCollectiveData CollectiveArray[MAX_NUM_COLLECTIVES];
static tUsedObject(&UsedObjectArray)[MAX_NUM_USED_OBJECTS]; static tUsedObject UsedObjectArray[MAX_NUM_USED_OBJECTS];
static int32(&MultiScriptArray)[MAX_NUM_MISSION_SCRIPTS]; static int32 MultiScriptArray[MAX_NUM_MISSION_SCRIPTS];
static tBuildingSwap(&BuildingSwapArray)[MAX_NUM_BUILDING_SWAPS]; static tBuildingSwap BuildingSwapArray[MAX_NUM_BUILDING_SWAPS];
static CEntity*(&InvisibilitySettingArray)[MAX_NUM_INVISIBILITY_SETTINGS]; static CEntity* InvisibilitySettingArray[MAX_NUM_INVISIBILITY_SETTINGS];
static CStoredLine(&aStoredLines)[MAX_NUM_STORED_LINES]; static CStoredLine aStoredLines[MAX_NUM_STORED_LINES];
static bool &DbgFlag; static bool DbgFlag;
static uint32 &OnAMissionFlag; static uint32 OnAMissionFlag;
static CMissionCleanup &MissionCleanup; static CMissionCleanup MissionCleanup;
static CStuckCarCheck &StuckCars; static CStuckCarCheck StuckCars;
static CUpsideDownCarCheck &UpsideDownCars; static CUpsideDownCarCheck UpsideDownCars;
static int32 &StoreVehicleIndex; static int32 StoreVehicleIndex;
static bool &StoreVehicleWasRandom; static bool StoreVehicleWasRandom;
static CRunningScript *&pIdleScripts; static CRunningScript *pIdleScripts;
static CRunningScript *&pActiveScripts; static CRunningScript *pActiveScripts;
static uint32 &NextFreeCollectiveIndex; static uint32 NextFreeCollectiveIndex;
static int32 &LastRandomPedId; static int32 LastRandomPedId;
static uint16 &NumberOfUsedObjects; static uint16 NumberOfUsedObjects;
static bool &bAlreadyRunningAMissionScript; static bool bAlreadyRunningAMissionScript;
static bool &bUsingAMultiScriptFile; static bool bUsingAMultiScriptFile;
static uint16 &NumberOfMissionScripts; static uint16 NumberOfMissionScripts;
static uint32 &LargestMissionScriptSize; static uint32 LargestMissionScriptSize;
static uint32 &MainScriptSize; static uint32 MainScriptSize;
static uint8 &FailCurrentMission; static uint8 FailCurrentMission;
static uint8 &CountdownToMakePlayerUnsafe; static uint8 CountdownToMakePlayerUnsafe;
static uint8 &DelayMakingPlayerUnsafeThisTime; static uint8 DelayMakingPlayerUnsafeThisTime;
static uint16 &NumScriptDebugLines; static uint16 NumScriptDebugLines;
static uint16 &NumberOfIntroRectanglesThisFrame; static uint16 NumberOfIntroRectanglesThisFrame;
static uint16 &NumberOfIntroTextLinesThisFrame; static uint16 NumberOfIntroTextLinesThisFrame;
static uint8 &UseTextCommands; static uint8 UseTextCommands;
static uint16 &CommandsExecuted; static uint16 CommandsExecuted;
static uint16 &ScriptsUpdated; static uint16 ScriptsUpdated;
public: public:
static void Init(); static void Init();

View File

@ -6,7 +6,7 @@
#include "Pools.h" #include "Pools.h"
#include "World.h" #include "World.h"
CAccidentManager& gAccidentManager = *(CAccidentManager*)0x87FD10; CAccidentManager gAccidentManager;
CAccident* CAccident*
CAccidentManager::GetNextFreeAccident() CAccidentManager::GetNextFreeAccident()

View File

@ -29,4 +29,4 @@ public:
bool WorkToDoForMedics(); bool WorkToDoForMedics();
}; };
extern CAccidentManager& gAccidentManager; extern CAccidentManager gAccidentManager;

View File

@ -28,7 +28,7 @@
const float DefaultFOV = 70.0f; // beta: 80.0f const float DefaultFOV = 70.0f; // beta: 80.0f
bool PrintDebugCode = false; bool PrintDebugCode = false;
int16 &DebugCamMode = *(int16*)0x95CCF2; int16 DebugCamMode;
#ifdef FREE_CAM #ifdef FREE_CAM
bool CCamera::bFreeCam = false; bool CCamera::bFreeCam = false;

View File

@ -58,9 +58,9 @@ enum
#define PLAYER (CWorld::Players[CWorld::PlayerInFocus].m_pPed) #define PLAYER (CWorld::Players[CWorld::PlayerInFocus].m_pPed)
// NB: removed explicit TheCamera from all functions // NB: removed explicit TheCamera from all functions
CCamera &TheCamera = *(CCamera*)0x6FACF8; CCamera TheCamera;
bool &CCamera::m_bUseMouse3rdPerson = *(bool *)0x5F03D8; bool CCamera::m_bUseMouse3rdPerson = true;
bool &bDidWeProcessAnyCinemaCam = *(bool*)0x95CD46; bool bDidWeProcessAnyCinemaCam;
#ifdef IMPROVED_CAMERA #ifdef IMPROVED_CAMERA
#define KEYJUSTDOWN(k) ControlsManager.GetIsKeyboardKeyJustDown((RsKeyCodes)k) #define KEYJUSTDOWN(k) ControlsManager.GetIsKeyboardKeyJustDown((RsKeyCodes)k)

View File

@ -6,7 +6,7 @@ class CPed;
class CAutomobile; class CAutomobile;
class CGarage; class CGarage;
extern int16 &DebugCamMode; extern int16 DebugCamMode;
enum enum
{ {
@ -540,7 +540,7 @@ uint32 unknown; // some counter having to do with music
uint32 m_uiFadeTimeStarted; uint32 m_uiFadeTimeStarted;
uint32 m_uiFadeTimeStartedMusic; uint32 m_uiFadeTimeStartedMusic;
static bool &m_bUseMouse3rdPerson; static bool m_bUseMouse3rdPerson;
#ifdef FREE_CAM #ifdef FREE_CAM
static bool bFreeCam; static bool bFreeCam;
#endif #endif
@ -647,7 +647,7 @@ static_assert(offsetof(CCamera, m_vecCutSceneOffset) == 0x6F8, "CCamera: error")
static_assert(offsetof(CCamera, m_arrPathArray) == 0x7a8, "CCamera: error"); static_assert(offsetof(CCamera, m_arrPathArray) == 0x7a8, "CCamera: error");
static_assert(sizeof(CCamera) == 0xE9D8, "CCamera: wrong size"); static_assert(sizeof(CCamera) == 0xE9D8, "CCamera: wrong size");
extern CCamera &TheCamera; extern CCamera TheCamera;
void CamShakeNoPos(CCamera*, float); void CamShakeNoPos(CCamera*, float);
void MakeAngleLessThan180(float &Angle); void MakeAngleLessThan180(float &Angle);

View File

@ -6,17 +6,17 @@
#include "Stats.h" #include "Stats.h"
_TODO("gbFastTime"); _TODO("gbFastTime");
bool &gbFastTime = *(bool*)0x95CDBB; bool gbFastTime;
uint8 &CClock::ms_nGameClockHours = *(uint8*)0x95CDA6; uint8 CClock::ms_nGameClockHours;
uint8 &CClock::ms_nGameClockMinutes = *(uint8*)0x95CDC8; uint8 CClock::ms_nGameClockMinutes;
uint16 &CClock::ms_nGameClockSeconds = *(uint16*)0x95CC7C; uint16 CClock::ms_nGameClockSeconds;
uint8 &CClock::ms_Stored_nGameClockHours = *(uint8*)0x95CD7B; uint8 CClock::ms_Stored_nGameClockHours;
uint8 &CClock::ms_Stored_nGameClockMinutes = *(uint8*)0x95CD9B; uint8 CClock::ms_Stored_nGameClockMinutes;
uint16 &CClock::ms_Stored_nGameClockSeconds = *(uint16*)0x95CC9C; uint16 CClock::ms_Stored_nGameClockSeconds;
uint32 &CClock::ms_nMillisecondsPerGameMinute = *(uint32*)0x8F2C64; uint32 CClock::ms_nMillisecondsPerGameMinute;
uint32 &CClock::ms_nLastClockTick = *(uint32*)0x9430E4; uint32 CClock::ms_nLastClockTick;
bool &CClock::ms_bClockHasBeenStored = *(bool*)0x95CD82; bool CClock::ms_bClockHasBeenStored;
void void
CClock::Initialise(uint32 scale) CClock::Initialise(uint32 scale)

View File

@ -3,15 +3,15 @@
class CClock class CClock
{ {
public: public:
static uint8 &ms_nGameClockHours; static uint8 ms_nGameClockHours;
static uint8 &ms_nGameClockMinutes; static uint8 ms_nGameClockMinutes;
static uint16 &ms_nGameClockSeconds; static uint16 ms_nGameClockSeconds;
static uint8 &ms_Stored_nGameClockHours; static uint8 ms_Stored_nGameClockHours;
static uint8 &ms_Stored_nGameClockMinutes; static uint8 ms_Stored_nGameClockMinutes;
static uint16 &ms_Stored_nGameClockSeconds; static uint16 ms_Stored_nGameClockSeconds;
static uint32 &ms_nMillisecondsPerGameMinute; static uint32 ms_nMillisecondsPerGameMinute;
static uint32 &ms_nLastClockTick; static uint32 ms_nLastClockTick;
static bool &ms_bClockHasBeenStored; static bool ms_bClockHasBeenStored;
static void Initialise(uint32 scale); static void Initialise(uint32 scale);
static void Update(void); static void Update(void);

View File

@ -18,7 +18,7 @@
#include "win.h" #include "win.h"
#include "GenericGameStorage.h" #include "GenericGameStorage.h"
CControllerConfigManager &ControlsManager = *(CControllerConfigManager*)0x8F43A4; CControllerConfigManager ControlsManager;
CControllerConfigManager::CControllerConfigManager() CControllerConfigManager::CControllerConfigManager()
{ {

View File

@ -198,4 +198,4 @@ public:
VALIDATE_SIZE(CControllerConfigManager, 0x143C); VALIDATE_SIZE(CControllerConfigManager, 0x143C);
extern CControllerConfigManager &ControlsManager; extern CControllerConfigManager ControlsManager;

View File

@ -11,7 +11,6 @@
int32 CEventList::ms_nFirstFreeSlotIndex; int32 CEventList::ms_nFirstFreeSlotIndex;
CEvent gaEvent[NUMEVENTS]; CEvent gaEvent[NUMEVENTS];
//CEvent *gaEvent = (CEvent*)0x6EF830;
enum enum
{ {

View File

@ -168,8 +168,8 @@ myfeof(int fd)
} }
char *CFileMgr::ms_rootDirName = (char*)0x5F18F8; char CFileMgr::ms_rootDirName[128] = {'\0'};
char *CFileMgr::ms_dirName = (char*)0x713CA8; char CFileMgr::ms_dirName[128];
void void
CFileMgr::Initialise(void) CFileMgr::Initialise(void)

View File

@ -2,8 +2,8 @@
class CFileMgr class CFileMgr
{ {
static char *ms_rootDirName; //[128]; static char ms_rootDirName[128];
static char *ms_dirName; //[128]; static char ms_dirName[128];
public: public:
static void Initialise(void); static void Initialise(void);
static void ChangeDir(const char *dir); static void ChangeDir(const char *dir);

View File

@ -16,7 +16,7 @@
#include "Ped.h" #include "Ped.h"
#include "Fire.h" #include "Fire.h"
CFireManager &gFireManager = *(CFireManager*)0x8F31D0; CFireManager gFireManager;
CFire::CFire() CFire::CFire()
{ {

View File

@ -48,4 +48,4 @@ public:
void RemoveScriptFire(int16 index); void RemoveScriptFire(int16 index);
void SetScriptFireAudio(int16 index, bool state); void SetScriptFireAudio(int16 index, bool state);
}; };
extern CFireManager &gFireManager; extern CFireManager gFireManager;

View File

@ -93,7 +93,7 @@ int8 CMenuManager::m_PrefsSpeakers;
int32 CMenuManager::m_ControlMethod; int32 CMenuManager::m_ControlMethod;
int8 CMenuManager::m_PrefsDMA = 1; int8 CMenuManager::m_PrefsDMA = 1;
int32 CMenuManager::m_PrefsLanguage; int32 CMenuManager::m_PrefsLanguage;
uint8 CMenuManager::m_PrefsStereoMono; // *(bool*)0x95CDB5; // unused except restore settings uint8 CMenuManager::m_PrefsStereoMono; // unused except restore settings
bool CMenuManager::m_PrefsAllowNastyGame = true; bool CMenuManager::m_PrefsAllowNastyGame = true;
bool CMenuManager::m_bStartUpFrontEndRequested; bool CMenuManager::m_bStartUpFrontEndRequested;

View File

@ -89,19 +89,19 @@
eLevelName &CGame::currLevel = *(eLevelName*)0x941514; eLevelName CGame::currLevel;
bool &CGame::bDemoMode = *(bool*)0x5F4DD0; bool CGame::bDemoMode = true;
bool &CGame::nastyGame = *(bool*)0x5F4DD4; bool CGame::nastyGame = true;
bool &CGame::frenchGame = *(bool*)0x95CDCB; bool CGame::frenchGame;
bool &CGame::germanGame = *(bool*)0x95CD1E; bool CGame::germanGame;
bool &CGame::noProstitutes = *(bool*)0x95CDCF; bool CGame::noProstitutes;
bool &CGame::playingIntro = *(bool*)0x95CDC2; bool CGame::playingIntro;
char *CGame::aDatFile = (char*)0x773A48; char CGame::aDatFile[32];
#ifdef MORE_LANGUAGES #ifdef MORE_LANGUAGES
bool CGame::russianGame = false; bool CGame::russianGame = false;
#endif #endif
int &gameTxdSlot = *(int*)0x628D88; int gameTxdSlot;
bool bool
CGame::InitialiseOnceBeforeRW(void) CGame::InitialiseOnceBeforeRW(void)
@ -115,7 +115,9 @@ CGame::InitialiseOnceBeforeRW(void)
bool bool
CGame::InitialiseRenderWare(void) CGame::InitialiseRenderWare(void)
{ {
#ifdef USE_TEXTURE_POOL
_TexturePoolsInitialise(); _TexturePoolsInitialise();
#endif
CTxdStore::Initialise(); CTxdStore::Initialise();
CVisibilityPlugins::Initialise(); CVisibilityPlugins::Initialise();
@ -188,7 +190,9 @@ void CGame::ShutdownRenderWare(void)
CVisibilityPlugins::Shutdown(); CVisibilityPlugins::Shutdown();
#ifdef USE_TEXTURE_POOL
_TexturePoolsShutdown(); _TexturePoolsShutdown();
#endif
} }
bool CGame::InitialiseOnceAfterRW(void) bool CGame::InitialiseOnceAfterRW(void)

View File

@ -11,17 +11,17 @@ enum eLevelName
class CGame class CGame
{ {
public: public:
static eLevelName &currLevel; static eLevelName currLevel;
static bool &bDemoMode; static bool bDemoMode;
static bool &nastyGame; static bool nastyGame;
static bool &frenchGame; static bool frenchGame;
static bool &germanGame; static bool germanGame;
#ifdef MORE_LANGUAGES #ifdef MORE_LANGUAGES
static bool russianGame; static bool russianGame;
#endif #endif
static bool &noProstitutes; static bool noProstitutes;
static bool &playingIntro; static bool playingIntro;
static char *aDatFile; //[32]; static char aDatFile[32];
static bool InitialiseOnceBeforeRW(void); static bool InitialiseOnceBeforeRW(void);
static bool InitialiseRenderWare(void); static bool InitialiseRenderWare(void);

View File

@ -7,8 +7,8 @@
#include "main.h" #include "main.h"
#include "Population.h" #include "Population.h"
float CIniFile::PedNumberMultiplier = 1.0f;// = *(float*)0x6182F4; float CIniFile::PedNumberMultiplier = 1.0f;
float CIniFile::CarNumberMultiplier = 1.0f;// = *(float*)0x6182F8; float CIniFile::CarNumberMultiplier = 1.0f;
void CIniFile::LoadIniFile() void CIniFile::LoadIniFile()
{ {

View File

@ -35,26 +35,26 @@
#include "Wanted.h" #include "Wanted.h"
#include "General.h" #include "General.h"
CPad *Pads = (CPad*)0x6F0360; // [2] CPad Pads[MAX_PADS];
CMousePointerStateHelper &MousePointerStateHelper = *(CMousePointerStateHelper*)0x95CC8C; CMousePointerStateHelper MousePointerStateHelper;
bool &CPad::bDisplayNoControllerMessage = *(bool *)0x95CD52; bool CPad::bDisplayNoControllerMessage;
bool &CPad::bObsoleteControllerMessage = *(bool *)0x95CDB8; bool CPad::bObsoleteControllerMessage;
bool CPad::bOldDisplayNoControllerMessage; bool CPad::bOldDisplayNoControllerMessage;
bool &CPad::m_bMapPadOneToPadTwo = *(bool *)0x95CD48; bool CPad::m_bMapPadOneToPadTwo;
CKeyboardState &CPad::OldKeyState = *(CKeyboardState*)0x6F1E70; CKeyboardState CPad::OldKeyState;
CKeyboardState &CPad::NewKeyState = *(CKeyboardState*)0x6E60D0; CKeyboardState CPad::NewKeyState;
CKeyboardState &CPad::TempKeyState = *(CKeyboardState*)0x774DE8; CKeyboardState CPad::TempKeyState;
char CPad::KeyBoardCheatString[20]; char CPad::KeyBoardCheatString[20];
CMouseControllerState &CPad::OldMouseControllerState = *(CMouseControllerState*)0x8472A0; CMouseControllerState CPad::OldMouseControllerState;
CMouseControllerState &CPad::NewMouseControllerState = *(CMouseControllerState*)0x8809F0; CMouseControllerState CPad::NewMouseControllerState;
CMouseControllerState &CPad::PCTempMouseControllerState = *(CMouseControllerState*)0x6F1E60; CMouseControllerState CPad::PCTempMouseControllerState;
_TODO("gbFastTime"); _TODO("gbFastTime");
extern bool &gbFastTime; extern bool gbFastTime;
void WeaponCheat() void WeaponCheat()
{ {

View File

@ -66,7 +66,7 @@ public:
VALIDATE_SIZE(CMousePointerStateHelper, 0x2); VALIDATE_SIZE(CMousePointerStateHelper, 0x2);
extern CMousePointerStateHelper &MousePointerStateHelper; extern CMousePointerStateHelper MousePointerStateHelper;
class CKeyboardState class CKeyboardState
@ -163,18 +163,18 @@ public:
CPad() { } CPad() { }
~CPad() { } ~CPad() { }
static bool &bDisplayNoControllerMessage; static bool bDisplayNoControllerMessage;
static bool &bObsoleteControllerMessage; static bool bObsoleteControllerMessage;
static bool bOldDisplayNoControllerMessage; static bool bOldDisplayNoControllerMessage;
static bool &m_bMapPadOneToPadTwo; static bool m_bMapPadOneToPadTwo;
static CKeyboardState &OldKeyState; static CKeyboardState OldKeyState;
static CKeyboardState &NewKeyState; static CKeyboardState NewKeyState;
static CKeyboardState &TempKeyState; static CKeyboardState TempKeyState;
static char KeyBoardCheatString[20]; static char KeyBoardCheatString[20];
static CMouseControllerState &OldMouseControllerState; static CMouseControllerState OldMouseControllerState;
static CMouseControllerState &NewMouseControllerState; static CMouseControllerState NewMouseControllerState;
static CMouseControllerState &PCTempMouseControllerState; static CMouseControllerState PCTempMouseControllerState;
#ifdef GTA_PS2_STUFF #ifdef GTA_PS2_STUFF
@ -450,4 +450,4 @@ public:
}; };
VALIDATE_SIZE(CPad, 0xFC); VALIDATE_SIZE(CPad, 0xFC);
extern CPad *Pads; //[2] extern CPad Pads[MAX_PADS];

View File

@ -10,15 +10,15 @@
#include "Wanted.h" #include "Wanted.h"
#include "World.h" #include "World.h"
CCPtrNodePool *&CPools::ms_pPtrNodePool = *(CCPtrNodePool**)0x943044; CCPtrNodePool *CPools::ms_pPtrNodePool;
CEntryInfoNodePool *&CPools::ms_pEntryInfoNodePool = *(CEntryInfoNodePool**)0x941448; CEntryInfoNodePool *CPools::ms_pEntryInfoNodePool;
CPedPool *&CPools::ms_pPedPool = *(CPedPool**)0x8F2C60; CPedPool *CPools::ms_pPedPool;
CVehiclePool *&CPools::ms_pVehiclePool = *(CVehiclePool**)0x9430DC; CVehiclePool *CPools::ms_pVehiclePool;
CBuildingPool *&CPools::ms_pBuildingPool = *(CBuildingPool**)0x8F2C04; CBuildingPool *CPools::ms_pBuildingPool;
CTreadablePool *&CPools::ms_pTreadablePool = *(CTreadablePool**)0x8F2568; CTreadablePool *CPools::ms_pTreadablePool;
CObjectPool *&CPools::ms_pObjectPool = *(CObjectPool**)0x880E28; CObjectPool *CPools::ms_pObjectPool;
CDummyPool *&CPools::ms_pDummyPool = *(CDummyPool**)0x8F2C18; CDummyPool *CPools::ms_pDummyPool;
CAudioScriptObjectPool *&CPools::ms_pAudioScriptObjectPool = *(CAudioScriptObjectPool**)0x8F1B6C; CAudioScriptObjectPool *CPools::ms_pAudioScriptObjectPool;
void void
CPools::Initialise(void) CPools::Initialise(void)

View File

@ -22,15 +22,15 @@ typedef CPool<cAudioScriptObject> CAudioScriptObjectPool;
class CPools class CPools
{ {
static CCPtrNodePool *&ms_pPtrNodePool; static CCPtrNodePool *ms_pPtrNodePool;
static CEntryInfoNodePool *&ms_pEntryInfoNodePool; static CEntryInfoNodePool *ms_pEntryInfoNodePool;
static CPedPool *&ms_pPedPool; static CPedPool *ms_pPedPool;
static CVehiclePool *&ms_pVehiclePool; static CVehiclePool *ms_pVehiclePool;
static CBuildingPool *&ms_pBuildingPool; static CBuildingPool *ms_pBuildingPool;
static CTreadablePool *&ms_pTreadablePool; static CTreadablePool *ms_pTreadablePool;
static CObjectPool *&ms_pObjectPool; static CObjectPool *ms_pObjectPool;
static CDummyPool *&ms_pDummyPool; static CDummyPool *ms_pDummyPool;
static CAudioScriptObjectPool *&ms_pAudioScriptObjectPool; static CAudioScriptObjectPool *ms_pAudioScriptObjectPool;
public: public:
static CCPtrNodePool *GetPtrNodePool(void) { return ms_pPtrNodePool; } static CCPtrNodePool *GetPtrNodePool(void) { return ms_pPtrNodePool; }
static CEntryInfoNodePool *GetEntryInfoNodePool(void) { return ms_pEntryInfoNodePool; } static CEntryInfoNodePool *GetEntryInfoNodePool(void) { return ms_pEntryInfoNodePool; }

View File

@ -19,28 +19,28 @@
float CRadar::m_radarRange; float CRadar::m_radarRange;
sRadarTrace CRadar::ms_RadarTrace[NUMRADARBLIPS]; sRadarTrace CRadar::ms_RadarTrace[NUMRADARBLIPS];
CVector2D vec2DRadarOrigin; CVector2D vec2DRadarOrigin;
int32 gRadarTxdIds[64];// = (int*)0x6299C0; int32 gRadarTxdIds[64];
CSprite2d CRadar::AsukaSprite;// = *(CSprite2d*)0x8F1A40; CSprite2d CRadar::AsukaSprite;
CSprite2d CRadar::BombSprite;// = (CSprite2d*)0x8F5FB4; CSprite2d CRadar::BombSprite;
CSprite2d CRadar::CatSprite;// = (CSprite2d*)0x885B24; CSprite2d CRadar::CatSprite;
CSprite2d CRadar::CentreSprite;// = (CSprite2d*)0x8F6268; CSprite2d CRadar::CentreSprite;
CSprite2d CRadar::CopcarSprite;// = (CSprite2d*)0x8F1A2C; CSprite2d CRadar::CopcarSprite;
CSprite2d CRadar::DonSprite;// = (CSprite2d*)0x8F2BE0; CSprite2d CRadar::DonSprite;
CSprite2d CRadar::EightSprite;// = (CSprite2d*)0x8F2BCC; CSprite2d CRadar::EightSprite;
CSprite2d CRadar::ElSprite;// = (CSprite2d*)0x8F1B80; CSprite2d CRadar::ElSprite;
CSprite2d CRadar::IceSprite;// = (CSprite2d*)0x9415FC; CSprite2d CRadar::IceSprite;
CSprite2d CRadar::JoeySprite;// = (CSprite2d*)0x8F2C00; CSprite2d CRadar::JoeySprite;
CSprite2d CRadar::KenjiSprite;// = (CSprite2d*)0x8F2C68; CSprite2d CRadar::KenjiSprite;
CSprite2d CRadar::LizSprite;// = (CSprite2d*)0x8F5830; CSprite2d CRadar::LizSprite;
CSprite2d CRadar::LuigiSprite;// = (CSprite2d*)0x8F1A3C; CSprite2d CRadar::LuigiSprite;
CSprite2d CRadar::NorthSprite;// = (CSprite2d*)0x8F6274; CSprite2d CRadar::NorthSprite;
CSprite2d CRadar::RaySprite;// = (CSprite2d*)0x8E2A7C; CSprite2d CRadar::RaySprite;
CSprite2d CRadar::SalSprite;// = (CSprite2d*)0x8F29EC; CSprite2d CRadar::SalSprite;
CSprite2d CRadar::SaveSprite;// = (CSprite2d*)0x8F5F74; CSprite2d CRadar::SaveSprite;
CSprite2d CRadar::SpraySprite;// = (CSprite2d*)0x94307C; CSprite2d CRadar::SpraySprite;
CSprite2d CRadar::TonySprite;// = (CSprite2d*)0x885B58; CSprite2d CRadar::TonySprite;
CSprite2d CRadar::WeaponSprite;// = (CSprite2d*)0x941534; CSprite2d CRadar::WeaponSprite;
CSprite2d *CRadar::RadarSprites[RADAR_SPRITE_COUNT] = { CSprite2d *CRadar::RadarSprites[RADAR_SPRITE_COUNT] = {
nil, nil,

View File

@ -6,8 +6,8 @@
#include "Pools.h" #include "Pools.h"
#include "References.h" #include "References.h"
CReference *CReferences::aRefs = (CReference*)0x70BBE0; //[NUMREFERENCES]; CReference CReferences::aRefs[NUMREFERENCES];
CReference *&CReferences::pEmptyList = *(CReference**)0x8F1AF8; CReference *CReferences::pEmptyList;
void void
CReferences::Init(void) CReferences::Init(void)

View File

@ -11,8 +11,8 @@ struct CReference
class CReferences class CReferences
{ {
public: public:
static CReference *aRefs; //[NUMREFERENCES]; static CReference aRefs[NUMREFERENCES];
static CReference *&pEmptyList; static CReference *pEmptyList;
static void Init(void); static void Init(void);
static void RemoveReferencesToPlayer(void); static void RemoveReferencesToPlayer(void);

View File

@ -4,59 +4,59 @@
#include "Text.h" #include "Text.h"
#include "World.h" #include "World.h"
int32 &CStats::DaysPassed = *(int32*)0x8F2BB8; int32 CStats::DaysPassed;
int32 &CStats::HeadsPopped = *(int32*)0x8F647C; int32 CStats::HeadsPopped;
int32& CStats::CommercialPassed = *(int32*)0x8F4334; int32 CStats::CommercialPassed;
int32& CStats::IndustrialPassed = *(int32*)0x8E2A68; int32 CStats::IndustrialPassed;
int32& CStats::SuburbanPassed = *(int32*)0x8F2740; int32 CStats::SuburbanPassed;
int32 &CStats::NumberKillFrenziesPassed = *(int32*)0x8E287C; int32 CStats::NumberKillFrenziesPassed;
int32 &CStats::PeopleKilledByOthers = *(int32*)0x8E2C50; int32 CStats::PeopleKilledByOthers;
int32 &CStats::HelisDestroyed = *(int32*)0x8E2A64; int32 CStats::HelisDestroyed;
int32(&CStats::PedsKilledOfThisType)[NUM_PEDTYPES] = *(int32(*)[NUM_PEDTYPES]) * (uintptr*)0x880DBC; int32 CStats::PedsKilledOfThisType[NUM_PEDTYPES];
int32 &CStats::TimesDied = *(int32*)0x8E2BDC; int32 CStats::TimesDied;
int32 &CStats::TimesArrested = *(int32*)0x8E2BEC; int32 CStats::TimesArrested;
int32 &CStats::KillsSinceLastCheckpoint = *(int32*)0x8F2C8C; int32 CStats::KillsSinceLastCheckpoint;
int32& CStats::DistanceTravelledInVehicle = *(int32*)0x940574; int32 CStats::DistanceTravelledInVehicle;
int32& CStats::DistanceTravelledOnFoot = *(int32*)0x941518; int32 CStats::DistanceTravelledOnFoot;
int32 &CStats::ProgressMade = *(int32*)0x8F6224; int32 CStats::ProgressMade;
int32 &CStats::TotalProgressInGame = *(int32*)0x885B2C; int32 CStats::TotalProgressInGame;
int32& CStats::CarsExploded = *(int32*)0x941288; int32 CStats::CarsExploded;
int32& CStats::PeopleKilledByPlayer = *(int32*)0x8F1B7C; int32 CStats::PeopleKilledByPlayer;
float &CStats::MaximumJumpDistance = *(float*)0x8F2BDC; float CStats::MaximumJumpDistance;
float &CStats::MaximumJumpHeight = *(float*)0x940564; float CStats::MaximumJumpHeight;
int32 &CStats::MaximumJumpFlips = *(int32*)0x8F2524; int32 CStats::MaximumJumpFlips;
int32 &CStats::MaximumJumpSpins = *(int32*)0x8F29B0; int32 CStats::MaximumJumpSpins;
int32 &CStats::BestStuntJump = *(int32*)0x885B50; int32 CStats::BestStuntJump;
int32 &CStats::NumberOfUniqueJumpsFound = *(int32*)0x885B74; int32 CStats::NumberOfUniqueJumpsFound;
int32 &CStats::TotalNumberOfUniqueJumps = *(int32*)0x8E2DC0; int32 CStats::TotalNumberOfUniqueJumps;
int32 &CStats::PassengersDroppedOffWithTaxi = *(int32*)0x940724; int32 CStats::PassengersDroppedOffWithTaxi;
int32 &CStats::MoneyMadeWithTaxi = *(int32*)0x941544; int32 CStats::MoneyMadeWithTaxi;
int32 &CStats::MissionsGiven = *(int32*)0x9430E8; int32 CStats::MissionsGiven;
int32 &CStats::MissionsPassed = *(int32*)0x940768; int32 CStats::MissionsPassed;
char(&CStats::LastMissionPassedName)[8] = *(char(*)[8])*(uintptr*)0x70D828; char CStats::LastMissionPassedName[8];
int32 &CStats::TotalLegitimateKills = *(int32*)0x8F6004; int32 CStats::TotalLegitimateKills;
int32 &CStats::ElBurroTime = *(int32*)0x8E2A6C; int32 CStats::ElBurroTime;
int32& CStats::Record4x4One = *(int32*)0x940570; int32 CStats::Record4x4One;
int32& CStats::Record4x4Two = *(int32*)0x94058C; int32 CStats::Record4x4Two;
int32& CStats::Record4x4Three = *(int32*)0x880FA8; int32 CStats::Record4x4Three;
int32& CStats::Record4x4Mayhem = *(int32*)0x885B70; int32 CStats::Record4x4Mayhem;
int32& CStats::LivesSavedWithAmbulance = *(int32*)0x8F57E0; int32 CStats::LivesSavedWithAmbulance;
int32& CStats::CriminalsCaught = *(int32*)0x8F2518; int32 CStats::CriminalsCaught;
int32& CStats::HighestLevelAmbulanceMission = *(int32*)0x8F2A04; int32 CStats::HighestLevelAmbulanceMission;
int32& CStats::FiresExtinguished = *(int32*)0x8F5FEC; int32 CStats::FiresExtinguished;
int32& CStats::LongestFlightInDodo = *(int32*)0x8F5FE4; int32 CStats::LongestFlightInDodo;
int32& CStats::TimeTakenDefuseMission = *(int32*)0x880E24; int32 CStats::TimeTakenDefuseMission;
int32& CStats::TotalNumberKillFrenzies = *(int32*)0x8E2884; int32 CStats::TotalNumberKillFrenzies;
int32& CStats::TotalNumberMissions = *(int32*)0x8E2820; int32 CStats::TotalNumberMissions;
int32& CStats::RoundsFiredByPlayer = *(int32*)0x8E2BE8; int32 CStats::RoundsFiredByPlayer;
int32& CStats::KgsOfExplosivesUsed = *(int32*)0x8F2510; int32 CStats::KgsOfExplosivesUsed;
int32& CStats::InstantHitsFiredByPlayer = *(int32*)0x943070; int32 CStats::InstantHitsFiredByPlayer;
int32& CStats::InstantHitsHitByPlayer = *(int32*)0x95CB8C; int32 CStats::InstantHitsHitByPlayer;
int32& CStats::BestTimeBombDefusal = *(int32*)0x880E24; int32 CStats::BestTimeBombDefusal;
int32& CStats::mmRain = *(int32*)0x8F2C98; int32 CStats::mmRain;
int32& CStats::CarsCrushed = *(int32*)0x943050; int32 CStats::CarsCrushed;
int32(&CStats::FastestTimes)[CStats::TOTAL_FASTEST_TIMES] = *(int32(*)[CStats::TOTAL_FASTEST_TIMES])*(uintptr*)0x6E9128; int32 CStats::FastestTimes[CStats::TOTAL_FASTEST_TIMES];
int32(&CStats::HighestScores)[CStats::TOTAL_HIGHEST_SCORES] = *(int32(*)[CStats::TOTAL_HIGHEST_SCORES]) * (uintptr*)0x8622B0; int32 CStats::HighestScores[CStats::TOTAL_HIGHEST_SCORES];
void CStats::Init() void CStats::Init()
{ {

View File

@ -9,59 +9,59 @@ public:
TOTAL_FASTEST_TIMES = 16, TOTAL_FASTEST_TIMES = 16,
TOTAL_HIGHEST_SCORES = 16 TOTAL_HIGHEST_SCORES = 16
}; };
static int32 &DaysPassed; static int32 DaysPassed;
static int32 &HeadsPopped; static int32 HeadsPopped;
static int32& CommercialPassed; static int32 CommercialPassed;
static int32& IndustrialPassed; static int32 IndustrialPassed;
static int32& SuburbanPassed; static int32 SuburbanPassed;
static int32 &NumberKillFrenziesPassed; static int32 NumberKillFrenziesPassed;
static int32 &PeopleKilledByOthers; static int32 PeopleKilledByOthers;
static int32 &HelisDestroyed; static int32 HelisDestroyed;
static int32(&PedsKilledOfThisType)[ePedType::NUM_PEDTYPES]; static int32 PedsKilledOfThisType[ePedType::NUM_PEDTYPES];
static int32 &TimesDied; static int32 TimesDied;
static int32 &TimesArrested; static int32 TimesArrested;
static int32 &KillsSinceLastCheckpoint; static int32 KillsSinceLastCheckpoint;
static int32 &DistanceTravelledInVehicle; static int32 DistanceTravelledInVehicle;
static int32 &DistanceTravelledOnFoot; static int32 DistanceTravelledOnFoot;
static int32 &CarsExploded; static int32 CarsExploded;
static int32 &PeopleKilledByPlayer; static int32 PeopleKilledByPlayer;
static int32 &ProgressMade; static int32 ProgressMade;
static int32 &TotalProgressInGame; static int32 TotalProgressInGame;
static float &MaximumJumpDistance; static float MaximumJumpDistance;
static float &MaximumJumpHeight; static float MaximumJumpHeight;
static int32 &MaximumJumpFlips; static int32 MaximumJumpFlips;
static int32 &MaximumJumpSpins; static int32 MaximumJumpSpins;
static int32 &BestStuntJump; static int32 BestStuntJump;
static int32 &NumberOfUniqueJumpsFound; static int32 NumberOfUniqueJumpsFound;
static int32 &TotalNumberOfUniqueJumps; static int32 TotalNumberOfUniqueJumps;
static int32 &PassengersDroppedOffWithTaxi; static int32 PassengersDroppedOffWithTaxi;
static int32 &MoneyMadeWithTaxi; static int32 MoneyMadeWithTaxi;
static int32 &MissionsGiven; static int32 MissionsGiven;
static int32 &MissionsPassed; static int32 MissionsPassed;
static char (&LastMissionPassedName)[8]; static char LastMissionPassedName[8];
static int32 &TotalLegitimateKills; static int32 TotalLegitimateKills;
static int32 &ElBurroTime; static int32 ElBurroTime;
static int32 &Record4x4One; static int32 Record4x4One;
static int32 &Record4x4Two; static int32 Record4x4Two;
static int32 &Record4x4Three; static int32 Record4x4Three;
static int32 &Record4x4Mayhem; static int32 Record4x4Mayhem;
static int32 &LivesSavedWithAmbulance; static int32 LivesSavedWithAmbulance;
static int32 &CriminalsCaught; static int32 CriminalsCaught;
static int32 &HighestLevelAmbulanceMission; static int32 HighestLevelAmbulanceMission;
static int32 &FiresExtinguished; static int32 FiresExtinguished;
static int32 &LongestFlightInDodo; static int32 LongestFlightInDodo;
static int32 &TimeTakenDefuseMission; static int32 TimeTakenDefuseMission;
static int32 &TotalNumberKillFrenzies; static int32 TotalNumberKillFrenzies;
static int32 &TotalNumberMissions; static int32 TotalNumberMissions;
static int32 &RoundsFiredByPlayer; static int32 RoundsFiredByPlayer;
static int32 &KgsOfExplosivesUsed; static int32 KgsOfExplosivesUsed;
static int32 &InstantHitsFiredByPlayer; static int32 InstantHitsFiredByPlayer;
static int32 &InstantHitsHitByPlayer; static int32 InstantHitsHitByPlayer;
static int32 &BestTimeBombDefusal; static int32 BestTimeBombDefusal;
static int32 &mmRain; static int32 mmRain;
static int32 &CarsCrushed; static int32 CarsCrushed;
static int32(&FastestTimes)[TOTAL_FASTEST_TIMES]; static int32 FastestTimes[TOTAL_FASTEST_TIMES];
static int32(&HighestScores)[TOTAL_HIGHEST_SCORES]; static int32 HighestScores[TOTAL_HIGHEST_SCORES];
public: public:
static void Init(void); static void Init(void);

View File

@ -30,49 +30,49 @@
#include "Streaming.h" #include "Streaming.h"
#include "main.h" #include "main.h"
bool &CStreaming::ms_disableStreaming = *(bool*)0x95CD6E; bool CStreaming::ms_disableStreaming;
bool &CStreaming::ms_bLoadingBigModel = *(bool*)0x95CDB0; bool CStreaming::ms_bLoadingBigModel;
int32 &CStreaming::ms_numModelsRequested = *(int32*)0x8E2C10; int32 CStreaming::ms_numModelsRequested;
CStreamingInfo *CStreaming::ms_aInfoForModel = (CStreamingInfo*)0x6C7088; CStreamingInfo CStreaming::ms_aInfoForModel[NUMSTREAMINFO];
CStreamingInfo &CStreaming::ms_startLoadedList = *(CStreamingInfo*)0x942F60; CStreamingInfo CStreaming::ms_startLoadedList;
CStreamingInfo &CStreaming::ms_endLoadedList = *(CStreamingInfo*)0x8F1AC0; CStreamingInfo CStreaming::ms_endLoadedList;
CStreamingInfo &CStreaming::ms_startRequestedList = *(CStreamingInfo*)0x8F1B3C; CStreamingInfo CStreaming::ms_startRequestedList;
CStreamingInfo &CStreaming::ms_endRequestedList = *(CStreamingInfo*)0x940738; CStreamingInfo CStreaming::ms_endRequestedList;
int32 &CStreaming::ms_oldSectorX = *(int32*)0x8F2C84; int32 CStreaming::ms_oldSectorX;
int32 &CStreaming::ms_oldSectorY = *(int32*)0x8F2C88; int32 CStreaming::ms_oldSectorY;
int32 &CStreaming::ms_streamingBufferSize = *(int32*)0x942FB0; int32 CStreaming::ms_streamingBufferSize;
int8 **CStreaming::ms_pStreamingBuffer = (int8**)0x87F818; int8 *CStreaming::ms_pStreamingBuffer[2];
int32 &CStreaming::ms_memoryUsed = *(int32*)0x940568; int32 CStreaming::ms_memoryUsed;
CStreamingChannel *CStreaming::ms_channel = (CStreamingChannel*)0x727EE0; CStreamingChannel CStreaming::ms_channel[2];
int32 &CStreaming::ms_channelError = *(int32*)0x880DB8; int32 CStreaming::ms_channelError;
int32 &CStreaming::ms_numVehiclesLoaded = *(int32*)0x8F2C80; int32 CStreaming::ms_numVehiclesLoaded;
int32 *CStreaming::ms_vehiclesLoaded = (int32*)0x773560; int32 CStreaming::ms_vehiclesLoaded[MAXVEHICLESLOADED];
int32 &CStreaming::ms_lastVehicleDeleted = *(int32*)0x95CBF8; int32 CStreaming::ms_lastVehicleDeleted;
CDirectory *&CStreaming::ms_pExtraObjectsDir = *(CDirectory**)0x95CB90; CDirectory *CStreaming::ms_pExtraObjectsDir;
int32 &CStreaming::ms_numPriorityRequests = *(int32*)0x8F31C4; int32 CStreaming::ms_numPriorityRequests;
bool &CStreaming::ms_hasLoadedLODs = *(bool*)0x95CD47; bool CStreaming::ms_hasLoadedLODs;
int32 &CStreaming::ms_currentPedGrp = *(int32*)0x8F2BBC; int32 CStreaming::ms_currentPedGrp;
int32 CStreaming::ms_currentPedLoading; int32 CStreaming::ms_currentPedLoading;
int32 CStreaming::ms_lastCullZone; int32 CStreaming::ms_lastCullZone;
uint16 &CStreaming::ms_loadedGangs = *(uint16*)0x95CC60; uint16 CStreaming::ms_loadedGangs;
uint16 &CStreaming::ms_loadedGangCars = *(uint16*)0x95CC2E; uint16 CStreaming::ms_loadedGangCars;
int32 *CStreaming::ms_imageOffsets = (int32*)0x6E60A0; int32 CStreaming::ms_imageOffsets[NUMCDIMAGES];
int32 &CStreaming::ms_lastImageRead = *(int32*)0x880E2C; int32 CStreaming::ms_lastImageRead;
int32 &CStreaming::ms_imageSize = *(int32*)0x8F1A34; int32 CStreaming::ms_imageSize;
uint32 &CStreaming::ms_memoryAvailable = *(uint32*)0x880F8C; uint32 CStreaming::ms_memoryAvailable;
int32 &desiredNumVehiclesLoaded = *(int32*)0x5EC194; int32 desiredNumVehiclesLoaded = 12;
CEntity *&pIslandLODindustEntity = *(CEntity**)0x6212DC; CEntity *pIslandLODindustEntity;
CEntity *&pIslandLODcomIndEntity = *(CEntity**)0x6212E0; CEntity *pIslandLODcomIndEntity;
CEntity *&pIslandLODcomSubEntity = *(CEntity**)0x6212E4; CEntity *pIslandLODcomSubEntity;
CEntity *&pIslandLODsubIndEntity = *(CEntity**)0x6212E8; CEntity *pIslandLODsubIndEntity;
CEntity *&pIslandLODsubComEntity = *(CEntity**)0x6212EC; CEntity *pIslandLODsubComEntity;
int32 &islandLODindust = *(int32*)0x6212C8; int32 islandLODindust;
int32 &islandLODcomInd = *(int32*)0x6212CC; int32 islandLODcomInd;
int32 &islandLODcomSub = *(int32*)0x6212D0; int32 islandLODcomSub;
int32 &islandLODsubInd = *(int32*)0x6212D4; int32 islandLODsubInd;
int32 &islandLODsubCom = *(int32*)0x6212D8; int32 islandLODsubCom;
bool bool
CStreamingInfo::GetCdPosnAndSize(uint32 &posn, uint32 &size) CStreamingInfo::GetCdPosnAndSize(uint32 &posn, uint32 &size)
@ -199,7 +199,7 @@ CStreaming::Init(void)
// PC only, figure out how much memory we got // PC only, figure out how much memory we got
#ifdef GTA_PC #ifdef GTA_PC
#define MB (1024*1024) #define MB (1024*1024)
extern unsigned long &_dwMemAvailPhys; extern unsigned long _dwMemAvailPhys;
ms_memoryAvailable = (_dwMemAvailPhys - 10*MB)/2; ms_memoryAvailable = (_dwMemAvailPhys - 10*MB)/2;
if(ms_memoryAvailable < 50*MB) if(ms_memoryAvailable < 50*MB)
ms_memoryAvailable = 50*MB; ms_memoryAvailable = 50*MB;

View File

@ -77,36 +77,36 @@ class CPtrList;
class CStreaming class CStreaming
{ {
public: public:
static bool &ms_disableStreaming; static bool ms_disableStreaming;
static bool &ms_bLoadingBigModel; static bool ms_bLoadingBigModel;
static int32 &ms_numModelsRequested; static int32 ms_numModelsRequested;
static CStreamingInfo *ms_aInfoForModel; //[NUMSTREAMINFO] static CStreamingInfo ms_aInfoForModel[NUMSTREAMINFO];
static CStreamingInfo &ms_startLoadedList; static CStreamingInfo ms_startLoadedList;
static CStreamingInfo &ms_endLoadedList; static CStreamingInfo ms_endLoadedList;
static CStreamingInfo &ms_startRequestedList; static CStreamingInfo ms_startRequestedList;
static CStreamingInfo &ms_endRequestedList; static CStreamingInfo ms_endRequestedList;
static int32 &ms_oldSectorX; static int32 ms_oldSectorX;
static int32 &ms_oldSectorY; static int32 ms_oldSectorY;
static int32 &ms_streamingBufferSize; static int32 ms_streamingBufferSize;
static int8 **ms_pStreamingBuffer; //[2] static int8 *ms_pStreamingBuffer[2];
static int32 &ms_memoryUsed; static int32 ms_memoryUsed;
static CStreamingChannel *ms_channel; //[2] static CStreamingChannel ms_channel[2];
static int32 &ms_channelError; static int32 ms_channelError;
static int32 &ms_numVehiclesLoaded; static int32 ms_numVehiclesLoaded;
static int32 *ms_vehiclesLoaded; //[MAXVEHICLESLOADED] static int32 ms_vehiclesLoaded[MAXVEHICLESLOADED];
static int32 &ms_lastVehicleDeleted; static int32 ms_lastVehicleDeleted;
static CDirectory *&ms_pExtraObjectsDir; static CDirectory *ms_pExtraObjectsDir;
static int32 &ms_numPriorityRequests; static int32 ms_numPriorityRequests;
static bool &ms_hasLoadedLODs; static bool ms_hasLoadedLODs;
static int32 &ms_currentPedGrp; static int32 ms_currentPedGrp;
static int32 ms_lastCullZone; static int32 ms_lastCullZone;
static uint16 &ms_loadedGangs; static uint16 ms_loadedGangs;
static uint16 &ms_loadedGangCars; static uint16 ms_loadedGangCars;
static int32 ms_currentPedLoading; static int32 ms_currentPedLoading;
static int32 *ms_imageOffsets; //[NUMCDIMAGES] static int32 ms_imageOffsets[NUMCDIMAGES];
static int32 &ms_lastImageRead; static int32 ms_lastImageRead;
static int32 &ms_imageSize; static int32 ms_imageSize;
static uint32 &ms_memoryAvailable; static uint32 ms_memoryAvailable;
static void Init(void); static void Init(void);
static void Shutdown(void); static void Shutdown(void);

View File

@ -6,7 +6,7 @@
#include "Collision.h" #include "Collision.h"
#include "SurfaceTable.h" #include "SurfaceTable.h"
float (*CSurfaceTable::ms_aAdhesiveLimitTable)[NUMADHESIVEGROUPS] = (float (*)[NUMADHESIVEGROUPS])0x8E29D4; float CSurfaceTable::ms_aAdhesiveLimitTable[NUMADHESIVEGROUPS][NUMADHESIVEGROUPS];
void void
CSurfaceTable::Initialise(char *filename) CSurfaceTable::Initialise(char *filename)

View File

@ -98,8 +98,7 @@ struct CColPoint;
class CSurfaceTable class CSurfaceTable
{ {
// static float ms_aAdhesiveLimitTable[NUMADHESIVEGROUPS][NUMADHESIVEGROUPS]; static float ms_aAdhesiveLimitTable[NUMADHESIVEGROUPS][NUMADHESIVEGROUPS];
static float (*ms_aAdhesiveLimitTable)[NUMADHESIVEGROUPS];
public: public:
static void Initialise(char *filename); static void Initialise(char *filename);
static int GetAdhesionGroup(uint8 surfaceType); static int GetAdhesionGroup(uint8 surfaceType);

View File

@ -3,19 +3,19 @@
#include "TempColModels.h" #include "TempColModels.h"
#include "SurfaceTable.h" #include "SurfaceTable.h"
CColModel &CTempColModels::ms_colModelPed1 = *(CColModel*)0x726CB0; CColModel CTempColModels::ms_colModelPed1;
CColModel &CTempColModels::ms_colModelPed2 = *(CColModel*)0x726D08; CColModel CTempColModels::ms_colModelPed2;
CColModel &CTempColModels::ms_colModelBBox = *(CColModel*)0x727FE0; CColModel CTempColModels::ms_colModelBBox;
CColModel &CTempColModels::ms_colModelBumper1 = *(CColModel*)0x86BE88; CColModel CTempColModels::ms_colModelBumper1;
CColModel &CTempColModels::ms_colModelWheel1 = *(CColModel*)0x878C40; CColModel CTempColModels::ms_colModelWheel1;
CColModel &CTempColModels::ms_colModelPanel1 = *(CColModel*)0x87BDD8; CColModel CTempColModels::ms_colModelPanel1;
CColModel &CTempColModels::ms_colModelBodyPart2 = *(CColModel*)0x87BE30; CColModel CTempColModels::ms_colModelBodyPart2;
CColModel &CTempColModels::ms_colModelBodyPart1 = *(CColModel*)0x87BE88; CColModel CTempColModels::ms_colModelBodyPart1;
CColModel (&CTempColModels::ms_colModelCutObj)[5] = *(CColModel(*)[5]) *(uintptr*)0x87C960; CColModel CTempColModels::ms_colModelCutObj[5];
CColModel &CTempColModels::ms_colModelPedGroundHit = *(CColModel*)0x880480; CColModel CTempColModels::ms_colModelPedGroundHit;
CColModel &CTempColModels::ms_colModelBoot1 = *(CColModel*)0x880670; CColModel CTempColModels::ms_colModelBoot1;
CColModel &CTempColModels::ms_colModelDoor1 = *(CColModel*)0x880850; CColModel CTempColModels::ms_colModelDoor1;
CColModel &CTempColModels::ms_colModelBonnet1 = *(CColModel*)0x8808A8; CColModel CTempColModels::ms_colModelBonnet1;
CColSphere s_aPedSpheres[3]; CColSphere s_aPedSpheres[3];

View File

@ -5,19 +5,19 @@
class CTempColModels class CTempColModels
{ {
public: public:
static CColModel &ms_colModelPed1; static CColModel ms_colModelPed1;
static CColModel &ms_colModelPed2; static CColModel ms_colModelPed2;
static CColModel &ms_colModelBBox; static CColModel ms_colModelBBox;
static CColModel &ms_colModelBumper1; static CColModel ms_colModelBumper1;
static CColModel &ms_colModelWheel1; static CColModel ms_colModelWheel1;
static CColModel &ms_colModelPanel1; static CColModel ms_colModelPanel1;
static CColModel &ms_colModelBodyPart2; static CColModel ms_colModelBodyPart2;
static CColModel &ms_colModelBodyPart1; static CColModel ms_colModelBodyPart1;
static CColModel (&ms_colModelCutObj)[5]; static CColModel ms_colModelCutObj[5];
static CColModel &ms_colModelPedGroundHit; static CColModel ms_colModelPedGroundHit;
static CColModel &ms_colModelBoot1; static CColModel ms_colModelBoot1;
static CColModel &ms_colModelDoor1; static CColModel ms_colModelDoor1;
static CColModel &ms_colModelBonnet1; static CColModel ms_colModelBonnet1;
static void Initialise(void); static void Initialise(void);
}; };

View File

@ -1,5 +1,5 @@
#include "TimeStep.h" #include "TimeStep.h"
float &CTimeStep::ms_fTimeScale = *(float*)0x5F76C8; float CTimeStep::ms_fTimeScale = 1.0f;
float &CTimeStep::ms_fFramesPerUpdate = *(float*)0x5F76CC; float CTimeStep::ms_fFramesPerUpdate = 1.0f;
float &CTimeStep::ms_fTimeStep = *(float*)0x5F76D0; float CTimeStep::ms_fTimeStep = 1.0f;

View File

@ -4,7 +4,7 @@
class CTimeStep class CTimeStep
{ {
public: public:
static float &ms_fTimeScale; static float ms_fTimeScale;
static float &ms_fFramesPerUpdate; static float ms_fFramesPerUpdate;
static float &ms_fTimeStep; static float ms_fTimeStep;
}; };

View File

@ -5,34 +5,28 @@
#include "Record.h" #include "Record.h"
#include "Timer.h" #include "Timer.h"
uint32 &CTimer::m_snTimeInMilliseconds = *(uint32*)0x885B48; uint32 CTimer::m_snTimeInMilliseconds;
uint32 &CTimer::m_snTimeInMillisecondsPauseMode = *(uint32*)0x5F7614; uint32 CTimer::m_snTimeInMillisecondsPauseMode = 1;
uint32 &CTimer::m_snTimeInMillisecondsNonClipped = *(uint32*)0x9412E8; uint32 CTimer::m_snTimeInMillisecondsNonClipped;
uint32 &CTimer::m_snPreviousTimeInMilliseconds = *(uint32*)0x8F29E4; uint32 CTimer::m_snPreviousTimeInMilliseconds;
uint32 &CTimer::m_FrameCounter = *(uint32*)0x9412EC; uint32 CTimer::m_FrameCounter;
float &CTimer::ms_fTimeScale = *(float*)0x8F2C20; float CTimer::ms_fTimeScale;
float &CTimer::ms_fTimeStep = *(float*)0x8E2CB4; float CTimer::ms_fTimeStep;
float &CTimer::ms_fTimeStepNonClipped = *(float*)0x8E2C4C; float CTimer::ms_fTimeStepNonClipped;
bool &CTimer::m_UserPause = *(bool*)0x95CD7C; bool CTimer::m_UserPause;
bool &CTimer::m_CodePause = *(bool*)0x95CDB1; bool CTimer::m_CodePause;
//UInt32 oldPcTimer; uint32 oldPcTimer;
uint32 &oldPcTimer = *(uint32*)0x9434F4;
//UInt32 suspendPcTimer; uint32 suspendPcTimer;
uint32 &suspendPcTimer = *(uint32*)0x62A308;
//UInt32 _nCyclesPerMS = 1; uint32 _nCyclesPerMS = 1;
uint32 &_nCyclesPerMS = *(uint32*)0x5F7610;
//LARGE_INTEGER _oldPerfCounter; LARGE_INTEGER _oldPerfCounter;
LARGE_INTEGER &_oldPerfCounter = *(LARGE_INTEGER*)0x62A310;
//LARGE_INTEGER perfSuspendCounter; LARGE_INTEGER perfSuspendCounter;
LARGE_INTEGER &perfSuspendCounter = *(LARGE_INTEGER*)0x62A318;
//UInt32 suspendDepth; uint32 suspendDepth;
uint32 &suspendDepth = *(uint32*)0x62A320;
#ifdef FIX_BUGS #ifdef FIX_BUGS
double frameTime; double frameTime;

View File

@ -3,17 +3,17 @@
class CTimer class CTimer
{ {
static uint32 &m_snTimeInMilliseconds; static uint32 m_snTimeInMilliseconds;
static uint32 &m_snTimeInMillisecondsPauseMode; static uint32 m_snTimeInMillisecondsPauseMode;
static uint32 &m_snTimeInMillisecondsNonClipped; static uint32 m_snTimeInMillisecondsNonClipped;
static uint32 &m_snPreviousTimeInMilliseconds; static uint32 m_snPreviousTimeInMilliseconds;
static uint32 &m_FrameCounter; static uint32 m_FrameCounter;
static float &ms_fTimeScale; static float ms_fTimeScale;
static float &ms_fTimeStep; static float ms_fTimeStep;
static float &ms_fTimeStepNonClipped; static float ms_fTimeStepNonClipped;
public: public:
static bool &m_UserPause; static bool m_UserPause;
static bool &m_CodePause; static bool m_CodePause;
static const float &GetTimeStep(void) { return ms_fTimeStep; } static const float &GetTimeStep(void) { return ms_fTimeStep; }
static void SetTimeStep(float ts) { ms_fTimeStep = ts; } static void SetTimeStep(float ts) { ms_fTimeStep = ts; }

View File

@ -9,10 +9,10 @@
#include "World.h" #include "World.h"
#include "Zones.h" #include "Zones.h"
CPlaceName& CUserDisplay::PlaceName = *(CPlaceName*)0x8F29BC; CPlaceName CUserDisplay::PlaceName;
COnscreenTimer& CUserDisplay::OnscnTimer = *(COnscreenTimer*)0x862238; COnscreenTimer CUserDisplay::OnscnTimer;
CPager& CUserDisplay::Pager = *(CPager*)0x8F2744; CPager CUserDisplay::Pager;
CCurrentVehicle& CUserDisplay::CurrentVehicle = *(CCurrentVehicle*)0x8F5FE8; CCurrentVehicle CUserDisplay::CurrentVehicle;
CPlaceName::CPlaceName() CPlaceName::CPlaceName()
{ {

View File

@ -31,10 +31,10 @@ public:
class CUserDisplay class CUserDisplay
{ {
public: public:
static CPlaceName &PlaceName; static CPlaceName PlaceName;
static COnscreenTimer &OnscnTimer; static COnscreenTimer OnscnTimer;
static CPager &Pager; static CPager Pager;
static CCurrentVehicle &CurrentVehicle; static CCurrentVehicle CurrentVehicle;
static void Init(); static void Init();
static void Process(); static void Process();

View File

@ -11,8 +11,8 @@
#include "Wanted.h" #include "Wanted.h"
#include "General.h" #include "General.h"
int32 &CWanted::MaximumWantedLevel = *(int32*)0x5F7714; // 6 int32 CWanted::MaximumWantedLevel = 6;
int32 &CWanted::nMaximumWantedLevel = *(int32*)0x5F7718; // 6400 int32 CWanted::nMaximumWantedLevel = 6400;
void void
CWanted::Initialise() CWanted::Initialise()

View File

@ -60,8 +60,8 @@ public:
CCrimeBeingQd m_aCrimes[16]; CCrimeBeingQd m_aCrimes[16];
CCopPed *m_pCops[10]; CCopPed *m_pCops[10];
static int32 &MaximumWantedLevel; static int32 MaximumWantedLevel;
static int32 &nMaximumWantedLevel; static int32 nMaximumWantedLevel;
public: public:
void Initialise(); void Initialise();

View File

@ -11,21 +11,21 @@
#include "ZoneCull.h" #include "ZoneCull.h"
#include "Zones.h" #include "Zones.h"
int32 &CCullZones::NumCullZones = *(int*)0x8F2564; int32 CCullZones::NumCullZones;
CCullZone(&CCullZones::aZones)[NUMCULLZONES] = *(CCullZone(*)[NUMCULLZONES])*(uintptr*)0x864750; CCullZone CCullZones::aZones[NUMCULLZONES];
int32 &CCullZones::NumAttributeZones = *(int*)0x8E29D0; int32 CCullZones::NumAttributeZones;
CAttributeZone (&CCullZones::aAttributeZones)[NUMATTRIBZONES] = *(CAttributeZone(*)[NUMATTRIBZONES])*(uintptr*)0x709C60; CAttributeZone CCullZones::aAttributeZones[NUMATTRIBZONES];
uint16 (&CCullZones::aIndices)[NUMZONEINDICES] = *(uint16(*)[NUMZONEINDICES])*(uintptr*)0x847330; uint16 CCullZones::aIndices[NUMZONEINDICES];
int16 (&CCullZones::aPointersToBigBuildingsForBuildings)[NUMBUILDINGS] = *(int16(*)[NUMBUILDINGS])*(uintptr*)0x86C9D0; int16 CCullZones::aPointersToBigBuildingsForBuildings[NUMBUILDINGS];
int16 (&CCullZones::aPointersToBigBuildingsForTreadables)[NUMTREADABLES] = *(int16(*)[NUMTREADABLES])*(uintptr*)0x8F1B8C; int16 CCullZones::aPointersToBigBuildingsForTreadables[NUMTREADABLES];
int32 &CCullZones::CurrentWantedLevelDrop_Player = *(int32*)0x880DA8; int32 CCullZones::CurrentWantedLevelDrop_Player;
int32 &CCullZones::CurrentFlags_Camera = *(int32*)0x940718; int32 CCullZones::CurrentFlags_Camera;
int32 &CCullZones::CurrentFlags_Player = *(int32*)0x9415F0; int32 CCullZones::CurrentFlags_Player;
int32 &CCullZones::OldCullZone = *(int32*)0x8E2C90; int32 CCullZones::OldCullZone;
int32 &CCullZones::EntityIndicesUsed = *(int32*)0x8F2508; int32 CCullZones::EntityIndicesUsed;
bool &CCullZones::bCurrentSubwayIsInvisible = *(bool*)0x95CDA5; bool CCullZones::bCurrentSubwayIsInvisible;
bool &CCullZones::bCullZonesDisabled = *(bool*)0x95CD4A; bool CCullZones::bCullZonesDisabled;
void void

View File

@ -79,21 +79,21 @@ struct CAttributeZone
class CCullZones class CCullZones
{ {
public: public:
static int32 &NumCullZones; static int32 NumCullZones;
static CCullZone (&aZones)[NUMCULLZONES]; static CCullZone aZones[NUMCULLZONES];
static int32 &NumAttributeZones; static int32 NumAttributeZones;
static CAttributeZone(&aAttributeZones)[NUMATTRIBZONES]; static CAttributeZone aAttributeZones[NUMATTRIBZONES];
static uint16 (&aIndices)[NUMZONEINDICES]; static uint16 aIndices[NUMZONEINDICES];
static int16 (&aPointersToBigBuildingsForBuildings)[NUMBUILDINGS]; static int16 aPointersToBigBuildingsForBuildings[NUMBUILDINGS];
static int16 (&aPointersToBigBuildingsForTreadables)[NUMTREADABLES]; static int16 aPointersToBigBuildingsForTreadables[NUMTREADABLES];
static int32 &CurrentWantedLevelDrop_Player; static int32 CurrentWantedLevelDrop_Player;
static int32 &CurrentFlags_Camera; static int32 CurrentFlags_Camera;
static int32 &CurrentFlags_Player; static int32 CurrentFlags_Player;
static int32 &OldCullZone; static int32 OldCullZone;
static int32 &EntityIndicesUsed; static int32 EntityIndicesUsed;
static bool &bCurrentSubwayIsInvisible; static bool bCurrentSubwayIsInvisible;
static bool &bCullZonesDisabled; static bool bCullZonesDisabled;
static void Init(void); static void Init(void);
static void ResolveVisibilities(void); static void ResolveVisibilities(void);

View File

@ -8,18 +8,18 @@
#include "Text.h" #include "Text.h"
#include "World.h" #include "World.h"
eLevelName &CTheZones::m_CurrLevel = *(eLevelName*)0x8F2BC8; eLevelName CTheZones::m_CurrLevel;
CZone *&CTheZones::m_pPlayersZone = *(CZone**)0x8F254C; CZone *CTheZones::m_pPlayersZone;
int16 &CTheZones::FindIndex = *(int16*)0x95CC40; int16 CTheZones::FindIndex;
uint16 &CTheZones::NumberOfAudioZones = *(uint16*)0x95CC84; uint16 CTheZones::NumberOfAudioZones;
int16 *CTheZones::AudioZoneArray = (int16*)0x713BC0; int16 CTheZones::AudioZoneArray[NUMAUDIOZONES];
uint16 &CTheZones::TotalNumberOfMapZones = *(uint16*)0x95CC74; uint16 CTheZones::TotalNumberOfMapZones;
uint16 &CTheZones::TotalNumberOfZones = *(uint16*)0x95CC36; uint16 CTheZones::TotalNumberOfZones;
CZone *CTheZones::ZoneArray = (CZone*)0x86BEE0; CZone CTheZones::ZoneArray[NUMZONES];
CZone *CTheZones::MapZoneArray = (CZone*)0x663EC0; CZone CTheZones::MapZoneArray[NUMMAPZONES];
uint16 &CTheZones::TotalNumberOfZoneInfos = *(uint16*)0x95CC3C; uint16 CTheZones::TotalNumberOfZoneInfos;
CZoneInfo *CTheZones::ZoneInfoArray = (CZoneInfo*)0x714400; CZoneInfo CTheZones::ZoneInfoArray[2*NUMZONES];
#define SWAPF(a, b) { float t; t = a; a = b; b = t; } #define SWAPF(a, b) { float t; t = a; a = b; b = t; }

View File

@ -52,18 +52,18 @@ public:
class CTheZones class CTheZones
{ {
public: public:
static eLevelName &m_CurrLevel; static eLevelName m_CurrLevel;
static CZone *&m_pPlayersZone; static CZone *m_pPlayersZone;
static int16 &FindIndex; static int16 FindIndex;
static uint16 &NumberOfAudioZones; static uint16 NumberOfAudioZones;
static int16 *AudioZoneArray; //[NUMAUDIOZONES]; static int16 AudioZoneArray[NUMAUDIOZONES];
static uint16 &TotalNumberOfMapZones; static uint16 TotalNumberOfMapZones;
static uint16 &TotalNumberOfZones; static uint16 TotalNumberOfZones;
static CZone *ZoneArray; //[NUMZONES]; static CZone ZoneArray[NUMZONES];
static CZone *MapZoneArray; //[NUMMAPZONES]; static CZone MapZoneArray[NUMMAPZONES];
static uint16 &TotalNumberOfZoneInfos; static uint16 TotalNumberOfZoneInfos;
static CZoneInfo *ZoneInfoArray; //[2*NUMZONES]; static CZoneInfo ZoneInfoArray[2*NUMZONES];
static void Init(void); static void Init(void);
static void Update(void); static void Update(void);

View File

@ -192,6 +192,7 @@ enum Config {
#define MORE_LANGUAGES // Add more translations to the game #define MORE_LANGUAGES // Add more translations to the game
#define DEFAULT_NATIVE_RESOLUTION // Set default video mode to your native resolution (fixes Windows 10 launch) #define DEFAULT_NATIVE_RESOLUTION // Set default video mode to your native resolution (fixes Windows 10 launch)
//#define USE_TXD_CDIMAGE // generate and load textures from txd.img //#define USE_TXD_CDIMAGE // generate and load textures from txd.img
//#define USE_TEXTURE_POOL
// Pad // Pad
#define XINPUT #define XINPUT

View File

@ -60,23 +60,18 @@
#include "GenericGameStorage.h" #include "GenericGameStorage.h"
#include "SceneEdit.h" #include "SceneEdit.h"
GlobalScene &Scene = *(GlobalScene*)0x726768; GlobalScene Scene;
uint8 work_buff[55000]; uint8 work_buff[55000];
//char gString[256]; char gString[256];
//char gString2[512]; char gString2[512];
//wchar gUString[256]; wchar gUString[256];
//wchar gUString2[256]; wchar gUString2[256];
char *gString = (char*)0x711B40;
char *gString2 = (char*)0x878A40;
wchar *gUString = (wchar*)0x74B018;
wchar *gUString2 = (wchar*)0x6EDD70;
float FramesPerSecond = 30.0f; float FramesPerSecond = 30.0f;
bool gbPrintShite = false; bool gbPrintShite = false;
bool &gbModelViewer = *(bool*)0x95CD93; bool gbModelViewer;
int32 frameCount; int32 frameCount;

View File

@ -5,19 +5,15 @@ struct GlobalScene
RpWorld *world; RpWorld *world;
RwCamera *camera; RwCamera *camera;
}; };
extern GlobalScene &Scene; extern GlobalScene Scene;
extern uint8 work_buff[55000]; extern uint8 work_buff[55000];
//extern char gString[256]; extern char gString[256];
//extern char gString2[512]; extern char gString2[512];
//extern wchar gUString[256]; extern wchar gUString[256];
//extern wchar gUString2[256]; extern wchar gUString2[256];
extern char *gString;
extern char *gString2;
extern wchar *gUString;
extern wchar *gUString2;
extern bool gbPrintShite; extern bool gbPrintShite;
extern bool &gbModelViewer; extern bool gbModelViewer;
class CSprite2d; class CSprite2d;

View File

@ -5,11 +5,8 @@
#include "ModelIndices.h" #include "ModelIndices.h"
#include "ModelInfo.h" #include "ModelInfo.h"
CBaseModelInfo **CModelInfo::ms_modelInfoPtrs = (CBaseModelInfo**)0x83D408; CBaseModelInfo *CModelInfo::ms_modelInfoPtrs[MODELINFOSIZE];
//CStore<CSimpleModelInfo, SIMPLEMODELSIZE> &CModelInfo::ms_simpleModelStore = *(CStore<CSimpleModelInfo, SIMPLEMODELSIZE>*)0x885BB4;
//CStore<CTimeModelInfo, TIMEMODELSIZE> &CModelInfo::ms_timeModelStore = *(CStore<CTimeModelInfo, TIMEMODELSIZE>*)0x94076C;
//CStore<C2dEffect, TWODFXSIZE> &CModelInfo::ms_2dEffectStore = *(CStore<C2dEffect, TWODFXSIZE>*)0x9434F8;
CStore<CSimpleModelInfo, SIMPLEMODELSIZE> CModelInfo::ms_simpleModelStore; CStore<CSimpleModelInfo, SIMPLEMODELSIZE> CModelInfo::ms_simpleModelStore;
CStore<CMloModelInfo, MLOMODELSIZE> CModelInfo::ms_mloModelStore; CStore<CMloModelInfo, MLOMODELSIZE> CModelInfo::ms_mloModelStore;
CStore<CInstance, MLOINSTANCESIZE> CModelInfo::ms_mloInstanceStore; CStore<CInstance, MLOINSTANCESIZE> CModelInfo::ms_mloInstanceStore;

View File

@ -13,7 +13,7 @@
class CModelInfo class CModelInfo
{ {
static CBaseModelInfo **ms_modelInfoPtrs; //[MODELINFOSIZE]; static CBaseModelInfo *ms_modelInfoPtrs[MODELINFOSIZE];
static CStore<CSimpleModelInfo, SIMPLEMODELSIZE> ms_simpleModelStore; static CStore<CSimpleModelInfo, SIMPLEMODELSIZE> ms_simpleModelStore;
static CStore<CMloModelInfo, MLOMODELSIZE> ms_mloModelStore; static CStore<CMloModelInfo, MLOMODELSIZE> ms_mloModelStore;
static CStore<CInstance, MLOINSTANCESIZE> ms_mloInstanceStore; static CStore<CInstance, MLOINSTANCESIZE> ms_mloInstanceStore;

View File

@ -19,14 +19,14 @@
#include "ModelIndices.h" #include "ModelIndices.h"
#include "ModelInfo.h" #include "ModelInfo.h"
int8 *CVehicleModelInfo::ms_compsToUse = (int8*)0x5FF2EC; // -2, -2 int8 CVehicleModelInfo::ms_compsToUse[2] = { -2, -2 };
int8 *CVehicleModelInfo::ms_compsUsed = (int8*)0x95CCB2; int8 CVehicleModelInfo::ms_compsUsed[2];
RwTexture **CVehicleModelInfo::ms_pEnvironmentMaps = (RwTexture **)0x8F1A30; RwTexture *CVehicleModelInfo::ms_pEnvironmentMaps[NUM_VEHICLE_ENVMAPS];
RwRGBA *CVehicleModelInfo::ms_vehicleColourTable = (RwRGBA*)0x86BA88; RwRGBA CVehicleModelInfo::ms_vehicleColourTable[256];
RwTexture **CVehicleModelInfo::ms_colourTextureTable = (RwTexture**)0x711C40; RwTexture *CVehicleModelInfo::ms_colourTextureTable[256];
RwTexture *&gpWhiteTexture = *(RwTexture**)0x64C4F8; RwTexture *gpWhiteTexture;
RwFrame *&pMatFxIdentityFrame = *(RwFrame**)0x64C510; RwFrame *pMatFxIdentityFrame;
enum { enum {
VEHICLE_FLAG_COLLAPSE = 0x2, VEHICLE_FLAG_COLLAPSE = 0x2,

View File

@ -81,11 +81,11 @@ public:
RpAtomic *m_comps[6]; RpAtomic *m_comps[6];
int32 m_numComps; int32 m_numComps;
static int8 *ms_compsToUse; // [2]; static int8 ms_compsToUse[2];
static int8 *ms_compsUsed; // [2]; static int8 ms_compsUsed[2];
static RwTexture **ms_pEnvironmentMaps; // [NUM_VEHICLE_ENVMAPS] static RwTexture *ms_pEnvironmentMaps[NUM_VEHICLE_ENVMAPS];
static RwRGBA *ms_vehicleColourTable; // [256] static RwRGBA ms_vehicleColourTable[256];
static RwTexture **ms_colourTextureTable; // [256] static RwTexture *ms_colourTextureTable[256];
static RwObjectNameIdAssocation *ms_vehicleDescs[NUM_VEHICLE_TYPES]; static RwObjectNameIdAssocation *ms_vehicleDescs[NUM_VEHICLE_TYPES];
CVehicleModelInfo(void); CVehicleModelInfo(void);

View File

@ -12,8 +12,8 @@
#include "World.h" #include "World.h"
#include "Floater.h" #include "Floater.h"
int16 &CObject::nNoTempObjects = *(int16*)0x95CCA2; int16 CObject::nNoTempObjects;
int16 &CObject::nBodyCastHealth = *(int16*)0x5F7D4C; // 1000 int16 CObject::nBodyCastHealth = 1000;
void *CObject::operator new(size_t sz) { return CPools::GetObjectPool()->New(); } void *CObject::operator new(size_t sz) { return CPools::GetObjectPool()->New(); }
void *CObject::operator new(size_t sz, int handle) { return CPools::GetObjectPool()->New(handle);}; void *CObject::operator new(size_t sz, int handle) { return CPools::GetObjectPool()->New(handle);};

View File

@ -73,8 +73,8 @@ public:
CEntity *m_pCollidingEntity; CEntity *m_pCollidingEntity;
int8 m_colour1, m_colour2; int8 m_colour1, m_colour2;
static int16 &nNoTempObjects; static int16 nNoTempObjects;
static int16 &nBodyCastHealth; static int16 nBodyCastHealth;
static void *operator new(size_t); static void *operator new(size_t);
static void *operator new(size_t, int); static void *operator new(size_t, int);

View File

@ -9,11 +9,11 @@
#include "Game.h" #include "Game.h"
CParticleObject (&gPObjectArray)[MAX_PARTICLEOBJECTS] = *(CParticleObject(*)[MAX_PARTICLEOBJECTS])*(uintptr*)0x62A58C; CParticleObject gPObjectArray[MAX_PARTICLEOBJECTS];
CParticleObject *&CParticleObject::pCloseListHead = *(CParticleObject **)int(0x8F4340); CParticleObject *CParticleObject::pCloseListHead;
CParticleObject *&CParticleObject::pFarListHead = *(CParticleObject **)int(0x942F78); CParticleObject *CParticleObject::pFarListHead;
CParticleObject *&CParticleObject::pUnusedListHead = *(CParticleObject **)int(0x94128C); CParticleObject *CParticleObject::pUnusedListHead;
CAudioHydrant List[MAX_AUDIOHYDRANTS]; CAudioHydrant List[MAX_AUDIOHYDRANTS];

View File

@ -62,9 +62,9 @@ public:
int8 m_nCreationChance; int8 m_nCreationChance;
char _pad1[2]; char _pad1[2];
static CParticleObject *&pCloseListHead; static CParticleObject *pCloseListHead;
static CParticleObject *&pFarListHead; static CParticleObject *pFarListHead;
static CParticleObject *&pUnusedListHead; static CParticleObject *pUnusedListHead;
CParticleObject(); CParticleObject();
~CParticleObject(); ~CParticleObject();
@ -89,7 +89,7 @@ public:
static void MoveToList(CParticleObject **from, CParticleObject **to, CParticleObject *obj); static void MoveToList(CParticleObject **from, CParticleObject **to, CParticleObject *obj);
}; };
extern CParticleObject (&gPObjectArray)[MAX_PARTICLEOBJECTS]; extern CParticleObject gPObjectArray[MAX_PARTICLEOBJECTS];
class CAudioHydrant class CAudioHydrant
{ {

View File

@ -8,8 +8,8 @@
#include "Text.h" #include "Text.h"
#include "Credits.h" #include "Credits.h"
bool &CCredits::bCreditsGoing = *(bool*)0x95CDD3; bool CCredits::bCreditsGoing;
uint32 &CCredits::CreditsStartTime = *(uint32*)0x8F2528; uint32 CCredits::CreditsStartTime;
void void
CCredits::Init(void) CCredits::Init(void)

View File

@ -2,8 +2,8 @@
class CCredits class CCredits
{ {
static bool &bCreditsGoing; static bool bCreditsGoing;
static uint32 &CreditsStartTime; static uint32 CreditsStartTime;
public: public:
static void Init(void); static void Init(void);
static void Start(void); static void Start(void);

View File

@ -8,15 +8,15 @@
float CDraw::ms_fAspectRatio = DEFAULT_ASPECT_RATIO; float CDraw::ms_fAspectRatio = DEFAULT_ASPECT_RATIO;
#endif #endif
float &CDraw::ms_fNearClipZ = *(float*)0x8E2DC4; float CDraw::ms_fNearClipZ;
float &CDraw::ms_fFarClipZ = *(float*)0x9434F0; float CDraw::ms_fFarClipZ;
float &CDraw::ms_fFOV = *(float*)0x5FBC6C; float CDraw::ms_fFOV = 45.0f;
float &CDraw::ms_fLODDistance = *(float*)0x8F2C30; float CDraw::ms_fLODDistance;
uint8 &CDraw::FadeValue = *(uint8*)0x95CD68; uint8 CDraw::FadeValue;
uint8 &CDraw::FadeRed = *(uint8*)0x95CD90; uint8 CDraw::FadeRed;
uint8 &CDraw::FadeGreen = *(uint8*)0x95CD71; uint8 CDraw::FadeGreen;
uint8 &CDraw::FadeBlue = *(uint8*)0x95CD53; uint8 CDraw::FadeBlue;
float float
CDraw::FindAspectRatio(void) CDraw::FindAspectRatio(void)

View File

@ -13,11 +13,11 @@ enum eAspectRatio
class CDraw class CDraw
{ {
private: private:
static float &ms_fNearClipZ; static float ms_fNearClipZ;
static float &ms_fFarClipZ; static float ms_fFarClipZ;
static float &ms_fFOV; static float ms_fFOV;
public: public:
static float &ms_fLODDistance; // set but unused? static float ms_fLODDistance; // set but unused?
#ifdef ASPECT_RATIO_SCALE #ifdef ASPECT_RATIO_SCALE
// we use this variable to scale a lot of 2D elements // we use this variable to scale a lot of 2D elements
@ -25,10 +25,10 @@ public:
static float ms_fAspectRatio; static float ms_fAspectRatio;
#endif #endif
static uint8 &FadeValue; static uint8 FadeValue;
static uint8 &FadeRed; static uint8 FadeRed;
static uint8 &FadeGreen; static uint8 FadeGreen;
static uint8 &FadeBlue; static uint8 FadeBlue;
static void SetNearClipZ(float nearclip) { ms_fNearClipZ = nearclip; } static void SetNearClipZ(float nearclip) { ms_fNearClipZ = nearclip; }
static float GetNearClipZ(void) { return ms_fNearClipZ; } static float GetNearClipZ(void) { return ms_fNearClipZ; }

View File

@ -4,18 +4,18 @@
#include "TxdStore.h" #include "TxdStore.h"
#include "Font.h" #include "Font.h"
CFontDetails &CFont::Details = *(CFontDetails*)0x8F317C; CFontDetails CFont::Details;
int16 &CFont::NewLine = *(int16*)0x95CC94; int16 CFont::NewLine;
CSprite2d *CFont::Sprite = (CSprite2d*)0x95CC04; CSprite2d CFont::Sprite[MAX_FONTS];
#ifdef MORE_LANGUAGES #ifdef MORE_LANGUAGES
uint8 CFont::LanguageSet = FONT_LANGSET_EFIGS; uint8 CFont::LanguageSet = FONT_LANGSET_EFIGS;
int32 CFont::Slot = -1; int32 CFont::Slot = -1;
int16 CFont::Size[2][3][193] = { int16 CFont::Size[2][MAX_FONTS][193] = {
{ {
#else #else
int16 CFont::Size[3][193] = { int16 CFont::Size[MAX_FONTS][193] = {
#endif #endif
{ {
13, 12, 31, 35, 23, 35, 31, 9, 14, 15, 25, 30, 11, 17, 13, 31, 13, 12, 31, 35, 23, 35, 31, 9, 14, 15, 25, 30, 11, 17, 13, 31,

View File

@ -31,6 +31,7 @@ enum {
FONT_BANK, FONT_BANK,
FONT_PAGER, FONT_PAGER,
FONT_HEADING, FONT_HEADING,
MAX_FONTS
}; };
enum { enum {
@ -50,16 +51,16 @@ enum
class CFont class CFont
{ {
#ifdef MORE_LANGUAGES #ifdef MORE_LANGUAGES
static int16 Size[2][3][193]; static int16 Size[2][MAX_FONTS][193];
static uint8 LanguageSet; static uint8 LanguageSet;
static int32 Slot; static int32 Slot;
#else #else
static int16 Size[3][193]; static int16 Size[MAX_FONTS][193];
#endif #endif
static int16 &NewLine; static int16 NewLine;
static CSprite2d *Sprite; //[3] static CSprite2d Sprite[MAX_FONTS];
public: public:
static CFontDetails& Details; static CFontDetails Details;
static void Initialise(void); static void Initialise(void);
static void Shutdown(void); static void Shutdown(void);

View File

@ -21,52 +21,52 @@
#include "User.h" #include "User.h"
#include "World.h" #include "World.h"
wchar CHud::m_HelpMessage[256]; // = (wchar*)0x86B888; wchar CHud::m_HelpMessage[256];
wchar CHud::m_LastHelpMessage[256]; // = (wchar*)0x6E8F28; wchar CHud::m_LastHelpMessage[256];
uint32 CHud::m_HelpMessageState; // = *(int32*)0x880E1C; uint32 CHud::m_HelpMessageState;
uint32 CHud::m_HelpMessageTimer; // = *(int32*)0x880FA4; uint32 CHud::m_HelpMessageTimer;
int32 CHud::m_HelpMessageFadeTimer; // = *(int32*)0x8F6258; int32 CHud::m_HelpMessageFadeTimer;
wchar CHud::m_HelpMessageToPrint[256]; // = (wchar*)0x664480; wchar CHud::m_HelpMessageToPrint[256];
float CHud::m_fHelpMessageTime; // *(float *)0x8E2C28; float CHud::m_fHelpMessageTime;
bool CHud::m_HelpMessageQuick; // = *(bool*)0x95CCF7; bool CHud::m_HelpMessageQuick;
uint32 CHud::m_ZoneState; // = *(int32*)0x8F29AC; uint32 CHud::m_ZoneState;
int32 CHud::m_ZoneFadeTimer; int32 CHud::m_ZoneFadeTimer;
uint32 CHud::m_ZoneNameTimer; // = *(int32*)0x8F1A50; uint32 CHud::m_ZoneNameTimer;
wchar *CHud::m_pZoneName; // = *(wchar**)0x8E2C2C; wchar *CHud::m_pZoneName;
wchar *CHud::m_pLastZoneName; // = (wchar*)0x8F432C; wchar *CHud::m_pLastZoneName;
wchar *CHud::m_ZoneToPrint; wchar *CHud::m_ZoneToPrint;
uint32 CHud::m_VehicleState; // = *(int32*)0x940560; uint32 CHud::m_VehicleState;
int32 CHud::m_VehicleFadeTimer; int32 CHud::m_VehicleFadeTimer;
uint32 CHud::m_VehicleNameTimer; // = *(int32*)0x8F2A14; uint32 CHud::m_VehicleNameTimer;
wchar *CHud::m_VehicleName; // = *(wchar**)0x942FB4; wchar *CHud::m_VehicleName;
wchar *CHud::m_pLastVehicleName; // = *(wchar**)0x8E2DD8; wchar *CHud::m_pLastVehicleName;
wchar *CHud::m_pVehicleNameToPrint; wchar *CHud::m_pVehicleNameToPrint;
wchar CHud::m_Message[256];// = (wchar*)0x72E318; wchar CHud::m_Message[256];
wchar CHud::m_PagerMessage[256]; // = (wchar*)0x878840; wchar CHud::m_PagerMessage[256];
bool CHud::m_Wants_To_Draw_Hud; // (bool*)0x95CD89; bool CHud::m_Wants_To_Draw_Hud;
bool CHud::m_Wants_To_Draw_3dMarkers; // = *(bool*)0x95CD62; bool CHud::m_Wants_To_Draw_3dMarkers;
wchar CHud::m_BigMessage[6][128]; // = *(wchar(*)[6][128]) * (uintptr*)0x664CE0; wchar CHud::m_BigMessage[6][128];
int16 CHud::m_ItemToFlash; // = *(int16*)0x95CC82; int16 CHud::m_ItemToFlash;
// These aren't really in CHud // These aren't really in CHud
float CHud::BigMessageInUse[6]; float CHud::BigMessageInUse[6];
float CHud::BigMessageAlpha[6]; float CHud::BigMessageAlpha[6];
float CHud::BigMessageX[6]; float CHud::BigMessageX[6];
float CHud::OddJob2OffTimer; // = *(float*)0x942FA0; float CHud::OddJob2OffTimer;
bool CHud::CounterOnLastFrame; // = *(int8*)0x95CD67; bool CHud::CounterOnLastFrame;
float CHud::OddJob2XOffset; // = *(float*)0x8F1B5C; float CHud::OddJob2XOffset;
uint16 CHud::CounterFlashTimer; // = *(int16*)0x95CC20; uint16 CHud::CounterFlashTimer;
uint16 CHud::OddJob2Timer; // = *(int16*)0x95CC52; uint16 CHud::OddJob2Timer;
bool CHud::TimerOnLastFrame; //= *(int8*)0x95CDA7; bool CHud::TimerOnLastFrame;
int16 CHud::OddJob2On; //= *(int16*)0x95CC78; int16 CHud::OddJob2On;
uint16 CHud::TimerFlashTimer; //= *(int16*)0x95CC6C; uint16 CHud::TimerFlashTimer;
int16 CHud::PagerSoundPlayed; //= *(int16*)0x95CC4A; int16 CHud::PagerSoundPlayed;
int32 CHud::SpriteBrightness; //= *(int32*)0x95CC54; int32 CHud::SpriteBrightness;
float CHud::PagerXOffset; //= *(float*)0x941590; float CHud::PagerXOffset;
int16 CHud::PagerTimer; //= *(int16*)0x95CC3A; int16 CHud::PagerTimer;
int16 CHud::PagerOn; //= *(int16*)0x95CCA0; int16 CHud::PagerOn;
CSprite2d CHud::Sprites[NUM_HUD_SPRITES]; // = (CSprite2d*)0x95CB9C; CSprite2d CHud::Sprites[NUM_HUD_SPRITES];
struct struct
{ {
@ -98,8 +98,8 @@ struct
{"siterocket", "siterocket"} {"siterocket", "siterocket"}
}; };
RwTexture *&gpSniperSightTex = *(RwTexture**)0x8F5834; RwTexture *gpSniperSightTex;
RwTexture *&gpRocketSightTex = *(RwTexture**)0x8E2C20; RwTexture *gpRocketSightTex;
void CHud::Draw() void CHud::Draw()
{ {

View File

@ -6,9 +6,9 @@
// Originally taken from RW example 'mblur' // Originally taken from RW example 'mblur'
RwRaster *&CMBlur::pFrontBuffer = *(RwRaster**)0x8E2C48; RwRaster *CMBlur::pFrontBuffer;
bool &CMBlur::ms_bJustInitialised = *(bool*)0x95CDAB; bool CMBlur::ms_bJustInitialised;
bool &CMBlur::BlurOn = *(bool*)0x95CDAD; bool CMBlur::BlurOn;
static RwIm2DVertex Vertex[4]; static RwIm2DVertex Vertex[4];
static RwImVertexIndex Index[6] = { 0, 1, 2, 0, 2, 3 }; static RwImVertexIndex Index[6] = { 0, 1, 2, 0, 2, 3 };

View File

@ -3,9 +3,9 @@
class CMBlur class CMBlur
{ {
public: public:
static RwRaster *&pFrontBuffer; static RwRaster *pFrontBuffer;
static bool &ms_bJustInitialised; static bool ms_bJustInitialised;
static bool &BlurOn; static bool BlurOn;
public: public:
static void MotionBlurOpen(RwCamera *cam); static void MotionBlurOpen(RwCamera *cam);

View File

@ -204,26 +204,21 @@ RwRaster *gpGunShellRaster;
RwRaster *gpWakeOldRaster; RwRaster *gpWakeOldRaster;
//RwRaster *gpPointlightRaster; // CPointLights::RenderFogEffect RwRaster *gpPointlightRaster; // CPointLights::RenderFogEffect
RwRaster *&gpPointlightRaster = *(RwRaster **)0x8F5FE0;
//RwTexture *gpRainDropTex[MAX_RAINDROP_FILES]; // CWeather::RenderRainStreaks RwTexture *gpRainDropTex[MAX_RAINDROP_FILES]; // CWeather::RenderRainStreaks
RwTexture * (&gpRainDropTex)[MAX_RAINDROP_FILES] = *(RwTexture * (*)[MAX_RAINDROP_FILES])*(int *)0x880660;
RwRaster *gpRainDropRaster[MAX_RAINDROP_FILES]; RwRaster *gpRainDropRaster[MAX_RAINDROP_FILES];
//Float CParticle::ms_afRandTable[CParticle::RAND_TABLE_SIZE]; // float CParticle::ms_afRandTable[CParticle::RAND_TABLE_SIZE];
float (&CParticle::ms_afRandTable)[CParticle::RAND_TABLE_SIZE] = *(float (*)[CParticle::RAND_TABLE_SIZE])*(int *)0x6E98C8;
CParticle *CParticle::m_pUnusedListHead; CParticle *CParticle::m_pUnusedListHead;
//Float CParticle::m_SinTable[CParticle::SIN_COS_TABLE_SIZE]; // float CParticle::m_SinTable[CParticle::SIN_COS_TABLE_SIZE];
//Float CParticle::m_CosTable[CParticle::SIN_COS_TABLE_SIZE]; / float CParticle::m_CosTable[CParticle::SIN_COS_TABLE_SIZE];
float (&CParticle::m_SinTable)[CParticle::SIN_COS_TABLE_SIZE] = *(float (*)[CParticle::SIN_COS_TABLE_SIZE])*(int *)0x877358;
float (&CParticle::m_CosTable)[CParticle::SIN_COS_TABLE_SIZE] = *(float (*)[CParticle::SIN_COS_TABLE_SIZE])*(int *)0x70DA18;
int32 Randomizer; int32 Randomizer;

View File

@ -49,16 +49,11 @@ public:
; ;
} }
//static float ms_afRandTable[RAND_TABLE_SIZE]; static float ms_afRandTable[RAND_TABLE_SIZE];
static float (&ms_afRandTable)[RAND_TABLE_SIZE];
static CParticle *m_pUnusedListHead; static CParticle *m_pUnusedListHead;
/*
static float m_SinTable[SIN_COS_TABLE_SIZE]; static float m_SinTable[SIN_COS_TABLE_SIZE];
static float m_CosTable[SIN_COS_TABLE_SIZE]; static float m_CosTable[SIN_COS_TABLE_SIZE];
*/
static float (&m_SinTable)[SIN_COS_TABLE_SIZE];
static float (&m_CosTable)[SIN_COS_TABLE_SIZE];
static float Sin(int32 value) { return m_SinTable[value]; } static float Sin(int32 value) { return m_SinTable[value]; }
static float Cos(int32 value) { return m_CosTable[value]; } static float Cos(int32 value) { return m_CosTable[value]; }

View File

@ -10,8 +10,8 @@
#include "Timer.h" #include "Timer.h"
#include "PointLights.h" #include "PointLights.h"
int16 &CPointLights::NumLights = *(int16*)0x95CC3E; int16 CPointLights::NumLights;
CRegisteredPointLight *CPointLights::aLights = (CRegisteredPointLight*)0x7096D0; CRegisteredPointLight CPointLights::aLights[NUMPOINTLIGHTS];
void void
CPointLights::InitPerFrame(void) CPointLights::InitPerFrame(void)
@ -114,7 +114,7 @@ CPointLights::GenerateLightsAffectingObject(CVector *objCoors)
return ret; return ret;
} }
extern RwRaster *&gpPointlightRaster; extern RwRaster *gpPointlightRaster;
void void
CPointLights::RemoveLightsAffectingObject(void) CPointLights::RemoveLightsAffectingObject(void)

View File

@ -18,8 +18,8 @@ static_assert(sizeof(CRegisteredPointLight) == 0x2C, "CRegisteredPointLight: err
class CPointLights class CPointLights
{ {
public: public:
static int16 &NumLights; static int16 NumLights;
static CRegisteredPointLight *aLights; //[NUMPOINTLIGHTS] static CRegisteredPointLight aLights[NUMPOINTLIGHTS];
enum { enum {
LIGHT_POINT, LIGHT_POINT,

View File

@ -2,14 +2,14 @@
#include "patcher.h" #include "patcher.h"
#include "RenderBuffer.h" #include "RenderBuffer.h"
int32 &TempBufferVerticesStored = *(int32*)0x8F5F78; int32 TempBufferVerticesStored;
int32 &TempBufferIndicesStored = *(int32*)0x8F1A4C; int32 TempBufferIndicesStored;
RwIm3DVertex *TempBufferRenderVertices = (RwIm3DVertex*)0x862330; RwIm3DVertex TempBufferRenderVertices[TEMPBUFFERVERTSIZE];
RwImVertexIndex *TempBufferRenderIndexList = (RwImVertexIndex*)0x846288; RwImVertexIndex TempBufferRenderIndexList[TEMPBUFFERINDEXSIZE];
int &RenderBuffer::VerticesToBeStored = *(int*)0x8F59C4; int RenderBuffer::VerticesToBeStored;
int &RenderBuffer::IndicesToBeStored = *(int*)0x8E28B0; int RenderBuffer::IndicesToBeStored;
void void
RenderBuffer::ClearRenderBuffer(void) RenderBuffer::ClearRenderBuffer(void)

View File

@ -1,8 +1,8 @@
class RenderBuffer class RenderBuffer
{ {
public: public:
static int &VerticesToBeStored; static int VerticesToBeStored;
static int &IndicesToBeStored; static int IndicesToBeStored;
static void ClearRenderBuffer(void); static void ClearRenderBuffer(void);
static void StartStoring(int numIndices, int numVertices, RwImVertexIndex **indexStart, RwIm3DVertex **vertexStart); static void StartStoring(int numIndices, int numVertices, RwImVertexIndex **indexStart, RwIm3DVertex **vertexStart);
static void StopStoring(void); static void StopStoring(void);
@ -12,7 +12,7 @@ public:
#define TEMPBUFFERVERTSIZE 256 #define TEMPBUFFERVERTSIZE 256
#define TEMPBUFFERINDEXSIZE 1024 #define TEMPBUFFERINDEXSIZE 1024
extern int32 &TempBufferVerticesStored; extern int32 TempBufferVerticesStored;
extern int32 &TempBufferIndicesStored; extern int32 TempBufferIndicesStored;
extern RwIm3DVertex *TempBufferRenderVertices; extern RwIm3DVertex TempBufferRenderVertices[TEMPBUFFERVERTSIZE];
extern RwImVertexIndex *TempBufferRenderIndexList; extern RwImVertexIndex TempBufferRenderIndexList[TEMPBUFFERINDEXSIZE];

View File

@ -20,43 +20,31 @@
SETTWEAKPATH("Shadows"); SETTWEAKPATH("Shadows");
TWEAKBOOL(gbPrintShite); TWEAKBOOL(gbPrintShite);
#if 1
RwImVertexIndex ShadowIndexList[24]; RwImVertexIndex ShadowIndexList[24];
#else
RwImVertexIndex (&ShadowIndexList)[24] = *(RwImVertexIndex (*)[24])*(int *)0x649188;
#endif
RwTexture *&gpShadowCarTex = *(RwTexture **)0x8F2C90; RwTexture *gpShadowCarTex;
RwTexture *&gpShadowPedTex = *(RwTexture **)0x8F59D0; RwTexture *gpShadowPedTex;
RwTexture *&gpShadowHeliTex = *(RwTexture **)0x8E2A90; RwTexture *gpShadowHeliTex;
RwTexture *&gpShadowExplosionTex = *(RwTexture **)0x8F2A00; RwTexture *gpShadowExplosionTex;
RwTexture *&gpShadowHeadLightsTex = *(RwTexture **)0x95CB98; RwTexture *gpShadowHeadLightsTex;
RwTexture *&gpOutline1Tex = *(RwTexture **)0x8F1B24; RwTexture *gpOutline1Tex;
RwTexture *&gpOutline2Tex = *(RwTexture **)0x8F1B04; RwTexture *gpOutline2Tex;
RwTexture *&gpOutline3Tex = *(RwTexture **)0x8F1B08; RwTexture *gpOutline3Tex;
RwTexture *&gpBloodPoolTex = *(RwTexture **)0x9415F8; RwTexture *gpBloodPoolTex;
RwTexture *&gpReflectionTex = *(RwTexture **)0x8F582C; RwTexture *gpReflectionTex;
RwTexture *&gpGoalMarkerTex = *(RwTexture **)0x94142C; RwTexture *gpGoalMarkerTex;
RwTexture *&gpWalkDontTex = *(RwTexture **)0x95CB4C; RwTexture *gpWalkDontTex;
RwTexture *&gpCrackedGlassTex = *(RwTexture **)0x95CB94; RwTexture *gpCrackedGlassTex;
RwTexture *&gpPostShadowTex = *(RwTexture **)0x8F59D4; RwTexture *gpPostShadowTex;
RwTexture *&gpGoalTex = *(RwTexture**)0x94142C; RwTexture *gpGoalTex;
#if 1
int16 CShadows::ShadowsStoredToBeRendered; int16 CShadows::ShadowsStoredToBeRendered;
CStoredShadow CShadows::asShadowsStored [MAX_STOREDSHADOWS]; CStoredShadow CShadows::asShadowsStored [MAX_STOREDSHADOWS];
CPolyBunch CShadows::aPolyBunches [MAX_POLYBUNCHES]; CPolyBunch CShadows::aPolyBunches [MAX_POLYBUNCHES];
CStaticShadow CShadows::aStaticShadows [MAX_STATICSHADOWS]; CStaticShadow CShadows::aStaticShadows [MAX_STATICSHADOWS];
CPolyBunch *CShadows::pEmptyBunchList; CPolyBunch *CShadows::pEmptyBunchList;
CPermanentShadow CShadows::aPermanentShadows[MAX_PERMAMENTSHADOWS]; CPermanentShadow CShadows::aPermanentShadows[MAX_PERMAMENTSHADOWS];
#else
int16 &CShadows::ShadowsStoredToBeRendered = *(int16*)0x95CCEE;
CStoredShadow (&CShadows::asShadowsStored)[MAX_STOREDSHADOWS] = *(CStoredShadow (*)[MAX_STOREDSHADOWS])*(int *)0x779058;
CPolyBunch (&CShadows::aPolyBunches)[MAX_POLYBUNCHES] = *(CPolyBunch (*)[MAX_POLYBUNCHES])*(int *)0x86F4C8;
CStaticShadow (&CShadows::aStaticShadows)[MAX_STATICSHADOWS] = *(CStaticShadow (*)[MAX_STATICSHADOWS])*(int *)0x773BE8;
CPolyBunch *&CShadows::pEmptyBunchList = *(CPolyBunch**)0x8F435C;
CPermanentShadow (&CShadows::aPermanentShadows)[MAX_PERMAMENTSHADOWS] = *(CPermanentShadow (*)[MAX_PERMAMENTSHADOWS])*(int *)0x712040;
#endif
void void
CShadows::Init(void) CShadows::Init(void)

View File

@ -174,18 +174,18 @@ public:
static void RenderIndicatorShadow (uint32 nID, uint8 ShadowType, RwTexture *pTexture, CVector *pPosn, float fFrontX, float fFrontY, float fSideX, float fSideY, int16 nIntensity); static void RenderIndicatorShadow (uint32 nID, uint8 ShadowType, RwTexture *pTexture, CVector *pPosn, float fFrontX, float fFrontY, float fSideX, float fSideY, int16 nIntensity);
}; };
extern RwTexture *&gpShadowCarTex; extern RwTexture *gpShadowCarTex;
extern RwTexture *&gpShadowPedTex; extern RwTexture *gpShadowPedTex;
extern RwTexture *&gpShadowHeliTex; extern RwTexture *gpShadowHeliTex;
extern RwTexture *&gpShadowExplosionTex; extern RwTexture *gpShadowExplosionTex;
extern RwTexture *&gpShadowHeadLightsTex; extern RwTexture *gpShadowHeadLightsTex;
extern RwTexture *&gpOutline1Tex; extern RwTexture *gpOutline1Tex;
extern RwTexture *&gpOutline2Tex; extern RwTexture *gpOutline2Tex;
extern RwTexture *&gpOutline3Tex; extern RwTexture *gpOutline3Tex;
extern RwTexture *&gpBloodPoolTex; extern RwTexture *gpBloodPoolTex;
extern RwTexture *&gpReflectionTex; extern RwTexture *gpReflectionTex;
extern RwTexture *&gpGoalMarkerTex; extern RwTexture *gpGoalMarkerTex;
extern RwTexture *&gpWalkDontTex; extern RwTexture *gpWalkDontTex;
extern RwTexture *&gpCrackedGlassTex; extern RwTexture *gpCrackedGlassTex;
extern RwTexture *&gpPostShadowTex; extern RwTexture *gpPostShadowTex;
extern RwTexture *&gpGoalTex; extern RwTexture *gpGoalTex;

View File

@ -5,10 +5,10 @@
#include "Camera.h" #include "Camera.h"
#include "Sprite.h" #include "Sprite.h"
float &CSprite::m_f2DNearScreenZ = *(float*)0x8F1ABC; float CSprite::m_f2DNearScreenZ;
float &CSprite::m_f2DFarScreenZ = *(float*)0x8F2C94; float CSprite::m_f2DFarScreenZ;
float &CSprite::m_fRecipNearClipPlane = *(float*)0x8F5FFC; float CSprite::m_fRecipNearClipPlane;
int32 &CSprite::m_bFlushSpriteBufferSwitchZTest = *(int32*)0x8F5FB0; int32 CSprite::m_bFlushSpriteBufferSwitchZTest;
float float
CSprite::CalcHorizonCoors(void) CSprite::CalcHorizonCoors(void)
@ -40,9 +40,9 @@ CSprite::CalcScreenCoors(const RwV3d &in, RwV3d *out, float *outw, float *outh,
} }
#define SPRITEBUFFERSIZE 64 #define SPRITEBUFFERSIZE 64
static int32 &nSpriteBufferIndex = *(int32*)0x649A80; static int32 nSpriteBufferIndex;
static RwIm2DVertex *SpriteBufferVerts = (RwIm2DVertex*)0x649A84; //[SPRITEBUFFERSIZE*6]; static RwIm2DVertex SpriteBufferVerts[SPRITEBUFFERSIZE*6];
static RwIm2DVertex *verts = (RwIm2DVertex*)0x64C484; //[4]; static RwIm2DVertex verts[4];
void void
CSprite::InitSpriteBuffer(void) CSprite::InitSpriteBuffer(void)

Some files were not shown because too many files have changed in this diff Show More