Skip to content

Commit 4996834

Browse files
committed
Merge branch 'master' into vendor/curl-7.84.0
2 parents 2a4fd81 + d874424 commit 4996834

File tree

20 files changed

+7751
-5145
lines changed

20 files changed

+7751
-5145
lines changed

Client/core/CCore.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -573,8 +573,8 @@ void CCore::ApplyGameSettings()
573573
CVARS_GET("tyre_smoke_enabled", bVal);
574574
m_pMultiplayer->SetTyreSmokeEnabled(bVal);
575575
pGameSettings->UpdateFieldOfViewFromSettings();
576-
pGameSettings->ResetVehiclesLODDistance(false);
577-
pGameSettings->ResetPedsLODDistance(false);
576+
pGameSettings->ResetVehiclesLODDistance();
577+
pGameSettings->ResetPedsLODDistance();
578578
pGameSettings->ResetCoronaReflectionsEnabled();
579579
pController->SetVerticalAimSensitivityRawValue(CVARS_GET_VALUE<float>("vertical_aim_sensitivity"));
580580
CVARS_GET("mastervolume", fVal);

Client/core/Graphics/CVideoModeManager.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ class CVideoModeManager : public CVideoModeManagerInterface
5757
unsigned long m_ulForceBackBufferWidth;
5858
unsigned long m_ulForceBackBufferHeight;
5959
unsigned long m_ulForceBackBufferColorDepth;
60-
unsigned long m_ulFullScreenRefreshRate;
6160
HWND m_hDeviceWindow;
6261
CGameSettings* m_pGameSettings;
6362
unsigned long m_ulMonitorCount;
@@ -134,8 +133,8 @@ void CVideoModeManager::PreCreateDevice(D3DPRESENT_PARAMETERS* pp)
134133
m_bNextWindowed = m_bCurrentWindowed;
135134
m_iNextFullscreenStyle = m_iCurrentFullscreenStyle;
136135

137-
// Remember this for later
138-
m_ulFullScreenRefreshRate = pp->FullScreen_RefreshRateInHz;
136+
// Set refresh rate to default (automatic)
137+
pp->FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
139138

140139
if (IsDisplayModeWindowed())
141140
{
@@ -146,7 +145,6 @@ void CVideoModeManager::PreCreateDevice(D3DPRESENT_PARAMETERS* pp)
146145
SetWindowLong(m_hDeviceWindow, GWL_STYLE, WS_POPUP);
147146
MoveWindow(m_hDeviceWindow, iPosX, iPosY, pp->BackBufferWidth, pp->BackBufferHeight, TRUE);
148147
pp->Windowed = true;
149-
pp->FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
150148
}
151149
else if (IsDisplayModeFullScreenWindow())
152150
{
@@ -155,7 +153,6 @@ void CVideoModeManager::PreCreateDevice(D3DPRESENT_PARAMETERS* pp)
155153
SetWindowLong(m_hDeviceWindow, GWL_STYLE, WS_POPUP);
156154
MoveWindow(m_hDeviceWindow, rc.left, rc.top, pp->BackBufferWidth, pp->BackBufferHeight, TRUE);
157155
pp->Windowed = true;
158-
pp->FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
159156
}
160157

161158
if (pp->SwapEffect == D3DSWAPEFFECT_FLIP && IsDisplayModeWindowed())
@@ -200,7 +197,7 @@ void CVideoModeManager::PreReset(D3DPRESENT_PARAMETERS* pp)
200197

201198
pp->BackBufferWidth = m_ulForceBackBufferWidth;
202199
pp->BackBufferHeight = m_ulForceBackBufferHeight;
203-
pp->FullScreen_RefreshRateInHz = pp->Windowed ? D3DPRESENT_RATE_DEFAULT : m_ulFullScreenRefreshRate;
200+
pp->FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
204201
}
205202

206203
///////////////////////////////////////////////////////////////
@@ -270,7 +267,7 @@ void CVideoModeManager::OnGainFocus()
270267
dmScreenSettings.dmPelsHeight = m_ulForceBackBufferHeight;
271268
dmScreenSettings.dmBitsPerPel = m_ulForceBackBufferColorDepth;
272269
dmScreenSettings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT | DM_DISPLAYFREQUENCY;
273-
dmScreenSettings.dmDisplayFrequency = m_ulFullScreenRefreshRate;
270+
dmScreenSettings.dmDisplayFrequency = D3DPRESENT_RATE_DEFAULT;
274271

275272
if (ChangeDisplaySettingsEx(GetCurrentAdapterDeviceName(), &dmScreenSettings, NULL, CDS_FULLSCREEN, NULL) != DISP_CHANGE_SUCCESSFUL)
276273
return;

Client/game_sa/CSettingsSA.cpp

