-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathfrmBGL.vb
417 lines (343 loc) · 13.3 KB
/
frmBGL.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
Option Strict Off
Option Explicit On
Friend Class FrmBGL
Private Init As Boolean = True
Private CopyBGLs As Boolean = False
Private FWX As Boolean = False
Private STX As Boolean = False
Private RDX As Boolean = False
Private HLX As Boolean = False
Private RRX As Boolean = False
Private UTX As Boolean = False
Private EXX As Boolean = False
Private FLX As Boolean = False
Private PKX As Boolean = False
Private HPX As Boolean = False
Private HGX As Boolean = False
Private Sub CmdCancel_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdCancel.Click
Dispose()
End Sub
Private Sub CmdCompile_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdCompile.Click
'If FSXTools = False Then
If IsFSXTerrain = False Or IsFSXBGLComp = False Then
MsgBox("SDK Tools are not present in ..\SBuilder\Tools folder!", MsgBoxStyle.Critical)
Exit Sub
End If
FrmStart.Cursor = System.Windows.Forms.Cursors.WaitCursor
If ckCopyBGLs.CheckState = 1 Then CopyBGLs = True
If ckVector.Checked Then MakeBGLVector()
If ckLand.CheckState = 1 Then MakeBglLand(CopyBGLs)
If ckWater.CheckState = 1 Then MakeBglWater(CopyBGLs)
If ckPhoto.CheckState = 1 Then MakeBglPhoto(CopyBGLs)
If ckObjects.CheckState = 1 Then MakeBGLObjects(CopyBGLs)
If ckExcludes.CheckState = 1 Then MakeBGLExcludes(CopyBGLs)
If ckTexPolys.CheckState = 1 Then MakeBGLTexPolys(CopyBGLs)
If ckExtrusions.CheckState = 1 Then MakeBGLExtrusions(CopyBGLs)
If ckTexLines.CheckState = 1 Then MakeBGLTexLines(CopyBGLs)
If ckLinesOfObjects.CheckState = 1 Then MakeBGLObjLines(CopyBGLs)
'If ckStartFSX.CheckState = 1 Then Shell(FSPath & "fsx.exe", 1) 'it looks Win10 does not like it
'If ckStartFSX.CheckState = 1 Then Process.Start(FSPath & "fsx.exe")
If ckStartFSX.CheckState = 1 Then Process.Start(FSPath & SimExe)
FrmStart.SetMouseIcon()
Dispose()
End Sub
Private Sub FrmBGL_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim N As Integer
Dim A As String
Dim Flag1 As Boolean = False
Dim Flag2 As Boolean = False
Init = True
ckLand.Enabled = False
ckVector.Enabled = False
ckWater.Enabled = False
ckPhoto.Enabled = False
ckObjects.Enabled = False
ckExcludes.Enabled = False
ckTexPolys.Enabled = False
ckExtrusions.Enabled = False
ckTexLines.Enabled = False
ckLinesOfObjects.Enabled = False
ckCopyBGLs.Enabled = False
ckLand.Checked = False
ckVector.Checked = False
ckWater.Checked = False
ckPhoto.Checked = False
ckObjects.Checked = False
ckExcludes.Checked = False
ckTexPolys.Checked = False
ckExtrusions.Checked = False
ckTexLines.Checked = False
ckLinesOfObjects.Checked = False
EXX = False
PKX = False
HPX = False
HGX = False
FLX = False
STX = False
FWX = False
RDX = False
HLX = False
RRX = False
UTX = False
For N = 1 To NoOfPolys
If Polys(N).Selected Then
A = Mid(Polys(N).Type, 1, 3)
If A = "XXX" Then EXX = True
If A = "EXX" Then EXX = True
If A = "LCP" Then PKX = True
If A = "HPX" Then HPX = True
If A = "HGX" Then HGX = True
If A = "FLX" Then FLX = True
If A = "TEX" Then
ckTexPolys.Enabled = True
lbNoSelection.Visible = False
ckTexPolys.Checked = True
ckCopyBGLs.Enabled = True
End If
End If
Next N
For N = 1 To NoOfLines
If Lines(N).Selected Then
A = Mid(Lines(N).Type, 1, 3)
If A = "STX" Then STX = True
If A = "FWX" Then FWX = True
If A = "RDX" Then RDX = True
If A = "HLX" Then HLX = True
If A = "RRX" Then RRX = True
If A = "UTX" Then UTX = True
If A = "TEX" Then
ckTexLines.Enabled = True
lbNoSelection.Visible = False
ckTexLines.Checked = True
ckCopyBGLs.Enabled = True
End If
If A = "EXT" Then
ckExtrusions.Enabled = True
lbNoSelection.Visible = False
ckExtrusions.Checked = True
ckCopyBGLs.Enabled = True
End If
If A = "OBJ" Then
ckLinesOfObjects.Enabled = True
lbNoSelection.Visible = False
ckLinesOfObjects.Checked = True
ckCopyBGLs.Enabled = True
End If
End If
Next N
If EXX Or PKX Or HPX Or HGX Or FLX Or STX Or FWX Or RDX Or HLX Or RRX Or UTX Then
ckVector.Enabled = True
lbNoSelection.Visible = False
ckVector.Checked = True
ckCopyBGLs.Enabled = True
End If
If NoOfLandsSelected > 0 Then
ckLand.Enabled = True
lbNoSelection.Visible = False
ckLand.Checked = True
ckCopyBGLs.Enabled = True
End If
If NoOfWatersSelected > 0 Then
ckWater.Enabled = True
lbNoSelection.Visible = False
ckWater.Checked = True
ckCopyBGLs.Enabled = True
End If
Flag1 = False
For N = 1 To NoOfMaps
If Maps(N).Selected Then
A = UCase(Mid(Maps(N).Name, 1, 5))
If A = "PHOTO" Then
A = UCase(Path.GetExtension(Maps(N).BMPSu))
If A = ".BMP" Then
Flag1 = True
Exit For
End If
End If
End If
Next
If Flag1 Then
ckPhoto.Enabled = True
lbNoSelection.Visible = False
ckPhoto.Checked = True
ckCopyBGLs.Enabled = True
End If
Flag1 = False
For N = 1 To NoOfObjects
If Objects(N).Selected Then
Flag1 = True
Exit For
End If
Next
If Flag1 Then
ckObjects.Enabled = True
lbNoSelection.Visible = False
ckObjects.Checked = True
ckCopyBGLs.Enabled = True
End If
Flag1 = False
For N = 1 To NoOfExcludes
If Excludes(N).Selected Then
Flag1 = True
Exit For
End If
Next
If Flag1 Then
ckExcludes.Enabled = True
lbNoSelection.Visible = False
ckExcludes.Checked = True
ckCopyBGLs.Enabled = True
End If
Init = False
End Sub
Private Sub MakeBGLVector()
Dim sourcebase, destbase As String
Dim source, dest, shapefile As String
Dim shpfiles As String()
Dim ProjectNameNoSpaces As String
ProjectNameNoSpaces = Replace(ProjectName, " ", "_")
shpfiles = Directory.GetFiles(AppPath & "\Tools\Shapes")
For Each shapefile In shpfiles
File.Delete(shapefile)
Next
sourcebase = AppPath & "\Tools\"
destbase = AppPath & "\Tools\Shapes\"
ChDrive(My.Application.Info.DirectoryPath)
ChDir(My.Application.Info.DirectoryPath & "\Tools\Shapes")
If EXX Then
source = sourcebase & "EXX.xml"
shapefile = "EXX_" & ProjectNameNoSpaces
dest = destbase & shapefile & ".xml"
File.Copy(source, dest)
shapefile = shapefile & ".shp"
MakeSHPPolys(shapefile, "EXX")
End If
If PKX Then
source = sourcebase & "PKX.xml"
shapefile = "PKX_" & ProjectNameNoSpaces
dest = destbase & shapefile & ".xml"
File.Copy(source, dest)
shapefile = shapefile & ".shp"
MakeSHPPolys(shapefile, "LCP")
End If
If HPX Then
source = sourcebase & "HPX.xml"
shapefile = "HPX_" & ProjectNameNoSpaces
dest = destbase & shapefile & ".xml"
File.Copy(source, dest)
shapefile = shapefile & ".shp"
MakeSHPPolys(shapefile, "HPX")
End If
If HGX Then
source = sourcebase & "HGX.xml"
shapefile = "HGX_" & ProjectNameNoSpaces
dest = destbase & shapefile & ".xml"
File.Copy(source, dest)
shapefile = shapefile & ".shp"
MakeSHPPolys(shapefile, "HGX")
End If
If FLX Then
source = sourcebase & "FLX.xml"
shapefile = "FLX_" & ProjectNameNoSpaces
dest = destbase & shapefile & ".xml"
File.Copy(source, dest)
shapefile = shapefile & ".shp"
MakeSHPPolys(shapefile, "FLX")
End If
If STX Then
source = sourcebase & "STX.xml"
shapefile = "STX_" & ProjectNameNoSpaces
dest = destbase & shapefile & ".xml"
File.Copy(source, dest)
shapefile = shapefile & ".shp"
MakeSHPLines(shapefile, "STX")
End If
If FWX Then
source = sourcebase & "FWX.xml"
shapefile = "FWX_" & ProjectNameNoSpaces
dest = destbase & shapefile & ".xml"
File.Copy(source, dest)
shapefile = shapefile & ".shp"
MakeSHPLines(shapefile, "FWX")
End If
If RDX Then
source = sourcebase & "RDX.xml"
shapefile = "RDX_" & ProjectNameNoSpaces
dest = destbase & shapefile & ".xml"
File.Copy(source, dest)
shapefile = shapefile & ".shp"
MakeSHPLines(shapefile, "RDX")
End If
If HLX Then
source = sourcebase & "HLX.xml"
shapefile = "HLX_" & ProjectNameNoSpaces
dest = destbase & shapefile & ".xml"
File.Copy(source, dest)
shapefile = shapefile & ".shp"
MakeSHPLines(shapefile, "HLX")
End If
If RRX Then
source = sourcebase & "RRX.xml"
shapefile = "RRX_" & ProjectNameNoSpaces
dest = destbase & shapefile & ".xml"
File.Copy(source, dest)
shapefile = shapefile & ".shp"
MakeSHPLines(shapefile, "RRX")
End If
If UTX Then
source = sourcebase & "UTX.xml"
shapefile = "UTX_" & ProjectNameNoSpaces
dest = destbase & shapefile & ".xml"
File.Copy(source, dest)
shapefile = shapefile & ".shp"
MakeSHPLines(shapefile, "UTX")
End If
ChDir(My.Application.Info.DirectoryPath & "\Tools")
Dim myCommand As String
myCommand = "shp2vec Shapes _" & ProjectNameNoSpaces
If AddToCells Then myCommand = myCommand & " -ADDTOCELLS"
ExecCmd(myCommand)
If Not CopyBGLs Then Exit Sub
Try
source = destbase & "CVX_" & ProjectNameNoSpaces & ".BGL"
If File.Exists(source) Then
dest = BGLProjectFolder & "\CVX_" & ProjectNameNoSpaces & ".BGL"
File.Copy(source, dest, True)
End If
Catch ex As Exception
MsgBox("Copying BGL files failed! Try to close FSX.", MsgBoxStyle.Information)
End Try
End Sub
Private Sub CkVector_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckVector.CheckedChanged
SetChecks()
End Sub
Private Sub CkLand_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckLand.CheckedChanged
SetChecks()
End Sub
Private Sub CkWater_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckWater.CheckedChanged
SetChecks()
End Sub
Private Sub CkPhoto_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckPhoto.CheckedChanged, ckTexLines.CheckedChanged, ckExtrusions.CheckedChanged
SetChecks()
End Sub
Private Sub SetChecks()
If Init Then Exit Sub
ckCopyBGLs.Enabled = False
If ckVector.Checked Or ckLand.Checked Or ckWater.Checked Or ckPhoto.Checked _
Or ckTexPolys.Checked Or ckObjects.Checked Or ckExcludes.Checked Then
ckCopyBGLs.Enabled = True
End If
End Sub
Private Sub CkTexPolys_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckTexPolys.CheckedChanged
SetChecks()
End Sub
Private Sub CkObjects_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckObjects.CheckedChanged
SetChecks()
End Sub
Private Sub CkExcludes_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckExcludes.CheckedChanged
SetChecks()
End Sub
Private Sub CkLinesOfObjects_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ckLinesOfObjects.CheckedChanged
SetChecks()
End Sub
End Class