@@ -245,16 +245,33 @@ void GetAdditionalDisconnectsFromUserFile(PSPlayerStats *stats)
245245// default values
246246RankPoints::RankPoints (void )
247247{
248- m_ranks[RANK_PRIVATE ] = 0 ;
249- m_ranks[RANK_CORPORAL ] = TheGameSpyConfig->getPointsForRank (RANK_CORPORAL ); // 5
250- m_ranks[RANK_SERGEANT ] = TheGameSpyConfig->getPointsForRank (RANK_SERGEANT ); // 10
251- m_ranks[RANK_LIEUTENANT ] = TheGameSpyConfig->getPointsForRank (RANK_LIEUTENANT ); // 20
252- m_ranks[RANK_CAPTAIN ] = TheGameSpyConfig->getPointsForRank (RANK_CAPTAIN ); // 50
253- m_ranks[RANK_MAJOR ] = TheGameSpyConfig->getPointsForRank (RANK_MAJOR ); // 100
254- m_ranks[RANK_COLONEL ] = TheGameSpyConfig->getPointsForRank (RANK_COLONEL ); // 200
255- m_ranks[RANK_BRIGADIER_GENERAL ] = TheGameSpyConfig->getPointsForRank (RANK_BRIGADIER_GENERAL ); // 500
256- m_ranks[RANK_GENERAL ] = TheGameSpyConfig->getPointsForRank (RANK_GENERAL ); // 1000
257- m_ranks[RANK_COMMANDER_IN_CHIEF ] = TheGameSpyConfig->getPointsForRank (RANK_COMMANDER_IN_CHIEF ); // 2000
248+ m_ranks[RANK_PRIVATE ] = 0 ;
249+ // Use default values if TheGameSpyConfig is NULL (can happen if called during teardown)
250+ if (TheGameSpyConfig != NULL )
251+ {
252+ m_ranks[RANK_CORPORAL ] = TheGameSpyConfig->getPointsForRank (RANK_CORPORAL ); // 5
253+ m_ranks[RANK_SERGEANT ] = TheGameSpyConfig->getPointsForRank (RANK_SERGEANT ); // 10
254+ m_ranks[RANK_LIEUTENANT ] = TheGameSpyConfig->getPointsForRank (RANK_LIEUTENANT ); // 20
255+ m_ranks[RANK_CAPTAIN ] = TheGameSpyConfig->getPointsForRank (RANK_CAPTAIN ); // 50
256+ m_ranks[RANK_MAJOR ] = TheGameSpyConfig->getPointsForRank (RANK_MAJOR ); // 100
257+ m_ranks[RANK_COLONEL ] = TheGameSpyConfig->getPointsForRank (RANK_COLONEL ); // 200
258+ m_ranks[RANK_BRIGADIER_GENERAL ] = TheGameSpyConfig->getPointsForRank (RANK_BRIGADIER_GENERAL ); // 500
259+ m_ranks[RANK_GENERAL ] = TheGameSpyConfig->getPointsForRank (RANK_GENERAL ); // 1000
260+ m_ranks[RANK_COMMANDER_IN_CHIEF ] = TheGameSpyConfig->getPointsForRank (RANK_COMMANDER_IN_CHIEF ); // 2000
261+ }
262+ else
263+ {
264+ // Use default hardcoded values when TheGameSpyConfig is not available
265+ m_ranks[RANK_CORPORAL ] = 5 ;
266+ m_ranks[RANK_SERGEANT ] = 10 ;
267+ m_ranks[RANK_LIEUTENANT ] = 20 ;
268+ m_ranks[RANK_CAPTAIN ] = 50 ;
269+ m_ranks[RANK_MAJOR ] = 100 ;
270+ m_ranks[RANK_COLONEL ] = 200 ;
271+ m_ranks[RANK_BRIGADIER_GENERAL ] = 500 ;
272+ m_ranks[RANK_GENERAL ] = 1000 ;
273+ m_ranks[RANK_COMMANDER_IN_CHIEF ] = 2000 ;
274+ }
258275
259276 m_winMultiplier = 3 .0f ;
260277 m_lostMultiplier = 0 .0f ;
0 commit comments