Subversion Repositories spk

Rev

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

Rev 1 Rev 36
Line 2... Line 2...
2
#include "ImportShip.h"
2
#include "ImportShip.h"
3
 
3
 
-
 
4
namespace Creator {
-
 
5
ImportShip::ImportShip(String ^id, CVirtualFileSystem *pVfs)
-
 
6
{
-
 
7
	InitializeComponent();
-
 
8
 
-
 
9
	this->Text = this->Text + " (" + id + ")";
-
 
10
 
-
 
11
	this->button1->Visible = false;
-
 
12
	this->pictureBox1->Visible = false;
-
 
13
	this->pictureBox2->Visible = false;
-
 
14
	this->pictureBox3->Visible = false;
-
 
15
	this->pictureBox4->Visible = false;
-
 
16
	this->pictureBox5->Visible = false;
-
 
17
	this->pictureBox6->Visible = false;
-
 
18
	this->pictureBox7->Visible = false;
-
 
19
	this->pictureBox8->Visible = false;
-
 
20
	this->pictureBox9->Visible = false;
-
 
21
	this->pictureBox10->Visible = false;
-
 
22
 
-
 
23
	m_pVfs = pVfs;
-
 
24
	m_bError = false;
-
 
25
	m_sID = id;
-
 
26
	m_pShip = NULL;
-
 
27
 
-
 
28
	m_pInfo = new CProgressInfoDone;
-
 
29
	m_pInfo->UpdateStatus(IMPORTSHIP_NONE);
-
 
30
	m_lModels = NULL;
-
 
31
	m_iStatus = IMPORTSHIP_SCENE;
-
 
32
}
-
 
33
 
-
 
34
void ImportShip::StartImport()
-
 
35
{
-
 
36
	m_pShip = new CXspFile();
-
 
37
	m_bError = false;
-
 
38
	m_iStatus = IMPORTSHIP_SCENE;
-
 
39
	this->backgroundWorker1->RunWorkerAsync();
-
 
40
}
-
 
41
 
-
 
42
void ImportShip::Import()
-
 
43
{
-
 
44
	m_bError = false;
-
 
45
	if ( m_iStatus <= IMPORTSHIP_SCENE )
-
 
46
	{
-
 
47
		// make sure the id is correct
-
 
48
		Utils::String data = CyStringFromSystemString(m_sID).ToString();
-
 
49
		data.removeChar('\r');
-
 
50
		while(data.right(1) == ";")
-
 
51
			data.truncate(-1);
-
 
52
 
-
 
53
		m_bError = !m_pShip->startExtractShip(m_pVfs, data, m_pInfo);
-
 
54
		if ( m_bError ) m_sError = "Unable to extract scene file";
-
 
55
 
-
 
56
		m_iStatus = IMPORTSHIP_EXTRACTSCENE;
-
 
57
	}
-
 
58
	else if ( m_iStatus == IMPORTSHIP_EXTRACTSCENE )
-
 
59
	{
-
 
60
		m_lModels = m_pShip->ReadSceneModels();
-
 
61
		if ( !m_lModels ) {
-
 
62
			m_bError = true;
-
 
63
			m_sError = "Unable to read the scene file to extract model data";
-
 
64
		}
-
 
65
		++m_iStatus;
-
 
66
	}
-
 
67
	else if ( m_iStatus == IMPORTSHIP_PACK )
-
 
68
	{
-
 
69
		m_pShip->PackAllFiles();
-
 
70
		m_iStatus = IMPORTSHIP_DONE;
-
 
71
	}
-
 
72
	else if ( m_iStatus > IMPORTSHIP_EXTRACTSCENE )
-
 
73
	{
-
 
74
		m_bError = !m_pShip->processSceneFileSection(m_iStatus, m_pVfs, m_lModels, m_pInfo);
-
 
75
		if ( m_bError ) m_sError = "Unable to process scene file (Status=" + (long)m_iStatus;
-
 
76
		++m_iStatus;
-
 
77
	}
-
 
78
}
-
 
79
 
-
 
80
void ImportShip::_runNext()
-
 
81
{
-
 
82
	 if ( m_bError )
-
 
83
	 {
-
 
84
		 this->Close();
-
 
85
		 return;
-
 
86
	 }
-
 
87
 
-
 
88
	 if ( m_iStatus > IMPORTSHIP_SCENE )
-
 
89
		 this->pictureBox2->Visible = true;
-
 
90
	 if ( m_iStatus > IMPORTSHIP_EXTRACTSCENE )
-
 
91
		 this->pictureBox1->Visible = true;
-
 
92
	 if ( m_iStatus > IMPORTSHIP_DUMMIES )
-
 
93
		 this->pictureBox3->Visible = true;
-
 
94
	 if ( m_iStatus > IMPORTSHIP_COMPONANT )
-
 
95
		 this->pictureBox4->Visible = true;
-
 
96
	 if ( m_iStatus > IMPORTSHIP_MODELS )
-
 
97
		 this->pictureBox5->Visible = true;
-
 
98
	 if ( m_iStatus > IMPORTSHIP_TEXTURES )
-
 
99
		 this->pictureBox6->Visible = true;
-
 
100
	 if ( m_iStatus > IMPORTSHIP_TEXTS )
-
 
101
		 this->pictureBox7->Visible = true;
-
 
102
	 if ( m_iStatus > IMPORTSHIP_BODIES )
-
 
103
		 this->pictureBox8->Visible = true;
-
 
104
	 if ( m_iStatus > IMPORTSHIP_COCKPITS )
-
 
105
		 this->pictureBox9->Visible = true;
-
 
106
	 if ( m_iStatus > IMPORTSHIP_PACK )
-
 
107
		 this->pictureBox10->Visible = true;
-
 
108
 
-
 
109
	 if ( m_iStatus < IMPORTSHIP_DONE )
-
 
110
		 this->backgroundWorker1->RunWorkerAsync();
-
 
111
	 else
-
 
112
		 this->button1->Visible = true;
-
 
113
}
-
 
114
 
-
 
115
void ImportShip::_cleanUp()
-
 
116
{
-
 
117
	delete m_pInfo;
-
 
118
	if ( m_lModels )
-
 
119
		delete m_lModels;
-
 
120
}
-
 
121
}