Subversion Repositories spk

Rev

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

Rev 6 Rev 13
Line 110... Line 110...
110
	}
110
	}
111
 
111
 
112
	return list;
112
	return list;
113
}
113
}
114
 
114
 
115
C_File *CBaseFile::GetNextFile(C_File *prev)
115
C_File *CBaseFile::GetNextFile(C_File *prev) const
116
{
116
{
117
	int type = -1;
117
	int type = -1;
118
	for ( CListNode<C_File> *node = m_lFiles.Front(); node; node = node->next() )
118
	for ( CListNode<C_File> *node = m_lFiles.Front(); node; node = node->next() )
119
	{
119
	{
120
		C_File *f = node->Data();
120
		C_File *f = node->Data();
Line 131... Line 131...
131
	}
131
	}
132
 
132
 
133
	return NULL;
133
	return NULL;
134
}
134
}
135
 
135
 
136
C_File *CBaseFile::GetPrevFile(C_File *next)
136
C_File *CBaseFile::GetPrevFile(C_File *next) const
137
{
137
{
138
	if ( !next )
138
	if ( !next )
139
		return NULL;
139
		return NULL;
140
 
140
 
141
	int type = -1;
141
	int type = -1;
Line 155... Line 155...
155
	}
155
	}
156
 
156
 
157
	return NULL;
157
	return NULL;
158
}
158
}
159
 
159
 
160
C_File *CBaseFile::GetFirstFile(int type)
160
C_File *CBaseFile::GetFirstFile(int type) const
161
{
161
{
162
	for ( CListNode<C_File> *node = m_lFiles.Front(); node; node = node->next() )
162
	for ( CListNode<C_File> *node = m_lFiles.Front(); node; node = node->next() )
163
	{
163
	{
164
		C_File *f = node->Data();
164
		C_File *f = node->Data();
165
		if ( f->GetFileType() == type )
165
		if ( f->GetFileType() == type )
Line 2037... Line 2037...
2037
	}
2037
	}
2038
 
2038
 
2039
	return false;
2039
	return false;
2040
}
2040
}
2041
 
2041
 
