Skip to content

Commit 8ca57f0

Browse files
author
G_Moris
committed
Update 4
1 parent 203fb7c commit 8ca57f0

File tree

8 files changed

+243
-227
lines changed

8 files changed

+243
-227
lines changed

Client/game_sa/CHandlingEntrySA.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ extern CGameSA* pGame;
1919
CHandlingEntrySA::CHandlingEntrySA()
2020
{
2121
// Create a new interface and zero it
22-
m_HandlingSA = std::make_unique<tHandlingDataSA>();
23-
if (m_HandlingSA)
22+
if (m_HandlingSA = std::make_unique<tHandlingDataSA>())
2423
{
2524
memset(m_HandlingSA.get(), 0, sizeof(tHandlingDataSA));
2625
}

Server/mods/deathmatch/logic/CGame.cpp

Lines changed: 58 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ CGame::CGame() : m_FloodProtect(4, 30000, 30000) // Max of 4 connecti
166166
m_pUnoccupiedVehicleSync = NULL;
167167
m_pConsole = NULL;
168168
m_pMapManager = NULL;
169-
m_pHandlingManager = NULL;
169+
m_HandlingManager = nullptr;
170170
m_pLuaManager = NULL;
171171
m_pPacketTranslator = NULL;
172172
m_pMarkerManager = NULL;
@@ -343,9 +343,12 @@ CGame::~CGame()
343343
CSimControl::EnableSimSystem(false);
344344

345345
// Disconnect all players
346-
std::list<CPlayer*>::const_iterator iter = m_pPlayerManager->IterBegin();
347-
for (; iter != m_pPlayerManager->IterEnd(); iter++)
348-
DisconnectPlayer(this, **iter, CPlayerDisconnectedPacket::SHUTDOWN);
346+
if (m_pPlayerManager)
347+
{
348+
std::list<CPlayer*>::const_iterator iter = m_pPlayerManager->IterBegin();
349+
for (; iter != m_pPlayerManager->IterEnd(); iter++)
350+
DisconnectPlayer(this, **iter, CPlayerDisconnectedPacket::SHUTDOWN);
351+
}
349352

350353
// Stop networking
351354
Stop();
@@ -372,7 +375,6 @@ CGame::~CGame()
372375
SAFE_DELETE(m_pRadarAreaManager);
373376
SAFE_DELETE(m_pPlayerManager);
374377
SAFE_DELETE(m_pVehicleManager);
375-
SAFE_DELETE(m_pHandlingManager);
376378
SAFE_DELETE(m_pPickupManager);
377379
SAFE_DELETE(m_pObjectManager);
378380
SAFE_DELETE(m_pColManager);
@@ -579,43 +581,57 @@ bool CGame::Start(int iArgumentCount, char* szArguments[])
579581
CElement::StartupEntitiesFromRoot();
580582

581583
CSimControl::Startup();
582-
m_pGroups = new CGroups;
583-
m_pClock = new CClock;
584-
m_pBlipManager = new CBlipManager;
585-
m_pColManager = new CColManager;
586-
m_pObjectManager = new CObjectManager;
587-
m_pPickupManager = new CPickupManager(m_pColManager);
588-
m_pPlayerManager = new CPlayerManager;
589-
m_pRadarAreaManager = new CRadarAreaManager;
590-
m_pMarkerManager = new CMarkerManager(m_pColManager);
591-
m_pHandlingManager = new CHandlingManager;
592-
m_pVehicleManager = new CVehicleManager;
593-
m_pPacketTranslator = new CPacketTranslator(m_pPlayerManager);
594-
m_pBanManager = new CBanManager;
595-
m_pTeamManager = new CTeamManager;
596-
m_pPedManager = new CPedManager;
597-
m_pWaterManager = new CWaterManager;
598-
m_pScriptDebugging = new CScriptDebugging();
599-
m_pMapManager =
600-
new CMapManager(m_pBlipManager, m_pObjectManager, m_pPickupManager, m_pPlayerManager, m_pRadarAreaManager, m_pMarkerManager, m_pVehicleManager,
601-
m_pTeamManager, m_pPedManager, m_pColManager, m_pWaterManager, m_pClock, m_pGroups, &m_Events, m_pScriptDebugging, &m_ElementDeleter);
602-
m_pACLManager = new CAccessControlListManager;
603-
m_pHqComms = new CHqComms;
604-
605-
m_pRegisteredCommands = new CRegisteredCommands(m_pACLManager);
606-
m_pLuaManager = new CLuaManager(m_pObjectManager, m_pPlayerManager, m_pVehicleManager, m_pBlipManager, m_pRadarAreaManager, m_pRegisteredCommands,
607-
m_pMapManager, &m_Events);
608-
m_pConsole = new CConsole(m_pBlipManager, m_pMapManager, m_pPlayerManager, m_pRegisteredCommands, m_pVehicleManager, m_pBanManager, m_pACLManager);
609-
m_pMainConfig = new CMainConfig(m_pConsole);
610-
m_pRPCFunctions = new CRPCFunctions;
611-
612-
m_pWeaponStatsManager = new CWeaponStatManager();
613-
614-
m_pBuildingRemovalManager = new CBuildingRemovalManager;
615-
616-
m_pCustomWeaponManager = new CCustomWeaponManager();
617-
618-
m_pTrainTrackManager = std::make_shared<CTrainTrackManager>();
584+
585+
try
586+
{
587+
m_pGroups = new CGroups;
588+
m_pClock = new CClock;
589+
m_pBlipManager = new CBlipManager;
590+
m_pColManager = new CColManager;
591+
m_pObjectManager = new CObjectManager;
592+
m_pPickupManager = new CPickupManager(m_pColManager);
593+
m_pPlayerManager = new CPlayerManager;
594+
m_pRadarAreaManager = new CRadarAreaManager;
595+
m_pMarkerManager = new CMarkerManager(m_pColManager);
596+
m_HandlingManager = std::make_shared<CHandlingManager>();
597+
m_pVehicleManager = new CVehicleManager;
598+
m_pPacketTranslator = new CPacketTranslator(m_pPlayerManager);
599+
m_pBanManager = new CBanManager;
600+
m_pTeamManager = new CTeamManager;
601+
m_pPedManager = new CPedManager;
602+
m_pWaterManager = new CWaterManager;
603+
m_pScriptDebugging = new CScriptDebugging();
604+
m_pMapManager = new CMapManager(m_pBlipManager, m_pObjectManager, m_pPickupManager, m_pPlayerManager, m_pRadarAreaManager, m_pMarkerManager,
605+
m_pVehicleManager, m_pTeamManager, m_pPedManager, m_pColManager, m_pWaterManager, m_pClock, m_pGroups, &m_Events,
606+
m_pScriptDebugging, &m_ElementDeleter);
607+
m_pACLManager = new CAccessControlListManager;
608+
m_pHqComms = new CHqComms;
609+
610+
m_pRegisteredCommands = new CRegisteredCommands(m_pACLManager);
611+
m_pLuaManager = new CLuaManager(m_pObjectManager, m_pPlayerManager, m_pVehicleManager, m_pBlipManager, m_pRadarAreaManager, m_pRegisteredCommands,
612+
m_pMapManager, &m_Events);
613+
m_pConsole = new CConsole(m_pBlipManager, m_pMapManager, m_pPlayerManager, m_pRegisteredCommands, m_pVehicleManager, m_pBanManager, m_pACLManager);
614+
m_pMainConfig = new CMainConfig(m_pConsole);
615+
m_pRPCFunctions = new CRPCFunctions;
616+
617+
m_pWeaponStatsManager = new CWeaponStatManager();
618+
619+
m_pBuildingRemovalManager = new CBuildingRemovalManager;
620+
621+
m_pCustomWeaponManager = new CCustomWeaponManager();
622+
623+
m_pTrainTrackManager = std::make_shared<CTrainTrackManager>();
624+
}
625+
catch (const std::bad_alloc& e)
626+
{
627+
std::cout << "ERROR: Memory allocations failed: " << e.what() << std::endl;
628+
return false;
629+
}
630+
catch (const std::exception& e)
631+
{
632+
std::cout << "ERROR: Constructors failed: " << e.what() << std::endl;
633+
return false;
634+
}
619635

620636
// Parse the commandline
621637
if (!m_CommandLineParser.Parse(iArgumentCount, szArguments))

Server/mods/deathmatch/logic/CGame.h

Lines changed: 91 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -215,55 +215,54 @@ class CGame
215215
void SetIsFinished(bool bFinished) { m_bIsFinished = bFinished; };
216216
bool IsFinished() { return m_bIsFinished; };
217217

218-
CMainConfig* GetConfig() { return m_pMainConfig; }
219-
CHandlingManager* GetHandlingManager() { return m_pHandlingManager; }
220-
CMapManager* GetMapManager() { return m_pMapManager; }
221-
CPlayerManager* GetPlayerManager() { return m_pPlayerManager; }
222-
CObjectManager* GetObjectManager() { return m_pObjectManager; }
223-
CVehicleManager* GetVehicleManager() { return m_pVehicleManager; }
224-
CTeamManager* GetTeamManager() { return m_pTeamManager; }
225-
CUnoccupiedVehicleSync* GetUnoccupiedVehicleSync() { return m_pUnoccupiedVehicleSync; }
226-
CPedSync* GetPedSync() { return m_pPedSync; }
227-
CRegisteredCommands* GetRegisteredCommands() { return m_pRegisteredCommands; }
218+
CMainConfig* GetConfig() { return m_pMainConfig; }
219+
std::shared_ptr<CHandlingManager> GetHandlingManager() { return m_HandlingManager; }
220+
CMapManager* GetMapManager() { return m_pMapManager; }
221+
CPlayerManager* GetPlayerManager() { return m_pPlayerManager; }
222+
CObjectManager* GetObjectManager() { return m_pObjectManager; }
223+
CVehicleManager* GetVehicleManager() { return m_pVehicleManager; }
224+
CTeamManager* GetTeamManager() { return m_pTeamManager; }
225+
CUnoccupiedVehicleSync* GetUnoccupiedVehicleSync() { return m_pUnoccupiedVehicleSync; }
226+
CPedSync* GetPedSync() { return m_pPedSync; }
227+
CRegisteredCommands* GetRegisteredCommands() { return m_pRegisteredCommands; }
228228
#ifdef WITH_OBJECT_SYNC
229-
CObjectSync* GetObjectSync() { return m_pObjectSync; }
229+
CObjectSync* GetObjectSync() { return m_pObjectSync; }
230230
#endif
231-
CConsole* GetConsole() { return m_pConsole; }
232-
CDatabaseManager* GetDatabaseManager() { return m_pDatabaseManager; }
233-
CLuaCallbackManager* GetLuaCallbackManager() { return m_pLuaCallbackManager; }
234-
CRegistryManager* GetRegistryManager() { return m_pRegistryManager; }
235-
CRegistry* GetRegistry() { return m_pRegistry; }
236-
CAccountManager* GetAccountManager() { return m_pAccountManager; }
237-
CScriptDebugging* GetScriptDebugging() { return m_pScriptDebugging; }
238-
CEvents* GetEvents() { return &m_Events; }
239-
CColManager* GetColManager() { return m_pColManager; }
240-
CLatentTransferManager* GetLatentTransferManager() { return m_pLatentTransferManager; }
241-
CDebugHookManager* GetDebugHookManager() { return m_pDebugHookManager; }
242-
CPedManager* GetPedManager() { return m_pPedManager; }
243-
CResourceManager* GetResourceManager() { return m_pResourceManager; }
244-
CMarkerManager* GetMarkerManager() { return m_pMarkerManager; }
245-
CBlipManager* GetBlipManager() { return m_pBlipManager; }
246-
CPickupManager* GetPickupManager() { return m_pPickupManager; }
247-
CRadarAreaManager* GetRadarAreaManager() { return m_pRadarAreaManager; }
248-
CGroups* GetGroups() { return m_pGroups; }
249-
CElementDeleter* GetElementDeleter() { return &m_ElementDeleter; }
250-
CConnectHistory* GetJoinFloodProtector() { return &m_FloodProtect; }
251-
CHTTPD* GetHTTPD() { return m_pHTTPD; }
252-
CSettings* GetSettings() { return m_pSettings; }
253-
CAccessControlListManager* GetACLManager() { return m_pACLManager; }
254-
CBanManager* GetBanManager() { return m_pBanManager; }
255-
CRemoteCalls* GetRemoteCalls() { return m_pRemoteCalls; }
256-
CZoneNames* GetZoneNames() { return m_pZoneNames; }
257-
CClock* GetClock() { return m_pClock; }
258-
CWaterManager* GetWaterManager() { return m_pWaterManager; }
259-
CLightsyncManager* GetLightSyncManager() { return &m_lightsyncManager; }
260-
CWeaponStatManager* GetWeaponStatManager() { return m_pWeaponStatsManager; }
261-
CBuildingRemovalManager* GetBuildingRemovalManager() { return m_pBuildingRemovalManager; }
262-
CCustomWeaponManager* GetCustomWeaponManager() { return m_pCustomWeaponManager; }
263-
CFunctionUseLogger* GetFunctionUseLogger() { return m_pFunctionUseLogger; }
264-
CMasterServerAnnouncer* GetMasterServerAnnouncer() { return m_pMasterServerAnnouncer; }
265-
SharedUtil::CAsyncTaskScheduler* GetAsyncTaskScheduler() { return m_pAsyncTaskScheduler; }
266-
231+
CConsole* GetConsole() { return m_pConsole; }
232+
CDatabaseManager* GetDatabaseManager() { return m_pDatabaseManager; }
233+
CLuaCallbackManager* GetLuaCallbackManager() { return m_pLuaCallbackManager; }
234+
CRegistryManager* GetRegistryManager() { return m_pRegistryManager; }
235+
CRegistry* GetRegistry() { return m_pRegistry; }
236+
CAccountManager* GetAccountManager() { return m_pAccountManager; }
237+
CScriptDebugging* GetScriptDebugging() { return m_pScriptDebugging; }
238+
CEvents* GetEvents() { return &m_Events; }
239+
CColManager* GetColManager() { return m_pColManager; }
240+
CLatentTransferManager* GetLatentTransferManager() { return m_pLatentTransferManager; }
241+
CDebugHookManager* GetDebugHookManager() { return m_pDebugHookManager; }
242+
CPedManager* GetPedManager() { return m_pPedManager; }
243+
CResourceManager* GetResourceManager() { return m_pResourceManager; }
244+
CMarkerManager* GetMarkerManager() { return m_pMarkerManager; }
245+
CBlipManager* GetBlipManager() { return m_pBlipManager; }
246+
CPickupManager* GetPickupManager() { return m_pPickupManager; }
247+
CRadarAreaManager* GetRadarAreaManager() { return m_pRadarAreaManager; }
248+
CGroups* GetGroups() { return m_pGroups; }
249+
CElementDeleter* GetElementDeleter() { return &m_ElementDeleter; }
250+
CConnectHistory* GetJoinFloodProtector() { return &m_FloodProtect; }
251+
CHTTPD* GetHTTPD() { return m_pHTTPD; }
252+
CSettings* GetSettings() { return m_pSettings; }
253+
CAccessControlListManager* GetACLManager() { return m_pACLManager; }
254+
CBanManager* GetBanManager() { return m_pBanManager; }
255+
CRemoteCalls* GetRemoteCalls() { return m_pRemoteCalls; }
256+
CZoneNames* GetZoneNames() { return m_pZoneNames; }
257+
CClock* GetClock() { return m_pClock; }
258+
CWaterManager* GetWaterManager() { return m_pWaterManager; }
259+
CLightsyncManager* GetLightSyncManager() { return &m_lightsyncManager; }
260+
CWeaponStatManager* GetWeaponStatManager() { return m_pWeaponStatsManager; }
261+
CBuildingRemovalManager* GetBuildingRemovalManager() { return m_pBuildingRemovalManager; }
262+
CCustomWeaponManager* GetCustomWeaponManager() { return m_pCustomWeaponManager; }
263+
CFunctionUseLogger* GetFunctionUseLogger() { return m_pFunctionUseLogger; }
264+
CMasterServerAnnouncer* GetMasterServerAnnouncer() { return m_pMasterServerAnnouncer; }
265+
SharedUtil::CAsyncTaskScheduler* GetAsyncTaskScheduler() { return m_pAsyncTaskScheduler; }
267266
std::shared_ptr<CTrainTrackManager> GetTrainTrackManager() { return m_pTrainTrackManager; }
268267

269268
void JoinPlayer(CPlayer& Player);
@@ -528,53 +527,53 @@ class CGame
528527
// Technically, this could be put somewhere else. It's a callback function
529528
// which the voice server library will call to send out data.
530529

531-
CEvents m_Events;
532-
CRemoteCalls* m_pRemoteCalls;
533-
CHTTPD* m_pHTTPD;
534-
CMainConfig* m_pMainConfig;
535-
CBlipManager* m_pBlipManager;
536-
CGroups* m_pGroups;
537-
CColManager* m_pColManager;
538-
CObjectManager* m_pObjectManager;
539-
CPickupManager* m_pPickupManager;
540-
CPlayerManager* m_pPlayerManager;
541-
CRadarAreaManager* m_pRadarAreaManager;
542-
CVehicleManager* m_pVehicleManager;
543-
CPacketTranslator* m_pPacketTranslator;
544-
CMapManager* m_pMapManager;
545-
CElementDeleter m_ElementDeleter;
546-
CConnectHistory m_FloodProtect;
547-
CLuaManager* m_pLuaManager;
548-
CScriptDebugging* m_pScriptDebugging;
549-
CConsole* m_pConsole;
550-
CUnoccupiedVehicleSync* m_pUnoccupiedVehicleSync;
551-
CPedSync* m_pPedSync;
530+
CEvents m_Events;
531+
CRemoteCalls* m_pRemoteCalls;
532+
CHTTPD* m_pHTTPD;
533+
CMainConfig* m_pMainConfig;
534+
CBlipManager* m_pBlipManager;
535+
CGroups* m_pGroups;
536+
CColManager* m_pColManager;
537+
CObjectManager* m_pObjectManager;
538+
CPickupManager* m_pPickupManager;
539+
CPlayerManager* m_pPlayerManager;
540+
CRadarAreaManager* m_pRadarAreaManager;
541+
CVehicleManager* m_pVehicleManager;
542+
CPacketTranslator* m_pPacketTranslator;
543+
CMapManager* m_pMapManager;
544+
CElementDeleter m_ElementDeleter;
545+
CConnectHistory m_FloodProtect;
546+
CLuaManager* m_pLuaManager;
547+
CScriptDebugging* m_pScriptDebugging;
548+
CConsole* m_pConsole;
549+
CUnoccupiedVehicleSync* m_pUnoccupiedVehicleSync;
550+
CPedSync* m_pPedSync;
552551
#ifdef WITH_OBJECT_SYNC
553-
CObjectSync* m_pObjectSync;
552+
CObjectSync* m_pObjectSync;
554553
#endif
555-
CMarkerManager* m_pMarkerManager;
556-
CClock* m_pClock;
557-
CBanManager* m_pBanManager;
558-
CTeamManager* m_pTeamManager;
559-
CCommandLineParser m_CommandLineParser;
560-
CRegisteredCommands* m_pRegisteredCommands;
561-
CDatabaseManager* m_pDatabaseManager;
562-
CLuaCallbackManager* m_pLuaCallbackManager;
563-
CRegistryManager* m_pRegistryManager;
564-
CRegistry* m_pRegistry;
565-
CAccountManager* m_pAccountManager;
566-
CLatentTransferManager* m_pLatentTransferManager;
567-
CDebugHookManager* m_pDebugHookManager;
568-
CPedManager* m_pPedManager;
569-
CResourceManager* m_pResourceManager;
570-
CAccessControlListManager* m_pACLManager;
571-
CSettings* m_pSettings;
572-
CZoneNames* m_pZoneNames;
573-
ASE* m_pASE;
574-
CHandlingManager* m_pHandlingManager;
575-
CRPCFunctions* m_pRPCFunctions;
576-
CLanBroadcast* m_pLanBroadcast;
577-
CWaterManager* m_pWaterManager;
554+
CMarkerManager* m_pMarkerManager;
555+
CClock* m_pClock;
556+
CBanManager* m_pBanManager;
557+
CTeamManager* m_pTeamManager;
558+
CCommandLineParser m_CommandLineParser;
559+
CRegisteredCommands* m_pRegisteredCommands;
560+
CDatabaseManager* m_pDatabaseManager;
561+
CLuaCallbackManager* m_pLuaCallbackManager;
562+
CRegistryManager* m_pRegistryManager;
563+
CRegistry* m_pRegistry;
564+
CAccountManager* m_pAccountManager;
565+
CLatentTransferManager* m_pLatentTransferManager;
566+
CDebugHookManager* m_pDebugHookManager;
567+
CPedManager* m_pPedManager;
568+
CResourceManager* m_pResourceManager;
569+
CAccessControlListManager* m_pACLManager;
570+
CSettings* m_pSettings;
571+
CZoneNames* m_pZoneNames;
572+
ASE* m_pASE;
573+
std::shared_ptr<CHandlingManager> m_HandlingManager;
574+
CRPCFunctions* m_pRPCFunctions;
575+
CLanBroadcast* m_pLanBroadcast;
576+
CWaterManager* m_pWaterManager;
578577

579578
CWeaponStatManager* m_pWeaponStatsManager;
580579
CBuildingRemovalManager* m_pBuildingRemovalManager;

0 commit comments

Comments
 (0)