Subversion Repositories spk

Rev

Rev 54 | Rev 57 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 54 Rev 56
Line 24... Line 24...
24
typedef struct SComponantEntry {
24
typedef struct SComponantEntry {
25
	CyString		sSection;
25
	CyString		sSection;
26
	CLinkList<SComponantEntry2>	lEntries;
26
	CLinkList<SComponantEntry2>	lEntries;
27
} SComponantEntry;
27
} SComponantEntry;
28
 
28
 
29
CPackages::CPackages()
29
CPackages::CPackages() : m_pCurrentGameExe(NULL)
30
{
30
{
31
	m_bRenameText = false;
31
	m_bRenameText = false;
32
	m_iLanguage = 0;
32
	m_iLanguage = 0;
33
	m_iGame = -1;
33
	m_iGame = -1;
34
	m_iGameVersion = -1;
34
	m_iGameVersion = -1;
Line 488... Line 488...
488
	}
488
	}
489
 
489
 
490
	if ( m_pEnabledMod && !m_pEnabledMod->IsEnabled() )
490
	if ( m_pEnabledMod && !m_pEnabledMod->IsEnabled() )
491
		m_pEnabledMod = NULL;
491
		m_pEnabledMod = NULL;
492
 
492
 
493
	m_iGame = m_gameExe.GetGameType(m_sCurrentDir) + 1;
493
	m_iGame = m_gameExe.GetGameType(m_sCurrentDir.ToString()) + 1;
-
 
494
	m_pCurrentGameExe = m_gameExe.GetGame(m_gameExe.GetGameType(m_sCurrentDir.ToString()));
-
 
495
	Utils::String sGameVersion;
494
	m_iGameVersion = m_gameExe.GetGameVersion(m_sCurrentDir, &m_sGameVersion) + 1;
496
	m_iGameVersion = m_gameExe.GetGameVersion(m_sCurrentDir.ToString(), &sGameVersion) + 1;
-
 
497
	m_sGameVersion = sGameVersion;
495
	m_iGameFlags = m_gameExe.GetGameFlags(m_iGame - 1);
498
	m_iGameFlags = m_gameExe.GetGameFlags(m_iGame - 1);
496
	m_iMaxPatch = m_gameExe.GetMaxPatch(m_iGame - 1);
499
	m_iMaxPatch = m_gameExe.GetMaxPatch(m_iGame - 1);
497
 
500
 
498
	// find the fake patch
501
	// find the fake patch
499
	if ( !ReadyFakePatch() )
502
	if ( !ReadyFakePatch() )
Line 619... Line 622...
619
}
622
}
620
 
623
 
