Subversion Repositories spk

Rev

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

Rev 226 Rev 248
Line 53... Line 53...
53
 
53
 
54
	m_pSceneFile = m_pCockpitFile = NULL;
54
	m_pSceneFile = m_pCockpitFile = NULL;
55
	m_bLanguageText = m_bExistingShip = false;
55
	m_bLanguageText = m_bExistingShip = false;
56
	m_iOrgDesc = 0;
56
	m_iOrgDesc = 0;
57
 
57
 
58
	m_iShipyard = SHIPYARD_NONE;
58
	ShipyardRace r = ShipyardRace::None;
-
 
59
	_iShipyard = static_cast<unsigned long>(ShipyardRace::None);
59
}
60
}
60
 
61
 
61
void CXspFile::addText(int id, const Utils::WString &name, const Utils::WString &desc)
62
void CXspFile::addText(int id, const Utils::WString &name, const Utils::WString &desc)
62
{
63
{
63
	// first check if theres an existing id
64
	// first check if theres an existing id
Line 195... Line 196...
195
	if ( m_bLanguageText )
196
	if ( m_bLanguageText )
196
		values += L"LanguageText\n";
197
		values += L"LanguageText\n";
197
	if ( m_bExistingShip )
198
	if ( m_bExistingShip )
198
		values += L"ExistingShip\n";
199
		values += L"ExistingShip\n";
199
	values += Utils::WString(L"OrgDesc: ") + (long)m_iOrgDesc + L"\n";
200
	values += Utils::WString(L"OrgDesc: ") + (long)m_iOrgDesc + L"\n";
200
	values += Utils::WString(L"Shipyard: ") + (long)m_iShipyard + L"\n";
201
	values += Utils::WString(L"Shipyard: ") + Utils::WString::Number(_iShipyard) + L"\n";
201
 
202
 
202
	for ( CListNode<SCockpit> *node = m_lCockpit.Front(); node; node = node->next() ) {
203
	for ( CListNode<SCockpit> *node = m_lCockpit.Front(); node; node = node->next() ) {
203
		SCockpit *cockpit = node->Data();
204
		SCockpit *cockpit = node->Data();
204
		values += Utils::WString(L"CockpitNew: ") + (long)cockpit->lWeaponMask.size();
205
		values += Utils::WString(L"CockpitNew: ") + (long)cockpit->lWeaponMask.size();
205
		for ( CListNode<SWeaponMask> *wNode = cockpit->lWeaponMask.Front(); wNode; wNode = wNode->next() ) {
206
		for ( CListNode<SWeaponMask> *wNode = cockpit->lWeaponMask.Front(); wNode; wNode = wNode->next() ) {
Line 249... Line 250...
249
	else if ( sLine.Compare(L"ExistingShip") )
250
	else if ( sLine.Compare(L"ExistingShip") )
250
		m_bExistingShip = true;
251
		m_bExistingShip = true;
251
	else if ( first.Compare(L"OrgDesc") || first.Compare(L"OriginalDesc") )
252
	else if ( first.Compare(L"OrgDesc") || first.Compare(L"OriginalDesc") )
252
		m_iOrgDesc = rest;
253
		m_iOrgDesc = rest;
253
	else if ( first.Compare(L"Shipyard") )
254
	else if ( first.Compare(L"Shipyard") )
254
		m_iShipyard = rest;
255
		_iShipyard = rest.toLong();
255
	else if ( first.Compare(L"CutData") )
256
	else if ( first.Compare(L"CutData") )
256
		this->addCutData(rest);
257
		this->addCutData(rest);
257
	else if ( first.Compare(L"Bodies") )
258
	else if ( first.Compare(L"Bodies") )
258
		this->addBodies(rest);
259
		this->addBodies(rest);
259
	else if ( first.Compare(L"Animations") )
260
	else if ( first.Compare(L"Animations") )
Line 389... Line 390...
389
			{
390
			{
390
				int cur = 1;
391
				int cur = 1;
391
				for (size_t i = 0; i < strs.size(); i++, cur *= 2 )
392
				for (size_t i = 0; i < strs.size(); i++, cur *= 2 )
392
				{
393
				{
393
					if ( strs[i] == L"1" )
394
					if ( strs[i] == L"1" )
394
						this->AddShipyard(cur);
395
						this->addShipyard(static_cast<ShipyardRace>(cur));
395
				}
396
				}
396
			}
397
			}
397
		}
398
		}
398
		else if ( first.Compare(L"ScreenShot") )
399
		else if ( first.Compare(L"ScreenShot") )
399
		{
400
		{
Line 648... Line 649...
648
 
649
 
649
	return true;
650
	return true;
650
}
651
}
651
 
652
 
652
 
653
 
653
int GetMaxShipyards() { return (int)SHIPYARD_MAX; }
654
unsigned long GetMaxShipyards() { return static_cast<unsigned long>(ShipyardRace::Max); }
654
 
655
 
655
Utils::WString GetShipyardName (int s)
656
Utils::WString GetShipyardName (ShipyardRace s)
656
{
657
{
657
	switch (s)
658
	switch (s)
658
	{
659
	{
659
		case SHIPYARD_ARGON:
660
	case ShipyardRace::Argon:
660
			return L"Argon";
661
		return L"Argon";
661
		case SHIPYARD_BORON:
662
	case ShipyardRace::Boron:
662
			return L"Boron";
663
		return L"Boron";
663
		case SHIPYARD_PARANID:
664
	case ShipyardRace::Paranid:
664
			return L"Paranid";
665
		return L"Paranid";
665
		case SHIPYARD_SPLIT:
666
	case ShipyardRace::Split:
666
			return L"Split";
667
		return L"Split";
667
		case SHIPYARD_TELADI:
668
	case ShipyardRace::Teladi:
668
			return L"Teladi";
669
		return L"Teladi";
669
		case SHIPYARD_PIRATES:
670
	case ShipyardRace::Pirates:
670
			return L"Pirates";
671
		return L"Pirates";
671
		case SHIPYARD_FRIEND:
672
	case ShipyardRace::Friend:
672
			return L"Friendly";
673
		return L"Friendly";
673
		case SHIPYARD_XENON:
674
	case ShipyardRace::Xenon:
674
			return L"Xenon";
675
		return L"Xenon";
675
		case SHIPYARD_TERRAN:
676
	case ShipyardRace::Terran:
676
			return L"Terran";
677
		return L"Terran";
-
 
678
	case ShipyardRace::ATF:
-
 
679
		return L"ATF";
-
 
680
	case ShipyardRace::Goner:
-
 
681
		return L"Goner";
-
 
682
	case ShipyardRace::Yaki:
-
 
683
		return L"Yaki";
-
 
684
	case ShipyardRace::None:
-
 
685
		return L"";
677
	}
686
	}
678
 
687
 
679
	return L"Unknown";
688
	return L"Unknown";
680
}
689
}
681
 
690
 
Line 781... Line 790...
781
 
790
 
782
	list->pushBack(L"# File Type, Script or Ship");
791
	list->pushBack(L"# File Type, Script or Ship");
783
	list->pushBack(L"FileType: Ship");
792
	list->pushBack(L"FileType: Ship");
784
	list->pushBack(L"");
793
	list->pushBack(L"");
785
 
794
 
786
	if ( m_iShipyard )
795
	if (_iShipyard)
787
	{
796
	{
788
		list->pushBack(L"# Shipyards, Set which shipyards to add ships for sale to");
797
		list->pushBack(L"# Shipyards, Set which shipyards to add ships for sale to");
789
		for ( int i = SHIPYARD_ARGON; i <= SHIPYARD_MAX; i *= 2 )
798
		for (unsigned long i = 0; i <= GetMaxShipyards(); i *= 2 )
790
		{
799
		{
791
			if ( this->IsShipyard(i) )
800
			if ( this->isShipyard(static_cast<ShipyardRace>(i)) )
792
				list->pushBack(L"Shipyard: " + GetShipyardName(i));
801
				list->pushBack(L"Shipyard: " + GetShipyardName(static_cast<ShipyardRace>(i)));
793
		}
802
		}
794
		list->pushBack(L"");
803
		list->pushBack(L"");
795
	}
804
	}
796
 
805
 
797
	if ( m_iOrgDesc > 0 )
806
	if ( m_iOrgDesc > 0 )
Line 1046... Line 1055...
1046
 
1055
 
1047
bool CXspFile::loadPackageData(const Utils::WString &sFirst, const Utils::WString &sRest, const Utils::WString &sMainGame, Utils::WStringList &otherGames, Utils::WStringList &gameAddons, CProgressInfo *progress)
1056
bool CXspFile::loadPackageData(const Utils::WString &sFirst, const Utils::WString &sRest, const Utils::WString &sMainGame, Utils::WStringList &otherGames, Utils::WStringList &gameAddons, CProgressInfo *progress)
1048
{
1057
{
1049
	if ( sFirst.Compare(L"Shipyard") )
1058
	if ( sFirst.Compare(L"Shipyard") )
1050
	{
1059
	{
1051
		for ( int i = SHIPYARD_ARGON; i <= SHIPYARD_MAX; i *= 2 )
1060
		for (unsigned long i = 0; i <= GetMaxShipyards(); i *= 2)
1052
		{
1061
		{
1053
			if ( sRest.Compare(GetShipyardName(i)) )
1062
			if(sRest.Compare(GetShipyardName(static_cast<ShipyardRace>(i))))
1054
			{
1063
			{
1055
				this->AddShipyard(i);
1064
				this->addShipyard(static_cast<ShipyardRace>(i));
1056
				break;
1065
				break;
1057
			}
1066
			}
1058
		}
1067
		}
1059
	}
1068
	}
1060
	else if ( sFirst.Compare(L"OriginalDescription") )
1069
	else if ( sFirst.Compare(L"OriginalDescription") )
Line 1783... Line 1792...
1783
 
1792
 
1784
	if (deleteData)
1793
	if (deleteData)
1785
		delete []data;
1794
		delete []data;
1786
 
1795
 
1787
	return true;
1796
	return true;
-
 
1797
}
-
 
1798
 
-
 
1799
void CXspFile::completeFile()
-
 
1800
{
-
 
1801
	C_File* f = GetFirstFile(FILETYPE_SHIPSCENE);
-
 
1802
	if (f)
-
 
1803
		m_pSceneFile = f;
-
 
1804
 
-
 
1805
	f = GetFirstFile(FILETYPE_COCKPITSCENE);
-
 
1806
	if (f)
-
 
1807
		m_pCockpitFile = f;
1788
}
1808
}
1789
 
1809
 
1790
void CXspFile::extractCutData(CVirtualFileSystem *pVfs, Utils::WStringList &sceneModels, bool add)
1810
void CXspFile::extractCutData(CVirtualFileSystem *pVfs, Utils::WStringList &sceneModels, bool add)
1791
{
1811
{
1792
	std::vector<int> cuts;
1812
	std::vector<int> cuts;