Skip to content

Commit dcd1218

Browse files
authored
Merge pull request #324 from samr46/goggles-noise-effect
Add "noiseEnabled" parameter to setCameraGoggleEffect
2 parents 6ac18eb + 6a12615 commit dcd1218

File tree

6 files changed

+37
-17
lines changed

6 files changed

+37
-17
lines changed

Client/mods/deathmatch/logic/CClientGame.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ CClientGame::CClientGame(bool bLocalPlay)
123123
g_pMultiplayer->DisableBadDrivebyHitboxes(true);
124124

125125
// Remove Night & Thermal vision view (if enabled).
126-
g_pMultiplayer->SetNightVisionEnabled(false);
127-
g_pMultiplayer->SetThermalVisionEnabled(false);
126+
g_pMultiplayer->SetNightVisionEnabled(false, true);
127+
g_pMultiplayer->SetThermalVisionEnabled(false, true);
128128

129129
m_bCloudsEnabled = true;
130130

Client/mods/deathmatch/logic/CClientPed.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2226,8 +2226,8 @@ void CClientPed::RemoveAllWeapons(void)
22262226
if (m_bIsLocalPlayer)
22272227
{
22282228
g_pClientGame->ResetAmmoInClip();
2229-
g_pMultiplayer->SetNightVisionEnabled(false);
2230-
g_pMultiplayer->SetThermalVisionEnabled(false);
2229+
g_pMultiplayer->SetNightVisionEnabled(false, true);
2230+
g_pMultiplayer->SetThermalVisionEnabled(false, true);
22312231
}
22322232
if (m_pPlayerPed)
22332233
{

Client/mods/deathmatch/logic/luadefs/CLuaCameraDefs.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -455,32 +455,34 @@ int CLuaCameraDefs::SetCameraViewMode(lua_State* luaVM)
455455

456456
int CLuaCameraDefs::SetCameraGoggleEffect(lua_State* luaVM)
457457
{
458-
SString strMode = "";
458+
SString strMode;
459+
bool bNoiseEnabled;
459460
CScriptArgReader argStream(luaVM);
460461
argStream.ReadString(strMode);
462+
argStream.ReadBool(bNoiseEnabled, true);
461463

462464
if (!argStream.HasErrors())
463465
{
464466
bool bSuccess = false;
465467

466468
if (strMode.compare("nightvision") == 0)
467469
{
468-
g_pMultiplayer->SetNightVisionEnabled(true);
469-
g_pMultiplayer->SetThermalVisionEnabled(false);
470+
g_pMultiplayer->SetNightVisionEnabled(true, bNoiseEnabled);
471+
g_pMultiplayer->SetThermalVisionEnabled(false, true);
470472

471473
bSuccess = true;
472474
}
473475
else if (strMode.compare("thermalvision") == 0)
474476
{
475-
g_pMultiplayer->SetNightVisionEnabled(false);
476-
g_pMultiplayer->SetThermalVisionEnabled(true);
477+
g_pMultiplayer->SetNightVisionEnabled(false, true);
478+
g_pMultiplayer->SetThermalVisionEnabled(true, bNoiseEnabled);
477479

478480
bSuccess = true;
479481
}
480482
else if (strMode.compare("normal") == 0)
481483
{
482-
g_pMultiplayer->SetNightVisionEnabled(false);
483-
g_pMultiplayer->SetThermalVisionEnabled(false);
484+
g_pMultiplayer->SetNightVisionEnabled(false, true);
485+
g_pMultiplayer->SetThermalVisionEnabled(false, true);
484486

485487
bSuccess = true;
486488
}

Client/multiplayer_sa/CMultiplayerSA.cpp

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3842,7 +3842,7 @@ void CMultiplayerSA::RebuildMultiplayerPlayer(CPed* player)
38423842
TIMING_CHECKPOINT("-RebuldMulplrPlr");
38433843
}
38443844

3845-
void CMultiplayerSA::SetNightVisionEnabled(bool bEnabled)
3845+
void CMultiplayerSA::SetNightVisionEnabled(bool bEnabled, bool bNoiseEnabled)
38463846
{
38473847
if (bEnabled)
38483848
{
@@ -3852,9 +3852,18 @@ void CMultiplayerSA::SetNightVisionEnabled(bool bEnabled)
38523852
{
38533853
MemPutFast<BYTE>(0xC402B8, 0);
38543854
}
3855+
if (bNoiseEnabled)
3856+
{
3857+
BYTE originalCodes[5] = { 0xE8, 0xD3, 0xE8, 0xFF, 0xFF };
3858+
MemCpy((void*)0x704EE8, &originalCodes, 5);
3859+
}
3860+
else
3861+
{
3862+
MemSet((void*)0x704EE8, 0x90, 5);
3863+
}
38553864
}
38563865

3857-
void CMultiplayerSA::SetThermalVisionEnabled(bool bEnabled)
3866+
void CMultiplayerSA::SetThermalVisionEnabled(bool bEnabled, bool bNoiseEnabled)
38583867
{
38593868
if (bEnabled)
38603869
{
@@ -3864,6 +3873,15 @@ void CMultiplayerSA::SetThermalVisionEnabled(bool bEnabled)
38643873
{
38653874
MemPutFast<BYTE>(0xC402B9, 0);
38663875
}
3876+
if (bNoiseEnabled)
3877+
{
3878+
BYTE originalCodes[5] = { 0xE8, 0x62, 0xE8, 0xFF, 0xFF };
3879+
MemCpy((void*)0x704F59, &originalCodes, 5);
3880+
}
3881+
else
3882+
{
3883+
MemSet((void*)0x704F59, 0x90, 5);
3884+
}
38673885
}
38683886

38693887
bool CMultiplayerSA::IsNightVisionEnabled()

Client/multiplayer_sa/CMultiplayerSA.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,8 @@ class CMultiplayerSA : public CMultiplayer
178178
int GetMoonSize();
179179
void ResetMoonSize();
180180

181-
void SetNightVisionEnabled(bool bEnabled);
182-
void SetThermalVisionEnabled(bool bEnabled);
181+
void SetNightVisionEnabled(bool bEnabled, bool bNoiseEnabled);
182+
void SetThermalVisionEnabled(bool bEnabled, bool bNoiseEnabled);
183183
bool IsNightVisionEnabled();
184184
bool IsThermalVisionEnabled();
185185

Client/sdk/multiplayer/CMultiplayer.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,8 @@ class CMultiplayer
262262

263263
virtual void DisableEnterExitVehicleKey(bool bDisabled) = 0;
264264

265-
virtual void SetNightVisionEnabled(bool bEnabled) = 0;
266-
virtual void SetThermalVisionEnabled(bool bEnabled) = 0;
265+
virtual void SetNightVisionEnabled(bool bEnabled, bool bNoiseEnabled) = 0;
266+
virtual void SetThermalVisionEnabled(bool bEnabled, bool bNoiseEnabled) = 0;
267267
virtual bool IsNightVisionEnabled() = 0;
268268
virtual bool IsThermalVisionEnabled() = 0;
269269

0 commit comments

Comments
 (0)