Skip to content

Commit 2c9f48c

Browse files
Add resource_client_file_checks setting to disable corrupt PNG/TXD/DFF warnings (#3822)
1 parent e92702c commit 2c9f48c

File tree

7 files changed

+26
-1
lines changed

7 files changed

+26
-1
lines changed

Server/mods/deathmatch/editor.conf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,10 @@
263263
*NOTE* This only protects resources which use dbConnect with mysql
264264
Values: 0 - Off, 1 - Enabled. Default - 1 -->
265265
<database_credentials_protection>1</database_credentials_protection>
266+
267+
<!-- This parameter determines if resource client files that end in PNG, DFF and TXD should be checked for errors;
268+
Values: 0 - Off, 1 - Enabled. Default - 1 -->
269+
<resource_client_file_checks>1</resource_client_file_checks>
266270

267271
<!-- Specifies the module(s) which are loaded with the server. To load several modules, add more <module>
268272
parameter(s). Optional parameter. -->

Server/mods/deathmatch/local.conf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,10 @@
263263
*NOTE* This only protects resources which use dbConnect with mysql
264264
Values: 0 - Off, 1 - Enabled. Default - 1 -->
265265
<database_credentials_protection>1</database_credentials_protection>
266+
267+
<!-- This parameter determines if resource files that end in PNG, DFF and TXD should be checked for errors;
268+
Values: 0 - Off, 1 - Enabled. Default - 1 -->
269+
<resource_client_file_checks>1</resource_client_file_checks>
266270

267271
<!-- Specifies the module(s) which are loaded with the server. To load several modules, add more <module>
268272
parameter(s). Optional parameter. -->

Server/mods/deathmatch/logic/CMainConfig.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1468,6 +1468,7 @@ const std::vector<SIntSetting>& CMainConfig::GetIntSettingList()
14681468
{false, false, 0, 0, 1, "fakelag", &m_bFakeLagCommandEnabled, NULL},
14691469
{true, true, 50, 1000, 5000, "player_triggered_event_interval", &m_iPlayerTriggeredEventIntervalMs, &CMainConfig::OnPlayerTriggeredEventIntervalChange},
14701470
{true, true, 1, 100, 1000, "max_player_triggered_events_per_interval", &m_iMaxPlayerTriggeredEventsPerInterval, &CMainConfig::OnPlayerTriggeredEventIntervalChange},
1471+
{true, true, 0, 1, 1, "resource_client_file_checks", &m_checkResourceClientFiles, nullptr},
14711472
};
14721473

14731474
static std::vector<SIntSetting> settingsList;

Server/mods/deathmatch/logic/CMainConfig.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ class CMainConfig : public CXMLConfig
126126
const std::vector<SString>& GetOwnerEmailAddressList() const { return m_OwnerEmailAddressList; }
127127
bool IsDatabaseCredentialsProtectionEnabled() const { return m_bDatabaseCredentialsProtectionEnabled != 0; }
128128
bool IsFakeLagCommandEnabled() const { return m_bFakeLagCommandEnabled != 0; }
129+
bool IsCheckResourceClientFilesEnabled() const noexcept { return m_checkResourceClientFiles != 0; }
129130

130131
SString GetSetting(const SString& configSetting);
131132
bool GetSetting(const SString& configSetting, SString& strValue);
@@ -227,4 +228,5 @@ class CMainConfig : public CXMLConfig
227228
int m_bFakeLagCommandEnabled;
228229
int m_iPlayerTriggeredEventIntervalMs;
229230
int m_iMaxPlayerTriggeredEventsPerInterval;
231+
int m_checkResourceClientFiles;
230232
};

Server/mods/deathmatch/logic/CResourceChecker.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
#include "CResourceChecker.h"
1414
#include "CResourceChecker.Data.h"
1515
#include "CResource.h"
16+
#include "CMainConfig.h"
17+
#include "CGame.h"
1618
#include "CLogger.h"
1719
#include "CStaticFunctionDefinitions.h"
1820
#include <core/CServerInterface.h>
@@ -28,6 +30,7 @@
2830

2931
extern CNetServer* g_pRealNetServer;
3032
extern CServerInterface* g_pServerInterface;
33+
extern CGame* g_pGame;
3134

3235
///////////////////////////////////////////////////////////////
3336
//
@@ -48,6 +51,9 @@ void CResourceChecker::CheckResourceForIssues(CResource* pResource, const string
4851
m_ulDeprecatedWarningCount = 0;
4952
m_upgradedFullPathList.clear();
5053

54+
// Checking certain resource client files is optional
55+
bool checkResourceClientFiles = g_pGame->GetConfig()->IsCheckResourceClientFilesEnabled();
56+
5157
// Check each file in the resource
5258
std::list<CResourceFile*>::iterator iterf = pResource->IterBegin();
5359
for (; iterf != pResource->IterEnd(); iterf++)
@@ -73,7 +79,7 @@ void CResourceChecker::CheckResourceForIssues(CResource* pResource, const string
7379
bScript = true;
7480
bClient = true;
7581
}
76-
else if (type == CResourceFile::RESOURCE_FILE_TYPE_CLIENT_FILE)
82+
else if (type == CResourceFile::RESOURCE_FILE_TYPE_CLIENT_FILE && checkResourceClientFiles)
7783
{
7884
bScript = false;
7985
bClient = true;

Server/mods/deathmatch/mtaserver.conf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,10 @@
274274
Max events per interval range: 1 to 1000. Default: 100 -->
275275
<player_triggered_event_interval>1000</player_triggered_event_interval>
276276
<max_player_triggered_events_per_interval>100</max_player_triggered_events_per_interval>
277+
278+
<!-- This parameter determines if resource client files that end in PNG, DFF and TXD should be checked for errors;
279+
Values: 0 - Off, 1 - Enabled. Default - 1 -->
280+
<resource_client_file_checks>1</resource_client_file_checks>
277281

278282
<!-- Specifies the module(s) which are loaded with the server. To load several modules, add more <module>
279283
parameter(s). Optional parameter. -->

Server/mods/deathmatch/mtaserver.conf.template

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,4 +275,8 @@
275275
Max events per interval range: 1 to 1000. Default: 100 -->
276276
<player_triggered_event_interval>1000</player_triggered_event_interval>
277277
<max_player_triggered_events_per_interval>100</max_player_triggered_events_per_interval>
278+
279+
<!-- This parameter determines if resource client files that end in PNG, DFF and TXD should be checked for errors;
280+
Values: 0 - Off, 1 - Enabled. Default - 1 -->
281+
<resource_client_file_checks>1</resource_client_file_checks>
278282
</config>

0 commit comments

Comments
 (0)