Advertisement
Guest User

Untitled

a guest
May 3rd, 2017
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 33.64 KB | None | 0 0
  1. #define PosX0Center 0.50 // 502
  2. #define PosY0Center 0.50 // 49
  3. #define SizeX10deg 0.234
  4. #define SizeY10deg 0.230
  5.  
  6.  
  7. topLeft = "HUD_top_left";
  8. topRight = "HUD_top_right";
  9. bottomLeft = "HUD_bottom_left";
  10. borderLeft = 0;
  11. borderRight = 0;
  12. borderTop = 0;
  13. borderBottom = 0;
  14. color[] = {1.0, 1.0, 1.0, 1.0};
  15. helmetMountedDisplay = true;
  16. helmetPosition[] = {-0.0375, 0.0375, 0.1};
  17. helmetRight[] = {0.075, 0.0, 0.0};
  18. helmetDown[] = {0.0, -0.075, 0.0};
  19. font = LucidaConsoleB;
  20. turret[] = {-2};
  21.  
  22. class Bones
  23. {
  24. class HUDCenter
  25. {
  26. type = fixed;
  27. pos[] = {PosX0Center, PosY0Center};
  28. };
  29.  
  30. class WeaponAim
  31. {
  32. type = vector;
  33. source = weapon;
  34. pos0[] = {PosX0Center, PosY0Center};
  35. pos10[] = {__EVAL(PosX0Center + SizeX10deg), __EVAL(PosY0Center + SizeY10deg)};
  36. };
  37. class WeaponAimRelative: WeaponAim {source = weapontoview;};
  38.  
  39. class VelocityVector
  40. {
  41. type = vector;
  42. source = velocityToView;
  43. pos0[] = {PosX0Center, PosY0Center};
  44. pos10[] = {__EVAL(PosX0Center + SizeX10deg), __EVAL(PosY0Center + SizeY10deg)};
  45. };
  46.  
  47. class ForwardVector
  48. {
  49. type = vector;
  50. source = forward;
  51. pos0[] = {0, 0};
  52. pos10[] = {SizeX10deg, SizeY10deg};
  53. };
  54.  
  55. class HorizonVector
  56. {
  57. type = horizontoview;
  58. pos0[] = {PosX0Center, PosY0Center};
  59. pos10[] = {__EVAL(PosX0Center + SizeX10deg * 1.4142), __EVAL(PosY0Center + SizeY10deg * 1.4142)};
  60. angle = 0;
  61. };
  62.  
  63. class GunnerAim
  64. {
  65. type = vector;
  66. source = weapon;
  67. pos0[] = {0, -0.0025};
  68. pos10[] = {0.01, 0.0025};
  69. };
  70.  
  71. class VerticalSpeedBone
  72. {
  73. type = linear;
  74. source = vspeed;
  75. sourceScale = 1;
  76. min = -10;
  77. max = 10;
  78. minPos[] = {0, -0.32};
  79. maxPos[] = {0, 0.32};
  80. };
  81. class HorizonBankRot
  82. {
  83. type = linear;
  84. source = horizonBank;
  85. min = __EVAL(-3.1416 / 90 * 15);
  86. max = __EVAL(3.1416 / 90 * 15);
  87. minPos[] = {0.41, 0.84};
  88. maxPos[] = {0.59, 0.84};
  89. aspectRatio = 1;
  90. };
  91. class ImpactPoint
  92. {
  93. type = vector;
  94. source = ImpactPointToView;
  95. pos0[] = {0.5, __EVAL(PosY0Center)};
  96. pos10[] = {__EVAL(0.5 + SizeX10deg), __EVAL(PosY0Center + SizeY10deg)};
  97. };
  98. class Target
  99. {
  100. source = targettoview;
  101. type = vector;
  102. pos0[] = {__EVAL(PosX0Center),__EVAL(PosY0Center)};
  103. pos10[] = {__EVAL(PosX0Center+SizeX10deg),__EVAL(PosY0Center+SizeY10deg)};
  104. };
  105. class Limit0109
  106. {
  107. type = limit;
  108. limits[] = {0.1,0.1,0.9,0.9};
  109. };
  110. class LimitWaypoint
  111. {
  112. type = limit;
  113. limits[] = {0.2,0.1,0.8,0.1};
  114. };
  115. class WPPoint
  116. {
  117. type = vector;
  118. source = WPPoint;
  119. pos0[] = {0.5, __EVAL(PosY0Center)};
  120. pos10[] = {__EVAL(0.5 + SizeX10deg), __EVAL(PosY0Center + SizeY10deg)};
  121. };
  122. class WPPointToView: WPPoint
  123. {
  124. source = WPPointToView;
  125. };
  126. #define RADAR_X 903
  127. #define RADAR_Y 820
  128. class RadarHeight
  129. {
  130. type = linear;
  131. source = altitudeAGL;
  132. sourceScale = 1;
  133. sourceOffset = -2;
  134. min = 0;
  135. max = 100; // IRL it's 200 feets ~ 61 meters
  136. minPos[] = {0.RADAR_X,0.18};
  137. maxPos[] = {0.RADAR_X,0.RADAR_Y};
  138. };
  139. class HorizonBankRotFull
  140. {
  141. type = rotational;
  142. source = horizonBank;
  143. center[] = {0, 0};
  144. min = __EVAL(-3.1416);
  145. max = __EVAL(3.1416);
  146. minAngle = __EVAL(-180);
  147. maxAngle = __EVAL(180);
  148. aspectRatio = 1;
  149. };
  150. };
  151.  
  152. class Draw
  153. {
  154. alpha = 1.0;
  155. color[] = {0.25, 1.0, 0.25};
  156. condition = on;
  157.  
  158. class Static
  159. {
  160. type = line;
  161. width = 4.0;
  162. points[] =
  163. {
  164. // Top (heading) line
  165. {{0.5, 0.11}, 1},
  166. {{0.5, 0.14}, 1},{},
  167. // Gunner field rectangle
  168. {{0.4, 0.86}, 1},
  169. {{0.4, 0.94}, 1},
  170. {{0.6, 0.94}, 1},
  171. {{0.6, 0.86}, 1},
  172. {{0.4, 0.86}, 1},
  173. {},
  174. {{0.4, 0.885}, 1},
  175. {{0.408, 0.885}, 1},
  176. {},
  177. {{0.6, 0.885}, 1},
  178. {{0.592, 0.885}, 1},
  179. {},
  180. {{0.5, 0.86}, 1},
  181. {{0.5, 0.868}, 1},
  182. {},
  183. {{0.5, 0.94}, 1},
  184. {{0.5, 0.932}, 1},
  185. {},
  186. {{0.52, 0.86}, 1},{{0.52, 0.82}, 1},
  187. {},
  188. {{0.48, 0.86}, 1},{{0.48, 0.82}, 1},
  189. {},
  190. {{0.55, __EVAL(0.05-0.05)}, 1},
  191. {{0.55, __EVAL(0.09-0.05)}, 1},
  192. {{0.45, __EVAL(0.09-0.05)}, 1},
  193. {{0.45, __EVAL(0.05-0.05)}, 1},
  194. {{0.55, __EVAL(0.05-0.05)}, 1}
  195. };
  196. };
  197.  
  198. class HeadingNumber
  199. {
  200. type = text;
  201. source = Heading;
  202. sourceScale = 1;
  203.  
  204. align = center;
  205. scale = 1;
  206. pos[] = {{0.5, __EVAL(0.056-0.05)}, 1};
  207. right[] = {{0.55, __EVAL(0.056-0.05)}, 1};
  208. down[] = {{0.5, __EVAL(0.096-0.05)}, 1};
  209. };
  210. class HeadingRotation
  211. {
  212. condition = "abs(cameraDir-heading)*( (abs(heading-cameraDir))<=355)-5";
  213. class HeadingHeadNumber
  214. {
  215. type = text;
  216. source = cameraDir;
  217. sourceScale = 1;
  218.  
  219. align = center;
  220. scale = 1;
  221. pos[] = {{0.80-0.302, 0.082-0.025}, 1};
  222. right[] = {{0.83-0.302, 0.082-0.025}, 1};
  223. down[] = {{0.80-0.302, 0.113-0.025}, 1};
  224. };
  225. class HeadingArrow
  226. {
  227. type = line;
  228. width = 3.0;
  229. points[] =
  230. {
  231. #define BSIZE 0.022
  232. { { __EVAL(0.50 - BSIZE) , __EVAL(0.095 - 0.05) },1 },
  233. { { __EVAL(0.50 + BSIZE) , __EVAL(0.095 - 0.05) },1 },
  234. { { __EVAL(0.50 + BSIZE + 0.03) , __EVAL(0.095 - 0.025) },1 },
  235. { { __EVAL(0.50 + BSIZE) , __EVAL(0.095 ) },1 },
  236. { { __EVAL(0.50 - BSIZE) , __EVAL(0.095 ) },1 },
  237. { { __EVAL(0.50 - BSIZE - 0.03) , __EVAL(0.095 - 0.025) },1 },
  238. { { __EVAL(0.50 - BSIZE) , __EVAL(0.095 - 0.05) },1 }, {},
  239. };
  240. };
  241. class HeadingScaleRight
  242. {
  243. clipTL[] = {0.55, 0.05};
  244. clipBR[] = {0.83, 0.11};
  245.  
  246. class lines
  247. {
  248. type = scale;
  249. horizontal = true;
  250. source = heading;
  251. sourceScale = 1;
  252. width = 4.0;
  253.  
  254. top = 0.50;
  255. center = 0.50;
  256. bottom = 0.85;
  257.  
  258. lineXleft = 0.11;
  259. lineYright = 0.10;
  260. lineXleftMajor = 0.11;
  261. lineYrightMajor = 0.09;
  262. majorLineEach = 2;
  263. numberEach = 2;
  264. step = 22.5;
  265. stepSize = __EVAL((0.80 - 0.20) / 8);
  266.  
  267. align = center;
  268. scale = 1;
  269. pos[] = {__EVAL(0.52 - 0.024), 0.05};
  270. right[] = {__EVAL(0.56 - 0.024), 0.05};
  271. down[] = {__EVAL(0.52 - 0.024), 0.09};
  272.  
  273. };
  274. };
  275. class HeadingScaleMidle
  276. {
  277. type = scale;
  278. horizontal = true;
  279. source = heading;
  280. sourceScale = 1;
  281. width = 4.0;
  282.  
  283. top = 0.45;
  284. center = 0.50;
  285. bottom = 0.55;
  286.  
  287. lineXleft = 0.11;
  288. lineYright = 0.10;
  289. lineXleftMajor = 0.11;
  290. lineYrightMajor = 0.10;
  291. majorLineEach = 2;
  292. step = 22.5;
  293. stepSize = __EVAL((0.80 - 0.20) / 8);
  294.  
  295.  
  296. align = center;
  297. scale = 1;
  298.  
  299. numberEach = 0; // hidden
  300. pos[] = {0.47, 0.05};
  301. right[] = {0.50, 0.05};
  302. down[] = {0.45, 0.09};
  303.  
  304. };
  305. class HeadingScaleLeft
  306. {
  307. clipTL[] = {0.18, 0.05};
  308. clipBR[] = {0.45, 0.11};
  309.  
  310. class lines
  311. {
  312. type = scale;
  313. horizontal = true;
  314. source = heading;
  315. sourceScale = 1;
  316. width = 4.0;
  317.  
  318. top = 0.15;
  319. center = 0.50;
  320. bottom = 0.55;
  321.  
  322. lineXleft = 0.11;
  323. lineYright = 0.10;
  324. lineXleftMajor = 0.11;
  325. lineYrightMajor = 0.09;
  326. majorLineEach = 2;
  327. numberEach = 2;
  328. step = 22.5;
  329. stepSize = __EVAL((0.80 - 0.20) / 8);
  330.  
  331. align = center;
  332. scale = 1;
  333.  
  334. pos[] = {__EVAL(0.17-0.024), 0.05};
  335. right[] = {__EVAL(0.21-0.024), 0.05};
  336. down[] = {__EVAL(0.17-0.024), 0.09};
  337. };
  338. };
  339. };
  340. class HeadingScaleFull
  341. {
  342. condition = "4-abs(cameraDir-heading)*( (abs(heading-cameraDir))<=355)";
  343. class HeadingScale
  344. {
  345. clipTL[] = {0.18, 0.0};
  346. clipBR[] = {0.83, 1.0};
  347.  
  348. class lines
  349. {
  350. type = scale;
  351. horizontal = true;
  352. source = heading;
  353. sourceScale = 1;
  354. width = 4.0;
  355.  
  356. top = 0.15;
  357. center = 0.50;
  358. bottom = 0.85;
  359.  
  360. lineXleft = 0.11;
  361. lineYright = 0.10;
  362. lineXleftMajor = 0.11;
  363. lineYrightMajor = 0.09;
  364. majorLineEach = 2;
  365. numberEach = 2;
  366. step = 22.5;
  367. stepSize = __EVAL((0.80 - 0.20) / 8);
  368.  
  369. align = center;
  370. scale = 1;
  371. pos[] = {__EVAL(0.52 - 0.374), 0.05};
  372. right[] = {__EVAL(0.56 - 0.374), 0.05};
  373. down[] = {__EVAL(0.52 - 0.374), 0.09};
  374.  
  375. };
  376. };
  377. };
  378.  
  379. class HorizonBankRot
  380. {
  381. type = polygon;
  382. width = 4.0;
  383.  
  384. #define CIRCLE_POLYGON(STEP_INIT,STEP_SIZE) \
  385. { \
  386. {HorizonBankRot,1,{0,0}, 1}, \
  387. {HorizonBankRot, {__EVAL((0.015) * sin(0+STEP_SIZE*(STEP_INIT+0))), __EVAL(-(0.015) * cos(0+STEP_SIZE*(STEP_INIT+0)) / XtoYscale)}, 1}, \
  388. {HorizonBankRot, {__EVAL((0.015) * sin(0+STEP_SIZE*(STEP_INIT+1))), __EVAL(-(0.015) * cos(0+STEP_SIZE*(STEP_INIT+1)) / XtoYscale)}, 1}, \
  389. {HorizonBankRot, {__EVAL((0.015) * sin(0+STEP_SIZE*(STEP_INIT+2))), __EVAL(-(0.015) * cos(0+STEP_SIZE*(STEP_INIT+2)) / XtoYscale)}, 1}, \
  390. }
  391.  
  392. points[] =
  393. {
  394. CIRCLE_POLYGON(1,10),
  395. CIRCLE_POLYGON(3,10),
  396. CIRCLE_POLYGON(5,10),
  397. CIRCLE_POLYGON(7,10),
  398. CIRCLE_POLYGON(9,10),
  399. CIRCLE_POLYGON(11,10),
  400. CIRCLE_POLYGON(13,10),
  401. CIRCLE_POLYGON(15,10),
  402. CIRCLE_POLYGON(17,10),
  403. CIRCLE_POLYGON(19,10),
  404. CIRCLE_POLYGON(21,10),
  405. CIRCLE_POLYGON(23,10),
  406. CIRCLE_POLYGON(25,10),
  407. CIRCLE_POLYGON(27,10),
  408. CIRCLE_POLYGON(29,10),
  409. CIRCLE_POLYGON(31,10),
  410. CIRCLE_POLYGON(33,10),
  411. CIRCLE_POLYGON(35,10),
  412.  
  413. /*
  414. //CIRCLE(HorizonBankRot, 0.015)
  415. {
  416. {HorizonBankRot,1,{0,0}, 1},
  417. POINT_MARK(HorizonBankRot,0.015,0),
  418. POINT_MARK(HorizonBankRot,0.015,0),
  419. POINT_MARK(HorizonBankRot,0.015,0+),
  420. },
  421. {
  422. {HorizonBankRot,1,{0,0}, 1},
  423. POINT_MARK(HorizonBankRot,0.015,90+45*2),
  424. POINT_MARK(HorizonBankRot,0.015,90+45*1),
  425. POINT_MARK(HorizonBankRot,0.015,90+45*0),
  426. },
  427. {
  428. {HorizonBankRot,1,{0,0}, 1},
  429. POINT_MARK(HorizonBankRot,0.015,90+45*4),
  430. POINT_MARK(HorizonBankRot,0.015,90+45*3),
  431. POINT_MARK(HorizonBankRot,0.015,90+45*2),
  432. },
  433. {
  434. {HorizonBankRot,1,{0,0}, 1},
  435. POINT_MARK(HorizonBankRot,0.015,90+45*6),
  436. POINT_MARK(HorizonBankRot,0.015,90+45*5),
  437. POINT_MARK(HorizonBankRot,0.015,90+45*4),
  438.  
  439. },*/
  440. };
  441. };
  442.  
  443. class CollectiveGroup
  444. {
  445. condition = simulRTD;
  446.  
  447. class CollectiveText
  448. {
  449. type = text;
  450. source = static;
  451. text = "%";
  452.  
  453. align = right;
  454. scale = 1;
  455. pos[] = {{0.22, 0.20}, 1};
  456. right[] = {{0.28, 0.20}, 1};
  457. down[] = {{0.22, 0.24}, 1};
  458. };
  459.  
  460. class CollectiveNumber
  461. {
  462. type = text;
  463. source = rtdCollective;
  464. sourceScale = 100;
  465.  
  466. align = left;
  467. scale = 1;
  468. pos[] = {{0.22, 0.20}, 1};
  469. right[] = {{0.28, 0.20}, 1};
  470. down[] = {{0.22, 0.24}, 1};
  471. };
  472. };
  473.  
  474. class SpeedNumber
  475. {
  476. type = text;
  477. source = speed;
  478. sourceScale = 3.6;
  479.  
  480. align = right;
  481. scale = 1;
  482. pos[] = {{0.16, 0.48}, 1};
  483. right[] = {{0.22, 0.48}, 1};
  484. down[] = {{0.16, 0.52}, 1};
  485. };
  486. class AltNumber
  487. {
  488. type = text;
  489. source = altitudeAGL;
  490. sourceScale = 1;
  491. sourceOffset = -2;
  492.  
  493. align = left;
  494. scale = 1;
  495. pos[] = {{__EVAL(0.84-0.03), 0.48}, 1};
  496. right[] = {{__EVAL(0.90-0.03), 0.48}, 1};
  497. down[] = {{__EVAL(0.84-0.03), 0.52}, 1};
  498. };
  499.  
  500. class HoverMode
  501. {
  502. condition = "autohover";
  503. HUD_TEXT_STATIC(0.005, 0.075 ,0.04, 0.035,right,"HOVER",HoverText)
  504. };
  505. class CruiseMode
  506. {
  507. condition = "((altitudeASL-27) min 1) - autohover";
  508. HUD_TEXT_STATIC(0.005, 0.075 ,0.04, 0.035,right,"CRUISE",CruiseText)
  509.  
  510. class AltNumberASL
  511. {
  512. type = text;
  513. source = altitudeASL;
  514. sourceScale = 1;
  515.  
  516. align = left;
  517. scale = 1;
  518. pos[] = {{__EVAL(0.84-0.03), __EVAL(0.48-0.32)}, 1};
  519. right[] = {{__EVAL(0.90-0.03), __EVAL(0.48-0.32)}, 1};
  520. down[] = {{__EVAL(0.84-0.03), __EVAL(0.52-0.32)}, 1};
  521. };
  522. };
  523. class TransitionMode
  524. {
  525. condition = "((27-altitudeASL) min 1) - autohover";
  526. HUD_TEXT_STATIC(0.005, 0.075 ,0.04, 0.035,right,"TRANS",TransText)
  527. };
  528. class HoverModeHide
  529. {
  530. condition = "1-autohover";
  531.  
  532. class VelocityLine
  533. {
  534. type = line;
  535. width = 4.0;
  536. points[] =
  537. {
  538. CIRCLE(VelocityVector,0.02),{},
  539. {VelocityVector, { 0.04, __EVAL(0/XtoYscale)}, 1}, {VelocityVector, { 0.02, __EVAL(0/XtoYscale)}, 1},{},
  540. {VelocityVector, {-0.04, __EVAL(0/XtoYscale)}, 1}, {VelocityVector, {-0.02, __EVAL(0/XtoYscale)}, 1},{},
  541. {VelocityVector, {0, __EVAL(-0.04/XtoYscale)}, 1}, {VelocityVector, {0, __EVAL(-0.02/XtoYscale)}, 1},{}
  542.  
  543. };
  544. };
  545. };
  546. /* ~~~~ GEAR INFO ~~~~ */
  547. // Group to condition GearText by gear being extended
  548. class GearGroup
  549. {
  550. type = group;
  551. condition = ils;
  552.  
  553. // "GEAR" on gear indicator
  554. class GearText
  555. {
  556. type = text;
  557. source = static;
  558. text = "GEAR";
  559.  
  560. align = right;
  561. scale = 1;
  562. pos[] = {{XY_Scaled(0.015 + 0.00, 0.37 - 0.03)}, 1};
  563. right[] = {{XY_Scaled(0.015 + 0.04, 0.37 - 0.03)}, 1};
  564. down[] = {{XY_Scaled(0.015 + 0.00, 0.37 - 0.00)}, 1};
  565. };
  566. };
  567. class LaserGroup
  568. {
  569. condition = "laseron";
  570.  
  571. HUD_TEXT_STATIC(0.015, 0.370 ,0.04, 0.035,right,"LASER",laserText)
  572. };
  573. class RadarGroup
  574. {
  575. condition = "activeSensorsOn";
  576.  
  577. HUD_TEXT_STATIC(0.015, 0.410 ,0.04, 0.035,right,"RADAR",radarText)
  578. };
  579.  
  580. class VerticalSpeedScale
  581. {
  582. type = line;
  583. width = 4.0;
  584. points[] =
  585. {
  586. // Gunner Aim cross
  587. {WeaponAimRelative,1, { -0.03, 0.0},1},
  588. {WeaponAimRelative,1, { -0.02, 0.0},1},{},
  589. {WeaponAimRelative,1, { 0.02, 0.0},1},
  590. {WeaponAimRelative,1, { 0.03, 0.0},1},{},
  591. {WeaponAimRelative,1, { 0.0, -0.02},1},
  592. {WeaponAimRelative,1, { 0.0, -0.03},1},{},
  593. {WeaponAimRelative,1, { 0.0, 0.02},1},
  594. {WeaponAimRelative,1, { 0.0, 0.03},1},
  595. {},
  596. // Aircraft centerline
  597. {HUDCenter,1, { -0.03, 0.0},1},
  598. {HUDCenter,1, { -0.01, 0.0},1},{},
  599. {HUDCenter,1, { 0.01, 0.0},1},
  600. {HUDCenter,1, { 0.03, 0.0},1},{},
  601. {HUDCenter,1, { 0.0, -0.01},1},
  602. {HUDCenter,1, { 0.0, -0.03},1},{},
  603. {HUDCenter,1, { 0.0, 0.01},1},
  604. {HUDCenter,1, { 0.0, 0.03},1},
  605. {},
  606. // Side vspeed scale
  607. #define SCALE_SPACE 0.032
  608. {{__EVAL(0.870+0.045), __EVAL(0.50 - SCALE_SPACE * 10)}, 1},
  609. {{__EVAL(0.890+0.045), __EVAL(0.50 - SCALE_SPACE * 10)}, 1},{},
  610. {{__EVAL(0.870+0.000), __EVAL(0.50 - SCALE_SPACE * 10)}, 1},
  611. {{__EVAL(0.890+0.000), __EVAL(0.50 - SCALE_SPACE * 10)}, 1},{},
  612.  
  613. {{__EVAL(0.870+0.045), __EVAL(0.50 - SCALE_SPACE * 5)}, 1},
  614. {{__EVAL(0.890+0.045), __EVAL(0.50 - SCALE_SPACE * 5)}, 1}, {},
  615. {{0.870, __EVAL(0.50 - SCALE_SPACE * 5)}, 1},
  616. {{0.890, __EVAL(0.50 - SCALE_SPACE * 5)}, 1}, {},
  617. {{0.875, __EVAL(0.50 - SCALE_SPACE * 4)}, 1},
  618. {{0.885, __EVAL(0.50 - SCALE_SPACE * 4)}, 1}, {},
  619. {{0.875, __EVAL(0.50 - SCALE_SPACE * 3)}, 1},
  620. {{0.885, __EVAL(0.50 - SCALE_SPACE * 3)}, 1}, {},
  621. {{0.875, __EVAL(0.50 - SCALE_SPACE * 2)}, 1},
  622. {{0.885, __EVAL(0.50 - SCALE_SPACE * 2)}, 1}, {},
  623. {{0.875, __EVAL(0.50 - SCALE_SPACE * 1)}, 1},
  624. {{0.885, __EVAL(0.50 - SCALE_SPACE * 1)}, 1}, {},
  625.  
  626. {{0.870, __EVAL(0.50 - SCALE_SPACE * 0)}, 1},
  627. {{0.890, __EVAL(0.50 - SCALE_SPACE * 0)}, 1}, {},
  628. {{__EVAL(0.870+0.045), __EVAL(0.50 - SCALE_SPACE * 0)}, 1},
  629. {{__EVAL(0.890+0.045), __EVAL(0.50 - SCALE_SPACE * 0)}, 1}, {},
  630.  
  631. {{__EVAL(0.870+0.045), __EVAL(0.50 + SCALE_SPACE * 5)}, 1},
  632. {{__EVAL(0.890+0.045), __EVAL(0.50 + SCALE_SPACE * 5)}, 1}, {},
  633. {{0.870, __EVAL(0.50 + SCALE_SPACE * 5)}, 1},
  634. {{0.890, __EVAL(0.50 + SCALE_SPACE * 5)}, 1}, {},
  635. {{0.875, __EVAL(0.50 + SCALE_SPACE * 4)}, 1},
  636. {{0.885, __EVAL(0.50 + SCALE_SPACE * 4)}, 1}, {},
  637. {{0.875, __EVAL(0.50 + SCALE_SPACE * 3)}, 1},
  638. {{0.885, __EVAL(0.50 + SCALE_SPACE * 3)}, 1}, {},
  639. {{0.875, __EVAL(0.50 + SCALE_SPACE * 2)}, 1},
  640. {{0.885, __EVAL(0.50 + SCALE_SPACE * 2)}, 1}, {},
  641. {{0.875, __EVAL(0.50 + SCALE_SPACE * 1)}, 1},
  642. {{0.885, __EVAL(0.50 + SCALE_SPACE * 1)}, 1},{},
  643. // right side
  644. {{__EVAL(0.875+0.045), __EVAL(0.50 + SCALE_SPACE * 6)}, 1},
  645. {{__EVAL(0.885+0.045), __EVAL(0.50 + SCALE_SPACE * 6)}, 1}, {},
  646. {{__EVAL(0.875+0.045), __EVAL(0.50 + SCALE_SPACE * 7)}, 1},
  647. {{__EVAL(0.885+0.045), __EVAL(0.50 + SCALE_SPACE * 7)}, 1}, {},
  648. {{__EVAL(0.875+0.045), __EVAL(0.50 + SCALE_SPACE * 8)}, 1},
  649. {{__EVAL(0.885+0.045), __EVAL(0.50 + SCALE_SPACE * 8)}, 1}, {},
  650. {{__EVAL(0.875+0.045), __EVAL(0.50 + SCALE_SPACE * 9)}, 1},
  651. {{__EVAL(0.885+0.045), __EVAL(0.50 + SCALE_SPACE * 9)}, 1}, {},
  652. {{__EVAL(0.870+0.045), __EVAL(0.50 + SCALE_SPACE * 10)}, 1},
  653. {{__EVAL(0.890+0.045), __EVAL(0.50 + SCALE_SPACE * 10)}, 1},{},
  654. {{__EVAL(0.870+0.000), __EVAL(0.50 + SCALE_SPACE * 10)}, 1},
  655. {{__EVAL(0.890+0.000), __EVAL(0.50 + SCALE_SPACE * 10)}, 1},{},
  656.  
  657. };
  658. };
  659. class VerticalSpeedArrow
  660. {
  661. type = polygon;
  662. points[] =
  663. {
  664. // Side vspeed arrow
  665. {
  666. {VerticalSpeedBone, {0.85, 0.488}, 1},
  667. {VerticalSpeedBone, {0.87, 0.50}, 1},
  668. {VerticalSpeedBone, {0.85, 0.512}, 1},
  669. }
  670. };
  671. };
  672. class RadarAltitude
  673. {
  674. condition = "101-altitudeAGL";
  675. class RadarHeight
  676. {
  677. type =line;
  678. width =15;
  679. points[]=
  680. {
  681. { {0.RADAR_X, 0.RADAR_Y},1},
  682. {RadarHeight, {0, 0.0},1},{},
  683. };
  684. };
  685. };
  686.  
  687.  
  688.  
  689. class HorizonLine
  690. {
  691. condition = "1-autohover";
  692. clipTL[] = {0.2, 0.145};
  693. clipBR[] = {0.8, 0.855};
  694.  
  695. class HorizonLineDraw
  696. {
  697. type = line;
  698. width = 4.0;
  699.  
  700. #define lineSegmentWidth 0.0375
  701. points[] =
  702. {
  703. {HorizonVector, {__EVAL(-6 * lineSegmentWidth), 0.0}, 1},
  704. {HorizonVector, {__EVAL(-5 * lineSegmentWidth), 0.0}, 1},
  705. {},
  706. {HorizonVector, {__EVAL(-4 * lineSegmentWidth), 0.0}, 1},
  707. {HorizonVector, {__EVAL(-3 * lineSegmentWidth), 0.0}, 1},
  708. {},
  709. {HorizonVector, {__EVAL(-2 * lineSegmentWidth), 0.0}, 1},
  710. {HorizonVector, {__EVAL(-1 * lineSegmentWidth), 0.0}, 1},
  711. {},
  712. {HorizonVector, {__EVAL(1 * lineSegmentWidth), 0.0}, 1},
  713. {HorizonVector, {__EVAL(2 * lineSegmentWidth), 0.0}, 1},
  714. {},
  715. {HorizonVector, {__EVAL(3 * lineSegmentWidth), 0.0}, 1},
  716. {HorizonVector, {__EVAL(4 * lineSegmentWidth), 0.0}, 1},
  717. {},
  718. {HorizonVector, {__EVAL(5 * lineSegmentWidth), 0.0}, 1},
  719. {HorizonVector, {__EVAL(6 * lineSegmentWidth), 0.0}, 1}
  720. };
  721. };
  722. };
  723.  
  724. class Gunner
  725. {
  726. type = line;
  727. width = 4.0;
  728. points[] =
  729. {
  730. // Gunner aim rectangle
  731. {GunnerAim, {__EVAL(0.5 - 0.015), __EVAL(0.9 - 0.008)}, 1},
  732. {GunnerAim, {__EVAL(0.5 - 0.015), __EVAL(0.9 + 0.008)}, 1},
  733. {GunnerAim, {__EVAL(0.5 + 0.015), __EVAL(0.9 + 0.008)}, 1},
  734. {GunnerAim, {__EVAL(0.5 + 0.015), __EVAL(0.9 - 0.008)}, 1},
  735. {GunnerAim, {__EVAL(0.5 - 0.015), __EVAL(0.9 - 0.008)}, 1}
  736. };
  737. };
  738.  
  739. class WeaponsText
  740. {
  741. condition = "1- mgun";
  742. class Weapons
  743. {
  744. type = text;
  745. source = weapon;
  746. sourceScale = 1;
  747.  
  748. align = left;
  749. scale = 0.5;
  750. pos[] = {{__EVAL(0.00+0.38), __EVAL(0.000+0.880-0.011)}, 1};
  751. right[] = {{__EVAL(0.035+0.38), __EVAL(0.000+0.880-0.011)}, 1};
  752. down[] = {{__EVAL(0.00+0.38), __EVAL(0.035+0.880-0.011)}, 1};
  753. };
  754. };
  755.  
  756. class Ammo
  757. {
  758. type = text;
  759. source = ammo;
  760. sourceScale = 1;
  761.  
  762. align = left;
  763. scale = 0.5;
  764. pos[] = {{__EVAL(0.00+0.38), __EVAL(0.000+0.880+0.021)}, 1};
  765. right[] = {{__EVAL(0.035+0.38), __EVAL(0.000+0.880+0.021)}, 1};
  766. down[] = {{__EVAL(0.00+0.38), __EVAL(0.035+0.880+0.021)}, 1};
  767. };
  768. class MGun
  769. {
  770. condition = mgun;
  771.  
  772. class Weapons
  773. {
  774. type = text;
  775. source = static;
  776. text = "GUN";
  777. sourceScale = 1;
  778.  
  779. align = left;
  780. scale = 0.5;
  781. pos[] = {{__EVAL(0.00+0.38), __EVAL(0.000+0.880-0.011)}, 1};
  782. right[] = {{__EVAL(0.035+0.38), __EVAL(0.000+0.880-0.011)}, 1};
  783. down[] = {{__EVAL(0.00+0.38), __EVAL(0.035+0.880-0.011)}, 1};
  784. };
  785. class Circle
  786. {
  787. type = line;
  788. width = 4.0;
  789. points[] =
  790. {
  791. POINT_1B(WeaponAimRelative,0.025,0.0),
  792. POINT_1B(WeaponAimRelative,0.010,0.0), {},
  793. POINT_1B(WeaponAimRelative,0.0,0.025),
  794. POINT_1B(WeaponAimRelative,0.0,0.010), {},
  795. POINT_1B(WeaponAimRelative,-0.025,0.0),
  796. POINT_1B(WeaponAimRelative,-0.010,0.0), {},
  797. POINT_1B(WeaponAimRelative,0.0,-0.025),
  798. POINT_1B(WeaponAimRelative,0.0,-0.010), {},
  799. CIRCLE(WeaponAimRelative,0.010)
  800. };
  801. };
  802. };
  803.  
  804. class AAMissile
  805. {
  806. condition = AAmissile;
  807.  
  808. class Circle
  809. {
  810. type = line;
  811. width = 4.0;
  812. points[] =
  813. {
  814. CIRCLE_BIG_2B(ForwardVector,HUDCenter,0.25)
  815. };
  816. };
  817. };
  818.  
  819. class ATMissile
  820. {
  821. condition = ATmissile;
  822.  
  823. class Circle
  824. {
  825. type = line;
  826. width = 4.0;
  827. points[] =
  828. {
  829. {ForwardVector, 1, HUDCenter,{-0.15, __EVAL(-0.15 / XtoYscale)}, 1},
  830. {ForwardVector, 1, HUDCenter,{-0.15, __EVAL(-0.13 / XtoYscale)}, 1},
  831. {},
  832. {ForwardVector, 1, HUDCenter,{-0.15, __EVAL(0.15 / XtoYscale)}, 1},
  833. {ForwardVector, 1, HUDCenter,{-0.15, __EVAL(0.13 / XtoYscale)}, 1},
  834. {},
  835. {ForwardVector, 1, HUDCenter,{0.15, __EVAL(-0.15 / XtoYscale)}, 1},
  836. {ForwardVector, 1, HUDCenter,{0.15, __EVAL(-0.13 / XtoYscale)}, 1},
  837. {},
  838. {ForwardVector, 1, HUDCenter,{0.15, __EVAL(0.15 / XtoYscale)}, 1},
  839. {ForwardVector, 1, HUDCenter,{0.15, __EVAL(0.13 / XtoYscale)}, 1},
  840. {},
  841. {ForwardVector, 1, HUDCenter,{-0.15, __EVAL(-0.15 / XtoYscale)}, 1},
  842. {ForwardVector, 1, HUDCenter,{-0.13, __EVAL(-0.15 / XtoYscale)}, 1},
  843. {},
  844. {ForwardVector, 1, HUDCenter,{-0.15, __EVAL(0.15 / XtoYscale)}, 1},
  845. {ForwardVector, 1, HUDCenter,{-0.13, __EVAL(0.15 / XtoYscale)}, 1},
  846. {},
  847. {ForwardVector, 1, HUDCenter,{0.15, __EVAL(-0.15 / XtoYscale)}, 1},
  848. {ForwardVector, 1, HUDCenter,{0.13, __EVAL(-0.15 / XtoYscale)}, 1},
  849. {},
  850. {ForwardVector, 1, HUDCenter,{0.15, __EVAL(0.15 / XtoYscale)}, 1},
  851. {ForwardVector, 1, HUDCenter,{0.13, __EVAL(0.15 / XtoYscale)}, 1}
  852. };
  853. };
  854. };
  855. class Rockets
  856. {
  857. condition = "rocket";
  858. class RocketDummy
  859. {
  860. type = line;
  861. width = 3.0;
  862. points[] =
  863. {
  864. // top line
  865. {ImpactPoint,{ 0.01, __EVAL(-0.03/XtoYscale)}, 1},
  866. {ImpactPoint,{ -0.01, __EVAL(-0.03/XtoYscale)}, 1},
  867. {},
  868. // bottom line
  869. {ImpactPoint,{ 0.01, __EVAL(0.03/XtoYscale)}, 1},
  870. {ImpactPoint,{ -0.01, __EVAL(0.03/XtoYscale)}, 1},
  871. {},
  872. // middle line
  873. {ImpactPoint,{ 0.00, __EVAL(-0.03/XtoYscale)}, 1},
  874. {ImpactPoint,{ 0.00, __EVAL(0.03/XtoYscale)}, 1},
  875. {}
  876. };
  877. };
  878. };
  879. class WP
  880. {
  881. condition = "wpvalid - autohover";
  882. class WPdist
  883. {
  884. type = text;
  885. source = wpdist;
  886. sourceScale = 0.001;
  887. sourcePrecision = 1;
  888.  
  889. align = left;
  890. scale = 1;
  891. pos[] = {{XY_Scaled(0.135 + 0.00 + 0.10, 0.805 - 0.014 - 0.0035)}, 1};
  892. right[] = {{XY_Scaled(0.135 + 0.04 + 0.10, 0.805 - 0.014 - 0.0035)}, 1};
  893. down[] = {{XY_Scaled(0.135 + 0.00 + 0.10, 0.805 + 0.014 - 0.0035)}, 1};
  894. };
  895. class WPIndex
  896. {
  897. type = text;
  898. source = wpIndex;
  899. sourceScale = 1;
  900. sourceLength = 2;
  901.  
  902. align = right;
  903. scale = 1;
  904. pos[] = {{XY_Scaled(0.125 + 0.00 - 0.029, 0.805 - 0.012 - 0.0035)}, 1};
  905. right[] = {{XY_Scaled(0.125 + 0.03 - 0.029, 0.805 - 0.012 - 0.0035)}, 1};
  906. down[] = {{XY_Scaled(0.125 + 0.00 - 0.029, 0.805 + 0.012 - 0.0035)}, 1};
  907. };
  908. HUD_TEXT_STATIC(0.075, 0.775 ,0.03, 0.025,right,"W",WPstatic)
  909. HUD_TEXT_STATIC(0.075 +0.035, 0.775+0.025 ,0.03, 0.025,right,"A",WPAuto)
  910. HUD_TEXT_STATIC(0.075 +0.16, 0.775 ,0.03, 0.028,right,"KM",WPKM)
  911. HUD_TEXT_STATIC(0.075 +0.11, 0.775+0.025 ,0.03, 0.025,right,"-:--",WPTime)
  912. class WP
  913. {
  914. width = 2;
  915. type = line;
  916. points[] =
  917. {
  918. // Top (waypoint) arrow
  919. {WPPoint, 1 ,LimitWaypoint, 1, {-0.02, 0.04}, 1},
  920. {WPPoint, 1 ,LimitWaypoint, 1, { 0.00, 0.02}, 1},
  921. {WPPoint, 1 ,LimitWaypoint, 1, { 0.02, 0.04}, 1},
  922. {}/*,
  923. {wppointtoview, 1, {HorizonBankRotFull, +0.015, -0.035}, 1},
  924. {wppointtoview, 1, {HorizonBankRotFull, 0.0, 0.0}, 1},
  925. {wppointtoview, 1, {HorizonBankRotFull, -0.015, -0.035}, 1},*/
  926. };
  927. };
  928. };
  929. class WeaponsLocking
  930. {
  931. condition = "missilelocking";
  932. blinkingPattern[] = {0.2, 0.2};
  933. blinkingStartsOn = true;
  934. class Text
  935. {
  936. type = text;
  937. source = static;
  938. text = "LOCKING";
  939. align = center;
  940. scale = 1;
  941. pos[] = {{XY_Scaled(0.493 + 0.00, 0.805 - 0.025)}, 1};
  942. right[] = {{XY_Scaled(0.493 + 0.06, 0.805 - 0.025)}, 1};
  943. down[] = {{XY_Scaled(0.493 + 0.00, 0.805 + 0.025)}, 1};
  944. };
  945. };
  946.  
  947. class IncomingMissile
  948. {
  949. condition = "incomingmissile";
  950. blinkingPattern[] = {0.3, 0.3};
  951. blinkingStartsOn = true;
  952. class Text
  953. {
  954. type = text;
  955. source = static;
  956. text = "!INCOMING MISSILE!";
  957. align = center;
  958. scale = 1;
  959. pos[] = {{XY_Scaled(0.485 + 0.00, 0.42 - 0.20)}, 1};
  960. right[] = {{XY_Scaled(0.485 + 0.06, 0.42 - 0.20)}, 1};
  961. down[] = {{XY_Scaled(0.485 + 0.00, 0.42 - 0.15)}, 1};
  962. };
  963. };
  964.  
  965.  
  966. class RadarTargets
  967. {
  968. class RadarBoxes
  969. {
  970. type = radartoview;
  971. pos0[] = {__EVAL(PosX0Center),__EVAL(PosY0Center)};
  972. pos10[] = {__EVAL((PosX0Center)+(SizeX10deg)),__EVAL((PosY0Center)+(SizeY10deg))};
  973.  
  974. width = 4;
  975. points[]=
  976. {
  977. POINT2(-0.0035,-0.0035),
  978. POINT2(+0.0035,-0.0035),
  979. POINT2(+0.0035,+0.0035),
  980. POINT2(-0.0035,+0.0035),
  981. POINT2(-0.0035,-0.0035)
  982. };
  983. };
  984. };
  985. class TargetDiamond
  986. {
  987. class shape
  988. {
  989. type=line;
  990. width = 3;
  991. points[]={
  992. #define SPACING 0.0025
  993. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 + SPACING * (2+1 ), 0.00)}, 1},
  994. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 + SPACING * (2+3 ), 0.00)}, 1},{},
  995. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 + SPACING * (2+5 ), 0.00)}, 1},
  996. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 + SPACING * (2+7 ), 0.00)}, 1},{},
  997. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 + SPACING * (2+9 ), 0.00)}, 1},
  998. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 + SPACING * (2+11 ), 0.00)}, 1},{},
  999. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 + SPACING * (2+13 ), 0.00)}, 1},
  1000. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 + SPACING * (2+15 ), 0.00)}, 1},{},
  1001. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 + SPACING * (2+17 ), 0.00)}, 1},
  1002. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 + SPACING * (2+19 ), 0.00)}, 1},{},
  1003.  
  1004. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 - SPACING * (2+1 ), 0.00)}, 1},
  1005. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 - SPACING * (2+3 ), 0.00)}, 1},{},
  1006. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 - SPACING * (2+5 ), 0.00)}, 1},
  1007. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 - SPACING * (2+7 ), 0.00)}, 1},{},
  1008. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 - SPACING * (2+9 ), 0.00)}, 1},
  1009. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 - SPACING * (2+11 ), 0.00)}, 1},{},
  1010. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 - SPACING * (2+13 ), 0.00)}, 1},
  1011. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 - SPACING * (2+15 ), 0.00)}, 1},{},
  1012. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 - SPACING * (2+17 ), 0.00)}, 1},
  1013. {Target, 1, Limit0109, 1, {XY_Scaled(0.00 - SPACING * (2+19 ), 0.00)}, 1},{},
  1014.  
  1015. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 + SPACING * (2+1 ))}, 1},
  1016. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 + SPACING * (2+3 ))}, 1},{},
  1017. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 + SPACING * (2+5 ))}, 1},
  1018. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 + SPACING * (2+7 ))}, 1},{},
  1019. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 + SPACING * (2+9 ))}, 1},
  1020. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 + SPACING * (2+11 ))}, 1},{},
  1021. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 + SPACING * (2+13 ))}, 1},
  1022. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 + SPACING * (2+15 ))}, 1},{},
  1023. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 + SPACING * (2+17 ))}, 1},
  1024. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 + SPACING * (2+19 ))}, 1},{},
  1025.  
  1026. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 - SPACING * (2+1 ))}, 1},
  1027. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 - SPACING * (2+3 ))}, 1},{},
  1028. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 - SPACING * (2+5 ))}, 1},
  1029. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 - SPACING * (2+7 ))}, 1},{},
  1030. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 - SPACING * (2+9 ))}, 1},
  1031. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 - SPACING * (2+11 ))}, 1},{},
  1032. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 - SPACING * (2+13 ))}, 1},
  1033. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 - SPACING * (2+15 ))}, 1},{},
  1034. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 - SPACING * (2+17 ))}, 1},
  1035. {Target, 1, Limit0109, 1, {XY_Scaled(0.00, 0.00 - SPACING * (2+19 ))}, 1},{},
  1036. };
  1037. };
  1038. };
  1039. class TargetLocked
  1040. {
  1041. condition = "missilelocked";
  1042. HUD_TEXT_STATIC(0.493,0.820-0.041,0.040,0.031,center,"VALID LOCK",TargetLockedText)
  1043. HUD_TEXT_STATIC(0.127+0.49,0.880-0.011,0.035,0.035,right,"TOF:",TimeOfFlightText)
  1044. HUD_TEXT_STATIC(0.125+0.49,0.880+0.021,0.035,0.035,right,"DIST:",DistanceText)
  1045. class TOF_source
  1046. {
  1047. type = text;
  1048. scale = 1;
  1049. sourceScale = 1;
  1050. source = missileflighttime;
  1051. align = right;
  1052. pos[] = {{__EVAL(0.100+0.639), __EVAL(0.000+0.880-0.011)} ,1};
  1053. right[] = {{__EVAL(0.135+0.639), __EVAL(0.000+0.880-0.011)}, 1};
  1054. down[] = {{__EVAL(0.100+0.639), __EVAL(0.035+0.880-0.011)}, 1};
  1055. };
  1056. class TargetDistance: TOF_source
  1057. {
  1058. source = targetDist;
  1059. sourceLength = 0;
  1060. sourcePrecision = 1;
  1061. sourceScale = 0.001;
  1062. align = right;
  1063. pos[] = {{__EVAL(0.100+0.639), __EVAL(0.000+0.880+0.021)} ,1};
  1064. right[] = {{__EVAL(0.135+0.639), __EVAL(0.000+0.880+0.021)}, 1};
  1065. down[] = {{__EVAL(0.100+0.639), __EVAL(0.035+0.880+0.021)}, 1};
  1066. };
  1067. };
  1068. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement