1 |
cycrow |
1 |
#pragma once
|
|
|
2 |
|
|
|
3 |
#include <spk.h>
|
|
|
4 |
|
|
|
5 |
#define VERSION 1.30
|
|
|
6 |
|
|
|
7 |
#undef GetTempPath
|
|
|
8 |
|
|
|
9 |
namespace XspConvert {
|
|
|
10 |
|
|
|
11 |
using namespace System;
|
|
|
12 |
using namespace System::ComponentModel;
|
|
|
13 |
using namespace System::Collections;
|
|
|
14 |
using namespace System::Windows::Forms;
|
|
|
15 |
using namespace System::Data;
|
|
|
16 |
using namespace System::Drawing;
|
|
|
17 |
|
|
|
18 |
/// <summary>
|
|
|
19 |
/// Summary for Form1
|
|
|
20 |
///
|
|
|
21 |
/// WARNING: If you change the name of this class, you will need to change the
|
|
|
22 |
/// 'Resource File Name' property for the managed resource compiler tool
|
|
|
23 |
/// associated with all .resx files this class depends on. Otherwise,
|
|
|
24 |
/// the designers will not be able to interact properly with localized
|
|
|
25 |
/// resources associated with this form.
|
|
|
26 |
/// </summary>
|
|
|
27 |
public ref class Form1 : public System::Windows::Forms::Form
|
|
|
28 |
{
|
|
|
29 |
public:
|
|
|
30 |
Form1(System::String ^open)
|
|
|
31 |
{
|
|
|
32 |
InitializeComponent();
|
|
|
33 |
|
|
|
34 |
this->UpdateTitle();
|
|
|
35 |
|
|
|
36 |
m_bLoading = false;
|
|
|
37 |
m_bDontChange = false;
|
|
|
38 |
m_bDontUpdate = false;
|
|
|
39 |
m_bChanged = false;
|
|
|
40 |
m_bReadText = false;
|
|
|
41 |
m_pLoadedShip = NULL;
|
|
|
42 |
m_pDirList = new CyStringList;
|
|
|
43 |
m_pTextList = new CLinkList<CyStringList>;
|
|
|
44 |
m_pLaserList = new CLinkList<CyStringList>;
|
|
|
45 |
m_pMissileList = new CLinkList<CyStringList>;
|
|
|
46 |
m_pCockpit = NULL;
|
|
|
47 |
this->PanelMain->Hide();
|
|
|
48 |
this->PanelNotLoaded->Show();
|
|
|
49 |
|
|
|
50 |
m_iOldGame = -1;
|
|
|
51 |
|
|
|
52 |
this->Setup();
|
|
|
53 |
|
|
|
54 |
if ( open )
|
|
|
55 |
m_sOpenFile = open;
|
|
|
56 |
}
|
|
|
57 |
|
|
|
58 |
protected:
|
|
|
59 |
/// <summary>
|
|
|
60 |
/// Clean up any resources being used.
|
|
|
61 |
/// </summary>
|
|
|
62 |
~Form1()
|
|
|
63 |
{
|
|
|
64 |
if ( m_pLoadedShip )
|
|
|
65 |
delete m_pLoadedShip;
|
|
|
66 |
if ( m_pDirList )
|
|
|
67 |
delete m_pDirList;
|
|
|
68 |
if ( m_pTextList )
|
|
|
69 |
delete m_pTextList;
|
|
|
70 |
if ( m_pLaserList )
|
|
|
71 |
delete m_pLaserList;
|
|
|
72 |
if ( m_pMissileList )
|
|
|
73 |
delete m_pMissileList;
|
|
|
74 |
|
|
|
75 |
if (components)
|
|
|
76 |
{
|
|
|
77 |
delete components;
|
|
|
78 |
}
|
|
|
79 |
}
|
|
|
80 |
private: System::Windows::Forms::MenuStrip^ menuStrip1;
|
|
|
81 |
protected:
|
|
|
82 |
private: System::Windows::Forms::ToolStripMenuItem^ fileToolStripMenuItem;
|
|
|
83 |
private: System::Windows::Forms::ToolStripMenuItem^ openToolStripMenuItem;
|
|
|
84 |
private: System::Windows::Forms::Panel^ panel1;
|
|
|
85 |
private: System::Windows::Forms::Button^ ButExit;
|
|
|
86 |
private: System::Windows::Forms::Panel^ PanelMain;
|
|
|
87 |
|
|
|
88 |
|
|
|
89 |
private:
|
|
|
90 |
bool m_bLoading;
|
|
|
91 |
bool m_bDontUpdate;
|
|
|
92 |
bool m_bChanged;
|
|
|
93 |
bool m_bReadText;
|
|
|
94 |
bool m_bDontChange;
|
|
|
95 |
CyStringList *m_pDirList;
|
|
|
96 |
CLinkList<CyStringList> *m_pTextList;
|
|
|
97 |
CLinkList<CyStringList> *m_pLaserList;
|
|
|
98 |
CLinkList<CyStringList> *m_pMissileList;
|
|
|
99 |
CXspFile *m_pLoadedShip;
|
|
|
100 |
int m_iOldGame;
|
|
|
101 |
array<System::Windows::Forms::ToolStripMenuItem^> ^m_aTools;
|
|
|
102 |
System::String ^m_sOpenFile;
|
|
|
103 |
SCockpit *m_pCockpit;
|
|
|
104 |
|
|
|
105 |
int m_iLoadedLaserMask;
|
|
|
106 |
int m_iLoadedMissileMask;
|
|
|
107 |
int m_iLaserMask;
|
|
|
108 |
int m_iMissileMask;
|
|
|
109 |
|
|
|
110 |
private: System::Windows::Forms::Panel^ PanelNotLoaded;
|
|
|
111 |
private: System::Windows::Forms::Label^ LabelNotLoaded;
|
|
|
112 |
private: System::Windows::Forms::ComboBox^ ComboGame;
|
|
|
113 |
|
|
|
114 |
private: System::Windows::Forms::Panel^ panel2;
|
|
|
115 |
private: System::Windows::Forms::Label^ label1;
|
|
|
116 |
private: System::Windows::Forms::ToolStripMenuItem^ saveToolStripMenuItem;
|
|
|
117 |
private: System::Windows::Forms::CheckedListBox^ WeaponList;
|
|
|
118 |
|
|
|
119 |
private: System::Windows::Forms::ToolStripMenuItem^ settingsToolStripMenuItem;
|
|
|
120 |
private: System::Windows::Forms::ToolStripMenuItem^ gamesToolStripMenuItem;
|
|
|
121 |
private: System::Windows::Forms::ToolStripSeparator^ toolStripSeparator1;
|
|
|
122 |
private: System::Windows::Forms::ToolStripMenuItem^ updateGameDataToolStripMenuItem;
|
|
|
123 |
private: System::Windows::Forms::TabControl^ tabControl1;
|
|
|
124 |
private: System::Windows::Forms::TabPage^ tabPage1;
|
|
|
125 |
private: System::Windows::Forms::TabPage^ tabPage2;
|
|
|
126 |
private: System::Windows::Forms::CheckedListBox^ MissileList;
|
|
|
127 |
private: System::Windows::Forms::ToolStripMenuItem^ loadGameTextToolStripMenuItem;
|
|
|
128 |
private: System::Windows::Forms::ToolStripMenuItem^ saveAsToolStripMenuItem;
|
|
|
129 |
private: System::Windows::Forms::TabPage^ tabPage3;
|
|
|
130 |
private: System::Windows::Forms::CheckedListBox^ CockpitWeapons;
|
|
|
131 |
private: System::Windows::Forms::ComboBox^ ComboCockpits;
|
|
|
132 |
|
|
|
133 |
|
|
|
134 |
/// <summary>
|
|
|
135 |
/// Required designer variable.
|
|
|
136 |
/// </summary>
|
|
|
137 |
System::ComponentModel::Container ^components;
|
|
|
138 |
|
|
|
139 |
#pragma region Windows Form Designer generated code
|
|
|
140 |
/// <summary>
|
|
|
141 |
/// Required method for Designer support - do not modify
|
|
|
142 |
/// the contents of this method with the code editor.
|
|
|
143 |
/// </summary>
|
|
|
144 |
void Setup()
|
|
|
145 |
{
|
|
|
146 |
this->Closed += gcnew System::EventHandler(this, &Form1::CloseEvent);
|
|
|
147 |
this->CockpitWeapons->ItemCheck += gcnew ItemCheckEventHandler(this, &Form1::Event_Changed);
|
|
|
148 |
|
|
|
149 |
// read data file
|
|
|
150 |
System::String ^mydoc = Environment::GetFolderPath(Environment::SpecialFolder::Personal );
|
|
|
151 |
CFileIO Config;
|
118 |
cycrow |
152 |
if ( Config.open(_S(mydoc) + "/Egosoft/xspconvert.dat") )
|
1 |
cycrow |
153 |
{
|
160 |
cycrow |
154 |
std::vector<Utils::String> *lines = Config.readLines();
|
1 |
cycrow |
155 |
if ( lines )
|
|
|
156 |
{
|
|
|
157 |
for ( int i = 0; i < (int)lines->size(); i++ )
|
|
|
158 |
{
|
160 |
cycrow |
159 |
Utils::String line(lines->at(i));
|
|
|
160 |
Utils::String start = line.token(":", 1).toLower();
|
|
|
161 |
Utils::String rest = line.tokens(":", 2).removeFirstSpace();
|
1 |
cycrow |
162 |
if ( start.Compare("Dir") )
|
|
|
163 |
{
|
160 |
cycrow |
164 |
Utils::String game = rest.token(" ", 1);
|
|
|
165 |
Utils::String dir = rest.tokens(" ", 2);
|
1 |
cycrow |
166 |
SStringList *str = m_pDirList->FindData(game);
|
|
|
167 |
if ( str )
|
|
|
168 |
str->str = dir;
|
|
|
169 |
else
|
160 |
cycrow |
170 |
m_pDirList->PushBack(CyString(dir), CyString(game));
|
1 |
cycrow |
171 |
}
|
|
|
172 |
else if ( line.Compare("ReadText") )
|
|
|
173 |
m_bReadText = true;
|
|
|
174 |
}
|
|
|
175 |
}
|
|
|
176 |
}
|
|
|
177 |
|
|
|
178 |
this->UpdateGames();
|
|
|
179 |
|
|
|
180 |
this->loadGameTextToolStripMenuItem->Checked = m_bReadText;
|
|
|
181 |
}
|
|
|
182 |
|
|
|
183 |
void UpdateGames()
|
|
|
184 |
{
|
|
|
185 |
this->gamesToolStripMenuItem->DropDownItems->Clear();
|
|
|
186 |
this->ComboGame->Items->Clear();
|
|
|
187 |
|
|
|
188 |
CPackages p;
|
213 |
cycrow |
189 |
p.startup(L".", L".", L".");
|
1 |
cycrow |
190 |
// start at 1 to skip X2
|
197 |
cycrow |
191 |
for ( int i = 1; i < p.GetGameExe()->numGames(); i++ )
|
1 |
cycrow |
192 |
{
|
|
|
193 |
bool added = false;
|
|
|
194 |
if ( m_pDirList->FindData(CyString::Number(i)) )
|
|
|
195 |
{
|
|
|
196 |
if ( m_pDirList->FindData(CyString::Number(i))->str != "-1" )
|
|
|
197 |
added = true;
|
|
|
198 |
}
|
|
|
199 |
|
197 |
cycrow |
200 |
SGameExe *exe = p.GetGameExe()->game(i);
|
191 |
cycrow |
201 |
this->ComboGame->Items->Add(_US(exe->sName));
|
1 |
cycrow |
202 |
System::Windows::Forms::ToolStripMenuItem ^newMenu = gcnew System::Windows::Forms::ToolStripMenuItem;
|
191 |
cycrow |
203 |
newMenu->Text = _US(exe->sName);
|
1 |
cycrow |
204 |
this->gamesToolStripMenuItem->DropDownItems->Add(newMenu);
|
|
|
205 |
System::Windows::Forms::ToolStripMenuItem ^newMenuDir = gcnew System::Windows::Forms::ToolStripMenuItem;
|
|
|
206 |
if ( added )
|
191 |
cycrow |
207 |
newMenuDir->Text = _US(m_pDirList->FindData(Utils::String::Number(i))->str.ToString());
|
1 |
cycrow |
208 |
else
|
|
|
209 |
newMenuDir->Text = "No Directory";
|
|
|
210 |
newMenuDir->Enabled = false;
|
|
|
211 |
newMenu->DropDownItems->Add(newMenuDir);
|
|
|
212 |
newMenu->DropDownItems->Add(gcnew System::Windows::Forms::ToolStripSeparator);
|
|
|
213 |
System::Windows::Forms::ToolStripMenuItem ^newMenuChange = gcnew System::Windows::Forms::ToolStripMenuItem;
|
|
|
214 |
newMenuChange->Text = "Set Directory";
|
191 |
cycrow |
215 |
newMenuChange->Tag = _US(Utils::String::Number(i)) + " " + _US(exe->sName);
|
1 |
cycrow |
216 |
newMenuChange->Click += gcnew System::EventHandler(this, &Form1::Event_ChangeDirectory);
|
|
|
217 |
newMenu->DropDownItems->Add(newMenuChange);
|
|
|
218 |
|
|
|
219 |
if ( added )
|
|
|
220 |
{
|
|
|
221 |
System::Windows::Forms::ToolStripMenuItem ^newMenuRemove = gcnew System::Windows::Forms::ToolStripMenuItem;
|
|
|
222 |
newMenu->DropDownItems->Add(newMenuRemove);
|
|
|
223 |
newMenuRemove->Text = "Remove Directory";
|
191 |
cycrow |
224 |
newMenuRemove->Tag = _US(Utils::String::Number(i)) + " " + _US(exe->sName);
|
1 |
cycrow |
225 |
newMenuRemove->Click += gcnew System::EventHandler(this, &Form1::Event_RemoveDirectory);
|
|
|
226 |
}
|
|
|
227 |
}
|
|
|
228 |
}
|
|
|
229 |
|
|
|
230 |
void UpdateTitle()
|
|
|
231 |
{
|
191 |
cycrow |
232 |
System::String ^title = "XSP Convertor V" + _US(Utils::String::FromFloat((float)VERSION, 2));
|
1 |
cycrow |
233 |
if ( m_pLoadedShip )
|
|
|
234 |
{
|
50 |
cycrow |
235 |
if ( m_bChanged || m_pLoadedShip->hasChanged() )
|
|
|
236 |
this->Text = title + " [*" + _US(m_pLoadedShip->filename()) + "]";
|
1 |
cycrow |
237 |
else
|
50 |
cycrow |
238 |
this->Text = title + " [" + _US(m_pLoadedShip->filename()) + "]";
|
1 |
cycrow |
239 |
}
|
|
|
240 |
else
|
|
|
241 |
this->Text = title;
|
|
|
242 |
}
|
|
|
243 |
|
|
|
244 |
void SaveShip()
|
|
|
245 |
{
|
|
|
246 |
if ( !m_pLoadedShip )
|
|
|
247 |
MessageBox::Show(this, "There is currently no ship loaded to convert", "Ship Save", MessageBoxButtons::OK, MessageBoxIcon::Warning);
|
|
|
248 |
else
|
|
|
249 |
{
|
|
|
250 |
this->SaveMasks();
|
197 |
cycrow |
251 |
if ( m_pLoadedShip->writeFile(m_pLoadedShip->filename().toString()) )
|
1 |
cycrow |
252 |
{
|
50 |
cycrow |
253 |
MessageBox::Show(this, "Ship File: " + _US(m_pLoadedShip->filename()) + "\n\nHas been written", "Ship Saved", MessageBoxButtons::OK, MessageBoxIcon::Information);
|
1 |
cycrow |
254 |
m_bChanged = false;
|
|
|
255 |
}
|
|
|
256 |
}
|
|
|
257 |
|
|
|
258 |
this->UpdateTitle();
|
|
|
259 |
}
|
|
|
260 |
|
|
|
261 |
void SaveShipAs()
|
|
|
262 |
{
|
|
|
263 |
if ( !m_pLoadedShip )
|
|
|
264 |
MessageBox::Show(this, "There is currently no ship loaded to convert", "Ship Save", MessageBoxButtons::OK, MessageBoxIcon::Warning);
|
|
|
265 |
else
|
|
|
266 |
{
|
|
|
267 |
SaveFileDialog ^ofd = gcnew SaveFileDialog();
|
|
|
268 |
ofd->Filter = "Ship Files (*.xsp)|*.xsp";
|
|
|
269 |
ofd->FilterIndex = 1;
|
|
|
270 |
ofd->RestoreDirectory = true;
|
|
|
271 |
if ( ofd->ShowDialog() == System::Windows::Forms::DialogResult::OK )
|
|
|
272 |
{
|
|
|
273 |
this->SaveMasks();
|
175 |
cycrow |
274 |
if ( m_pLoadedShip->writeFile(_S(ofd->FileName)) )
|
1 |
cycrow |
275 |
{
|
|
|
276 |
MessageBox::Show(this, "Ship File: " + ofd->FileName + "\n\nHas been written", "Ship Saved", MessageBoxButtons::OK, MessageBoxIcon::Information);
|
|
|
277 |
m_bChanged = false;
|
|
|
278 |
}
|
|
|
279 |
}
|
|
|
280 |
}
|
|
|
281 |
|
|
|
282 |
this->UpdateTitle();
|
|
|
283 |
}
|
|
|
284 |
|
|
|
285 |
CyString GetObjectString(int desc, CyString idText)
|
|
|
286 |
{
|
|
|
287 |
if ( m_bReadText )
|
|
|
288 |
{
|
|
|
289 |
if ( this->ComboGame->SelectedIndex < m_pMissileList->size() )
|
|
|
290 |
{
|
|
|
291 |
CyStringList *textList = m_pTextList->Get(this->ComboGame->SelectedIndex);
|
|
|
292 |
if ( textList )
|
|
|
293 |
{
|
|
|
294 |
SStringList *str = textList->FindData(CyString::Number(desc));
|
|
|
295 |
if ( str )
|
|
|
296 |
{
|
|
|
297 |
// perform recursive lookup
|
|
|
298 |
CyString s = str->str;
|
|
|
299 |
while (s.IsIn("{17,") && s.IsIn("}"))
|
|
|
300 |
{
|
|
|
301 |
int pos = s.FindPos("{17,");
|
|
|
302 |
pos += 4;
|
|
|
303 |
CyString check = s.Right(-pos);
|
|
|
304 |
check = check.GetToken("}", 1, 1);
|
|
|
305 |
int num = check.ToInt();
|
|
|
306 |
CyString newDesc = this->GetObjectString(num, CyString("#") + check + "#");
|
|
|
307 |
s = s.FindReplace(CyString("{17,") + check + "}", newDesc);
|
|
|
308 |
}
|
|
|
309 |
|
|
|
310 |
// remove anything in brackets
|
|
|
311 |
while(s.IsIn("(") && s.IsIn(")"))
|
|
|
312 |
{
|
|
|
313 |
int pos = s.FindPos("(");
|
|
|
314 |
s.Erase(pos, (s.FindPos(")", pos) + 1) - pos);
|
|
|
315 |
}
|
|
|
316 |
return s;
|
|
|
317 |
}
|
|
|
318 |
}
|
|
|
319 |
}
|
|
|
320 |
}
|
|
|
321 |
return idText;
|
|
|
322 |
}
|
|
|
323 |
|
|
|
324 |
void UpdateNames()
|
|
|
325 |
{
|
|
|
326 |
this->WeaponList->Items->Clear();
|
|
|
327 |
this->MissileList->Items->Clear();
|
|
|
328 |
this->CockpitWeapons->Items->Clear();
|
|
|
329 |
bool addedLaser = false;
|
|
|
330 |
bool addedMissile = false;
|
|
|
331 |
|
|
|
332 |
CyStringList missiles;
|
|
|
333 |
if ( this->ComboGame->SelectedIndex < m_pMissileList->size() )
|
|
|
334 |
{
|
|
|
335 |
CyStringList *missileList = m_pMissileList->Get(this->ComboGame->SelectedIndex);
|
|
|
336 |
if ( missileList )
|
|
|
337 |
{
|
|
|
338 |
for ( SStringList *strNode = missileList->Head(); strNode; strNode = strNode->next )
|
|
|
339 |
{
|
|
|
340 |
CyString id = strNode->str.GetToken(";", 6, 6);
|
|
|
341 |
SStringList *found = missiles.FindString(id);
|
|
|
342 |
CyString str = this->GetObjectString(strNode->str.GetToken(";", 7, 7).ToInt(), strNode->str.GetToken(";", 37, 37));
|
|
|
343 |
if ( found )
|
|
|
344 |
{
|
|
|
345 |
found->data += ", ";
|
|
|
346 |
found->data += str;
|
|
|
347 |
}
|
|
|
348 |
else
|
|
|
349 |
missiles.PushBack(id, str);
|
|
|
350 |
}
|
|
|
351 |
}
|
|
|
352 |
}
|
|
|
353 |
|
|
|
354 |
CyStringList lasers;
|
|
|
355 |
if ( this->ComboGame->SelectedIndex < m_pLaserList->size() )
|
|
|
356 |
{
|
|
|
357 |
CyStringList *laserList = m_pLaserList->Get(this->ComboGame->SelectedIndex);
|
|
|
358 |
if ( laserList )
|
|
|
359 |
{
|
|
|
360 |
for ( SStringList *strNode = laserList->Head(); strNode; strNode = strNode->next )
|
|
|
361 |
{
|
|
|
362 |
CyString id = strNode->str.GetToken(";", 6, 6);
|
|
|
363 |
SStringList *found = lasers.FindString(id);
|
|
|
364 |
CyString str = this->GetObjectString(strNode->str.GetToken(";", 7, 7).ToInt(), strNode->str.GetToken(";", 23, 23));
|
|
|
365 |
if ( found )
|
|
|
366 |
{
|
|
|
367 |
found->data += ", ";
|
|
|
368 |
found->data += str;
|
|
|
369 |
}
|
|
|
370 |
else
|
|
|
371 |
lasers.PushBack(id, str);
|
|
|
372 |
}
|
|
|
373 |
}
|
|
|
374 |
}
|
|
|
375 |
|
|
|
376 |
for ( int i = 0; i < 32; i++ )
|
|
|
377 |
{
|
|
|
378 |
if ( lasers.Count() > i )
|
|
|
379 |
{
|
191 |
cycrow |
380 |
this->WeaponList->Items->Add(_US(lasers.GetAt(i)->data.ToString()));
|
|
|
381 |
this->CockpitWeapons->Items->Add(_US(lasers.GetAt(i)->data.ToString()));
|
1 |
cycrow |
382 |
addedLaser = true;
|
|
|
383 |
}
|
|
|
384 |
|
|
|
385 |
if ( missiles.Count() > i )
|
|
|
386 |
{
|
191 |
cycrow |
387 |
this->MissileList->Items->Add(_US(missiles.GetAt(i)->data.ToString()));
|
1 |
cycrow |
388 |
addedMissile = true;
|
|
|
389 |
}
|
|
|
390 |
|
|
|
391 |
if ( !addedLaser )
|
|
|
392 |
{
|
191 |
cycrow |
393 |
this->WeaponList->Items->Add(_US(Utils::String::Number(i + 1)));
|
|
|
394 |
this->CockpitWeapons->Items->Add(_US(Utils::String::Number(i + 1)));
|
1 |
cycrow |
395 |
}
|
|
|
396 |
if ( !addedMissile )
|
191 |
cycrow |
397 |
this->MissileList->Items->Add(_US(Utils::String::Number(i + 1)));
|
1 |
cycrow |
398 |
}
|
|
|
399 |
}
|
|
|
400 |
|
|
|
401 |
void OpenFile(System::String ^open)
|
|
|
402 |
{
|
|
|
403 |
CXspFile *shipFile = new CXspFile;
|
197 |
cycrow |
404 |
int check = CSpkFile::CheckFile(_WS(open));
|
1 |
cycrow |
405 |
bool loaded = false;
|
|
|
406 |
|
|
|
407 |
m_bChanged = false;
|
|
|
408 |
|
|
|
409 |
if ( check == SPKFILE_SINGLESHIP )
|
218 |
cycrow |
410 |
loaded = shipFile->readFile(_WS(open));
|
1 |
cycrow |
411 |
else if ( check == SPKFILE_INVALID )
|
|
|
412 |
{
|
218 |
cycrow |
413 |
loaded = shipFile->convertOld(_WS(open));
|
1 |
cycrow |
414 |
if ( loaded )
|
|
|
415 |
m_bChanged = true;
|
|
|
416 |
}
|
|
|
417 |
|
|
|
418 |
this->ComboCockpits->Items->Clear();
|
|
|
419 |
|
|
|
420 |
m_pCockpit = NULL;
|
|
|
421 |
|
|
|
422 |
if ( loaded )
|
|
|
423 |
{
|
|
|
424 |
m_bLoading = true;
|
|
|
425 |
if ( m_pLoadedShip )
|
|
|
426 |
delete m_pLoadedShip;
|
|
|
427 |
m_pLoadedShip = shipFile;
|
218 |
cycrow |
428 |
m_pLoadedShip->setFilename(_WS(open));
|
1 |
cycrow |
429 |
|
|
|
430 |
this->PanelMain->Show();
|
|
|
431 |
this->PanelNotLoaded->Hide();
|
|
|
432 |
|
|
|
433 |
m_iOldGame = -1;
|
|
|
434 |
|
|
|
435 |
if ( m_pLoadedShip->AnyCockpits() )
|
|
|
436 |
{
|
|
|
437 |
for ( SCockpit *c = m_pLoadedShip->GetCockpits()->First(); c; c = m_pLoadedShip->GetCockpits()->Next() )
|
216 |
cycrow |
438 |
this->ComboCockpits->Items->Add(_US(c->sCockpit.token(L";", 19)));
|
1 |
cycrow |
439 |
this->CockpitWeapons->Show();
|
|
|
440 |
this->ComboCockpits->Enabled = true;
|
|
|
441 |
//m_pCockpit = m_pLoadedShip->GetCockpits()->First();
|
|
|
442 |
}
|
|
|
443 |
else
|
|
|
444 |
{
|
|
|
445 |
this->CockpitWeapons->Hide();
|
|
|
446 |
this->ComboCockpits->Enabled = false;
|
|
|
447 |
}
|
|
|
448 |
|
|
|
449 |
this->ComboGame->SelectedIndex = 0;
|
|
|
450 |
if ( this->ComboCockpits->Items->Count )
|
|
|
451 |
this->ComboCockpits->SelectedIndex = 0;
|
|
|
452 |
|
|
|
453 |
m_bChanged = false;
|
|
|
454 |
this->UpdateTitle();
|
|
|
455 |
|
|
|
456 |
MessageBox::Show(this, "Ship File: " + open + "\nHas been loaded", "Ship Loaded", MessageBoxButtons::OK, MessageBoxIcon::Information);
|
|
|
457 |
}
|
|
|
458 |
else
|
|
|
459 |
{
|
|
|
460 |
delete shipFile;
|
|
|
461 |
if ( m_pLoadedShip )
|
|
|
462 |
{
|
|
|
463 |
this->PanelMain->Hide();
|
|
|
464 |
this->PanelNotLoaded->Show();
|
|
|
465 |
}
|
|
|
466 |
else
|
|
|
467 |
{
|
|
|
468 |
this->PanelMain->Show();
|
|
|
469 |
this->PanelNotLoaded->Hide();
|
|
|
470 |
}
|
|
|
471 |
|
|
|
472 |
MessageBox::Show(this, "Ship File: " + open + "\nHas failed to load", "Ship Failed", MessageBoxButtons::OK, MessageBoxIcon::Information);
|
|
|
473 |
}
|
|
|
474 |
|
|
|
475 |
m_bLoading = false;
|
|
|
476 |
}
|
|
|
477 |
|
|
|
478 |
void CheckSave()
|
|
|
479 |
{
|
50 |
cycrow |
480 |
if ( (m_pLoadedShip && m_pLoadedShip->hasChanged()) || m_bChanged )
|
1 |
cycrow |
481 |
{
|
|
|
482 |
if ( MessageBox::Show(this, "The current ship has been modified, do you wish to save it?", "Save Ship", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes )
|
|
|
483 |
this->SaveShip();
|
|
|
484 |
}
|
|
|
485 |
}
|
|
|
486 |
void OpenFile()
|
|
|
487 |
{
|
|
|
488 |
// check if we need to save
|
|
|
489 |
this->CheckSave();
|
|
|
490 |
|
|
|
491 |
OpenFileDialog ^ofd = gcnew OpenFileDialog();
|
|
|
492 |
ofd->Filter = "Ship Files (*.xsp)|*.xsp";
|
|
|
493 |
ofd->FilterIndex = 1;
|
|
|
494 |
ofd->RestoreDirectory = true;
|
|
|
495 |
|
|
|
496 |
if ( ofd->ShowDialog(this) == System::Windows::Forms::DialogResult::OK )
|
|
|
497 |
this->OpenFile(ofd->FileName);
|
|
|
498 |
|
|
|
499 |
this->UpdateTitle();
|
|
|
500 |
}
|
|
|
501 |
|
|
|
502 |
void LoadGameData()
|
|
|
503 |
{
|
|
|
504 |
m_pLaserList->MemoryClear();
|
|
|
505 |
m_pMissileList->MemoryClear();
|
|
|
506 |
m_pTextList->MemoryClear();
|
|
|
507 |
|
|
|
508 |
System::String ^tempDir = System::IO::Path::GetTempPath();
|
182 |
cycrow |
509 |
Utils::String sTempDir = _S(tempDir);
|
1 |
cycrow |
510 |
|
|
|
511 |
CPackages p;
|
|
|
512 |
bool tcText = false;
|
|
|
513 |
for ( SStringList *strNode = m_pDirList->Head(); strNode; strNode = strNode->next )
|
|
|
514 |
{
|
|
|
515 |
CyStringList *laserList = new CyStringList;
|
|
|
516 |
m_pLaserList->push_back(laserList);
|
|
|
517 |
CyStringList *missileList = new CyStringList;
|
|
|
518 |
m_pMissileList->push_back(missileList);
|
|
|
519 |
CyStringList *textList = new CyStringList;
|
|
|
520 |
m_pTextList->push_back(textList);
|
|
|
521 |
|
213 |
cycrow |
522 |
if ( p.extractGameFile(L"types/TLaser.pck", sTempDir + L"/TLaser.txt", strNode->str.ToString()) )
|
1 |
cycrow |
523 |
{
|
|
|
524 |
CFileIO Open(sTempDir + "/TLaser.txt");
|
160 |
cycrow |
525 |
std::vector<Utils::String> *lines = Open.readLines();
|
1 |
cycrow |
526 |
if ( lines )
|
|
|
527 |
{
|
|
|
528 |
bool first = false;
|
|
|
529 |
for ( int j = 0; j < (int)lines->size(); j++ )
|
|
|
530 |
{
|
160 |
cycrow |
531 |
Utils::String line(lines->at(j));
|
1 |
cycrow |
532 |
if ( line[0] == '/' )
|
|
|
533 |
continue;
|
160 |
cycrow |
534 |
line.removeChar('\r');
|
|
|
535 |
line = line.removeFirstSpace();
|
|
|
536 |
line = line.removeEndSpace();
|
|
|
537 |
if ( line.empty() )
|
1 |
cycrow |
538 |
continue;
|
|
|
539 |
if ( !first )
|
|
|
540 |
{
|
|
|
541 |
first = true;
|
|
|
542 |
continue;
|
|
|
543 |
}
|
|
|
544 |
|
160 |
cycrow |
545 |
laserList->PushBack(CyString(line));
|
1 |
cycrow |
546 |
}
|
|
|
547 |
}
|
|
|
548 |
|
52 |
cycrow |
549 |
Open.remove();
|
1 |
cycrow |
550 |
}
|
|
|
551 |
|
213 |
cycrow |
552 |
if ( p.extractGameFile(L"types/TMissiles.pck", sTempDir + L"/TMissiles.txt", strNode->str.ToString()) )
|
1 |
cycrow |
553 |
{
|
213 |
cycrow |
554 |
CFileIO Open(sTempDir + L"/TMissiles.txt");
|
160 |
cycrow |
555 |
std::vector<Utils::String> *lines = Open.readLines();
|
1 |
cycrow |
556 |
if ( lines )
|
|
|
557 |
{
|
|
|
558 |
bool first = false;
|
|
|
559 |
for ( int j = 0; j < (int)lines->size(); j++ )
|
|
|
560 |
{
|
160 |
cycrow |
561 |
Utils::String line(lines->at(j));
|
1 |
cycrow |
562 |
if ( line[0] == '/' )
|
|
|
563 |
continue;
|
160 |
cycrow |
564 |
line.removeChar('\r');
|
|
|
565 |
line = line.removeFirstSpace();
|
|
|
566 |
line = line.removeEndSpace();
|
|
|
567 |
if ( line.empty() )
|
1 |
cycrow |
568 |
continue;
|
|
|
569 |
if ( !first )
|
|
|
570 |
{
|
|
|
571 |
first = true;
|
|
|
572 |
continue;
|
|
|
573 |
}
|
|
|
574 |
|
160 |
cycrow |
575 |
missileList->PushBack(CyString(line));
|
1 |
cycrow |
576 |
}
|
|
|
577 |
}
|
|
|
578 |
|
52 |
cycrow |
579 |
Open.remove();
|
1 |
cycrow |
580 |
}
|
|
|
581 |
|
|
|
582 |
if ( !m_bReadText )
|
|
|
583 |
continue;
|
|
|
584 |
|
|
|
585 |
// load the text file
|
182 |
cycrow |
586 |
Utils::String textFormat;
|
1 |
cycrow |
587 |
if ( tcText )
|
|
|
588 |
textFormat = "0001-L044";
|
|
|
589 |
else
|
|
|
590 |
textFormat = "440001";
|
|
|
591 |
|
182 |
cycrow |
592 |
if ( p.extractGameFile("t/" + textFormat + ".pck", sTempDir + "/" + textFormat + ".xml", strNode->str.ToString()) )
|
1 |
cycrow |
593 |
{
|
|
|
594 |
CFileIO Open(sTempDir + textFormat + ".xml");
|
82 |
cycrow |
595 |
if ( Open.startRead() )
|
1 |
cycrow |
596 |
{
|
|
|
597 |
int donePage = (tcText) ? 3 : 2;
|
|
|
598 |
int inPage = 0;
|
82 |
cycrow |
599 |
while ( !Open.atEnd() )
|
1 |
cycrow |
600 |
{
|
197 |
cycrow |
601 |
Utils::String line = Open.readEndOfLineStr();
|
182 |
cycrow |
602 |
if ( line.empty() )
|
1 |
cycrow |
603 |
continue;
|
182 |
cycrow |
604 |
line = line.removeFirstSpace();
|
|
|
605 |
line = line.remove('\t');
|
1 |
cycrow |
606 |
if ( !inPage )
|
|
|
607 |
{
|
182 |
cycrow |
608 |
if ( line.left(5).Compare("<page") )
|
1 |
cycrow |
609 |
{
|
182 |
cycrow |
610 |
int pos = line.findPos(" id=\"");
|
1 |
cycrow |
611 |
if ( pos != -1 )
|
|
|
612 |
{
|
182 |
cycrow |
613 |
int endpos = line.findPos("\"", pos + 5);
|
1 |
cycrow |
614 |
if ( endpos != -1 )
|
|
|
615 |
{
|
182 |
cycrow |
616 |
Utils::String check = line.mid(pos + 6, endpos - pos - 5);
|
|
|
617 |
int iPage = check.toInt();
|
1 |
cycrow |
618 |
if ( iPage == 17 || iPage == 300017 || iPage == 350017 )
|
|
|
619 |
inPage = iPage;
|
|
|
620 |
}
|
|
|
621 |
}
|
|
|
622 |
}
|
|
|
623 |
}
|
|
|
624 |
else
|
|
|
625 |
{
|
182 |
cycrow |
626 |
if ( line.left(6).Compare("</page") )
|
1 |
cycrow |
627 |
{
|
|
|
628 |
inPage = 0;
|
|
|
629 |
--donePage;
|
|
|
630 |
|
|
|
631 |
if ( donePage <= 0 )
|
|
|
632 |
break;
|
|
|
633 |
}
|
|
|
634 |
else
|
|
|
635 |
{
|
182 |
cycrow |
636 |
int pos = line.findPos("t id=\"");
|
1 |
cycrow |
637 |
if ( pos != -1 )
|
|
|
638 |
{
|
182 |
cycrow |
639 |
int endpos = line.findPos("\"", pos + 6);
|
1 |
cycrow |
640 |
if ( endpos != -1 )
|
|
|
641 |
{
|
182 |
cycrow |
642 |
Utils::String check = line.mid(pos + 7, endpos - pos - 6);
|
1 |
cycrow |
643 |
|
182 |
cycrow |
644 |
Utils::String data;
|
|
|
645 |
int pos = line.findPos(">", endpos);
|
1 |
cycrow |
646 |
if ( pos != -1 )
|
|
|
647 |
{
|
182 |
cycrow |
648 |
endpos = line.findPos("</", pos);
|
1 |
cycrow |
649 |
if ( endpos != -1 )
|
182 |
cycrow |
650 |
data = line.mid(pos + 2, endpos - pos - 1);
|
1 |
cycrow |
651 |
}
|
|
|
652 |
SStringList *str = textList->FindData(check);
|
|
|
653 |
if ( str )
|
|
|
654 |
str->str = data;
|
|
|
655 |
else
|
182 |
cycrow |
656 |
textList->PushBack(CyString(data), CyString(check));
|
1 |
cycrow |
657 |
}
|
|
|
658 |
}
|
|
|
659 |
}
|
|
|
660 |
}
|
|
|
661 |
}
|
|
|
662 |
|
82 |
cycrow |
663 |
Open.close();
|
1 |
cycrow |
664 |
}
|
|
|
665 |
}
|
|
|
666 |
|
|
|
667 |
tcText = true;
|
|
|
668 |
}
|
|
|
669 |
}
|
|
|
670 |
|
|
|
671 |
void LoadGameDirectory()
|
|
|
672 |
{
|
|
|
673 |
CPackages p;
|
213 |
cycrow |
674 |
p.startup(L".", L".", L".");
|
1 |
cycrow |
675 |
|
197 |
cycrow |
676 |
for ( int i = 1; i < p.GetGameExe()->numGames(); i++ )
|
1 |
cycrow |
677 |
{
|
197 |
cycrow |
678 |
SGameExe *exe = p.GetGameExe()->game(i);
|
1 |
cycrow |
679 |
if ( !m_pDirList->FindData(CyString::Number(i)) )
|
|
|
680 |
{
|
125 |
cycrow |
681 |
if ( MessageBox::Show(this, "You have no directories set for " + _US(exe->sName) + "\n\nWould you like to set it now?", "Game Directory", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes )
|
1 |
cycrow |
682 |
{
|
|
|
683 |
FolderBrowserDialog ^fbd = gcnew FolderBrowserDialog;
|
125 |
cycrow |
684 |
fbd->Description = "Select the path for " + _US(exe->sName);
|
1 |
cycrow |
685 |
if ( fbd->ShowDialog(this) == System::Windows::Forms::DialogResult::OK )
|
|
|
686 |
{
|
125 |
cycrow |
687 |
CDirIO Dir(_S(fbd->SelectedPath));
|
|
|
688 |
if ( !Dir.exists(exe->sExe) )
|
191 |
cycrow |
689 |
MessageBox::Show(this, "Unable to find " + _US(exe->sExe) + " in " + fbd->SelectedPath, "Game Directory", MessageBoxButtons::OK, MessageBoxIcon::Warning);
|
1 |
cycrow |
690 |
else
|
|
|
691 |
m_pDirList->PushBack(CyStringFromSystemString(fbd->SelectedPath), CyString::Number(i));
|
|
|
692 |
}
|
|
|
693 |
}
|
|
|
694 |
else
|
|
|
695 |
m_pDirList->PushBack("-1", CyString::Number(i));
|
|
|
696 |
}
|
|
|
697 |
}
|
|
|
698 |
|
|
|
699 |
if ( !m_pDirList->Empty() )
|
|
|
700 |
{
|
|
|
701 |
if ( MessageBox::Show(this, "Would you like to load the game data?", "Load Game Data", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == System::Windows::Forms::DialogResult::Yes )
|
|
|
702 |
this->LoadGameData();
|
|
|
703 |
}
|
|
|
704 |
|
|
|
705 |
this->UpdateGames();
|
|
|
706 |
}
|
|
|
707 |
|
|
|
708 |
void CloseDialog()
|
|
|
709 |
{
|
|
|
710 |
System::String ^mydoc = Environment::GetFolderPath(Environment::SpecialFolder::Personal );
|
213 |
cycrow |
711 |
CFileIO Config(_WS(mydoc) + L"/Egosoft/xspconvert.dat");
|
160 |
cycrow |
712 |
std::vector<Utils::String> lines;
|
1 |
cycrow |
713 |
for ( SStringList *str = m_pDirList->Head(); str; str = str->next )
|
160 |
cycrow |
714 |
lines.push_back("Dir:" + str->data.ToString() + " " + str->str.ToString());
|
1 |
cycrow |
715 |
if ( m_bReadText )
|
|
|
716 |
lines.push_back("ReadText");
|
160 |
cycrow |
717 |
Config.writeFile(&lines);
|
1 |
cycrow |
718 |
}
|
|
|
719 |
|
|
|
720 |
void CheckListChanged()
|
|
|
721 |
{
|
|
|
722 |
if ( m_bDontUpdate )
|
|
|
723 |
return;
|
|
|
724 |
|
|
|
725 |
if ( m_bDontChange )
|
|
|
726 |
return;
|
|
|
727 |
|
|
|
728 |
if ( m_pLoadedShip )
|
|
|
729 |
m_bChanged = true;
|
|
|
730 |
|
|
|
731 |
this->UpdateTitle();
|
|
|
732 |
}
|
|
|
733 |
|
|
|
734 |
int GetMask(CheckedListBox ^list)
|
|
|
735 |
{
|
|
|
736 |
int oldMask = 0;
|
|
|
737 |
// First show the index and check state of all selected items.
|
|
|
738 |
IEnumerator^ myEnum1 = list->CheckedIndices->GetEnumerator();
|
|
|
739 |
while ( myEnum1->MoveNext() )
|
|
|
740 |
{
|
|
|
741 |
int indexChecked = *safe_cast<int^>(myEnum1->Current);
|
|
|
742 |
oldMask |= (1 << indexChecked);
|
|
|
743 |
}
|
|
|
744 |
|
|
|
745 |
return oldMask;
|
|
|
746 |
}
|
|
|
747 |
|
|
|
748 |
void SaveMasks()
|
|
|
749 |
{
|
|
|
750 |
if ( m_pLoadedShip )
|
|
|
751 |
{
|
|
|
752 |
if ( m_iOldGame != -1 )
|
|
|
753 |
{
|
|
|
754 |
m_pLoadedShip->SetLaserMask(m_iOldGame, m_iLaserMask);
|
|
|
755 |
m_pLoadedShip->SetMissileMask(m_iOldGame, m_iMissileMask);
|
|
|
756 |
}
|
|
|
757 |
if ( m_pCockpit )
|
216 |
cycrow |
758 |
m_pLoadedShip->addCockpit(m_pCockpit->sCockpit, (m_iOldGame == -1) ? (this->ComboGame->SelectedIndex + 2) : m_iOldGame, this->GetMask(this->CockpitWeapons));
|
1 |
cycrow |
759 |
}
|
|
|
760 |
}
|
|
|
761 |
|
|
|
762 |
void ChangeGame()
|
|
|
763 |
{
|
|
|
764 |
if ( !m_pLoadedShip )
|
|
|
765 |
return;
|
|
|
766 |
|
50 |
cycrow |
767 |
bool oldChanged = m_pLoadedShip->hasChanged();
|
1 |
cycrow |
768 |
m_bDontUpdate = true;
|
|
|
769 |
// save old mask
|
|
|
770 |
if ( !m_bLoading )
|
|
|
771 |
this->SaveMasks();
|
|
|
772 |
|
|
|
773 |
m_iOldGame = this->ComboGame->SelectedIndex + 2;
|
|
|
774 |
|
|
|
775 |
this->UpdateNames();
|
|
|
776 |
|
|
|
777 |
int mask = m_pLoadedShip->GetLaserMask(this->ComboGame->SelectedIndex + 2, true);
|
|
|
778 |
for ( int i = 0; i < this->WeaponList->Items->Count; i++ )
|
|
|
779 |
this->WeaponList->SetItemChecked(i, (mask & (1 << i)) ? true : false);
|
|
|
780 |
m_iLaserMask = m_iLoadedLaserMask = mask;
|
|
|
781 |
|
|
|
782 |
mask = m_pLoadedShip->GetMissileMask(this->ComboGame->SelectedIndex + 2, true);
|
|
|
783 |
for ( int i = 0; i < this->MissileList->Items->Count; i++ )
|
|
|
784 |
this->MissileList->SetItemChecked(i, (mask & (1 << i)) ? true : false);
|
|
|
785 |
m_iMissileMask = m_iLoadedMissileMask = mask;
|
|
|
786 |
|
|
|
787 |
if ( this->ComboCockpits->Items->Count )
|
|
|
788 |
{
|
|
|
789 |
if ( this->ComboCockpits->SelectedIndex < 0 )
|
|
|
790 |
this->ComboCockpits->SelectedIndex = 0;
|
|
|
791 |
else
|
|
|
792 |
this->UpdateCockpitList();
|
|
|
793 |
}
|
|
|
794 |
|
50 |
cycrow |
795 |
m_pLoadedShip->adjustChanged(oldChanged);
|
1 |
cycrow |
796 |
|
|
|
797 |
m_bDontUpdate = false;
|
|
|
798 |
|
|
|
799 |
this->UpdateTitle();
|
|
|
800 |
}
|
|
|
801 |
|
|
|
802 |
void Event_RemoveDirectory(System::Object ^sender, System::EventArgs ^E)
|
|
|
803 |
{
|
|
|
804 |
System::Windows::Forms::ToolStripMenuItem ^item = cli::safe_cast<System::Windows::Forms::ToolStripMenuItem ^>(sender);
|
|
|
805 |
if ( item )
|
|
|
806 |
{
|
|
|
807 |
CyString game = CyStringFromSystemString(cli::safe_cast<System::String ^>(item->Tag));
|
|
|
808 |
game = game.GetToken(" ", 1, 1);
|
|
|
809 |
if ( m_pDirList->FindData(game) )
|
|
|
810 |
{
|
|
|
811 |
m_pDirList->FindData(game)->str = "-1";
|
|
|
812 |
this->UpdateGames();
|
|
|
813 |
}
|
|
|
814 |
}
|
|
|
815 |
}
|
|
|
816 |
|
|
|
817 |
void Event_ChangeDirectory(System::Object ^sender, System::EventArgs ^E)
|
|
|
818 |
{
|
|
|
819 |
System::Windows::Forms::ToolStripMenuItem ^item = cli::safe_cast<System::Windows::Forms::ToolStripMenuItem ^>(sender);
|
|
|
820 |
if ( item )
|
|
|
821 |
{
|
191 |
cycrow |
822 |
Utils::String tag = _S(cli::safe_cast<System::String ^>(item->Tag));
|
|
|
823 |
Utils::String game = tag.token(" ", 1);
|
1 |
cycrow |
824 |
if ( m_pDirList->FindData(game) )
|
|
|
825 |
{
|
|
|
826 |
FolderBrowserDialog ^fbd = gcnew FolderBrowserDialog;
|
191 |
cycrow |
827 |
fbd->Description = "Select the path for " + _US(tag.tokens(" ", 2));
|
1 |
cycrow |
828 |
if ( fbd->ShowDialog() == System::Windows::Forms::DialogResult::OK )
|
|
|
829 |
{
|
191 |
cycrow |
830 |
m_pDirList->FindData(game)->str = _S(fbd->SelectedPath);
|
1 |
cycrow |
831 |
this->UpdateGames();
|
|
|
832 |
}
|
|
|
833 |
}
|
|
|
834 |
}
|
|
|
835 |
}
|
|
|
836 |
|
|
|
837 |
void UpdateCockpitList()
|
|
|
838 |
{
|
|
|
839 |
if ( !m_pLoadedShip )
|
|
|
840 |
return;
|
|
|
841 |
|
|
|
842 |
m_bDontChange = true;
|
|
|
843 |
|
|
|
844 |
if ( !m_bDontUpdate && m_pCockpit )
|
216 |
cycrow |
845 |
m_pLoadedShip->addCockpit(m_pCockpit->sCockpit, (m_iOldGame == -1) ? (this->ComboGame->SelectedIndex + 2) : m_iOldGame, this->GetMask(this->CockpitWeapons));
|
1 |
cycrow |
846 |
|
|
|
847 |
m_pCockpit = NULL;
|
|
|
848 |
|
|
|
849 |
// find the cockpit pointer
|
|
|
850 |
m_pCockpit = m_pLoadedShip->GetCockpits()->Get(this->ComboCockpits->SelectedIndex);
|
|
|
851 |
|
|
|
852 |
int mask = 0;
|
|
|
853 |
if ( m_pCockpit )
|
|
|
854 |
{
|
216 |
cycrow |
855 |
mask = m_pCockpit->sCockpit.token(L";", 9);
|
1 |
cycrow |
856 |
for ( SWeaponMask *wm = m_pCockpit->lWeaponMask.First(); wm; wm = m_pCockpit->lWeaponMask.Next() )
|
|
|
857 |
{
|
|
|
858 |
if ( wm->iGame == (this->ComboGame->SelectedIndex + 2) )
|
|
|
859 |
{
|
|
|
860 |
mask = wm->iMask;
|
|
|
861 |
break;
|
|
|
862 |
}
|
|
|
863 |
}
|
|
|
864 |
}
|
|
|
865 |
|
|
|
866 |
for ( int i = 0; i < this->CockpitWeapons->Items->Count; i++ )
|
|
|
867 |
this->CockpitWeapons->SetItemChecked(i, (mask & (1 << i)) ? true : false);
|
|
|
868 |
|
|
|
869 |
m_bDontChange = false;
|
|
|
870 |
}
|
|
|
871 |
|
|
|
872 |
|
|
|
873 |
void InitializeComponent(void)
|
|
|
874 |
{
|
|
|
875 |
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
|
|
|
876 |
this->menuStrip1 = (gcnew System::Windows::Forms::MenuStrip());
|
|
|
877 |
this->fileToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
|
|
|
878 |
this->openToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
|
|
|
879 |
this->saveToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
|
|
|
880 |
this->saveAsToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
|
|
|
881 |
this->settingsToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
|
|
|
882 |
this->gamesToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
|
|
|
883 |
this->loadGameTextToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
|
|
|
884 |
this->toolStripSeparator1 = (gcnew System::Windows::Forms::ToolStripSeparator());
|
|
|
885 |
this->updateGameDataToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
|
|
|
886 |
this->panel1 = (gcnew System::Windows::Forms::Panel());
|
|
|
887 |
this->ButExit = (gcnew System::Windows::Forms::Button());
|
|
|
888 |
this->PanelMain = (gcnew System::Windows::Forms::Panel());
|
|
|
889 |
this->tabControl1 = (gcnew System::Windows::Forms::TabControl());
|
|
|
890 |
this->tabPage1 = (gcnew System::Windows::Forms::TabPage());
|
|
|
891 |
this->WeaponList = (gcnew System::Windows::Forms::CheckedListBox());
|
|
|
892 |
this->tabPage2 = (gcnew System::Windows::Forms::TabPage());
|
|
|
893 |
this->MissileList = (gcnew System::Windows::Forms::CheckedListBox());
|
|
|
894 |
this->tabPage3 = (gcnew System::Windows::Forms::TabPage());
|
|
|
895 |
this->CockpitWeapons = (gcnew System::Windows::Forms::CheckedListBox());
|
|
|
896 |
this->ComboCockpits = (gcnew System::Windows::Forms::ComboBox());
|
|
|
897 |
this->panel2 = (gcnew System::Windows::Forms::Panel());
|
|
|
898 |
this->ComboGame = (gcnew System::Windows::Forms::ComboBox());
|
|
|
899 |
this->label1 = (gcnew System::Windows::Forms::Label());
|
|
|
900 |
this->PanelNotLoaded = (gcnew System::Windows::Forms::Panel());
|
|
|
901 |
this->LabelNotLoaded = (gcnew System::Windows::Forms::Label());
|
|
|
902 |
this->menuStrip1->SuspendLayout();
|
|
|
903 |
this->panel1->SuspendLayout();
|
|
|
904 |
this->PanelMain->SuspendLayout();
|
|
|
905 |
this->tabControl1->SuspendLayout();
|
|
|
906 |
this->tabPage1->SuspendLayout();
|
|
|
907 |
this->tabPage2->SuspendLayout();
|
|
|
908 |
this->tabPage3->SuspendLayout();
|
|
|
909 |
this->panel2->SuspendLayout();
|
|
|
910 |
this->PanelNotLoaded->SuspendLayout();
|
|
|
911 |
this->SuspendLayout();
|
|
|
912 |
//
|
|
|
913 |
// menuStrip1
|
|
|
914 |
//
|
|
|
915 |
this->menuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(2) {this->fileToolStripMenuItem,
|
|
|
916 |
this->settingsToolStripMenuItem});
|
|
|
917 |
this->menuStrip1->Location = System::Drawing::Point(0, 0);
|
|
|
918 |
this->menuStrip1->Name = L"menuStrip1";
|
|
|
919 |
this->menuStrip1->Size = System::Drawing::Size(416, 24);
|
|
|
920 |
this->menuStrip1->TabIndex = 0;
|
|
|
921 |
this->menuStrip1->Text = L"menuStrip1";
|
|
|
922 |
//
|
|
|
923 |
// fileToolStripMenuItem
|
|
|
924 |
//
|
|
|
925 |
this->fileToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(3) {this->openToolStripMenuItem,
|
|
|
926 |
this->saveToolStripMenuItem, this->saveAsToolStripMenuItem});
|
|
|
927 |
this->fileToolStripMenuItem->Name = L"fileToolStripMenuItem";
|
|
|
928 |
this->fileToolStripMenuItem->Size = System::Drawing::Size(37, 20);
|
|
|
929 |
this->fileToolStripMenuItem->Text = L"&File";
|
|
|
930 |
//
|
|
|
931 |
// openToolStripMenuItem
|
|
|
932 |
//
|
|
|
933 |
this->openToolStripMenuItem->Name = L"openToolStripMenuItem";
|
|
|
934 |
this->openToolStripMenuItem->Size = System::Drawing::Size(114, 22);
|
|
|
935 |
this->openToolStripMenuItem->Text = L"&Open";
|
|
|
936 |
this->openToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::openToolStripMenuItem_Click);
|
|
|
937 |
//
|
|
|
938 |
// saveToolStripMenuItem
|
|
|
939 |
//
|
|
|
940 |
this->saveToolStripMenuItem->Name = L"saveToolStripMenuItem";
|
|
|
941 |
this->saveToolStripMenuItem->Size = System::Drawing::Size(114, 22);
|
|
|
942 |
this->saveToolStripMenuItem->Text = L"&Save";
|
|
|
943 |
this->saveToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::saveToolStripMenuItem_Click);
|
|
|
944 |
//
|
|
|
945 |
// saveAsToolStripMenuItem
|
|
|
946 |
//
|
|
|
947 |
this->saveAsToolStripMenuItem->Name = L"saveAsToolStripMenuItem";
|
|
|
948 |
this->saveAsToolStripMenuItem->Size = System::Drawing::Size(114, 22);
|
|
|
949 |
this->saveAsToolStripMenuItem->Text = L"Save &As";
|
|
|
950 |
this->saveAsToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::saveAsToolStripMenuItem_Click);
|
|
|
951 |
//
|
|
|
952 |
// settingsToolStripMenuItem
|
|
|
953 |
//
|
|
|
954 |
this->settingsToolStripMenuItem->DropDownItems->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(4) {this->gamesToolStripMenuItem,
|
|
|
955 |
this->loadGameTextToolStripMenuItem, this->toolStripSeparator1, this->updateGameDataToolStripMenuItem});
|
|
|
956 |
this->settingsToolStripMenuItem->Name = L"settingsToolStripMenuItem";
|
|
|
957 |
this->settingsToolStripMenuItem->Size = System::Drawing::Size(61, 20);
|
|
|
958 |
this->settingsToolStripMenuItem->Text = L"Settings";
|
|
|
959 |
//
|
|
|
960 |
// gamesToolStripMenuItem
|
|
|
961 |
//
|
|
|
962 |
this->gamesToolStripMenuItem->Name = L"gamesToolStripMenuItem";
|
|
|
963 |
this->gamesToolStripMenuItem->Size = System::Drawing::Size(173, 22);
|
|
|
964 |
this->gamesToolStripMenuItem->Text = L"Games";
|
|
|
965 |
//
|
|
|
966 |
// loadGameTextToolStripMenuItem
|
|
|
967 |
//
|
|
|
968 |
this->loadGameTextToolStripMenuItem->Name = L"loadGameTextToolStripMenuItem";
|
|
|
969 |
this->loadGameTextToolStripMenuItem->Size = System::Drawing::Size(173, 22);
|
|
|
970 |
this->loadGameTextToolStripMenuItem->Text = L"Load Game Text";
|
|
|
971 |
this->loadGameTextToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::loadGameTextToolStripMenuItem_Click);
|
|
|
972 |
//
|
|
|
973 |
// toolStripSeparator1
|
|
|
974 |
//
|
|
|
975 |
this->toolStripSeparator1->Name = L"toolStripSeparator1";
|
|
|
976 |
this->toolStripSeparator1->Size = System::Drawing::Size(170, 6);
|
|
|
977 |
//
|
|
|
978 |
// updateGameDataToolStripMenuItem
|
|
|
979 |
//
|
|
|
980 |
this->updateGameDataToolStripMenuItem->Name = L"updateGameDataToolStripMenuItem";
|
|
|
981 |
this->updateGameDataToolStripMenuItem->Size = System::Drawing::Size(173, 22);
|
|
|
982 |
this->updateGameDataToolStripMenuItem->Text = L"Update Game Data";
|
|
|
983 |
this->updateGameDataToolStripMenuItem->Click += gcnew System::EventHandler(this, &Form1::updateGameDataToolStripMenuItem_Click);
|
|
|
984 |
//
|
|
|
985 |
// panel1
|
|
|
986 |
//
|
|
|
987 |
this->panel1->Controls->Add(this->ButExit);
|
|
|
988 |
this->panel1->Dock = System::Windows::Forms::DockStyle::Bottom;
|
|
|
989 |
this->panel1->Location = System::Drawing::Point(0, 376);
|
|
|
990 |
this->panel1->Name = L"panel1";
|
|
|
991 |
this->panel1->Size = System::Drawing::Size(416, 33);
|
|
|
992 |
this->panel1->TabIndex = 1;
|
|
|
993 |
//
|
|
|
994 |
// ButExit
|
|
|
995 |
//
|
|
|
996 |
this->ButExit->DialogResult = System::Windows::Forms::DialogResult::Cancel;
|
|
|
997 |
this->ButExit->Dock = System::Windows::Forms::DockStyle::Right;
|
|
|
998 |
this->ButExit->Location = System::Drawing::Point(303, 0);
|
|
|
999 |
this->ButExit->Name = L"ButExit";
|
|
|
1000 |
this->ButExit->Size = System::Drawing::Size(113, 33);
|
|
|
1001 |
this->ButExit->TabIndex = 0;
|
|
|
1002 |
this->ButExit->Text = L"Exit";
|
|
|
1003 |
this->ButExit->UseVisualStyleBackColor = true;
|
|
|
1004 |
this->ButExit->Click += gcnew System::EventHandler(this, &Form1::ButExit_Click);
|
|
|
1005 |
//
|
|
|
1006 |
// PanelMain
|
|
|
1007 |
//
|
|
|
1008 |
this->PanelMain->Controls->Add(this->tabControl1);
|
|
|
1009 |
this->PanelMain->Controls->Add(this->panel2);
|
|
|
1010 |
this->PanelMain->Dock = System::Windows::Forms::DockStyle::Fill;
|
|
|
1011 |
this->PanelMain->Location = System::Drawing::Point(0, 24);
|
|
|
1012 |
this->PanelMain->Name = L"PanelMain";
|
|
|
1013 |
this->PanelMain->Size = System::Drawing::Size(416, 352);
|
|
|
1014 |
this->PanelMain->TabIndex = 2;
|
|
|
1015 |
//
|
|
|
1016 |
// tabControl1
|
|
|
1017 |
//
|
|
|
1018 |
this->tabControl1->Controls->Add(this->tabPage1);
|
|
|
1019 |
this->tabControl1->Controls->Add(this->tabPage2);
|
|
|
1020 |
this->tabControl1->Controls->Add(this->tabPage3);
|
|
|
1021 |
this->tabControl1->Dock = System::Windows::Forms::DockStyle::Fill;
|
|
|
1022 |
this->tabControl1->Location = System::Drawing::Point(0, 22);
|
|
|
1023 |
this->tabControl1->Name = L"tabControl1";
|
|
|
1024 |
this->tabControl1->SelectedIndex = 0;
|
|
|
1025 |
this->tabControl1->Size = System::Drawing::Size(416, 330);
|
|
|
1026 |
this->tabControl1->TabIndex = 2;
|
|
|
1027 |
//
|
|
|
1028 |
// tabPage1
|
|
|
1029 |
//
|
|
|
1030 |
this->tabPage1->Controls->Add(this->WeaponList);
|
|
|
1031 |
this->tabPage1->Location = System::Drawing::Point(4, 22);
|
|
|
1032 |
this->tabPage1->Name = L"tabPage1";
|
|
|
1033 |
this->tabPage1->Padding = System::Windows::Forms::Padding(3);
|
|
|
1034 |
this->tabPage1->Size = System::Drawing::Size(408, 304);
|
|
|
1035 |
this->tabPage1->TabIndex = 0;
|
|
|
1036 |
this->tabPage1->Text = L"Lasers";
|
|
|
1037 |
this->tabPage1->UseVisualStyleBackColor = true;
|
|
|
1038 |
//
|
|
|
1039 |
// WeaponList
|
|
|
1040 |
//
|
|
|
1041 |
this->WeaponList->CheckOnClick = true;
|
|
|
1042 |
this->WeaponList->Dock = System::Windows::Forms::DockStyle::Fill;
|
|
|
1043 |
this->WeaponList->FormattingEnabled = true;
|
|
|
1044 |
this->WeaponList->HorizontalScrollbar = true;
|
|
|
1045 |
this->WeaponList->Location = System::Drawing::Point(3, 3);
|
|
|
1046 |
this->WeaponList->Name = L"WeaponList";
|
|
|
1047 |
this->WeaponList->Size = System::Drawing::Size(402, 289);
|
|
|
1048 |
this->WeaponList->TabIndex = 3;
|
|
|
1049 |
this->WeaponList->ItemCheck += gcnew System::Windows::Forms::ItemCheckEventHandler(this, &Form1::WeaponListEvent_Changed);
|
|
|
1050 |
//
|
|
|
1051 |
// tabPage2
|
|
|
1052 |
//
|
|
|
1053 |
this->tabPage2->Controls->Add(this->MissileList);
|
|
|
1054 |
this->tabPage2->Location = System::Drawing::Point(4, 22);
|
|
|
1055 |
this->tabPage2->Name = L"tabPage2";
|
|
|
1056 |
this->tabPage2->Padding = System::Windows::Forms::Padding(3);
|
|
|
1057 |
this->tabPage2->Size = System::Drawing::Size(408, 304);
|
|
|
1058 |
this->tabPage2->TabIndex = 1;
|
|
|
1059 |
this->tabPage2->Text = L"Missiles";
|
|
|
1060 |
this->tabPage2->UseVisualStyleBackColor = true;
|
|
|
1061 |
//
|
|
|
1062 |
// MissileList
|
|
|
1063 |
//
|
|
|
1064 |
this->MissileList->Dock = System::Windows::Forms::DockStyle::Fill;
|
|
|
1065 |
this->MissileList->FormattingEnabled = true;
|
|
|
1066 |
this->MissileList->HorizontalScrollbar = true;
|
|
|
1067 |
this->MissileList->Location = System::Drawing::Point(3, 3);
|
|
|
1068 |
this->MissileList->Name = L"MissileList";
|
|
|
1069 |
this->MissileList->Size = System::Drawing::Size(402, 289);
|
|
|
1070 |
this->MissileList->TabIndex = 4;
|
|
|
1071 |
this->MissileList->ItemCheck += gcnew System::Windows::Forms::ItemCheckEventHandler(this, &Form1::MissileListEvent_Changed);
|
|
|
1072 |
//
|
|
|
1073 |
// tabPage3
|
|
|
1074 |
//
|
|
|
1075 |
this->tabPage3->Controls->Add(this->CockpitWeapons);
|
|
|
1076 |
this->tabPage3->Controls->Add(this->ComboCockpits);
|
|
|
1077 |
this->tabPage3->Location = System::Drawing::Point(4, 22);
|
|
|
1078 |
this->tabPage3->Name = L"tabPage3";
|
|
|
1079 |
this->tabPage3->Padding = System::Windows::Forms::Padding(3);
|
|
|
1080 |
this->tabPage3->Size = System::Drawing::Size(408, 304);
|
|
|
1081 |
this->tabPage3->TabIndex = 2;
|
|
|
1082 |
this->tabPage3->Text = L"Cockpits";
|
|
|
1083 |
this->tabPage3->UseVisualStyleBackColor = true;
|
|
|
1084 |
//
|
|
|
1085 |
// CockpitWeapons
|
|
|
1086 |
//
|
|
|
1087 |
this->CockpitWeapons->CheckOnClick = true;
|
|
|
1088 |
this->CockpitWeapons->Dock = System::Windows::Forms::DockStyle::Fill;
|
|
|
1089 |
this->CockpitWeapons->FormattingEnabled = true;
|
|
|
1090 |
this->CockpitWeapons->HorizontalScrollbar = true;
|
|
|
1091 |
this->CockpitWeapons->Location = System::Drawing::Point(3, 24);
|
|
|
1092 |
this->CockpitWeapons->Name = L"CockpitWeapons";
|
|
|
1093 |
this->CockpitWeapons->Size = System::Drawing::Size(402, 274);
|
|
|
1094 |
this->CockpitWeapons->TabIndex = 4;
|
|
|
1095 |
//
|
|
|
1096 |
// ComboCockpits
|
|
|
1097 |
//
|
|
|
1098 |
this->ComboCockpits->Dock = System::Windows::Forms::DockStyle::Top;
|
|
|
1099 |
this->ComboCockpits->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
|
|
|
1100 |
this->ComboCockpits->FormattingEnabled = true;
|
|
|
1101 |
this->ComboCockpits->Location = System::Drawing::Point(3, 3);
|
|
|
1102 |
this->ComboCockpits->Name = L"ComboCockpits";
|
|
|
1103 |
this->ComboCockpits->Size = System::Drawing::Size(402, 21);
|
|
|
1104 |
this->ComboCockpits->TabIndex = 5;
|
|
|
1105 |
this->ComboCockpits->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::ComboCockpits_SelectedIndexChanged);
|
|
|
1106 |
//
|
|
|
1107 |
// panel2
|
|
|
1108 |
//
|
|
|
1109 |
this->panel2->Controls->Add(this->ComboGame);
|
|
|
1110 |
this->panel2->Controls->Add(this->label1);
|
|
|
1111 |
this->panel2->Dock = System::Windows::Forms::DockStyle::Top;
|
|
|
1112 |
this->panel2->Location = System::Drawing::Point(0, 0);
|
|
|
1113 |
this->panel2->Name = L"panel2";
|
|
|
1114 |
this->panel2->Size = System::Drawing::Size(416, 22);
|
|
|
1115 |
this->panel2->TabIndex = 2;
|
|
|
1116 |
//
|
|
|
1117 |
// ComboGame
|
|
|
1118 |
//
|
|
|
1119 |
this->ComboGame->Dock = System::Windows::Forms::DockStyle::Fill;
|
|
|
1120 |
this->ComboGame->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
|
|
|
1121 |
this->ComboGame->FormattingEnabled = true;
|
|
|
1122 |
this->ComboGame->Location = System::Drawing::Point(188, 0);
|
|
|
1123 |
this->ComboGame->Name = L"ComboGame";
|
|
|
1124 |
this->ComboGame->Size = System::Drawing::Size(228, 21);
|
|
|
1125 |
this->ComboGame->TabIndex = 0;
|
|
|
1126 |
this->ComboGame->SelectedIndexChanged += gcnew System::EventHandler(this, &Form1::ComboGame_SelectedIndexChanged);
|
|
|
1127 |
//
|
|
|
1128 |
// label1
|
|
|
1129 |
//
|
|
|
1130 |
this->label1->Dock = System::Windows::Forms::DockStyle::Left;
|
|
|
1131 |
this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
|
|
|
1132 |
static_cast<System::Byte>(0)));
|
|
|
1133 |
this->label1->Location = System::Drawing::Point(0, 0);
|
|
|
1134 |
this->label1->Name = L"label1";
|
|
|
1135 |
this->label1->Size = System::Drawing::Size(188, 22);
|
|
|
1136 |
this->label1->TabIndex = 1;
|
|
|
1137 |
this->label1->Text = L"X-Universe Game:";
|
|
|
1138 |
this->label1->TextAlign = System::Drawing::ContentAlignment::MiddleLeft;
|
|
|
1139 |
//
|
|
|
1140 |
// PanelNotLoaded
|
|
|
1141 |
//
|
|
|
1142 |
this->PanelNotLoaded->Controls->Add(this->LabelNotLoaded);
|
|
|
1143 |
this->PanelNotLoaded->Dock = System::Windows::Forms::DockStyle::Fill;
|
|
|
1144 |
this->PanelNotLoaded->Location = System::Drawing::Point(0, 24);
|
|
|
1145 |
this->PanelNotLoaded->Name = L"PanelNotLoaded";
|
|
|
1146 |
this->PanelNotLoaded->Size = System::Drawing::Size(416, 352);
|
|
|
1147 |
this->PanelNotLoaded->TabIndex = 3;
|
|
|
1148 |
//
|
|
|
1149 |
// LabelNotLoaded
|
|
|
1150 |
//
|
|
|
1151 |
this->LabelNotLoaded->Dock = System::Windows::Forms::DockStyle::Fill;
|
|
|
1152 |
this->LabelNotLoaded->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 14.25F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
|
|
|
1153 |
static_cast<System::Byte>(0)));
|
|
|
1154 |
this->LabelNotLoaded->Location = System::Drawing::Point(0, 0);
|
|
|
1155 |
this->LabelNotLoaded->Name = L"LabelNotLoaded";
|
|
|
1156 |
this->LabelNotLoaded->Size = System::Drawing::Size(416, 352);
|
|
|
1157 |
this->LabelNotLoaded->TabIndex = 0;
|
|
|
1158 |
this->LabelNotLoaded->Text = L"No ship file is currently loaded";
|
|
|
1159 |
this->LabelNotLoaded->TextAlign = System::Drawing::ContentAlignment::MiddleCenter;
|
|
|
1160 |
//
|
|
|
1161 |
// Form1
|
|
|
1162 |
//
|
|
|
1163 |
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
|
|
|
1164 |
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
|
|
|
1165 |
this->CancelButton = this->ButExit;
|
|
|
1166 |
this->ClientSize = System::Drawing::Size(416, 409);
|
|
|
1167 |
this->Controls->Add(this->PanelMain);
|
|
|
1168 |
this->Controls->Add(this->PanelNotLoaded);
|
|
|
1169 |
this->Controls->Add(this->panel1);
|
|
|
1170 |
this->Controls->Add(this->menuStrip1);
|
|
|
1171 |
this->Icon = (cli::safe_cast<System::Drawing::Icon^ >(resources->GetObject(L"$this.Icon")));
|
|
|
1172 |
this->MainMenuStrip = this->menuStrip1;
|
|
|
1173 |
this->Name = L"Form1";
|
|
|
1174 |
this->Text = L"XSP Ship Convertor";
|
|
|
1175 |
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
|
|
|
1176 |
this->menuStrip1->ResumeLayout(false);
|
|
|
1177 |
this->menuStrip1->PerformLayout();
|
|
|
1178 |
this->panel1->ResumeLayout(false);
|
|
|
1179 |
this->PanelMain->ResumeLayout(false);
|
|
|
1180 |
this->tabControl1->ResumeLayout(false);
|
|
|
1181 |
this->tabPage1->ResumeLayout(false);
|
|
|
1182 |
this->tabPage2->ResumeLayout(false);
|
|
|
1183 |
this->tabPage3->ResumeLayout(false);
|
|
|
1184 |
this->panel2->ResumeLayout(false);
|
|
|
1185 |
this->PanelNotLoaded->ResumeLayout(false);
|
|
|
1186 |
this->ResumeLayout(false);
|
|
|
1187 |
this->PerformLayout();
|
|
|
1188 |
|
|
|
1189 |
}
|
|
|
1190 |
#pragma endregion
|
|
|
1191 |
private: System::Void openToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
|
|
|
1192 |
this->OpenFile();
|
|
|
1193 |
}
|
|
|
1194 |
private: System::Void ButExit_Click(System::Object^ sender, System::EventArgs^ e) {
|
|
|
1195 |
this->Close();
|
|
|
1196 |
}
|
|
|
1197 |
private: System::Void saveToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
|
|
|
1198 |
this->SaveShip();
|
|
|
1199 |
}
|
|
|
1200 |
private: System::Void ComboGame_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) {
|
|
|
1201 |
this->ChangeGame();
|
|
|
1202 |
}
|
|
|
1203 |
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
|
|
|
1204 |
this->LoadGameDirectory();
|
|
|
1205 |
|
|
|
1206 |
if ( m_sOpenFile )
|
|
|
1207 |
this->OpenFile(m_sOpenFile);
|
|
|
1208 |
}
|
|
|
1209 |
private: void CloseEvent(System::Object ^Sender, System::EventArgs ^E) {
|
|
|
1210 |
this->CheckSave();
|
|
|
1211 |
this->CloseDialog();
|
|
|
1212 |
}
|
|
|
1213 |
private: System::Void updateGameDataToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
|
|
|
1214 |
this->LoadGameData();
|
|
|
1215 |
}
|
|
|
1216 |
private: System::Void loadGameTextToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
|
|
|
1217 |
m_bReadText = !m_bReadText;
|
|
|
1218 |
this->loadGameTextToolStripMenuItem->Checked = m_bReadText;
|
|
|
1219 |
}
|
|
|
1220 |
private: System::Void WeaponListEvent_Changed(System::Object^ sender, ItemCheckEventArgs^ e) {
|
|
|
1221 |
if ( !m_bLoading )
|
|
|
1222 |
{
|
|
|
1223 |
int index = (1 << e->Index);
|
|
|
1224 |
if ( e->NewValue == CheckState::Checked )
|
|
|
1225 |
m_iLaserMask |= index;
|
|
|
1226 |
else if ( e->NewValue == CheckState::Unchecked )
|
|
|
1227 |
m_iLaserMask &= ~(index);
|
|
|
1228 |
|
|
|
1229 |
this->CheckListChanged();
|
|
|
1230 |
}
|
|
|
1231 |
}
|
|
|
1232 |
private: System::Void MissileListEvent_Changed(System::Object^ sender, ItemCheckEventArgs^ e) {
|
|
|
1233 |
if ( !m_bLoading )
|
|
|
1234 |
{
|
|
|
1235 |
int index = (1 << e->Index);
|
|
|
1236 |
if ( e->NewValue == CheckState::Checked )
|
|
|
1237 |
m_iMissileMask |= index;
|
|
|
1238 |
else if ( e->NewValue == CheckState::Unchecked )
|
|
|
1239 |
m_iMissileMask &= ~(index);
|
|
|
1240 |
|
|
|
1241 |
this->CheckListChanged();
|
|
|
1242 |
}
|
|
|
1243 |
}
|
|
|
1244 |
private: System::Void Event_Changed(System::Object^ sender, ItemCheckEventArgs^ e) {
|
|
|
1245 |
if ( !m_bLoading )
|
|
|
1246 |
{
|
|
|
1247 |
this->CheckListChanged();
|
|
|
1248 |
}
|
|
|
1249 |
}
|
|
|
1250 |
private: System::Void saveAsToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
|
|
|
1251 |
this->SaveShipAs();
|
|
|
1252 |
}
|
|
|
1253 |
private: System::Void ComboCockpits_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) {
|
|
|
1254 |
this->UpdateCockpitList();
|
|
|
1255 |
}
|
|
|
1256 |
};
|
|
|
1257 |
}
|
|
|
1258 |
|