Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Nikolay Korolev 2020-12-01 01:47:10 +03:00
commit bcc51f4a28
30 changed files with 163 additions and 91 deletions

View File

@ -65,7 +65,7 @@ uint32 _CurMP3Index;
int32 _CurMP3Pos; int32 _CurMP3Pos;
bool _bIsMp3Active; bool _bIsMp3Active;
#if defined(GTA3_1_1_PATCH) || defined(GTA3_STEAM_PATCH) || defined(NO_CDCHECK) #if GTA_VERSION >= GTA3_PC_11 || defined(NO_CDCHECK)
bool _bUseHDDAudio; bool _bUseHDDAudio;
char _aHDDPath[MAX_PATH]; char _aHDDPath[MAX_PATH];
#endif #endif
@ -1043,7 +1043,7 @@ cSampleManager::Initialise(void)
if ( !m_bInitialised ) if ( !m_bInitialised )
{ {
#if !defined(GTA3_STEAM_PATCH) && !defined(NO_CDCHECK) #if GTA_VERSION < GTA3_PC_STEAM && !defined(NO_CDCHECK)
FrontEndMenuManager.WaitForUserCD(); FrontEndMenuManager.WaitForUserCD();
if ( FrontEndMenuManager.m_bQuitGameNoCD ) if ( FrontEndMenuManager.m_bQuitGameNoCD )
{ {
@ -1060,7 +1060,7 @@ cSampleManager::Initialise(void)
} }
} }
#if defined(GTA3_1_1_PATCH) || defined(GTA3_STEAM_PATCH) || defined(NO_CDCHECK) #if GTA_VERSION >= GTA3_PC_11 || defined(NO_CDCHECK)
// hddaudio // hddaudio
/** /**
Option for user to play audio files directly from hard disk. Option for user to play audio files directly from hard disk.
@ -1297,17 +1297,17 @@ cSampleManager::Terminate(void)
bool bool
cSampleManager::CheckForAnAudioFileOnCD(void) cSampleManager::CheckForAnAudioFileOnCD(void)
{ {
#if !defined(GTA3_STEAM_PATCH) && !defined(NO_CDCHECK) #if GTA_VERSION < GTA3_PC_STEAM && !defined(NO_CDCHECK)
char filepath[MAX_PATH]; char filepath[MAX_PATH];
#if defined(GTA3_1_1_PATCH) #if GTA_VERSION >= GTA3_PC_11
if (_bUseHDDAudio) if (_bUseHDDAudio)
strcpy(filepath, _aHDDPath); strcpy(filepath, _aHDDPath);
else else
strcpy(filepath, m_szCDRomRootPath); strcpy(filepath, m_szCDRomRootPath);
#else #else
strcpy(filepath, m_szCDRomRootPath); strcpy(filepath, m_szCDRomRootPath);
#endif // #if defined(GTA3_1_1_PATCH) #endif // #if GTA_VERSION >= GTA3_PC_11
strcat(filepath, StreamedNameTable[AudioManager.GetRandomNumber(1) % TOTAL_STREAMED_SOUNDS]); strcat(filepath, StreamedNameTable[AudioManager.GetRandomNumber(1) % TOTAL_STREAMED_SOUNDS]);
@ -1324,13 +1324,13 @@ cSampleManager::CheckForAnAudioFileOnCD(void)
#else #else
return true; return true;
#endif // #if !defined(GTA3_STEAM_PATCH) && !defined(NO_CDCHECK) #endif // #if GTA_VERSION < GTA3_PC_STEAM && !defined(NO_CDCHECK)
} }
char char
cSampleManager::GetCDAudioDriveLetter(void) cSampleManager::GetCDAudioDriveLetter(void)
{ {
#if defined(GTA3_1_1_PATCH) || defined(GTA3_STEAM_PATCH) || defined(NO_CDCHECK) #if GTA_VERSION >= GTA3_PC_11 || defined(NO_CDCHECK)
if (_bUseHDDAudio) if (_bUseHDDAudio)
{ {
if ( strlen(_aHDDPath) != 0 ) if ( strlen(_aHDDPath) != 0 )

View File

@ -1273,7 +1273,7 @@ const tScriptCommandData commands[] = {
REGISTER_COMMAND(COMMAND_IS_CHAR_LYING_DOWN, INPUT_ARGUMENTS(ARGTYPE_INT,), OUTPUT_ARGUMENTS(), true, -1, ""), REGISTER_COMMAND(COMMAND_IS_CHAR_LYING_DOWN, INPUT_ARGUMENTS(ARGTYPE_INT,), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_CAN_CHAR_SEE_DEAD_CHAR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT,), OUTPUT_ARGUMENTS(), true, -1, ""), REGISTER_COMMAND(COMMAND_CAN_CHAR_SEE_DEAD_CHAR, INPUT_ARGUMENTS(ARGTYPE_INT, ARGTYPE_INT,), OUTPUT_ARGUMENTS(), true, -1, ""),
REGISTER_COMMAND(COMMAND_SET_ENTER_CAR_RANGE_MULTIPLIER, INPUT_ARGUMENTS(ARGTYPE_FLOAT,), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_SET_ENTER_CAR_RANGE_MULTIPLIER, INPUT_ARGUMENTS(ARGTYPE_FLOAT,), OUTPUT_ARGUMENTS(), false, -1, ""),
#ifndef GTA3_1_1_PATCH #if GTA_VERSION < GTA3_PC_11
REGISTER_COMMAND(COMMAND_SET_THREAT_REACTION_RANGE_MULTIPLIER, INPUT_ARGUMENTS(ARGTYPE_FLOAT,), OUTPUT_ARGUMENTS(), false, -1, ""), REGISTER_COMMAND(COMMAND_SET_THREAT_REACTION_RANGE_MULTIPLIER, INPUT_ARGUMENTS(ARGTYPE_FLOAT,), OUTPUT_ARGUMENTS(), false, -1, ""),
#endif #endif
#endif #endif

View File

@ -1326,7 +1326,7 @@ int8 CRunningScript::ProcessCommands1100To1199(int32 command)
#endif #endif
return 0; return 0;
#endif #endif
#ifndef GTA3_1_1_PATCH #if GTA_VERSION < GTA3_PC_11
case COMMAND_SET_THREAT_REACTION_RANGE_MULTIPLIER: case COMMAND_SET_THREAT_REACTION_RANGE_MULTIPLIER:
CollectParameters(&m_nIp, 1); CollectParameters(&m_nIp, 1);
#ifdef FIX_BUGS #ifdef FIX_BUGS

View File

@ -1156,7 +1156,7 @@ enum {
COMMAND_IS_CHAR_LYING_DOWN, COMMAND_IS_CHAR_LYING_DOWN,
COMMAND_CAN_CHAR_SEE_DEAD_CHAR, COMMAND_CAN_CHAR_SEE_DEAD_CHAR,
COMMAND_SET_ENTER_CAR_RANGE_MULTIPLIER, COMMAND_SET_ENTER_CAR_RANGE_MULTIPLIER,
#ifndef GTA3_1_1_PATCH #if GTA_VERSION < GTA3_PC_11
COMMAND_SET_THREAT_REACTION_RANGE_MULTIPLIER, COMMAND_SET_THREAT_REACTION_RANGE_MULTIPLIER,
#endif #endif
#ifdef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT #ifdef USE_ADVANCED_SCRIPT_DEBUG_OUTPUT

View File

@ -2570,7 +2570,7 @@ CCam::Process_M16_1stPerson(const CVector &CameraTarget, float, float, float)
ResetStatics = false; ResetStatics = false;
} }
#ifndef GTA3_1_1_PATCH #if GTA_VERSION < GTA3_PC_11
((CPed*)CamTargetEntity)->m_pedIK.GetComponentPosition(&HeadPos, PED_HEAD); ((CPed*)CamTargetEntity)->m_pedIK.GetComponentPosition(&HeadPos, PED_HEAD);
Source = HeadPos; Source = HeadPos;
Source.z += 0.1f; Source.z += 0.1f;
@ -2605,7 +2605,7 @@ CCam::Process_M16_1stPerson(const CVector &CameraTarget, float, float, float)
if(Alpha > DEGTORAD(60.0f)) Alpha = DEGTORAD(60.0f); if(Alpha > DEGTORAD(60.0f)) Alpha = DEGTORAD(60.0f);
else if(Alpha < -DEGTORAD(89.5f)) Alpha = -DEGTORAD(89.5f); else if(Alpha < -DEGTORAD(89.5f)) Alpha = -DEGTORAD(89.5f);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
HeadPos.x = 0.0f; HeadPos.x = 0.0f;
HeadPos.y = 0.0f; HeadPos.y = 0.0f;
HeadPos.z = 0.0f; HeadPos.z = 0.0f;

View File

@ -74,7 +74,7 @@ bool bDidWeProcessAnyCinemaCam;
CCamera::CCamera(void) CCamera::CCamera(void)
{ {
#if defined(GTA3_1_1_PATCH) || defined(FIX_BUGS) #if GTA_VERSION >= GTA3_PC_11 || defined(FIX_BUGS)
m_fMouseAccelHorzntl = 0.0025f; m_fMouseAccelHorzntl = 0.0025f;
m_fMouseAccelVertical = 0.003f; m_fMouseAccelVertical = 0.003f;
#endif #endif
@ -88,7 +88,7 @@ CCamera::CCamera(float)
void void
CCamera::Init(void) CCamera::Init(void)
{ {
#if defined(GTA3_1_1_PATCH) || defined(FIX_BUGS) #if GTA_VERSION >= GTA3_PC_11 || defined(FIX_BUGS)
float fMouseAccelHorzntl = m_fMouseAccelHorzntl; float fMouseAccelHorzntl = m_fMouseAccelHorzntl;
float fMouseAccelVertical = m_fMouseAccelVertical; float fMouseAccelVertical = m_fMouseAccelVertical;
#endif #endif
@ -104,7 +104,7 @@ CCamera::Init(void)
memset(this, 0, sizeof(CCamera)); // getting rid of vtable, eh? memset(this, 0, sizeof(CCamera)); // getting rid of vtable, eh?
#endif #endif
#if defined(GTA3_1_1_PATCH) || defined(FIX_BUGS) #if GTA_VERSION >= GTA3_PC_11 || defined(FIX_BUGS)
m_fMouseAccelHorzntl = fMouseAccelHorzntl; m_fMouseAccelHorzntl = fMouseAccelHorzntl;
m_fMouseAccelVertical = fMouseAccelVertical; m_fMouseAccelVertical = fMouseAccelVertical;
#endif #endif
@ -237,7 +237,7 @@ CCamera::Init(void)
m_uiTransitionState = 0; m_uiTransitionState = 0;
m_uiTimeTransitionStart = 0; m_uiTimeTransitionStart = 0;
m_bLookingAtPlayer = true; m_bLookingAtPlayer = true;
#if !defined(GTA3_1_1_PATCH) && !defined(FIX_BUGS) #if GTA_VERSION < GTA3_PC_11 && !defined(FIX_BUGS)
m_fMouseAccelHorzntl = 0.0025f; m_fMouseAccelHorzntl = 0.0025f;
m_fMouseAccelVertical = 0.003f; m_fMouseAccelVertical = 0.003f;
#endif #endif

View File

@ -243,6 +243,7 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname)
buf += 44; buf += 44;
if(model.numSpheres > 0){ if(model.numSpheres > 0){
model.spheres = (CColSphere*)RwMalloc(model.numSpheres*sizeof(CColSphere)); model.spheres = (CColSphere*)RwMalloc(model.numSpheres*sizeof(CColSphere));
REGISTER_MEMPTR(&model.spheres);
for(i = 0; i < model.numSpheres; i++){ for(i = 0; i < model.numSpheres; i++){
model.spheres[i].Set(*(float*)buf, *(CVector*)(buf+4), buf[16], buf[17]); model.spheres[i].Set(*(float*)buf, *(CVector*)(buf+4), buf[16], buf[17]);
buf += 20; buf += 20;
@ -254,6 +255,7 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname)
buf += 4; buf += 4;
if(model.numLines > 0){ if(model.numLines > 0){
model.lines = (CColLine*)RwMalloc(model.numLines*sizeof(CColLine)); model.lines = (CColLine*)RwMalloc(model.numLines*sizeof(CColLine));
REGISTER_MEMPTR(&model.lines);
for(i = 0; i < model.numLines; i++){ for(i = 0; i < model.numLines; i++){
model.lines[i].Set(*(CVector*)buf, *(CVector*)(buf+12)); model.lines[i].Set(*(CVector*)buf, *(CVector*)(buf+12));
buf += 24; buf += 24;
@ -265,6 +267,7 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname)
buf += 4; buf += 4;
if(model.numBoxes > 0){ if(model.numBoxes > 0){
model.boxes = (CColBox*)RwMalloc(model.numBoxes*sizeof(CColBox)); model.boxes = (CColBox*)RwMalloc(model.numBoxes*sizeof(CColBox));
REGISTER_MEMPTR(&model.boxes);
for(i = 0; i < model.numBoxes; i++){ for(i = 0; i < model.numBoxes; i++){
model.boxes[i].Set(*(CVector*)buf, *(CVector*)(buf+12), buf[24], buf[25]); model.boxes[i].Set(*(CVector*)buf, *(CVector*)(buf+12), buf[24], buf[25]);
buf += 28; buf += 28;
@ -276,6 +279,7 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname)
buf += 4; buf += 4;
if(numVertices > 0){ if(numVertices > 0){
model.vertices = (CompressedVector*)RwMalloc(numVertices*sizeof(CompressedVector)); model.vertices = (CompressedVector*)RwMalloc(numVertices*sizeof(CompressedVector));
REGISTER_MEMPTR(&model.vertices);
for(i = 0; i < numVertices; i++){ for(i = 0; i < numVertices; i++){
model.vertices[i].Set(*(float*)buf, *(float*)(buf+4), *(float*)(buf+8)); model.vertices[i].Set(*(float*)buf, *(float*)(buf+4), *(float*)(buf+8));
if(Abs(*(float*)buf) >= 256.0f || if(Abs(*(float*)buf) >= 256.0f ||
@ -291,6 +295,7 @@ CFileLoader::LoadCollisionModel(uint8 *buf, CColModel &model, char *modelname)
buf += 4; buf += 4;
if(model.numTriangles > 0){ if(model.numTriangles > 0){
model.triangles = (CColTriangle*)RwMalloc(model.numTriangles*sizeof(CColTriangle)); model.triangles = (CColTriangle*)RwMalloc(model.numTriangles*sizeof(CColTriangle));
REGISTER_MEMPTR(&model.triangles);
for(i = 0; i < model.numTriangles; i++){ for(i = 0; i < model.numTriangles; i++){
model.triangles[i].Set(model.vertices, *(int32*)buf, *(int32*)(buf+4), *(int32*)(buf+8), buf[12], buf[13]); model.triangles[i].Set(model.vertices, *(int32*)buf, *(int32*)(buf+4), *(int32*)(buf+8), buf[12], buf[13]);
buf += 16; buf += 16;

View File

@ -1009,7 +1009,7 @@ CMenuManager::Draw()
CFont::SetCentreOff(); CFont::SetCentreOff();
CFont::SetJustifyOn(); CFont::SetJustifyOn();
CFont::SetBackGroundOnlyTextOn(); CFont::SetBackGroundOnlyTextOn();
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
#ifdef DRAW_MENU_VERSION_TEXT #ifdef DRAW_MENU_VERSION_TEXT
CFont::SetColor(CRGBA(235, 170, 50, FadeIn(255))); CFont::SetColor(CRGBA(235, 170, 50, FadeIn(255)));
CFont::SetRightJustifyOn(); CFont::SetRightJustifyOn();
@ -3538,7 +3538,7 @@ CMenuManager::LoadAllTextures()
CTxdStore::LoadTxd(frontendTxdSlot, "MODELS/FRONTEND.TXD"); CTxdStore::LoadTxd(frontendTxdSlot, "MODELS/FRONTEND.TXD");
CTxdStore::AddRef(frontendTxdSlot); CTxdStore::AddRef(frontendTxdSlot);
CTxdStore::SetCurrentTxd(frontendTxdSlot); CTxdStore::SetCurrentTxd(frontendTxdSlot);
#ifndef GTA3_1_1_PATCH #if GTA_VERSION < GTA3_PC_11
CStreaming::IHaveUsedStreamingMemory(); CStreaming::IHaveUsedStreamingMemory();
CTimer::Update(); CTimer::Update();
#endif #endif
@ -3568,7 +3568,7 @@ CMenuManager::LoadAllTextures()
m_aMapSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER); m_aMapSprites[i].SetAddressing(rwTEXTUREADDRESSBORDER);
} }
#endif #endif
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
CStreaming::IHaveUsedStreamingMemory(); CStreaming::IHaveUsedStreamingMemory();
CTimer::Update(); CTimer::Update();
#endif #endif
@ -3583,7 +3583,7 @@ CMenuManager::LoadSettings()
int fileHandle = CFileMgr::OpenFile("gta3.set", "r"); int fileHandle = CFileMgr::OpenFile("gta3.set", "r");
int32 prevLang = m_PrefsLanguage; int32 prevLang = m_PrefsLanguage;
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
CMBlur::BlurOn = (_dwOperatingSystemVersion != OS_WIN98); CMBlur::BlurOn = (_dwOperatingSystemVersion != OS_WIN98);
#else #else
CMBlur::BlurOn = true; CMBlur::BlurOn = true;
@ -3882,7 +3882,7 @@ void
CMenuManager::PrintStats() CMenuManager::PrintStats()
{ {
int rowNum = ConstructStatLine(99999); int rowNum = ConstructStatLine(99999);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
CFont::SetFontStyle(FONT_LOCALE(FONT_BANK)); CFont::SetFontStyle(FONT_LOCALE(FONT_BANK));
#endif #endif
CFont::SetScale(MENU_X(MENU_TEXT_SIZE_X * 0.7), MENU_Y(MENU_TEXT_SIZE_Y * 0.9)); // second mulipliers are double, idk why CFont::SetScale(MENU_X(MENU_TEXT_SIZE_X * 0.7), MENU_Y(MENU_TEXT_SIZE_Y * 0.9)); // second mulipliers are double, idk why
@ -4936,7 +4936,7 @@ CMenuManager::ProcessButtonPresses(void)
m_PrefsUseWideScreen = false; m_PrefsUseWideScreen = false;
m_PrefsShowSubtitles = true; m_PrefsShowSubtitles = true;
m_nDisplayVideoMode = m_nPrefsVideoMode; m_nDisplayVideoMode = m_nPrefsVideoMode;
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
if (_dwOperatingSystemVersion == OS_WIN98) { if (_dwOperatingSystemVersion == OS_WIN98) {
CMBlur::BlurOn = false; CMBlur::BlurOn = false;
CMBlur::MotionBlurClose(); CMBlur::MotionBlurClose();
@ -5588,7 +5588,7 @@ CMenuManager::WaitForUserCD()
CSprite2d *splash; CSprite2d *splash;
char *splashscreen = nil; char *splashscreen = nil;
#if (!(defined RANDOMSPLASH) && !(defined GTA3_1_1_PATCH)) #if (!(defined RANDOMSPLASH) && GTA_VERSION < GTA3_PC_11)
if (CGame::frenchGame || CGame::germanGame || !CGame::nastyGame) if (CGame::frenchGame || CGame::germanGame || !CGame::nastyGame)
splashscreen = "mainsc2"; splashscreen = "mainsc2";
else else

View File

@ -115,7 +115,7 @@ void RestoreDefGraphics(int8 action) {
CMenuManager::m_PrefsVsync = true; CMenuManager::m_PrefsVsync = true;
CMenuManager::m_PrefsUseWideScreen = false; CMenuManager::m_PrefsUseWideScreen = false;
FrontEndMenuManager.m_nDisplayVideoMode = FrontEndMenuManager.m_nPrefsVideoMode; FrontEndMenuManager.m_nDisplayVideoMode = FrontEndMenuManager.m_nPrefsVideoMode;
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
if (_dwOperatingSystemVersion == OS_WIN98) { if (_dwOperatingSystemVersion == OS_WIN98) {
CMBlur::BlurOn = false; CMBlur::BlurOn = false;
CMBlur::MotionBlurClose(); CMBlur::MotionBlurClose();

View File

@ -937,7 +937,7 @@ void CPad::AddToPCCheatString(char c)
if ( !_CHEATCMP("GNIROOOOOB") ) if ( !_CHEATCMP("GNIROOOOOB") )
SlowTimeCheat(); SlowTimeCheat();
#ifndef GTA3_1_1_PATCH #if GTA_VERSION < GTA3_PC_11
// "TURTOISE" // "TURTOISE"
if ( !_CHEATCMP("ESIOTRUT") ) if ( !_CHEATCMP("ESIOTRUT") )
ArmourCheat(); ArmourCheat();

View File

@ -458,6 +458,35 @@ CStreaming::LoadCdDirectory(const char *dirname, int n)
CFileMgr::CloseFile(fd); CFileMgr::CloseFile(fd);
} }
#ifdef USE_CUSTOM_ALLOCATOR
RpAtomic*
RegisterAtomicMemPtrsCB(RpAtomic *atomic, void *data)
{
#if THIS_IS_COMPATIBLE_WITH_GTA3_RW31
// not quite sure what's going on here:
// gta3's RW 3.1 allocates separate memory for geometry data of RpGeometry.
// Is that a R* change? rpDefaultGeometryInstance also depends on it
RpGeometry *geo = RpAtomicGetGeometry(atomic);
if(geo->triangles)
REGISTER_MEMPTR(&geo->triangles);
if(geo->matList.materials)
REGISTER_MEMPTR(&geo->matList.materials);
if(geo->preLitLum)
REGISTER_MEMPTR(&geo->preLitLum);
if(geo->texCoords[0])
REGISTER_MEMPTR(&geo->texCoords[0]);
if(geo->texCoords[1])
REGISTER_MEMPTR(&geo->texCoords[1]);
#else
// normally RpGeometry is allocated in one block (excluding morph targets)
// so we don't really have allocated pointers in the struct.
// NB: in librw we actually do it in two allocations (geometry itself and data)
// so we could conceivably come up with something here
#endif
return atomic;
}
#endif
bool bool
CStreaming::ConvertBufferToObject(int8 *buf, int32 streamId) CStreaming::ConvertBufferToObject(int8 *buf, int32 streamId)
{ {
@ -494,9 +523,11 @@ CStreaming::ConvertBufferToObject(int8 *buf, int32 streamId)
PUSH_MEMID(MEMID_STREAM_MODELS); PUSH_MEMID(MEMID_STREAM_MODELS);
CTxdStore::SetCurrentTxd(mi->GetTxdSlot()); CTxdStore::SetCurrentTxd(mi->GetTxdSlot());
// TODO(USE_CUSTOM_ALLOCATOR): register mem pointers
if(mi->IsSimple()){ if(mi->IsSimple()){
success = CFileLoader::LoadAtomicFile(stream, streamId); success = CFileLoader::LoadAtomicFile(stream, streamId);
#ifdef USE_CUSTOM_ALLOCATOR
RegisterAtomicMemPtrsCB(((CSimpleModelInfo*)mi)->m_atomics[0], nil);
#endif
} else if (mi->GetModelType() == MITYPE_VEHICLE) { } else if (mi->GetModelType() == MITYPE_VEHICLE) {
// load vehicles in two parts // load vehicles in two parts
CModelInfo::GetModelInfo(streamId)->AddRef(); CModelInfo::GetModelInfo(streamId)->AddRef();
@ -505,6 +536,10 @@ CStreaming::ConvertBufferToObject(int8 *buf, int32 streamId)
ms_aInfoForModel[streamId].m_loadState = STREAMSTATE_STARTED; ms_aInfoForModel[streamId].m_loadState = STREAMSTATE_STARTED;
}else{ }else{
success = CFileLoader::LoadClumpFile(stream, streamId); success = CFileLoader::LoadClumpFile(stream, streamId);
#ifdef USE_CUSTOM_ALLOCATOR
if(success)
RpClumpForAllAtomics((RpClump*)mi->GetRwObject(), RegisterAtomicMemPtrsCB, nil);
#endif
} }
POP_MEMID(); POP_MEMID();
UpdateMemoryUsed(); UpdateMemoryUsed();
@ -628,13 +663,16 @@ CStreaming::FinishLoadingLargeFile(int8 *buf, int32 streamId)
if(streamId < STREAM_OFFSET_TXD){ if(streamId < STREAM_OFFSET_TXD){
// Model // Model
// TODO(USE_CUSTOM_ALLOCATOR): register pointers
mi = CModelInfo::GetModelInfo(streamId); mi = CModelInfo::GetModelInfo(streamId);
PUSH_MEMID(MEMID_STREAM_MODELS); PUSH_MEMID(MEMID_STREAM_MODELS);
CTxdStore::SetCurrentTxd(mi->GetTxdSlot()); CTxdStore::SetCurrentTxd(mi->GetTxdSlot());
success = CFileLoader::FinishLoadClumpFile(stream, streamId); success = CFileLoader::FinishLoadClumpFile(stream, streamId);
if(success) if(success){
#ifdef USE_CUSTOM_ALLOCATOR
RpClumpForAllAtomics((RpClump*)mi->GetRwObject(), RegisterAtomicMemPtrsCB, nil);
#endif
success = AddToLoadedVehiclesList(streamId); success = AddToLoadedVehiclesList(streamId);
}
POP_MEMID(); POP_MEMID();
mi->RemoveRef(); mi->RemoveRef();
CTxdStore::RemoveRefWithoutDelete(mi->GetTxdSlot()); CTxdStore::RemoveRefWithoutDelete(mi->GetTxdSlot());

View File

@ -135,10 +135,6 @@ enum Config {
NUM_EXPLOSIONS = 48, NUM_EXPLOSIONS = 48,
}; };
// We'll use this once we're ready to become independent of the game
// Use it to mark bugs in the code that will prevent the game from working then
//#define STANDALONE
// We don't expect to compile for PS2 or Xbox // We don't expect to compile for PS2 or Xbox
// but it might be interesting for documentation purposes // but it might be interesting for documentation purposes
#define GTA_PC #define GTA_PC
@ -165,6 +161,16 @@ enum Config {
#define FINAL #define FINAL
#endif #endif
// Version defines
#define GTA3_PS2_140 300
#define GTA3_PS2_160 301
#define GTA3_PC_10 310
#define GTA3_PC_11 311
#define GTA3_PC_STEAM 312
// TODO? maybe something for xbox or android?
#define GTA_VERSION GTA3_PC_11
// quality of life fixes that should also be in FINAL // quality of life fixes that should also be in FINAL
#define NASTY_GAME // nasty game for all languages #define NASTY_GAME // nasty game for all languages
#define NO_CDCHECK #define NO_CDCHECK
@ -173,14 +179,18 @@ enum Config {
#define DRAW_GAME_VERSION_TEXT #define DRAW_GAME_VERSION_TEXT
#define DRAW_MENU_VERSION_TEXT #define DRAW_MENU_VERSION_TEXT
// Memory allocation and compression
// #define USE_CUSTOM_ALLOCATOR // use CMemoryHeap for allocation. use with care, not finished yet
//#define COMPRESSED_COL_VECTORS // use compressed vectors for collision vertices
//#define ANIM_COMPRESSION // only keep most recently used anims uncompressed
#if defined GTA_PS2 #if defined GTA_PS2
# define GTA_PS2_STUFF # define GTA_PS2_STUFF
# define RANDOMSPLASH # define RANDOMSPLASH
# define USE_CUSTOM_ALLOCATOR
# define VU_COLLISION # define VU_COLLISION
# define ANIM_COMPRESSION # define ANIM_COMPRESSION
#elif defined GTA_PC #elif defined GTA_PC
# define GTA3_1_1_PATCH
//# define GTA3_STEAM_PATCH
# ifdef GTA_PS2_STUFF # ifdef GTA_PS2_STUFF
# define USE_PS2_RAND # define USE_PS2_RAND
# define RANDOMSPLASH // use random splash as on PS2 # define RANDOMSPLASH // use random splash as on PS2
@ -190,7 +200,7 @@ enum Config {
#endif #endif
#ifdef VU_COLLISION #ifdef VU_COLLISION
#define COMPRESSED_COL_VECTORS // current need compressed vectors in this code #define COMPRESSED_COL_VECTORS // currently need compressed vectors in this code
#endif #endif
#ifdef MASTER #ifdef MASTER
@ -242,7 +252,7 @@ enum Config {
#endif #endif
#ifndef EXTENDED_COLOURFILTER #ifndef EXTENDED_COLOURFILTER
#undef SCREEN_DROPLETS // we need the frontbuffer for this effect #undef SCREEN_DROPLETS // we need the backbuffer for this effect
#endif #endif
#ifndef EXTENDED_PIPELINES #ifndef EXTENDED_PIPELINES
#undef SCREEN_DROPLETS // we need neo.txd #undef SCREEN_DROPLETS // we need neo.txd

View File

@ -110,6 +110,9 @@ void TheGame(void);
void DebugMenuPopulate(void); void DebugMenuPopulate(void);
#endif #endif
#ifndef FINAL
bool gbPrintMemoryUsage;
#endif
#ifdef GTA_PS2 #ifdef GTA_PS2
#define WANT_TO_LOAD TheMemoryCard.m_bWantToLoad #define WANT_TO_LOAD TheMemoryCard.m_bWantToLoad
@ -957,9 +960,10 @@ DisplayGameDebugText()
TWEAKBOOL(bDisplayPosn); TWEAKBOOL(bDisplayPosn);
TWEAKBOOL(bDisplayRate); TWEAKBOOL(bDisplayRate);
} }
#endif
// PrintMemoryUsage(); // TODO: put this somewhere else if(gbPrintMemoryUsage)
PrintMemoryUsage();
#endif
char str[200]; char str[200];
wchar ustr[200]; wchar ustr[200];

View File

@ -20,6 +20,10 @@ extern bool gbShowTimebars;
#define gbShowTimebars false #define gbShowTimebars false
#endif #endif
#ifndef FINAL
extern bool gbPrintMemoryUsage;
#endif
class CSprite2d; class CSprite2d;
bool DoRWStuffStartOfFrame(int16 TopRed, int16 TopGreen, int16 TopBlue, int16 BottomRed, int16 BottomGreen, int16 BottomBlue, int16 Alpha); bool DoRWStuffStartOfFrame(int16 TopRed, int16 TopGreen, int16 TopBlue, int16 BottomRed, int16 BottomGreen, int16 BottomBlue, int16 Alpha);

View File

@ -29,6 +29,7 @@
#include "Script.h" #include "Script.h"
#include "postfx.h" #include "postfx.h"
#include "custompipes.h" #include "custompipes.h"
#include "MemoryHeap.h"
#ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS #ifdef DONT_TRUST_RECOGNIZED_JOYSTICKS
#include "FileMgr.h" #include "FileMgr.h"
@ -383,6 +384,10 @@ SwitchToMission(void)
} }
#endif #endif
#ifdef USE_CUSTOM_ALLOCATOR
static void ParseHeap(void) { gMainHeap.ParseHeap(); }
#endif
static const char *carnames[] = { static const char *carnames[] = {
"landstal", "idaho", "stinger", "linerun", "peren", "sentinel", "patriot", "firetruk", "trash", "stretch", "manana", "infernus", "blista", "pony", "landstal", "idaho", "stinger", "linerun", "peren", "sentinel", "patriot", "firetruk", "trash", "stretch", "manana", "infernus", "blista", "pony",
"mule", "cheetah", "ambulan", "fbicar", "moonbeam", "esperant", "taxi", "kuruma", "bobcat", "mrwhoop", "bfinject", "corpse", "police", "enforcer", "mule", "cheetah", "ambulan", "fbicar", "moonbeam", "esperant", "taxi", "kuruma", "bobcat", "mrwhoop", "bfinject", "corpse", "police", "enforcer",
@ -565,6 +570,12 @@ DebugMenuPopulate(void)
DebugMenuAddVarBool8("Render", "Don't render Objects", &gbDontRenderObjects, nil); DebugMenuAddVarBool8("Render", "Don't render Objects", &gbDontRenderObjects, nil);
DebugMenuAddVarBool8("Render", "Don't Render Water", &gbDontRenderWater, nil); DebugMenuAddVarBool8("Render", "Don't Render Water", &gbDontRenderWater, nil);
#ifndef FINAL
DebugMenuAddVarBool8("Debug", "Print Memory Usage", &gbPrintMemoryUsage, nil);
#ifdef USE_CUSTOM_ALLOCATOR
DebugMenuAddCmd("Debug", "Parse Heap", ParseHeap);
#endif
#endif
DebugMenuAddVarBool8("Debug", "Show cullzone debug stuff", &gbShowCullZoneDebugStuff, nil); DebugMenuAddVarBool8("Debug", "Show cullzone debug stuff", &gbShowCullZoneDebugStuff, nil);
DebugMenuAddVarBool8("Debug", "Disable zone cull", &gbDisableZoneCull, nil); DebugMenuAddVarBool8("Debug", "Disable zone cull", &gbDisableZoneCull, nil);

View File

@ -824,7 +824,7 @@ CPhysical::ApplyCollisionAlt(CEntity *B, CColPoint &colpoint, float &impulse, CV
normalSpeed = DotProduct(speed, colpoint.normal); normalSpeed = DotProduct(speed, colpoint.normal);
if(normalSpeed < 0.0f){ if(normalSpeed < 0.0f){
float minspeed = 1.3f*GRAVITY * CTimer::GetTimeStep(); float minspeed = 1.3f*GRAVITY * CTimer::GetTimeStep();
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
if ((IsObject() || IsVehicle() && (GetUp().z < -0.3f || ((CVehicle*)this)->IsBike() && (GetStatus() == STATUS_ABANDONED || GetStatus() == STATUS_WRECKED))) && if ((IsObject() || IsVehicle() && (GetUp().z < -0.3f || ((CVehicle*)this)->IsBike() && (GetStatus() == STATUS_ABANDONED || GetStatus() == STATUS_WRECKED))) &&
#else #else
if((IsObject() || IsVehicle() && GetUp().z < -0.3f) && if((IsObject() || IsVehicle() && GetUp().z < -0.3f) &&

View File

@ -962,7 +962,7 @@ CVehicleModelInfo::DeleteVehicleColourTextures(void)
for(i = 0; i < 256; i++){ for(i = 0; i < 256; i++){
if(ms_colourTextureTable[i]){ if(ms_colourTextureTable[i]){
RwTextureDestroy(ms_colourTextureTable[i]); RwTextureDestroy(ms_colourTextureTable[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
ms_colourTextureTable[i] = nil; ms_colourTextureTable[i] = nil;
#endif #endif
} }

View File

@ -667,7 +667,7 @@ CCopPed::ProcessControl(void)
} }
if (bDuckAndCover) { if (bDuckAndCover) {
#if !defined(GTA3_1_1_PATCH) && !defined(VC_PED_PORTS) #if GTA_VERSION < GTA3_PC_11 && !defined(VC_PED_PORTS)
if (!bNotAllowedToDuck && Seek()) { if (!bNotAllowedToDuck && Seek()) {
SetMoveState(PEDMOVE_STILL); SetMoveState(PEDMOVE_STILL);
SetMoveAnim(); SetMoveAnim();

View File

@ -78,12 +78,12 @@ public:
if(type == EFFECT_LIGHT){ if(type == EFFECT_LIGHT){
if(light.corona) if(light.corona)
RwTextureDestroy(light.corona); RwTextureDestroy(light.corona);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
light.corona = nil; light.corona = nil;
#endif #endif
if(light.shadow) if(light.shadow)
RwTextureDestroy(light.shadow); RwTextureDestroy(light.shadow);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
light.shadow = nil; light.shadow = nil;
#endif #endif
} }

View File

@ -44,23 +44,23 @@ void
CClouds::Shutdown(void) CClouds::Shutdown(void)
{ {
RwTextureDestroy(gpCloudTex[0]); RwTextureDestroy(gpCloudTex[0]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpCloudTex[0] = nil; gpCloudTex[0] = nil;
#endif #endif
RwTextureDestroy(gpCloudTex[1]); RwTextureDestroy(gpCloudTex[1]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpCloudTex[1] = nil; gpCloudTex[1] = nil;
#endif #endif
RwTextureDestroy(gpCloudTex[2]); RwTextureDestroy(gpCloudTex[2]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpCloudTex[2] = nil; gpCloudTex[2] = nil;
#endif #endif
RwTextureDestroy(gpCloudTex[3]); RwTextureDestroy(gpCloudTex[3]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpCloudTex[3] = nil; gpCloudTex[3] = nil;
#endif #endif
RwTextureDestroy(gpCloudTex[4]); RwTextureDestroy(gpCloudTex[4]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpCloudTex[4] = nil; gpCloudTex[4] = nil;
#endif #endif
} }

View File

@ -590,7 +590,7 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_SMOKE_FILES; i++ ) for ( int32 i = 0; i < MAX_SMOKE_FILES; i++ )
{ {
RwTextureDestroy(gpSmokeTex[i]); RwTextureDestroy(gpSmokeTex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpSmokeTex[i] = nil; gpSmokeTex[i] = nil;
#endif #endif
} }
@ -598,7 +598,7 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_SMOKE2_FILES; i++ ) for ( int32 i = 0; i < MAX_SMOKE2_FILES; i++ )
{ {
RwTextureDestroy(gpSmoke2Tex[i]); RwTextureDestroy(gpSmoke2Tex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpSmoke2Tex[i] = nil; gpSmoke2Tex[i] = nil;
#endif #endif
} }
@ -606,7 +606,7 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_RUBBER_FILES; i++ ) for ( int32 i = 0; i < MAX_RUBBER_FILES; i++ )
{ {
RwTextureDestroy(gpRubberTex[i]); RwTextureDestroy(gpRubberTex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpRubberTex[i] = nil; gpRubberTex[i] = nil;
#endif #endif
} }
@ -614,7 +614,7 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_RAINSPLASH_FILES; i++ ) for ( int32 i = 0; i < MAX_RAINSPLASH_FILES; i++ )
{ {
RwTextureDestroy(gpRainSplashTex[i]); RwTextureDestroy(gpRainSplashTex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpRainSplashTex[i] = nil; gpRainSplashTex[i] = nil;
#endif #endif
} }
@ -622,7 +622,7 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_WATERSPRAY_FILES; i++ ) for ( int32 i = 0; i < MAX_WATERSPRAY_FILES; i++ )
{ {
RwTextureDestroy(gpWatersprayTex[i]); RwTextureDestroy(gpWatersprayTex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpWatersprayTex[i] = nil; gpWatersprayTex[i] = nil;
#endif #endif
} }
@ -630,7 +630,7 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_EXPLOSIONMEDIUM_FILES; i++ ) for ( int32 i = 0; i < MAX_EXPLOSIONMEDIUM_FILES; i++ )
{ {
RwTextureDestroy(gpExplosionMediumTex[i]); RwTextureDestroy(gpExplosionMediumTex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpExplosionMediumTex[i] = nil; gpExplosionMediumTex[i] = nil;
#endif #endif
} }
@ -638,7 +638,7 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_GUNFLASH_FILES; i++ ) for ( int32 i = 0; i < MAX_GUNFLASH_FILES; i++ )
{ {
RwTextureDestroy(gpGunFlashTex[i]); RwTextureDestroy(gpGunFlashTex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpGunFlashTex[i] = nil; gpGunFlashTex[i] = nil;
#endif #endif
} }
@ -646,7 +646,7 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_RAINDROP_FILES; i++ ) for ( int32 i = 0; i < MAX_RAINDROP_FILES; i++ )
{ {
RwTextureDestroy(gpRainDropTex[i]); RwTextureDestroy(gpRainDropTex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpRainDropTex[i] = nil; gpRainDropTex[i] = nil;
#endif #endif
} }
@ -654,7 +654,7 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_RAINSPLASHUP_FILES; i++ ) for ( int32 i = 0; i < MAX_RAINSPLASHUP_FILES; i++ )
{ {
RwTextureDestroy(gpRainSplashupTex[i]); RwTextureDestroy(gpRainSplashupTex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpRainSplashupTex[i] = nil; gpRainSplashupTex[i] = nil;
#endif #endif
} }
@ -662,7 +662,7 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_BIRDFRONT_FILES; i++ ) for ( int32 i = 0; i < MAX_BIRDFRONT_FILES; i++ )
{ {
RwTextureDestroy(gpBirdfrontTex[i]); RwTextureDestroy(gpBirdfrontTex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpBirdfrontTex[i] = nil; gpBirdfrontTex[i] = nil;
#endif #endif
} }
@ -670,7 +670,7 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_CARDEBRIS_FILES; i++ ) for ( int32 i = 0; i < MAX_CARDEBRIS_FILES; i++ )
{ {
RwTextureDestroy(gpCarDebrisTex[i]); RwTextureDestroy(gpCarDebrisTex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpCarDebrisTex[i] = nil; gpCarDebrisTex[i] = nil;
#endif #endif
} }
@ -678,78 +678,78 @@ void CParticle::Shutdown()
for ( int32 i = 0; i < MAX_CARSPLASH_FILES; i++ ) for ( int32 i = 0; i < MAX_CARSPLASH_FILES; i++ )
{ {
RwTextureDestroy(gpCarSplashTex[i]); RwTextureDestroy(gpCarSplashTex[i]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpCarSplashTex[i] = nil; gpCarSplashTex[i] = nil;
#endif #endif
} }
RwTextureDestroy(gpFlame1Tex); RwTextureDestroy(gpFlame1Tex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpFlame1Tex = nil; gpFlame1Tex = nil;
#endif #endif
RwTextureDestroy(gpFlame5Tex); RwTextureDestroy(gpFlame5Tex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpFlame5Tex = nil; gpFlame5Tex = nil;
#endif #endif
RwTextureDestroy(gpRainDropSmallTex); RwTextureDestroy(gpRainDropSmallTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpRainDropSmallTex = nil; gpRainDropSmallTex = nil;
#endif #endif
RwTextureDestroy(gpBloodTex); RwTextureDestroy(gpBloodTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpBloodTex = nil; gpBloodTex = nil;
#endif #endif
RwTextureDestroy(gpLeafTex); RwTextureDestroy(gpLeafTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpLeafTex = nil; gpLeafTex = nil;
#endif #endif
RwTextureDestroy(gpCloudTex1); RwTextureDestroy(gpCloudTex1);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpCloudTex1 = nil; gpCloudTex1 = nil;
#endif #endif
RwTextureDestroy(gpCloudTex4); RwTextureDestroy(gpCloudTex4);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpCloudTex4 = nil; gpCloudTex4 = nil;
#endif #endif
RwTextureDestroy(gpBloodSmallTex); RwTextureDestroy(gpBloodSmallTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpBloodSmallTex = nil; gpBloodSmallTex = nil;
#endif #endif
RwTextureDestroy(gpGungeTex); RwTextureDestroy(gpGungeTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpGungeTex = nil; gpGungeTex = nil;
#endif #endif
RwTextureDestroy(gpCollisionSmokeTex); RwTextureDestroy(gpCollisionSmokeTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpCollisionSmokeTex = nil; gpCollisionSmokeTex = nil;
#endif #endif
RwTextureDestroy(gpBulletHitTex); RwTextureDestroy(gpBulletHitTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpBulletHitTex = nil; gpBulletHitTex = nil;
#endif #endif
RwTextureDestroy(gpGunShellTex); RwTextureDestroy(gpGunShellTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpGunShellTex = nil; gpGunShellTex = nil;
#endif #endif
RwTextureDestroy(gpWakeOldTex); RwTextureDestroy(gpWakeOldTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpWakeOldTex = nil; gpWakeOldTex = nil;
#endif #endif
RwTextureDestroy(gpPointlightTex); RwTextureDestroy(gpPointlightTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpPointlightTex = nil; gpPointlightTex = nil;
#endif #endif

View File

@ -414,19 +414,19 @@ void
CRubbish::Shutdown(void) CRubbish::Shutdown(void)
{ {
RwTextureDestroy(gpRubbishTexture[0]); RwTextureDestroy(gpRubbishTexture[0]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpRubbishTexture[0] = nil; gpRubbishTexture[0] = nil;
#endif #endif
RwTextureDestroy(gpRubbishTexture[1]); RwTextureDestroy(gpRubbishTexture[1]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpRubbishTexture[1] = nil; gpRubbishTexture[1] = nil;
#endif #endif
RwTextureDestroy(gpRubbishTexture[2]); RwTextureDestroy(gpRubbishTexture[2]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpRubbishTexture[2] = nil; gpRubbishTexture[2] = nil;
#endif #endif
RwTextureDestroy(gpRubbishTexture[3]); RwTextureDestroy(gpRubbishTexture[3]);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpRubbishTexture[3] = nil; gpRubbishTexture[3] = nil;
#endif #endif
} }

View File

@ -54,15 +54,15 @@ void
CSkidmarks::Shutdown(void) CSkidmarks::Shutdown(void)
{ {
RwTextureDestroy(gpSkidTex); RwTextureDestroy(gpSkidTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpSkidTex = nil; gpSkidTex = nil;
#endif #endif
RwTextureDestroy(gpSkidBloodTex); RwTextureDestroy(gpSkidBloodTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpSkidBloodTex = nil; gpSkidBloodTex = nil;
#endif #endif
RwTextureDestroy(gpSkidMudTex); RwTextureDestroy(gpSkidMudTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpSkidMudTex = nil; gpSkidMudTex = nil;
#endif #endif
} }

View File

@ -389,7 +389,7 @@ psInitialize(void)
InitialiseLanguage(); InitialiseLanguage();
#ifndef GTA3_1_1_PATCH #if GTA_VERSION < GTA3_PC_11
FrontEndMenuManager.LoadSettings(); FrontEndMenuManager.LoadSettings();
#endif #endif
@ -443,7 +443,7 @@ psInitialize(void)
#ifndef PS2_MENU #ifndef PS2_MENU
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
FrontEndMenuManager.LoadSettings(); FrontEndMenuManager.LoadSettings();
#endif #endif

View File

@ -651,7 +651,7 @@ psInitialize(void)
C_PcSave::SetSaveDirectory(_psGetUserFilesFolder()); C_PcSave::SetSaveDirectory(_psGetUserFilesFolder());
InitialiseLanguage(); InitialiseLanguage();
#ifndef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
FrontEndMenuManager.LoadSettings(); FrontEndMenuManager.LoadSettings();
#endif #endif
@ -703,7 +703,7 @@ psInitialize(void)
#ifndef PS2_MENU #ifndef PS2_MENU
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
FrontEndMenuManager.LoadSettings(); FrontEndMenuManager.LoadSettings();
#endif #endif

View File

@ -405,7 +405,7 @@ CVehicle::FlyingControl(eFlightModel flightModel)
else else
fThrust = fThrustVar * (CPad::GetPad(0)->GetAccelerate() - 2 * CPad::GetPad(0)->GetBrake()) / 255.0f + 0.95f; fThrust = fThrustVar * (CPad::GetPad(0)->GetAccelerate() - 2 * CPad::GetPad(0)->GetBrake()) / 255.0f + 0.95f;
fThrust -= fRotorFallOff * DotProduct(m_vecMoveSpeed, GetUp()); fThrust -= fRotorFallOff * DotProduct(m_vecMoveSpeed, GetUp());
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
if (fThrust > 0.9f && GetPosition().z > 80.0f) if (fThrust > 0.9f && GetPosition().z > 80.0f)
fThrust = 0.9f; fThrust = 0.9f;
#endif #endif

View File

@ -46,7 +46,7 @@ void
CWeaponEffects::Shutdown(void) CWeaponEffects::Shutdown(void)
{ {
RwTextureDestroy(gpCrossHairTex); RwTextureDestroy(gpCrossHairTex);
#ifdef GTA3_1_1_PATCH #if GTA_VERSION >= GTA3_PC_11
gpCrossHairTex = nil; gpCrossHairTex = nil;
#endif #endif
} }

2
vendor/ogg vendored

@ -1 +1 @@
Subproject commit 31bd3f2707fb7dbae539a7093ba1fc4b2b37d84e Subproject commit 684c73773e7e2683245ffd6aa75f04115b51123a

2
vendor/opus vendored

@ -1 +1 @@
Subproject commit 841d57b82a516ccc6e90d1d4aee8d4a7f0d00010 Subproject commit 6bae366f9fef25191fc812c430e8abd40a13a233

2
vendor/opusfile vendored

@ -1 +1 @@
Subproject commit 4174c26e0aaab19d01afdea0a46f7f95fdc6b3e6 Subproject commit 6452e838e68e8f4fc0b3599523c760ac6276ce89