-
Notifications
You must be signed in to change notification settings - Fork 8
/
plhud.txt
587 lines (535 loc) · 23 KB
/
plhud.txt
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
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
{$CLEO}
{$NOSOURCE}
{$O 0C27=5,transform world_xyz %1d% %2d% %3d% to hud_xy %4d% %5d%}
{$O 0C28=5,transform world_xyz %1d% %2d% %3d% to screen_xy %4d% %5d%}
{$O 0C29=4,lerp_ab %1d% f %2d% at %3d% store_to %4d%}
{$O 0C30=12,draw_text %1d% at_screen_xy %2d% %3d% font %4d% proportional %5d% align %6d% RGBA %7d% %8d% %9d% %10d% letter_size %11d% %12d%}
{$O 0C31=12,draw_text %1d% at_hud_xy %2d% %3d% font %4d% proportional %5d% align %6d% RGBA %7d% %8d% %9d% %10d% letter_size %11d% %12d%}
03A4: name_thread 'PLHUD00'
0A8C: write_memory 0x859F3F size 4 value 0x5C2E5C2E virtual_protect 0
0390: load_txd_dictionary 'PARTICLE'
038F: load_texture "WHITE" as 5 // Load dictionary with 0390 first
0A8C: write_memory 0x859F3F size 4 value 0x5C647874 virtual_protect 0
const
CURRENT_VERTEX_COUNT = 0@
X1 = 1@
Y1 = 2@
Z1 = 3@
X2 = 4@
Y2 = 5@
Z2 = 6@
PTR = 7@
NUMVERTICESMEM = 8@
DISTANCE = 9@
PX = 10@
PY = 11@
PZ = 12@
TXT = 13@
MX = 14@
MY = 15@
ENABLED = 16@
RNWYCOUNT = 17@
HCKTXTS = 18@
MAXVIEWDIST = 19@
CX = 20@
CY = 21@
SMARTMODE = 22@
CLOSESTAS = 23@
ASPTR = 24@
RENDERER = 25@
TEMP3 = 29@
TEMP2 = 30@
TEMP = 31@
INFOTMR = 32@
FIXTMR = 33@
end
//==============================================================
0AC6: TEMP = label @HUDHOOK offset
000E: TEMP -= 0x58EAF1
000E: TEMP -= 0x4
0A8C: write_memory 0x58EAF0 size 1 value 0xE9 vp 0 // jmp near
0A8C: write_memory 0x58EAF1 size 4 value TEMP vp 0
0A8C: write_memory 0x58EAF5 size 1 value 0x90 vp 0 // NOP
0AC6: TEMP2 = label @HUHOOKRETURNJUMP offset
0006: TEMP = 0x58EAF1
0062: TEMP -= TEMP2 // (int)
0A8C: write_memory TEMP2 size 4 value TEMP vp 0
0AC6: TEMP2 = label @HUCALL offset
0006: TEMP = 0x734E90
0062: TEMP -= TEMP2 // (int)
000E: TEMP -= 0x4
0A8C: write_memory TEMP2 size 4 value TEMP vp 0
0AC6: TEMP2 = label @LINES offset
0AC6: TEMP = label @LINEHERE offset
0A8C: write_memory TEMP size 4 value TEMP2 vp 0
0AC6: NUMVERTICESMEM = label @NUMVERTICES offset
//==============================================================
jump @SKIPHOOK
:HUDHOOK
hex
81 // sub
EC // esp
A0 01 00 00 // 0x1A0
// stuff
68 // push imm32
end
:NUMVERTICES
hex
00 00 00 00 // numVertices
68 // push imm32
end
:LINEHERE
hex
00 00 00 00 // *vertices
68 // push imm32
01 00 00 00 // primitiveType
E8 // call (near, relative)
end
:HUCALL
hex
00 00 00 00
58 // pop eax
58 // pop eax
58 // pop eax
E9 // jmp near
end
:HUHOOKRETURNJUMP
hex
00 00 00 00
end
:SKIPHOOK
//==============================================================
0006: INFOTMR = 3000
0006: SMARTMODE = 1
0006: RENDERER = 1
0007: MAXVIEWDIST = 1500.0
:MAIN_LOOP
0001: wait 0
0AB0: key_pressed 0x79 // F10
004D: jump_if_false @SKIPKEY
0001: wait 200
0006: INFOTMR = 0
0AB0: key_pressed 0x59 // Y
004D: jump_if_false @SKIPUP
000B: MAXVIEWDIST += 200.0 // LOCALVAR PLUS FLOAT
0002: jump @SKIPKEY
:SKIPUP
0AB0: key_pressed 0x48 // H
004D: jump_if_false @SKIPDOWN
000F: MAXVIEWDIST -= 200.0 // LOCALVAR MINUS FLOAT
0002: jump @SKIPKEY
:SKIPDOWN
0AB0: key_pressed 0x55 // U
004D: jump_if_false @SKIPRENDERER
0012: RENDERER *= -1 // LOCALVAR MULTIPLY INT
0002: jump @SKIPKEY
:SKIPRENDERER
0AB0: key_pressed 0x47 // G
004D: jump_if_false @SKIPMODE
0019: SMARTMODE > 0 // LOCALVAR CMP INT
004D: jump_if_false @ENMODE
0006: SMARTMODE = 0
0002: jump @SKIPKEY
:ENMODE
0006: SMARTMODE = 1
0002: jump @SKIPKEY
:SKIPMODE
0019: ENABLED > 0 // LOCALVAR CMP INT
004D: jump_if_false @ENABLE
0006: ENABLED = 0
0A8C: write_memory NUMVERTICESMEM size 4 value 0 vp 0
0050: gosub @FIXAIRSTRIP
0002: jump @SKIPKEY
:ENABLE
0006: ENABLED = 1
:SKIPKEY
0019: ENABLED > 0 // LOCALVAR CMP INT
004D: jump_if_false @MAIN_LOOP
0039: SMARTMODE == 0 // LOCALVAR EQ INT
004D: jump_if_false @GETCP
:GOTCP
// === fix stuff..
0019: FIXTMR > 10000 // LOCALVAR CMP INT
004D: jump_if_false @FIX1
0006: FIXTMR = 0
0A8C: write_memory 0x587D4B size 1 value 4 vp 0
0002: jump @NOFIX
:FIX1
0019: FIXTMR > 5000 // LOCALVAR CMP INT
004D: jump_if_false @NOFIX
0006: FIXTMR = 11000
0A8C: write_memory 0x587D4B size 1 value 255 vp 0
:NOFIX
// ===
00A0: store_actor $PLAYER_ACTOR position_to PX PY PZ
03F0: enable_text_draw 0
0006: CURRENT_VERTEX_COUNT = 0 // LOCALVAR ASSIGNMENT INT
0AC6: PTR = label @AIRPORTS offset
0006: RNWYCOUNT = 0
0006: HCKTXTS = 0
0006: ASPTR = 0x8D06E0
0007: CLOSESTAS = 100000.0
0050: gosub @BREAKAIRSTRIP
001B: 2000 > INFOTMR // LOCALVAR CMP INT
004D: jump_if_false @NOINFO
0006: HCKTXTS = 2
:NOINFO
:NEXTPTR
0A8D: X1 = read_memory PTR size 4 virtual_protect 0
0039: X1 == 0 // LOCALVAR EQ INT
004D: jump_if_false @MLY
0A8C: write_memory NUMVERTICESMEM size 4 value CURRENT_VERTEX_COUNT vp 0
0002: jump @LOOP_END
:MLY
000A: RNWYCOUNT += 1 // LOCALVAR PLUS INT
000A: PTR += 4 // LOCALVAR PLUS INT
0A8D: Y1 = read_memory PTR size 4 virtual_protect 0
000A: PTR += 4 // LOCALVAR PLUS INT
0A8D: Z1 = read_memory PTR size 4 virtual_protect 0
000A: PTR += 4 // LOCALVAR PLUS INT
0A8D: X2 = read_memory PTR size 4 virtual_protect 0
000A: PTR += 4 // LOCALVAR PLUS INT
0A8D: Y2 = read_memory PTR size 4 virtual_protect 0
000A: PTR += 4 // LOCALVAR PLUS INT
0A8D: Z2 = read_memory PTR size 4 virtual_protect 0
000A: PTR += 4 // LOCALVAR PLUS INT
0A8D: TEMP = read_memory PTR size 1 virtual_protect 0
000A: PTR += 1 // LOCALVAR PLUS INT
0085: TXT = PTR // (int) LOCALVAR ASSIGNMENT INT
005A: PTR += TEMP // (int) LOCALVAR PLUS INT
0C29: lerp_ab X1 to X2 f 0.5 store_to MX
0C29: lerp_ab Y1 to Y2 f 0.5 store_to MY
0509: TEMP3 = distance_between_XY MX MY and_XY X1 Y1
000B: TEMP3 += 40.0 // LOCALVAR PLUS FLOAT
0509: DISTANCE = distance_between_XY MX MY and_XY PX PY
0039: SMARTMODE == 1 // LOCALVAR EQ INT
004D: jump_if_false @NOSMART
000B: TEMP3 += 100.0 // LOCALVAR PLUS FLOAT
0509: TEMP = distance_between_XY MX MY and_XY CX CY
0025: TEMP3 > TEMP // (float) LOCALVAL CMP FLOAT
004D: jump_if_false @NEXTPTR
000F: TEMP3 -= 100.0 // LOCALVAR MINUS FLOAT
8043: not CX == 0.0 // LOCALVAR EQ FLOAT
004D: jump_if_false @NEXTPTR
:NOSMART
0039: SMARTMODE == 0 // LOCALVAR EQ INT
004D: jump_if_false @WRITEAIRSTRIP
0025: CLOSESTAS > DISTANCE // (float) LOCALVAL CMP FLOAT
004D: jump_if_false @NOAS
0087: CLOSESTAS = DISTANCE // (float) GLOCALVAR ASSIGNMENT FLOAT
:WRITEAIRSTRIP
0A8C: write_memory ASPTR size 4 value MX vp 0
000A: ASPTR += 4 // LOCALVAR PLUS INT
0A8C: write_memory ASPTR size 4 value MY vp 0
000A: ASPTR += 4 // LOCALVAR PLUS INT
0087: TEMP = X1 // (float) GLOCALVAR ASSIGNMENT FLOAT
0087: TEMP2 = Y1 // (float) GLOCALVAR ASSIGNMENT FLOAT
0063: TEMP -= X2 // (float) LOCALVAR MIN FLOAT
0063: TEMP2 -= Y2 // (float) LOCALVAR MIN FLOAT
0604: get_Z_angle_for_point TEMP TEMP2 store_to TEMP
000F: TEMP -= 90.0 // LOCALVAR MINUS FLOAT
0007: TEMP2 = 360.0 // LOCALVAR ASSIGNMENT FLOAT
0063: TEMP2 -= TEMP // (float) LOCALVAR MIN FLOAT
//0656: get_angle TEMP2 absolute_degrees_to TEMP2
0A8C: write_memory ASPTR size 4 value TEMP2 vp 0
000A: ASPTR += 4 // LOCALVAR PLUS INT
0509: TEMP = distance_between_XY X1 Y1 and_XY X2 Y2
0013: TEMP *= 2.0 // LOCALVAR MULTIPLY FLOAT
0A8C: write_memory ASPTR size 4 value TEMP vp 0
000A: ASPTR += 4 // LOCALVAR PLUS INT
0019: ASPTR > 0x8D0710 // LOCALVAR CMP INT
004D: jump_if_false @NOAS
0006: ASPTR = 0x8D06E0
:NOAS
0025: DISTANCE > TEMP3 // (float) LOCALVAL CMP FLOAT
004D: jump_if_false @NEXTPTR
0087: TEMP = DISTANCE // (float) GLOCALVAR ASSIGNMENT FLOAT
000F: TEMP3 -= 40.0 // LOCALVAR MINUS FLOAT
0063: TEMP -= TEMP3 // (float) LOCALVAR MIN FLOAT
0025: MAXVIEWDIST > TEMP // (float) LOCALVAL CMP FLOAT
004D: jump_if_false @NEXTPTR
0C29: lerp_ab X1 to PX f 0.7 store_to TEMP
0C29: lerp_ab Y1 to PY f 0.7 store_to TEMP2
0C29: lerp_ab Z1 to PZ f 0.7 store_to TEMP3
00C2: sphere_onscreen TEMP TEMP2 TEMP3 radius 5.0
004D: jump_if_false @NEXTPTR
0C29: lerp_ab X2 to PX f 0.7 store_to TEMP
0C29: lerp_ab Y2 to PY f 0.7 store_to TEMP2
0C29: lerp_ab Z2 to PZ f 0.7 store_to TEMP3
00C2: sphere_onscreen TEMP TEMP2 TEMP3 radius 5.0
004D: jump_if_false @NEXTPTR
/*
0002: jump @NOTCLOSE
:CLOSENUFF
00C2: sphere_onscreen X1 Y1 Z1 radius 5.0
004D: jump_if_false @NEXTPTR
00C2: sphere_onscreen X2 Y2 Z2 radius 5.0
004D: jump_if_false @NEXTPTR
:NOTCLOSE
*/
0050: gosub @ADDLINE
0002: jump @NEXTPTR
:LOOP_END
001B: 2000 > INFOTMR // LOCALVAR CMP INT
004D: jump_if_false @MAIN_LOOP
0340: set_text_draw_RGBA 255 255 255 255
033F: set_text_draw_letter_size 0.15 0.95
0342: set_text_draw_centered 0
081C: draw_text_outline 0 RGBA 0 0 0 255
060D: draw_text_shadow 0 rgba 0 0 0 255
0348: enable_text_draw_proportional 0
045A: draw_text_1number 320.0 190.0 'NUMBER' number RNWYCOUNT // ~1~
0AC6: TEMP = label @INFOSTRING offset
0C31: draw_text TEMP at_hud_xy 320.0 210.0 font 1 proportional 1 align 1 RGBA 255 255 255 255 letter_size 0.15 0.65
0340: set_text_draw_RGBA 255 255 255 255
033F: set_text_draw_letter_size 0.15 0.95
0342: set_text_draw_centered 0
081C: draw_text_outline 0 RGBA 0 0 0 255
060D: draw_text_shadow 0 rgba 0 0 0 255
0092: TEMP = float MAXVIEWDIST to_integer
0348: enable_text_draw_proportional 0
045A: draw_text_1number 320.0 290.0 'NUMBER' number TEMP // ~1~
0AC6: TEMP = label @INFOSTRING2 offset
0C31: draw_text TEMP at_hud_xy 320.0 320.0 font 1 proportional 1 align 1 RGBA 255 255 255 255 letter_size 0.15 0.65
0002: jump @MAIN_LOOP
:GETCP
0006: PTR = 0xC7F158
0006: TEMP = 0
0007: CX = 0.0
:NEXTCP
001B: 32 > TEMP // LOCALVAR CMP INT
004D: jump_if_false @GOTCP
000A: TEMP += 1 // LOCALVAR PLUS INT
000A: PTR += 2 // LOCALVAR PLUS INT
0A8D: TEMP2 = read_memory PTR size 1 virtual_protect 0
000A: PTR += 0x36 // LOCALVAR PLUS INT
0039: TEMP2 == 1 // LOCALVAR EQ INT
004D: jump_if_false @NEXTCP
000E: PTR -= 0x38 // LOCALVAR MINUS INT
000A: PTR += 0x10 // LOCALVAR PLUS INT
0A8D: CX = read_memory PTR size 4 virtual_protect 0
000A: PTR += 4 // LOCALVAR PLUS INT
0A8D: CY = read_memory PTR size 4 virtual_protect 0
0002: jump @GOTCP
//==============================================================
:BREAKAIRSTRIP
0A8C: write_memory 0x8D06E0 size 4 value 200000.0 vp 0
0A8C: write_memory 0x8D06F0 size 4 value 200000.0 vp 0
0A8C: write_memory 0x8D0700 size 4 value 200000.0 vp 0
0A8C: write_memory 0x8D0710 size 4 value 200000.0 vp 0
0051: return
:FIXAIRSTRIP
0A8C: write_memory 0x8D06E0 size 4 value 1750.0 vp 0
0A8C: write_memory 0x8D06E4 size 4 value -2494.0 vp 0
0A8C: write_memory 0x8D06E8 size 4 value 180.0 vp 0
0A8C: write_memory 0x8D06EC size 4 value 1000.0 vp 0
0A8C: write_memory 0x8D06F0 size 4 value -1373.0 vp 0
0A8C: write_memory 0x8D06F4 size 4 value 120.0 vp 0
0A8C: write_memory 0x8D06F8 size 4 value 315.0 vp 0
0A8C: write_memory 0x8D06FC size 4 value 1500.0 vp 0
0A8C: write_memory 0x8D0700 size 4 value 1478.0 vp 0
0A8C: write_memory 0x8D0704 size 4 value 1461.0 vp 0
0A8C: write_memory 0x8D0708 size 4 value 90.0 vp 0
0A8C: write_memory 0x8D070C size 4 value 1200.0 vp 0
0A8C: write_memory 0x8D0710 size 4 value 175.0 vp 0
0A8C: write_memory 0x8D0714 size 4 value 2502.0 vp 0
0A8C: write_memory 0x8D0718 size 4 value 180.0 vp 0
0A8C: write_memory 0x8D071C size 4 value 1000.0 vp 0
0051: return
//==============================================================
:ADDLINE
0019: CURRENT_VERTEX_COUNT > 48 // LOCALVAR CMP INT
004D: jump_if_false @LINE_IS_OK
0662: SCRDEBUG PRINTSTRING "LINE POOL EXHAUSTED"
:NOMSG
return
:LINE_IS_OK
050A: DISTANCE = distance_between_XYZ MX MY Z1 and_XYZ PX PY PZ
0092: DISTANCE = float DISTANCE to_integer
0C27: transform world_xyz MX MY Z1 to hud_xy MX MY
0013: MY *= 0.93333333333 // 448.0/480.0
0340: set_text_draw_RGBA 255 255 255 255
033F: set_text_draw_letter_size 0.15 0.95
0342: set_text_draw_centered 1
081C: draw_text_outline 0 RGBA 72 72 255 255
060D: draw_text_shadow 0 rgba 72 72 255 255
0348: enable_text_draw_proportional 0
0087: TEMP = MY // (float) GLOCALVAR ASSIGNMENT FLOAT
000F: TEMP -= 8.0 // LOCALVAR MINUS FLOAT
045A: draw_text_1number MX TEMP GXT 'NUMBER' number DISTANCE // ~1~
0087: TEMP = X1 // (float) GLOCALVAR ASSIGNMENT FLOAT
0087: TEMP2 = Y1 // (float) GLOCALVAR ASSIGNMENT FLOAT
0C28: transform world_xyz X1 Y1 Z1 to screen_xy X1 Y1
001B: 6 > HCKTXTS // LOCALVAR CMP INT
004D: jump_if_false @2MUCHTEXTS
0C30: draw_text TXT at_screen_xy X1 Y1 font 1 proportional 1 align 1 RGBA 255 255 255 255 letter_size 0.15 0.65
000A: HCKTXTS += 1 // LOCALVAR PLUS INT
:2MUCHTEXTS
001B: 0 > RENDERER // LOCALVAR CMP FLOAT
004D: jump_if_false @IMRENDERER
0087: X1 = TEMP // (float) GLOCALVAR ASSIGNMENT FLOAT
0087: Y1 = TEMP2 // (float) GLOCALVAR ASSIGNMENT FLOAT
0C27: transform world_xyz X1 Y1 Z1 to hud_xy X1 Y1
0C27: transform world_xyz X2 Y2 Z2 to hud_xy X2 Y2
0013: Y1 *= 0.93333333333 // 448.0/480.0
0013: Y2 *= 0.93333333333 // 448.0/480.0
0509: TEMP = distance_between_XY X1 Y1 and_XY X2 Y2
0013: TEMP *= -1.25 // LOCALVAR MULTIPLY FLOAT
0063: X1 -= X2 // (float) LOCALVAR MIN FLOAT
0063: Y1 -= Y2 // (float) LOCALVAR MIN FLOAT
0604: get_Z_angle_for_point X1 Y1 store_to TEMP2
074B: draw_texture 5 position MX MY scale 1.0 TEMP angle TEMP2 color_RGBA 72 72 255 255
return
:IMRENDERER
0C28: transform world_xyz X2 Y2 Z2 to screen_xy X2 Y2
const
LINES = TEMP
end
0AC6: LINES = label @LINES offset
const
LINESIZE = 28
end
0085: TEMP2 = CURRENT_VERTEX_COUNT // (int) LOCALVAR ASSIGNMENT INT
0012: TEMP2 *= LINESIZE
005A: LINES += TEMP2 // (int)
000A: CURRENT_VERTEX_COUNT += 2
0A8C: write_memory LINES size 4 value X1 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value Y1 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value Z1 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value 0x0 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value 0xFF4848FF 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value 0x0 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value 0x0 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value X2 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value Y2 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value Z2 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value 0x0 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value 0xFF0000FF 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value 0x0 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
0A8C: write_memory LINES size 4 value 0x0 vp 0
000A: LINES += 4 // LOCALVAR PLUS INT
return
:LINES
hex
// 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
// # X # Y # Z # RWH # B G R A # U # V #
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
end
{$INCLUDE plhudairports.txt}
:INFOSTRING
hex
"runways_loaded pl_runway_helper_v17" 00
end
:INFOSTRING2
hex
"meters_view_distance" 00
end
0A93: end_custom_thread