Subversion Repositories spk

Rev

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

Rev 218 Rev 223
Line 453... Line 453...
453
		void ExportPackage(String ^file)
453
		void ExportPackage(String ^file)
454
		{
454
		{
455
			Utils::WString sFile = _WS(file);
455
			Utils::WString sFile = _WS(file);
456
			int error = 0;
456
			int error = 0;
457
 
457
 
458
			CBaseFile *p = m_pPackages->openPackage(sFile.toString(), &error, 0, SPKREAD_NODATA);
458
			CBaseFile *p = m_pPackages->openPackage(sFile, &error, 0, SPKREAD_NODATA);
459
			if ( !p ) {
459
			if ( !p ) {
460
				MessageBox::Show(this, "Error: Unable to open package file\n" + file, "Error Opening", MessageBoxButtons::OK, MessageBoxIcon::Error);
460
				MessageBox::Show(this, "Error: Unable to open package file\n" + file, "Error Opening", MessageBoxButtons::OK, MessageBoxIcon::Error);
461
			}
461
			}
462
			else {
462
			else {
463
				String ^to = IO::FileInfo(file).DirectoryName;
463
				String ^to = IO::FileInfo(file).DirectoryName;
Line 477... Line 477...
477
				if ( to && to->Length ) {
477
				if ( to && to->Length ) {
478
					Utils::WString exportFilename = CFileIO(sFile).changeFileExtension(L"zip");
478
					Utils::WString exportFilename = CFileIO(sFile).changeFileExtension(L"zip");
479
					if ( game ) {
479
					if ( game ) {
480
						exportFilename = CFileIO(exportFilename).dir() + L"/" + CFileIO(exportFilename).baseName() + L"_" + CBaseFile::ConvertGameToString(game) + L".zip";
480
						exportFilename = CFileIO(exportFilename).dir() + L"/" + CFileIO(exportFilename).baseName() + L"_" + CBaseFile::ConvertGameToString(game) + L".zip";
481
					}
481
					}
482
					if ( p->saveToArchive(exportFilename.toString(), game, m_pPackages->GetGameExe())) {
482
					if ( p->saveToArchive(exportFilename, game, m_pPackages->GetGameExe())) {
483
						String ^message = "Export: " + file + "\nTo: " + _US(CFileIO(exportFilename).filename());
483
						String ^message = "Export: " + file + "\nTo: " + _US(CFileIO(exportFilename).filename());
484
						if ( game ) {
484
						if ( game ) {
485
							message += "\nGame: " + _US(m_pPackages->GetGameExe()->game(game - 1)->sName);
485
							message += "\nGame: " + _US(m_pPackages->GetGameExe()->game(game - 1)->sName);
486
						}
486
						}
487
						MessageBox::Show(this, message, "Exported Package", MessageBoxButtons::OK, MessageBoxIcon::Information);
487
						MessageBox::Show(this, message, "Exported Package", MessageBoxButtons::OK, MessageBoxIcon::Information);
Line 495... Line 495...
495
		void ExtractPackage(String ^file, bool here)
495
		void ExtractPackage(String ^file, bool here)
496
		{
496
		{
497
			Utils::WString sFile = _WS(file);
497
			Utils::WString sFile = _WS(file);
498
			int error = 0;
498
			int error = 0;
499
 
499
 
500
			CBaseFile *p = m_pPackages->openPackage(sFile.toString(), &error, 0, SPKREAD_NODATA);
500
			CBaseFile *p = m_pPackages->openPackage(sFile, &error, 0, SPKREAD_NODATA);
501
			if ( !p ) {
501
			if ( !p ) {
502
				MessageBox::Show(this, "Error: Unable to open package file\n" + file, "Error Opening", MessageBoxButtons::OK, MessageBoxIcon::Error);
502
				MessageBox::Show(this, "Error: Unable to open package file\n" + file, "Error Opening", MessageBoxButtons::OK, MessageBoxIcon::Error);
503
			}
503
			}
504
			else {
504
			else {
505
				String ^to = nullptr;
505
				String ^to = nullptr;
Line 1166... Line 1166...
1166
 
1166
 
1167
		void LoadData()
1167
		void LoadData()
1168
		{
1168
		{
1169
			System::String ^mydoc = Environment::GetFolderPath(Environment::SpecialFolder::Personal );
1169
			System::String ^mydoc = Environment::GetFolderPath(Environment::SpecialFolder::Personal );
1170
			CFileIO Config;
1170
			CFileIO Config;
1171
			if ( Config.open(_S(mydoc) + "/Egosoft/creator.dat") )
1171
			if ( Config.open(_WS(mydoc) + L"/Egosoft/creator.dat") )
1172
			{
1172
			{
1173
				std::vector<Utils::String> *lines = Config.readLines();
1173
				std::vector<Utils::WString> lines;
1174
				if ( lines )
1174
				if(Config.readLines(lines))
1175
				{
1175
				{
1176
					for ( int i = 0; i < (int)lines->size(); i++ )
1176
					for (size_t i = 0; i < (int)lines.size(); i++ )
1177
					{
1177
					{
1178
						Utils::String line(lines->at(i));
1178
						Utils::WString line(lines.at(i));
1179
						Utils::String start = line.token(":", 1).toLower();
1179
						Utils::WString start = line.token(L":", 1).toLower();
1180
						Utils::String rest = line.tokens(":", 2).removeFirstSpace();
1180
						Utils::WString rest = line.tokens(L":", 2).removeFirstSpace();
1181
						if ( start.Compare("CreatorSize") )
1181
						if ( start.Compare(L"CreatorSize") )
1182
							this->Size = System::Drawing::Size(rest.token(" ", 1).toInt(), rest.token(" ", 2).toInt());
1182
							this->Size = System::Drawing::Size(rest.token(L" ", 1).toInt(), rest.token(L" ", 2).toInt());
1183
						else if ( start.Compare("CreatorPos") )
1183
						else if ( start.Compare(L"CreatorPos") )
1184
						{
1184
						{
1185
							m_iLocX = rest.token(" ", 1).toInt();
1185
							m_iLocX = rest.token(L" ", 1).toInt();
1186
							m_iLocY = rest.token(" ", 2).toInt();
1186
							m_iLocY = rest.token(L" ", 2).toInt();
1187
						}
1187
						}
1188
						else if ( start.Compare("Loaded") )
1188
						else if ( start.Compare(L"Loaded") )
1189
							m_pLoadedList->pushBack(rest);
1189
							m_pLoadedList->pushBack(rest);
1190
						else if ( start.Compare("CreatorMax") )
1190
						else if ( start.Compare(L"CreatorMax") )
1191
							this->WindowState = FormWindowState::Maximized;
1191
							this->WindowState = FormWindowState::Maximized;
1192
						else if ( start.Compare("GenerateUpdate") )
1192
						else if ( start.Compare(L"GenerateUpdate") )
1193
							m_settings->bGenerateUpdate = true;
1193
							m_settings->bGenerateUpdate = true;
1194
						else if ( start.Compare("GameDir") )
1194
						else if ( start.Compare(L"GameDir") )
1195
							_pGameDir->parse(rest, m_pPackages);
1195
							_pGameDir->parse(rest, m_pPackages);
1196
					}
1196
					}
1197
 
-
 
1198
					delete lines;
-
 
1199
				}
1197
				}
1200
			}
1198
			}
1201
		}
1199
		}
1202
		
1200
		
1203
		void LoadText(bool center, bool reload, CVirtualFileSystem *vfs)
1201
		void LoadText(bool center, bool reload, CVirtualFileSystem *vfs)