Subversion Repositories spk

Rev

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

Rev 13 Rev 14
Line 299... Line 299...
299
					{
299
					{
300
						C_File *icon = new C_File(rest.GetToken(" ", 2));
300
						C_File *icon = new C_File(rest.GetToken(" ", 2));
301
						packageFile->SetIcon(icon, rest.GetToken(" ", 1, 1));
301
						packageFile->SetIcon(icon, rest.GetToken(" ", 1, 1));
302
					}
302
					}
303
					else
303
					else
304
						packageFile->ParseValueLine(line);
304
						packageFile->ParseValueLine(line.ToString());
305
				}
305
				}
306
				else if ( iStatus == READ_SCRIPTFILE )
306
				else if ( iStatus == READ_SCRIPTFILE )
307
				{
307
				{
308
					if ( cmd == "<script>" )
308
					if ( cmd == "<script>" )
309
					{
309
					{
Line 522... Line 522...
522
		else if ( node->Data()->GetType() == TYPE_XSP )
522
		else if ( node->Data()->GetType() == TYPE_XSP )
523
		{
523
		{
524
			CXspFile *p = (CXspFile *)node->Data();
524
			CXspFile *p = (CXspFile *)node->Data();
525
			for ( CListNode<SGameShip> *gNode = m_lGameShips.Front(); gNode; gNode = gNode->next() )
525
			for ( CListNode<SGameShip> *gNode = m_lGameShips.Front(); gNode; gNode = gNode->next() )
526
			{
526
			{
527
				if ( p->GetShipID().Compare(gNode->Data()->sShipID) )
527
				if ( p->GetShipID().Compare(gNode->Data()->sShipID.ToString()) )
528
				{
528
				{
529
					gNode->Data()->pPackage = p;
529
					gNode->Data()->pPackage = p;
530
					break;
530
					break;
531
				}
531
				}
532
			}
532
			}
Line 914... Line 914...
914
		}
914
		}
915
	}
915
	}
916
	else if ( package->GetType() == TYPE_XSP )
916
	else if ( package->GetType() == TYPE_XSP )
917
	{
917
	{
918
		CXspFile *xsp = (CXspFile *)package;
918
		CXspFile *xsp = (CXspFile *)package;
919
		CyString data = xsp->GetShipData();
919
		Utils::String data = xsp->GetShipData();
920
 
920
 
921
		for ( int i = 17; i <= 18; i++ )
921
		for ( int i = 17; i <= 18; i++ )
922
		{
922
		{
923
			CyString model = data.GetToken(";", i, i);
923
			Utils::String model = data.token(";", i);
924
			CyString modelExt = model.Right(4);
924
			Utils::String modelExt = model.right(4);
925
			// check file extension
925
			// check file extension
926
			if ( modelExt.Compare(".bod") || modelExt.Compare(".pbd") )
926
			if ( modelExt.Compare(".bod") || modelExt.Compare(".pbd") )
927
				data = data.RepToken(";", i, model.Left(-4));
927
				data = data.replaceToken(";", i, model.left(-4));
928
		}
928
		}
929
 
929
 
930
		xsp->SetShipData(data);
930
		xsp->SetShipData(data);
931
	}
931
	}
932
 
932
 
Line 1441... Line 1441...
1441
				if ( cat.AppendFile(f->Data()->GetFilePointer(), f->Data()->GetNameDirectory(package), true, (m_iGameFlags & EXEFLAG_NOXOR) ? false : true) ) {
1441
				if ( cat.AppendFile(f->Data()->GetFilePointer(), f->Data()->GetNameDirectory(package), true, (m_iGameFlags & EXEFLAG_NOXOR) ? false : true) ) {
1442
					CFileIO(f->Data()->GetFilePointer()).Remove();
1442
					CFileIO(f->Data()->GetFilePointer()).Remove();
1443
					f->Data()->SetFilename(m_sCurrentDir + "/PluginManager/PlugMan_Fake.cat::" + f->Data()->GetNameDirectory(package));
1443
					f->Data()->SetFilename(m_sCurrentDir + "/PluginManager/PlugMan_Fake.cat::" + f->Data()->GetNameDirectory(package));
1444
				}
1444
				}
1445
			}
1445
			}
-
 
1446
 
1446
		}
1447
		}
1447
	}
1448
	}
1448
 
1449
 
1449
	bool shuffle = false;
1450
	bool shuffle = false;
1450
 
1451
 
Line 2239... Line 2240...
2239
		CXspFile *p = (CXspFile *)pNode->Data();