Lines changed: 28 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -563,74 +563,35 @@ void CSettingsSA::SetFieldOfViewVehicleMax(float fAngle, bool bFromScript)
563563
// Vehicles LOD draw distance
564564
//
565565
////////////////////////////////////////////////
566-
float ms_fClientMaxVehicleLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE;
567-
float ms_fClientMaxTrainPlaneLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE * TRAIN_LOD_DISTANCE_MULTIPLIER;
568-
float ms_fScriptMaxVehicleLODDistance = ms_fClientMaxVehicleLODDistance;
569-
float ms_fScriptMaxTrainPlaneLODDistance = ms_fClientMaxTrainPlaneLODDistance;
570566
bool ms_bMaxVehicleLODDistanceFromScript = false;
571567

572568
void CSettingsSA::SetVehiclesLODDistance(float fVehiclesLODDistance, float fTrainsPlanesLODDistance, bool bFromScript)
573569
{
574-
if (bFromScript)
575-
{
576-
ms_fScriptMaxVehicleLODDistance = fVehiclesLODDistance;
577-
ms_fScriptMaxTrainPlaneLODDistance = fTrainsPlanesLODDistance;
578-
ms_bMaxVehicleLODDistanceFromScript = bFromScript;
579-
}
580-
else
581-
{
582-
ms_fClientMaxVehicleLODDistance = fVehiclesLODDistance;
583-
ms_fClientMaxTrainPlaneLODDistance = fTrainsPlanesLODDistance;
584-
}
585-
586-
if (ms_bMaxVehicleLODDistanceFromScript)
587-
{
588-
ms_fVehicleLODDistance = Min(ms_fClientMaxVehicleLODDistance, ms_fScriptMaxVehicleLODDistance);
589-
ms_fTrainPlaneLODDistance = Min(ms_fClientMaxTrainPlaneLODDistance, ms_fScriptMaxTrainPlaneLODDistance);
590-
}
591-
else
592-
{
593-
ms_fVehicleLODDistance = Min(fVehiclesLODDistance, ms_fClientMaxVehicleLODDistance);
594-
ms_fTrainPlaneLODDistance = Min(fTrainsPlanesLODDistance, ms_fClientMaxTrainPlaneLODDistance);
595-
}
570+
ms_fVehicleLODDistance = fVehiclesLODDistance;
571+
ms_fTrainPlaneLODDistance = fTrainsPlanesLODDistance;
572+
ms_bMaxVehicleLODDistanceFromScript = bFromScript;
596573
}
597574