2042
bool CBaseFile::IsFakePatch()
2042
bool CBaseFile::IsFakePatch() const
2043
{
2043
{
2044
	// check for any mod files that are not fake patchs
2044
	// check for any mod files that are not fake patchs
2045
	for ( CListNode<C_File> *fNode = m_lFiles.Front(); fNode; fNode = fNode->next() )
2045
	for ( CListNode<C_File> *fNode = m_lFiles.Front(); fNode; fNode = fNode->next() )
2046
	{
2046
	{
2047
		C_File *f = fNode->Data();
2047
		C_File *f = fNode->Data();
Line 2621... Line 2621...
2621
	list->PushBack("");
2621
	list->PushBack("");
2622
 
2622
 
2623
	if ( !m_lGames.empty() ) {
2623
	if ( !m_lGames.empty() ) {
2624
		list->PushBack("# The game version the script is for <game> <version> (can have multiple games)");
2624
		list->PushBack("# The game version the script is for <game> <version> (can have multiple games)");
2625
		for ( SGameCompat *g = m_lGames.First(); g; g = m_lGames.Next() ) {
2625
		for ( SGameCompat *g = m_lGames.First(); g; g = m_lGames.Next() ) {
2626
			CyString game = CBaseFile::ConvertGameToString(g->iGame);
2626
			Utils::String game = CBaseFile::ConvertGameToString(g->iGame);
2627
 
2627
 
2628
			if ( !g->sVersion.Empty() )
2628
			if ( !g->sVersion.Empty() )
2629
			{
2629
			{
2630
				game += " ";
2630
				game += " ";
2631
				game += g->sVersion;
2631
				game += g->sVersion.ToString();
2632
			}
2632
			}
2633
			else
2633
			else
2634
			{
2634
			{
2635
				game += " ";
2635
				game += " ";
2636
				game += (long)g->iVersion;
2636
				game += (long)g->iVersion;
Line 2959... Line 2959...
2959
	// new version
2959
	// new version
2960
	else if ( first.Compare("GenerateUpdateFile") )
2960
	else if ( first.Compare("GenerateUpdateFile") )
2961
		m_bAutoGenerateUpdateFile = true;
2961
		m_bAutoGenerateUpdateFile = true;
2962
	else if ( first.Compare("Game") )
2962
	else if ( first.Compare("Game") )
2963
	{
2963
	{
2964
		CyString sGame = rest.GetToken(" ", 1, 1);
2964
		Utils::String sGame = rest.GetToken(" ", 1, 1).ToString();
2965
		this->AddGameCompatability(CBaseFile::GetGameFromString(sGame), rest.GetToken(" ", 2, 2));
2965
		this->AddGameCompatability(CBaseFile::GetGameFromString(sGame), rest.GetToken(" ", 2, 2));
2966
	}
2966
	}
2967
	else if ( first.Compare("Description") )
2967
	else if ( first.Compare("Description") )
2968
		m_sDescription = rest;
2968
		m_sDescription = rest;
2969
	else if ( first.Compare("AutoSave") || first.Compare("AutoExport") || first.Compare("AutoRarExport") || first.Compare("AutoZipExport") )
2969
	else if ( first.Compare("AutoSave") || first.Compare("AutoExport") || first.Compare("AutoRarExport") || first.Compare("AutoZipExport") )
Line 3080... Line 3080...
3080
		rest = rest.GetToken("|", 1, 1);
3080
		rest = rest.GetToken("|", 1, 1);
3081
	}
3081
	}
3082
 
3082
 
3083
	int game = 0;
3083
	int game = 0;
3084
	if ( rest.GetToken(" ", 1, 1).Left(4).Compare("GAME") ) {
3084
	if ( rest.GetToken(" ", 1, 1).Left(4).Compare("GAME") ) {
3085
		game = CBaseFile::GetGameFromString(rest.GetToken(" ", 2, 2));
3085
		game = CBaseFile::GetGameFromString(rest.GetToken(" ", 2, 2).ToString());
3086
		rest = rest.GetToken(" ", 3);
3086
		rest = rest.GetToken(" ", 3);
3087
	}
3087
	}
3088
 
3088
 
3089
	rest = rest.FindReplace("\\", "/");
3089
	rest = rest.FindReplace("\\", "/");
3090
 
3090
 
Line 3359... Line 3359...
3359
	CloseZip(hz);
3359
	CloseZip(hz);
3360
 
3360
 
3361
	return true;
3361
	return true;
3362
}
3362
}
3363
 
3363
 
3364
int CBaseFile::GetGameFromString(CyString sGame)
3364
int CBaseFile::GetGameFromString(const Utils::String &sGame)
3365
{
3365
{
3366
	int iGame = GAME_ALL;
3366
	int iGame = GAME_ALL;
3367
	if ( sGame.Compare("ALL") )
3367
	if ( sGame.Compare("ALL") )
3368
		iGame = GAME_ALL;
3368
		iGame = GAME_ALL;
3369
	else if ( sGame.Compare("X3") )
3369
	else if ( sGame.Compare("X3") )
Line 3374... Line 3374...
3374
		iGame = GAME_X3TC;
3374
		iGame = GAME_X3TC;
3375
	else if ( sGame.Compare("X3AP") )
3375
	else if ( sGame.Compare("X3AP") )
3376
		iGame = GAME_X3AP;
3376
		iGame = GAME_X3AP;
3377
	else if ( sGame.Compare("XREBIRTH") )
3377
	else if ( sGame.Compare("XREBIRTH") )
3378
		iGame = GAME_XREBIRTH;
3378
		iGame = GAME_XREBIRTH;
3379
	else if ( sGame.IsNumber() )
3379
	else if ( sGame.isNumber() )
3380
		iGame = sGame.ToInt();
3380
		iGame = sGame;
3381
 
3381
 
3382
	return iGame;
3382
	return iGame;
3383
}
3383
}
3384
 
3384
 
3385
CyString CBaseFile::ConvertGameToString(int iGame)
3385
Utils::String CBaseFile::ConvertGameToString(int iGame)
3386
{
3386
{
3387
	CyString game = "ALL";
3387
	Utils::String game = "ALL";
3388
 
3388
 
3389
	switch(iGame) {
3389
	switch(iGame) {
3390
		case GAME_ALL:
3390
		case GAME_ALL:
3391
			game = "ALL";
3391
			game = "ALL";
3392
			break;
3392
			break;