2240
		CXspFile *p = (CXspFile *)pNode->Data();
2240
 
2241
 
2241
		bool found = false;
2242
		bool found = false;
2242
		for ( CListNode<SGameShip> *wNode = m_lGameShips.Front(); wNode; wNode = wNode->next() )
2243
		for ( CListNode<SGameShip> *wNode = m_lGameShips.Front(); wNode; wNode = wNode->next() )
2243
		{
2244
		{
2244
			if ( wNode->Data()->sShipID.Compare(p->GetShipID()) )
2245
			if ( wNode->Data()->sShipID.Compare(p->GetShipID().c_str()) )
2245
			{
2246
			{
2246
				if ( !p->IsEnabled() )
2247
				if ( !p->IsEnabled() )
2247
					wNode->Data()->iType = WARETYPE_DISABLED;
2248
					wNode->Data()->iType = WARETYPE_DISABLED;
2248
				else
2249
				else
2249
					wNode->Data()->iType = WARETYPE_ADDED;
2250
					wNode->Data()->iType = WARETYPE_ADDED;
Line 2262... Line 2263...
2262
		for ( CListNode<SGameShip> *wNode = m_lGameShips.Front(); wNode; wNode = wNode->next() )
2263
		for ( CListNode<SGameShip> *wNode = m_lGameShips.Front(); wNode; wNode = wNode->next() )
2263
		{
2264
		{
2264
			if ( (!gw) && (wNode->Data()->iType == WARETYPE_NONE) )
2265
			if ( (!gw) && (wNode->Data()->iType == WARETYPE_NONE) )
2265
				gw = wNode->Data();
2266
				gw = wNode->Data();
2266
			// find an old entry for the ware and add it to the same place
2267
			// find an old entry for the ware and add it to the same place
2267
			if ( wNode->Data()->sShipID.Compare(p->GetShipID()) )
2268
			if ( wNode->Data()->sShipID.Compare(p->GetShipID().c_str()) )
2268
			{
2269
			{
2269
				gw = wNode->Data();
2270
				gw = wNode->Data();
2270
				break;
2271
				break;
2271
			}
2272
			}
2272
		}
2273
		}
Line 3391... Line 3392...
3391
		// only look for spk packages
3392
		// only look for spk packages
3392
		if ( file->GetType() != TYPE_XSP )
3393
		if ( file->GetType() != TYPE_XSP )
3393
			continue;
3394
			continue;
3394
 
3395
 
3395
		// now compare the id, "Compare" is a non case senseative check, opposed to ==.
3396
		// now compare the id, "Compare" is a non case senseative check, opposed to ==.
3396
		if ( ((CXspFile *)file)->GetShipID().Compare(id) )
3397
		if ( ((CXspFile *)file)->GetShipID().Compare(id.ToString()) )
3397
			return file;
3398
			return file;
3398
	}
3399
	}
3399
 
3400
 
3400
	// nothing found
3401
	// nothing found
3401
	return 0;
3402
	return 0;
Line 5525... Line 5526...
5525
		writeData.push_back(CyString("		<t id=\"") + (long)start + "\">" + this->ConvertTextString(p->GetName()) + "</t>");
5526
		writeData.push_back(CyString("		<t id=\"") + (long)start + "\">" + this->ConvertTextString(p->GetName()) + "</t>");
5526
		writeData.push_back(CyString("		<t id=\"") + (long)(start + 1) + "\">" + this->ConvertTextString(p->GetAuthor()) + "</t>");
5527
		writeData.push_back(CyString("		<t id=\"") + (long)(start + 1) + "\">" + this->ConvertTextString(p->GetAuthor()) + "</t>");
5527
		writeData.push_back(CyString("		<t id=\"") + (long)(start + 2) + "\">" + this->ConvertTextString(p->GetVersion()) + "</t>");
5528
		writeData.push_back(CyString("		<t id=\"") + (long)(start + 2) + "\">" + this->ConvertTextString(p->GetVersion()) + "</t>");
5528
		writeData.push_back(CyString("		<t id=\"") + (long)(start + 3) + "\">" + this->ConvertTextString(p->GetLanguageName(lang)) + "</t>");
5529
		writeData.push_back(CyString("		<t id=\"") + (long)(start + 3) + "\">" + this->ConvertTextString(p->GetLanguageName(lang)) + "</t>");
5529
 
5530
 
5530
		CLinkList<CSpkFile::SSettingType> *settings = spk->GetSettingsList();
5531
		CLinkList<SSettingType> *settings = spk->GetSettingsList();
5531
		if ( settings && settings->size() )
5532
		if ( settings && settings->size() )
5532
		{
5533
		{
5533
			writeData.push_back(CyString("		<t id=\"") + (long)(start + 4) + "\">" + (long)settings->size() + "</t>");
5534
			writeData.push_back(CyString("		<t id=\"") + (long)(start + 4) + "\">" + (long)settings->size() + "</t>");
5534
			writeData.push_back(CyString("		<t id=\"") + (long)(start + 5) + "\">" + (long)settingStart + "</t>");
5535
			writeData.push_back(CyString("		<t id=\"") + (long)(start + 5) + "\">" + (long)settingStart + "</t>");
5535
 
5536
 
5536
			for ( CListNode<CSpkFile::SSettingType> *sNode = settings->Front(); sNode; sNode = sNode->next() )
5537
			for ( CListNode<SSettingType> *sNode = settings->Front(); sNode; sNode = sNode->next() )
5537
			{
5538
			{
5538
				CSpkFile::SSettingType *st = sNode->Data();
5539
				SSettingType *st = sNode->Data();
5539
				writeData.push_back(CyString("		<t id=\"") + (long)(settingStart++) + "\">" + st->sKey + "</t>");
5540
				writeData.push_back(CyString("		<t id=\"") + (long)(settingStart++) + "\">" + st->sKey + "</t>");
5540
				writeData.push_back(CyString("		<t id=\"") + (long)(settingStart++) + "\">" + spk->GetSetting(st) + "</t>");
5541
				writeData.push_back(CyString("		<t id=\"") + (long)(settingStart++) + "\">" + spk->GetSetting(st) + "</t>");
5541
			}
5542
			}
5542
		}
5543
		}
5543
		else
5544
		else
Line 6778... Line 6779...
6778
							if ( shipData.ReadShipData(line) )
6779
							if ( shipData.ReadShipData(line) )
6779
							{
6780
							{
6780
								for ( CListNode<SGameShip> *node = shipOverrides.Front(); node; node = node->next() )
6781
								for ( CListNode<SGameShip> *node = shipOverrides.Front(); node; node = node->next() )
6781
								{
6782
								{
6782
									SGameShip *s = node->Data();
6783
									SGameShip *s = node->Data();
6783
									if ( !s->pPackage->GetShipID().Compare(shipData.sID) )
6784
									if ( !s->pPackage->GetShipID().Compare(shipData.sID.ToString()) )
6784
										continue;
6785
										continue;
6785
									s->iText = shiptext;
6786
									s->iText = shiptext;
6786
									if ( !s->pPackage->GetOriginalDescription() )
6787
									if ( !s->pPackage->GetOriginalDescription() )
6787
										shiptext += 2;
6788
										shiptext += 2;
6788
									s->iPos = tshipsList.Count();
6789
									s->iPos = tshipsList.Count();
Line 7299... Line 7300...
7299
				ftpuser = rest;
7300
				ftpuser = rest;
7300
			else if ( first.Compare("FtpPass") )
7301
			else if ( first.Compare("FtpPass") )
7301
				ftppass = rest;
7302
				ftppass = rest;
7302
			else if ( first.Compare("FtpDir") )
7303
			else if ( first.Compare("FtpDir") )
7303
				ftpdir = rest;
7304
				ftpdir = rest;
7304
			else if ( !package->LoadPackageData(first, rest) )
7305
			else if ( !package->LoadPackageData(first.ToString(), rest.ToString()) )
7305
			{
7306
			{
7306
				if ( unknownCommands )
7307
				if ( unknownCommands )
7307
					unknownCommands->PushBack(first, rest);
7308
					unknownCommands->PushBack(first, rest);
7308
			}
7309
			}
7309
		}
7310
		}
Line 8303... Line 8304...
8303
			}
8304
			}
8304
 
8305
 
8305
			// now check type name
8306
			// now check type name
8306
			int filetype = GetFileTypeFromString(checkType);
8307
			int filetype = GetFileTypeFromString(checkType);
8307
			if ( filetype == -1 )
8308
			if ( filetype == -1 )
8308
				archive->LoadPackageData(first, rest);
8309
				archive->LoadPackageData(first.ToString(), rest.ToString());
8309
		}
8310
		}
8310
	}
8311
	}
8311
 
8312
 
8312
	CLEANSPLIT(str, max)
8313
	CLEANSPLIT(str, max)
8313
}
8314
}