598-
void CSettingsSA::ResetVehiclesLODDistance(bool bFromScript)
575+
void CSettingsSA::ResetVehiclesLODDistance(bool bForceDefault)
599576
{
600-
if (!bFromScript)
601-
{
602-
bool bHighDetailVehicles;
603-
g_pCore->GetCVars()->Get("high_detail_vehicles", bHighDetailVehicles);
577+
if (ms_bMaxVehicleLODDistanceFromScript && !bForceDefault)
578+
return;
604579

605-
if (bHighDetailVehicles)
606-
{
607-
ms_fClientMaxVehicleLODDistance = MAX_VEHICLE_LOD_DISTANCE;
608-
ms_fClientMaxTrainPlaneLODDistance = MAX_VEHICLE_LOD_DISTANCE;
609-
}
610-
else
611-
{
612-
ms_fClientMaxVehicleLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE;
613-
ms_fClientMaxTrainPlaneLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE * TRAIN_LOD_DISTANCE_MULTIPLIER;
614-
}
580+
bool bHighDetailVehicles;
581+
g_pCore->GetCVars()->Get("high_detail_vehicles", bHighDetailVehicles);
615582

616-
// Script still wants to override client setting, let's make sure we use latest max
617-
if (ms_bMaxVehicleLODDistanceFromScript)
618-
{
619-
ms_fVehicleLODDistance = Min(ms_fClientMaxVehicleLODDistance, ms_fScriptMaxVehicleLODDistance);
620-
ms_fTrainPlaneLODDistance = Min(ms_fClientMaxTrainPlaneLODDistance, ms_fScriptMaxTrainPlaneLODDistance);
621-
return;
622-
}
583+
if (bHighDetailVehicles)
584+
{
585+
ms_fVehicleLODDistance = MAX_VEHICLE_LOD_DISTANCE;
586+
ms_fTrainPlaneLODDistance = MAX_VEHICLE_LOD_DISTANCE;
587+
}
588+
else
589+
{
590+
ms_fVehicleLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE;
591+
ms_fTrainPlaneLODDistance = DEFAULT_VEHICLE_LOD_DISTANCE * TRAIN_LOD_DISTANCE_MULTIPLIER;
623592
}
624593

625594
ms_bMaxVehicleLODDistanceFromScript = false;
626-
ms_fVehicleLODDistance = ms_fClientMaxVehicleLODDistance;
627-
ms_fTrainPlaneLODDistance = ms_fClientMaxTrainPlaneLODDistance;
628-
}
629-
630-
void CSettingsSA::ResetVehiclesLODDistanceFromScript()
631-
{
632-
ms_bMaxVehicleLODDistanceFromScript = false;
633-
ResetVehiclesLODDistance(false);
634595
}
635596

636597
void CSettingsSA::GetVehiclesLODDistance(float& fVehiclesLODDistance, float& fTrainsPlanesLODDistance)
@@ -644,54 +605,28 @@ void CSettingsSA::GetVehiclesLODDistance(float& fVehiclesLODDistance, float& fTr
644605
// Peds LOD draw distance
645606
//
646607
////////////////////////////////////////////////
647-
float ms_fClientMaxPedsLODDistance = DEFAULT_PEDS_LOD_DISTANCE;
648-
float ms_fScriptMaxPedsLODDistance = ms_fClientMaxPedsLODDistance;
649608
bool ms_bMaxPedsLODDistanceFromScript = false;
650609

651610
void CSettingsSA::SetPedsLODDistance(float fPedsLODDistance, bool bFromScript)
652611
{
653-
if (bFromScript)
654-
{
655-
ms_fScriptMaxPedsLODDistance = fPedsLODDistance;
656-
ms_bMaxPedsLODDistanceFromScript = bFromScript;
657-
}
658-
else
659-
ms_fClientMaxPedsLODDistance = fPedsLODDistance;
660-
661-
if (ms_bMaxPedsLODDistanceFromScript)
662-
ms_fPedsLODDistance = Min(ms_fClientMaxPedsLODDistance, ms_fScriptMaxPedsLODDistance);
663-
else
664-
ms_fPedsLODDistance = Min(fPedsLODDistance, ms_fClientMaxPedsLODDistance);
612+
ms_fPedsLODDistance = fPedsLODDistance;
613+
ms_bMaxPedsLODDistanceFromScript = bFromScript;
665614
}
666615

667-
void CSettingsSA::ResetPedsLODDistance(bool bFromScript)
616+
void CSettingsSA::ResetPedsLODDistance(bool bForceDefault)
668617
{
669-
if (!bFromScript)
670-
{
671-
bool bHighDetailPeds;
672-
g_pCore->GetCVars()->Get("high_detail_peds", bHighDetailPeds);
673-
674-
if (bHighDetailPeds)
675-
ms_fClientMaxPedsLODDistance = MAX_PEDS_LOD_DISTANCE;
676-
else
677-
ms_fClientMaxPedsLODDistance = DEFAULT_PEDS_LOD_DISTANCE;
618+
if (ms_bMaxPedsLODDistanceFromScript && !bForceDefault)
619+
return;
678620

679-
// Script still wants to override client setting, let's make sure we use latest max
680-
if (ms_bMaxPedsLODDistanceFromScript)
681-
{
682-
ms_fPedsLODDistance = Min(ms_fClientMaxPedsLODDistance, ms_fScriptMaxPedsLODDistance);
683-
return;
684-
}
685-
}
621+
bool bHighDetailPeds;
622+
g_pCore->GetCVars()->Get("high_detail_peds", bHighDetailPeds);
686623

687-
ms_bMaxPedsLODDistanceFromScript = false;
688-
ms_fPedsLODDistance = ms_fClientMaxPedsLODDistance;
689-
}
624+
if (bHighDetailPeds)
625+
ms_fPedsLODDistance = MAX_PEDS_LOD_DISTANCE;
626+
else
627+
ms_fPedsLODDistance = DEFAULT_PEDS_LOD_DISTANCE;
690628

691-
void CSettingsSA::ResetPedsLODDistanceFromScript()
692-
{
693629
ms_bMaxPedsLODDistanceFromScript = false;
694-
ResetPedsLODDistance(false);
695630
}
696631

697632
float CSettingsSA::GetPedsLODDistance()

Client/game_sa/CSettingsSA.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,7 @@ class CSettingsSA : public CGameSettings
160160
float GetFieldOfViewVehicleMax();
161161

162162
void SetVehiclesLODDistance(float fVehiclesLODDistance, float fTrainsPlanesLODDistance, bool bFromScript);
163-
void ResetVehiclesLODDistance(bool bFromScript);
164-
void ResetVehiclesLODDistanceFromScript();
163+
void ResetVehiclesLODDistance(bool bForceDefault = false);
165164
void GetVehiclesLODDistance(float& fVehiclesLODDistance, float& fTrainsPlanesLODDistance);
166165

167166
void ResetCoronaReflectionsEnabled();
@@ -170,8 +169,7 @@ class CSettingsSA : public CGameSettings
170169
void Save();
171170

172171
void SetPedsLODDistance(float fPedsLODDistance, bool bFromScript);
173-
void ResetPedsLODDistance(bool bFromScript);
174-
void ResetPedsLODDistanceFromScript();
172+
void ResetPedsLODDistance(bool bForceDefault = false);
175173
float GetPedsLODDistance();
176174

177175
static void StaticSetHooks();

Client/game_sa/CWaterManagerSA.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,8 @@ void CWaterManagerSA::SetOutsideWorldWaterLevel(float fLevel)
785785
MemPut<float>(0x6EFFA6, fLevel);
786786
// Collision
787787
MemPut<float>(0x6E873F, fLevel);
788+
// Sound
789+
MemPut<float>(0x6EA238, fLevel);
788790
}
789791

790792
float CWaterManagerSA::GetWaveLevel()

Client/loader/MainFunctions.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,7 @@ void CheckDataFiles()
833833
{
834834
const char* szMd5;
835835
const char* szFilename;
836-
} integrityCheckList[] = {{"7B58CB80363513232E827CC2000D9E68", "bass.dll"}, {"E48EA82D7A87853FA4F09F19C4E7A2C1", "bass_aac.dll"},
836+
} integrityCheckList[] = {{"D337EC1DB2680AA092359CF8F39F3350", "bass.dll"}, {"E48EA82D7A87853FA4F09F19C4E7A2C1", "bass_aac.dll"},
837837
{"BD43C88917D6234FF962B6E88B648B8C", "bass_ac3.dll"}, {"D8CCB4B8235F31A3C73485FDE18B0187", "bass_fx.dll"},
838838
{"9FF783BB73F8868FA6599CDE65ED21D7", "bassflac.dll"}, {"9D1DE3E37AFA3D52E400DA572BB55B9C", "bassmidi.dll"},
839839
{"DADDA272FB2BE2DD8F04BCDB7946558E", "bassmix.dll"}, {"26C74F5E9DF6C59DED3B09335E5D82AD", "bassopus.dll"},

Client/mods/deathmatch/CClient.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ int CClient::ClientInitialize(const char* szArguments, CCoreInterface* pCore)
128128
pCore->GetCommands()->Add("debug2", "debug function 2", COMMAND_Debug2);
129129
pCore->GetCommands()->Add("debug3", "debug function 3", COMMAND_Debug3);
130130
pCore->GetCommands()->Add("debug4", "debug function 4", COMMAND_Debug4);
131+
pCore->GetCommands()->Add("timestep", "timestep", COMMAND_TimeStep);
131132
#endif
132133

133134
// Got any arguments?

Client/mods/deathmatch/ClientCommands.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1035,6 +1035,12 @@ void COMMAND_Debug4(const char* szCmdLine)
10351035
g_pClientGame->StartPlayback();
10361036
return;
10371037
}
1038+
1039+
void COMMAND_TimeStep(const char* szCmdLine)
1040+
{
1041+
g_pCore->GetConsole()->Printf("TimeStep: %f", *(float*)0xB7CB5C); // CTimer::ms_fTimeStep
1042+
}
1043+
10381044
#endif
10391045

10401046
void COMMAND_ShowCollision(const char* szCmdLine)

Client/mods/deathmatch/ClientCommands.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ void COMMAND_Debug(const char* szCmdLine);
8080
void COMMAND_Debug2(const char* szCmdLine);
8181
void COMMAND_Debug3(const char* szCmdLine);
8282
void COMMAND_Debug4(const char* szCmdLine);
83+
void COMMAND_TimeStep(const char* szCmdLine);
8384
#endif
8485

8586
// Commands enabled when development mode in on

Client/mods/deathmatch/logic/CClientGame.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5293,10 +5293,10 @@ void CClientGame::ResetMapInfo()
52935293
g_pMultiplayer->RestoreFogDistance();
52945294

52955295
// Vehicles LOD distance
5296-
g_pGame->GetSettings()->ResetVehiclesLODDistanceFromScript();
5296+
g_pGame->GetSettings()->ResetVehiclesLODDistance(true);
52975297

52985298
// Peds LOD distance
5299-
g_pGame->GetSettings()->ResetPedsLODDistanceFromScript();
5299+
g_pGame->GetSettings()->ResetPedsLODDistance(true);
53005300

53015301
// Corona rain reflections
53025302
g_pGame->GetSettings()->SetCoronaReflectionsControlledByScript(false);
@@ -5404,6 +5404,12 @@ void CClientGame::ResetMapInfo()
54045404
}
54055405
}
54065406

5407+
// Reset camera drunk/shake level
5408+
CPlayerInfo* pPlayerInfo = g_pGame->GetPlayerInfo();
5409+
5410+
if (pPlayerInfo)
5411+
pPlayerInfo->SetCamDrunkLevel(static_cast<byte>(0));
5412+
54075413
RestreamWorld();
54085414
}
54095415

0 commit comments

Comments
 (0)