621
CyString CPackages::GetLogDirectory()
624
CyString CPackages::GetLogDirectory()
622
{
625
{
623
	CyString logDir = m_sCurrentDir;
626
	CyString logDir = m_sCurrentDir;
624
	if ( m_iGameFlags & EXEFLAG_MYDOCLOG )
627
	if ( m_iGameFlags & EXEFLAG_MYDOCLOG ) {
625
	{
-
 
626
		SGameExe *exe = m_gameExe.GetGame(m_iGame - 1);
628
		SGameExe *exe = m_gameExe.GetGame(m_iGame - 1);
627
		if ( exe )
629
		if ( exe ) {
628
		{
-
 
629
			if ( !exe->sMyDoc.Empty() )
630
			if ( !exe->sMyDoc.empty() )
630
				logDir = m_sMyDoc + "/" + exe->sMyDoc;
631
				logDir = m_sMyDoc + "/" + exe->sMyDoc;
631
		}
632
		}
632
	}
633
	}
633
 
634
 
634
	return logDir;
635
	return logDir;
Line 637... Line 638...
637
CyString CPackages::GetLogDirectory(CyString gameExe)
638
CyString CPackages::GetLogDirectory(CyString gameExe)
638
{
639
{
639
	CyString logDir = m_sCurrentDir;
640
	CyString logDir = m_sCurrentDir;
640
	if ( m_iGameFlags & EXEFLAG_MYDOCLOG )
641
	if ( m_iGameFlags & EXEFLAG_MYDOCLOG )
641
	{
642
	{
642
		SGameExe *exe = m_gameExe.GetGameExe(CFileIO(gameExe).GetFilename());
643
		SGameExe *exe = m_gameExe.GetGameExe(CFileIO(gameExe).filename());
643
		if ( exe )
644
		if ( exe )
644
		{
645
		{
645
			if ( !exe->sMyDoc.Empty() )
646
			if ( !exe->sMyDoc.empty() )
646
				logDir = m_sMyDoc + "/" + exe->sMyDoc;
647
				logDir = m_sMyDoc + "/" + exe->sMyDoc;
647
		}
648
		}
648
	}
649
	}
649
 
650
 
650
	return CFileIO(logDir).GetFullFilename();
651
	return CFileIO(logDir).GetFullFilename();
Line 4930... Line 4931...
4930
 
4931
 
4931
	CyString exeFile = this->FindDataDir(dir, "exe");
4932
	CyString exeFile = this->FindDataDir(dir, "exe");
4932
 
4933
 
4933
	// if file exists, read it, otherwise, just add
4934
	// if file exists, read it, otherwise, just add
4934
	if ( !exeFile.Empty() && CFileIO(exeFile).ExistsOld() )
4935
	if ( !exeFile.Empty() && CFileIO(exeFile).ExistsOld() )
4935
		m_gameExe.ReadFile(exeFile);
4936
		m_gameExe.ReadFile(exeFile.ToString());
4936
	else
4937
	else
4937
	{
4938
	{
4938
		m_gameExe.ParseExe("x2.exe:5:NOSAVESUBDIR:HKCU/Software/EgoSoftware/X2/ModName:X2 The Threat:!GAMEDIR!:2:1604608!2150400:1.4 Artifical Life:1974272:1.5 Uplink");
4939
		m_gameExe.ParseExe("x2.exe|0:5:NOSAVESUBDIR:HKCU/Software/EgoSoftware/X2/ModName:X2 The Threat:!GAMEDIR!:2:1604608!2150400:1.4 Artifical Life:1974272:1.5 Uplink");
4939
		m_gameExe.ParseExe("x3.exe:5:0:HKCU/Software/Egosoft/X3/ModName:X3 Reunion:Egosoft/X3:2:2347008:2.0 Bala Gi:2367488!2375680:2.5 Uplink");
4940
		m_gameExe.ParseExe("x3.exe|30:5:0:HKCU/Software/Egosoft/X3/ModName:X3 Reunion:Egosoft/X3:2:2347008:2.0 Bala Gi:2367488!2375680:2.5 Uplink");
4940
		m_gameExe.ParseExe("x3tc.exe:5:NO_XOR|TC_TEXT|MYDOCLOG:HKCU/Software/Egosoft/X3TC/ModName:X3 Terran Conflict:Egosoft/X3TC:3:1933464!1933520:2.0 Aldrin Expansion:-1:2.5 A New Home (Superbox):-1:3.0 Balance of Power");
4941
		m_gameExe.ParseExe("x3tc.exe|35:5:NO_XOR|TC_TEXT|MYDOCLOG:HKCU/Software/Egosoft/X3TC/ModName:X3 Terran Conflict:Egosoft/X3TC:3:1933464!1933520:2.0 Aldrin Expansion:-1:2.5 A New Home (Superbox):-1:3.0 Balance of Power");
4941
		m_gameExe.ParseExe("x3ap.exe:2:NO_XOR|TC_TEXT|MYDOCLOG|ADDON:HKCU/Software/Egosoft/X3AP/ModName:X3 Albion Prelude:Egosoft/X3AP:addon!x3tc.exe:0");
4942
		m_gameExe.ParseExe("x3ap.exe|38:2:NO_XOR|TC_TEXT|MYDOCLOG|ADDON:HKCU/Software/Egosoft/X3AP/ModName:X3 Albion Prelude:Egosoft/X3AP:addon!x3tc.exe:0");
4942
	}
4943
	}
4943
}
4944
}
4944
 
4945
 
4945
int CPackages::GetGameLanguage(CyString dir)
4946
int CPackages::GetGameLanguage(CyString dir)
4946
{
4947
{
Line 4966... Line 4967...
4966
 
4967
 
4967
	return 0;
4968
	return 0;
4968
}
4969
}
4969
CyString CPackages::GetGameRunExe(CyString dir)
4970
CyString CPackages::GetGameRunExe(CyString dir)
4970
{
4971
{
4971
	return m_gameExe.GetGameRunExe((dir.Empty()) ? m_sCurrentDir : dir);
4972
	return m_gameExe.GetGameRunExe((dir.Empty()) ? m_sCurrentDir.ToString() : dir.ToString());
4972
}
4973
}
4973
 
4974
 
4974
CyString CPackages::GetGameNameFromType(int game)
4975
CyString CPackages::GetGameNameFromType(int game)
4975
{
4976
{
4976
	return m_gameExe.GetGameNameFromType(game - 1);
4977
	return m_gameExe.GetGameNameFromType(game - 1);
4977
}
4978
}
4978
CyString CPackages::GetGameName(CyString dir)
4979
CyString CPackages::GetGameName(CyString dir)
4979
{
4980
{
4980
	return m_gameExe.GetGameName((dir.Empty()) ? m_sCurrentDir : dir);
4981
	return m_gameExe.GetGameName((dir.Empty()) ? m_sCurrentDir.ToString() : dir.ToString());
4981
}
4982
}
4982
CyString CPackages::GetProperDir(CyString dir)
4983
CyString CPackages::GetProperDir(CyString dir)
4983
{
4984
{
4984
	return m_gameExe.GetProperDir((dir.Empty()) ? m_sCurrentDir : dir);
4985
	return m_gameExe.GetProperDir((dir.Empty()) ? m_sCurrentDir.ToString() : dir.ToString());
4985
}
4986
}
4986
CyString CPackages::GetAddonDir(CyString dir)
4987
CyString CPackages::GetAddonDir(CyString dir)
4987
{
4988
{
4988
	return m_gameExe.GetAddonDir((dir.Empty()) ? m_sCurrentDir : dir);
4989
	return m_gameExe.GetAddonDir((dir.Empty()) ? m_sCurrentDir.ToString() : dir.ToString());
4989
}
4990
}
4990
int CPackages::GetGameAddons(CyStringList &exes, CyString dir)
4991
int CPackages::GetGameAddons(CyStringList &exes, CyString dir)
4991
{
4992
{
4992
	return m_gameExe.GetGameAddons((dir.Empty()) ? m_sCurrentDir : dir, exes);
4993
	return m_gameExe.GetGameAddons((dir.Empty()) ? m_sCurrentDir.ToString() : dir.ToString(), exes);
4993
}
4994
}
4994
 
4995
 
4995
CyString CPackages::GetGameTypesString(CBaseFile *package, bool includeVersion)
4996
CyString CPackages::GetGameTypesString(CBaseFile *package, bool includeVersion)
4996
{
4997
{
4997
	if ( !package->AnyGameCompatability() )
4998
	if ( !package->AnyGameCompatability() )
Line 5022... Line 5023...
5022
	return NullString;
5023
	return NullString;
5023
}
5024
}
5024
 
5025
 
5025
CyString CPackages::GetGameVersionFromType(int game, int version, CyString sVersion)
5026
CyString CPackages::GetGameVersionFromType(int game, int version, CyString sVersion)
5026
{
5027
{
5027
	return m_gameExe.GetGameVersionFromType(game - 1, version - 1, sVersion);
5028
	return m_gameExe.GetGameVersionFromType(game - 1, version - 1, sVersion.ToString());
5028
}
5029
}
5029
 
5030
 
5030
int CPackages::CountBuiltInPackages(bool onlyEnabled)
5031
int CPackages::CountBuiltInPackages(bool onlyEnabled)
5031
{
5032
{
5032
	int count = 0;
5033
	int count = 0;
Line 5464... Line 5465...
5464
	text = text.FindReplace(">", "&gt;");
5465
	text = text.FindReplace(">", "&gt;");
5465
	text = text.FindReplace("<", "&lt;");
5466
	text = text.FindReplace("<", "&lt;");
5466
	return text;
5467
	return text;
5467
}
5468
}
5468
 
5469
 
-
 
5470
int CPackages::_gameTextNumber() const
-
 
5471
{
-
 
5472
	int gameNumber = (m_pCurrentGameExe) ? m_pCurrentGameExe->iTextNum : -1;
-
 
5473
	if ( gameNumber != -1 ) return gameNumber;
-
 
5474
 
-
 
5475
	switch(m_iGame) {
-
 
5476
		case GAME_X3: return 30;
-
 
5477
		case GAME_X3TC: return 35;
-
 
5478
		case GAME_X3AP: return 38;
-
 
5479
		default: return 0;
-
 
5480
	}
-
 
5481
}
-
 
5482
 
5469
void CPackages::CreatePluginManagerText()
5483
void CPackages::CreatePluginManagerText()
5470
{
5484
{
5471
	int gameNumber = 0;
5485
	int gameNumber = _gameTextNumber();
5472
	if ( m_iGame == GAME_X3 )
-
 
5473
		gameNumber = 30;
-
 
5474
	else if ( m_iGame == GAME_X3TC )
-
 
5475
		gameNumber = 35;
-
 
5476
	else if ( m_iGame == GAME_X3AP )
-
 
5477
		gameNumber = 38;
-
 
5478
 
5486
 
5479
	int lang = m_iLanguage;
5487
	int lang = m_iLanguage;
5480
	if ( !lang || lang < 0 )
5488
	if ( !lang || lang < 0 )
5481
		lang = 44;
5489
		lang = 44;
5482
 
5490