Advertisement
Guest User

Untitled

a guest
Dec 21st, 2015
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.13 KB | None | 0 0
  1. /*
  2. Author: Thomas Ryan
  3.  
  4. Description:
  5. Play a fake UAV observational sequence which serves as an establishing shot.
  6.  
  7. Parameters:
  8. _this select 0: OBJECT or ARRAY - Target position/object
  9. _this select 1: STRING - Text to display
  10. _this select 2 (Optional): NUMBER - Altitude (in meters)
  11. _this select 3 (Optional): NUMBER - Radius of the circular movement (in meters)
  12. _this select 4 (Optional): NUMBER - Viewing angle (in degrees)
  13. _this select 5 (Optional): NUMBER - Direction of camera movement (0: anti-clockwise, 1: clockwise, default: random)
  14. _this select 6 (Optional): ARRAY - Objects/positions/groups to display icons over
  15. Syntax: [[icon, color, target, size X, size Y, angle, text, shadow]]
  16. _this select 7 (Optional): NUMBER - Mode (0: normal (default), 1: world scenes)
  17. _this select 8 (Optional): BOOL - Fade in after completion (default: true)
  18. */
  19.  
  20. private ["_tgt", "_txt", "_alt", "_rad", "_ang", "_dir"];
  21. _tgt = [_this, 0, objNull, [objNull, []]] call BIS_fnc_param;
  22. _txt = [_this, 1, "", [""]] call BIS_fnc_param;
  23. _alt = [_this, 2, 500, [500]] call BIS_fnc_param;
  24. _rad = [_this, 3, 200, [200]] call BIS_fnc_param;
  25. _ang = [_this, 4, random 360, [0]] call BIS_fnc_param;
  26. _dir = [_this, 5, round random 1, [0]] call BIS_fnc_param;
  27.  
  28. BIS_fnc_establishingShot_icons = [_this, 6, [], [[]]] call BIS_fnc_param;
  29.  
  30. private ["_mode"];
  31. _mode = [_this, 7, 0, [0]] call BIS_fnc_param;
  32.  
  33. if (_mode == 0) then {
  34. enableSaving [false, false];
  35. BIS_missionStarted = nil;
  36. };
  37.  
  38. private ["_fade"];
  39. _fade = [_this, 8, true, [true]] call BIS_fnc_param;
  40.  
  41. if (_fade) then {
  42. ["BIS_fnc_establishingShot",false] call BIS_fnc_blackOut;
  43. } else {
  44. 0 fadeSound 0;
  45. titleCut ["", "BLACK FADED", 10e10];
  46. };
  47.  
  48. // Create fake UAV
  49. if (isNil "BIS_fnc_establishingShot_fakeUAV") then {
  50. BIS_fnc_establishingShot_fakeUAV = "Camera" camCreate [10,10,10];
  51. };
  52.  
  53. BIS_fnc_establishingShot_fakeUAV cameraEffect ["INTERNAL", "BACK"];
  54.  
  55. cameraEffectEnableHUD true;
  56.  
  57. private ["_pos", "_coords"];
  58. _pos = if (typeName _tgt == typeName objNull) then {position _tgt} else {_tgt};
  59. _coords = [_pos, _rad, _ang] call BIS_fnc_relPos;
  60. _coords set [2, _alt];
  61.  
  62. BIS_fnc_establishingShot_fakeUAV camPrepareTarget _tgt;
  63. BIS_fnc_establishingShot_fakeUAV camPreparePos _coords;
  64. BIS_fnc_establishingShot_fakeUAV camPrepareFOV 0.700;
  65. BIS_fnc_establishingShot_fakeUAV camCommitPrepared 0;
  66.  
  67. // Timeout the preload after 3 seconds
  68. BIS_fnc_establishingShot_fakeUAV camPreload 3;
  69.  
  70. // Apply post-process effects
  71. private ["_ppColor"];
  72. _ppColor = ppEffectCreate ["colorCorrections", 1999];
  73. _ppColor ppEffectEnable true;
  74. _ppColor ppEffectAdjust [1, 1, 0, [1, 1, 1, 0], [0.8, 0.8, 0.8, 0.65], [1, 1, 1, 1.0]];
  75. _ppColor ppEffectCommit 0;
  76.  
  77. private ["_ppGrain"];
  78. _ppGrain = ppEffectCreate ["filmGrain", 2012];
  79. _ppGrain ppEffectEnable true;
  80. _ppGrain ppEffectAdjust [0.1, 1, 1, 0, 1];
  81. _ppGrain ppEffectCommit 0;
  82.  
  83. // Disable stuff after simulation starts
  84. [] spawn
  85. {
  86. waitUntil {time > 0};
  87. showCinemaBorder false;
  88. enableEnvironment false;
  89. };
  90.  
  91. private ["_SITREP", "_key"];
  92.  
  93. if (_mode == 1) then {
  94. optionsMenuOpened = {
  95. disableSerialization;
  96. {(_x call BIS_fnc_rscLayer) cutText ["", "PLAIN"]} forEach ["BIS_layerStatic", "BIS_layerInterlacing"];
  97. };
  98. } else {
  99. // Compile SITREP text
  100. private ["_month", "_day", "_hour", "_minute"];
  101. _month = str (date select 1);
  102. _day = str (date select 2);
  103. _hour = str (date select 3);
  104. _minute = str (date select 4);
  105.  
  106. if (date select 1 < 10) then {_month = format ["0%1", str (date select 1)]};
  107. if (date select 2 < 10) then {_day = format ["0%1", str (date select 2)]};
  108. if (date select 3 < 10) then {_hour = format ["0%1", str (date select 3)]};
  109. if (date select 4 < 10) then {_minute = format ["0%1", str (date select 4)]};
  110.  
  111. private ["_time", "_date"];
  112. _time = format ["%1:%2", _hour, _minute];
  113. _date = format ["%1-%2-%3", str (date select 0), _month, _day];
  114.  
  115. //_SITREP = format [localize "STR_A3_BIS_fnc_establishingShot_SITREP" + "||%1|%2||" + localize "STR_A3_BIS_fnc_establishingShot_Time", toUpper _txt, _date, _time];
  116.  
  117. _SITREP = [
  118. [_date + " ", ""],
  119. [_time, "font = 'PuristaMedium'"],
  120. ["", "<br/>"],
  121. [toUpper _txt, ""]
  122. ];
  123.  
  124. disableSerialization;
  125.  
  126. waitUntil {!(isNull ([] call BIS_fnc_displayMission))};
  127.  
  128. // Compile key
  129. _key = format ["BIS_%1.%2_establishingShot", missionName, worldName];
  130.  
  131. // Remove eventhandler if it exists (only happens when restarting)
  132. if (!(isNil {uiNamespace getVariable "BIS_fnc_establishingShot_skipEH"})) then {
  133. ([] call BIS_fnc_displayMission) displayRemoveEventHandler ["KeyDown", uiNamespace getVariable "BIS_fnc_establishingShot_skipEH"];
  134. uiNamespace setVariable ["BIS_fnc_establishingShot_skipEH", nil];
  135. };
  136.  
  137. // Add skipping eventhandler
  138. private ["_skipEH"];
  139. _skipEH = ([] call BIS_fnc_displayMission) displayAddEventHandler [
  140. "KeyDown",
  141. format [
  142. "
  143. if (_this select 1 == 57) then {
  144. ([] call BIS_fnc_displayMission) displayRemoveEventHandler ['KeyDown', uiNamespace getVariable 'BIS_fnc_establishingShot_skipEH'];
  145. uiNamespace setVariable ['BIS_fnc_establishingShot_skipEH', nil];
  146.  
  147. playSound ['click', true];
  148.  
  149. activateKey '%1';
  150. BIS_fnc_establishingShot_skip = true;
  151. };
  152.  
  153. if (_this select 1 != 1) then {true};
  154. ",
  155. _key
  156. ]
  157. ];
  158.  
  159. uiNamespace setVariable ["BIS_fnc_establishingShot_skipEH", _skipEH];
  160.  
  161. // Create vignette & tiles
  162. ("BIS_layerEstShot" call BIS_fnc_rscLayer) cutRsc ["RscEstablishingShot", "PLAIN"];
  163.  
  164. // Remove effects if video options opened
  165. optionsMenuOpened = {
  166. disableSerialization;
  167. {(_x call BIS_fnc_rscLayer) cutText ["", "PLAIN"]} forEach ["BIS_layerEstShot", "BIS_layerStatic", "BIS_layerInterlacing"];
  168. };
  169.  
  170. optionsMenuClosed = {
  171. disableSerialization;
  172. ("BIS_layerEstShot" call BIS_fnc_rscLayer) cutRsc ["RscEstablishingShot", "PLAIN"];
  173. };
  174.  
  175. waitUntil {!(isNull (uiNamespace getVariable "RscEstablishingShot"))};
  176. };
  177.  
  178. // Wait for the camera to load
  179. waitUntil {camPreloaded BIS_fnc_establishingShot_fakeUAV || !(isNil "BIS_fnc_establishingShot_skip")};
  180.  
  181. private ["_drawEH"];
  182.  
  183. if (isNil "BIS_fnc_establishingShot_skip") then {
  184. BIS_fnc_establishingShot_playing = true;
  185.  
  186. // Create logic to play sounds
  187. BIS_fnc_establishingShot_logic_group = createGroup sideLogic;
  188. BIS_fnc_establishingShot_logic1 = BIS_fnc_establishingShot_logic_group createUnit ["Logic", [10,10,10], [], 0, "NONE"];
  189. BIS_fnc_establishingShot_logic2 = BIS_fnc_establishingShot_logic_group createUnit ["Logic", [10,10,10], [], 0, "NONE"];
  190. BIS_fnc_establishingShot_logic3 = BIS_fnc_establishingShot_logic_group createUnit ["Logic", [10,10,10], [], 0, "NONE"];
  191.  
  192. [] spawn {
  193. scriptName "BIS_fnc_establishingShot: UAV sound loop";
  194.  
  195. // Determine duration
  196. private ["_sound", "_duration"];
  197. _sound = "UAV_loop";
  198. _duration = getNumber (configFile >> "CfgSounds" >> _sound >> "duration");
  199.  
  200. while {!(isNull BIS_fnc_establishingShot_logic1)} do {
  201. BIS_fnc_establishingShot_logic1 say _sound;
  202. sleep _duration;
  203.  
  204. if (!(isNull BIS_fnc_establishingShot_logic2)) then {
  205. BIS_fnc_establishingShot_logic2 say _sound;
  206. sleep _duration;
  207. };
  208. };
  209. };
  210.  
  211. [] spawn {
  212. scriptName "BIS_fnc_establishingShot: random sounds control";
  213.  
  214. while {!(isNull BIS_fnc_establishingShot_logic3)} do {
  215. // Choose random sound
  216. private ["_sound", "_duration"];
  217. _sound = format ["UAV_0%1", round (1 + random 8)];
  218. _duration = getNumber (configFile >> "CfgSounds" >> _sound >> "duration");
  219.  
  220. BIS_fnc_establishingShot_logic3 say _sound;
  221.  
  222. sleep (_duration + (5 + random 5));
  223. };
  224. };
  225.  
  226. // Move camera in a circle
  227. [_pos, _alt, _rad, _ang, _dir] spawn {
  228. scriptName "BIS_fnc_establishingShot: camera control";
  229.  
  230. private ["_pos", "_alt", "_rad", "_ang", "_dir"];
  231. _pos = _this select 0;
  232. _alt = _this select 1;
  233. _rad = _this select 2;
  234. _ang = _this select 3;
  235. _dir = _this select 4;
  236.  
  237. while {isNil "BIS_missionStarted"} do {
  238. private ["_coords"];
  239. _coords = [_pos, _rad, _ang] call BIS_fnc_relPos;
  240. _coords set [2, _alt];
  241.  
  242. BIS_fnc_establishingShot_fakeUAV camPreparePos _coords;
  243. BIS_fnc_establishingShot_fakeUAV camCommitPrepared 0.5;
  244.  
  245. waitUntil {camCommitted BIS_fnc_establishingShot_fakeUAV || !(isNil "BIS_missionStarted")};
  246.  
  247. BIS_fnc_establishingShot_fakeUAV camPreparePos _coords;
  248. BIS_fnc_establishingShot_fakeUAV camCommitPrepared 0;
  249.  
  250. _ang = if (_dir == 0) then {_ang - 0.5} else {_ang + 0.5};
  251. };
  252. };
  253.  
  254. sleep 1;
  255.  
  256. if (isNil "BIS_fnc_establishingShot_skip") then {
  257. enableEnvironment true;
  258. 2 fadeSound 1;
  259.  
  260. // Static fade-in
  261. ("BIS_layerStatic" call BIS_fnc_rscLayer) cutRsc ["RscStatic", "PLAIN"];
  262. waitUntil {!(isNull (uiNamespace getVariable "RscStatic_display")) || !(isNil "BIS_fnc_establishingShot_skip")};
  263. waitUntil {isNull (uiNamespace getVariable "RscStatic_display") || !(isNil "BIS_fnc_establishingShot_skip")};
  264.  
  265. if (isNil "BIS_fnc_establishingShot_skip") then {
  266. // Show interlacing
  267. ("BIS_layerInterlacing" call BIS_fnc_rscLayer) cutRsc ["RscInterlacing", "PLAIN"];
  268.  
  269. // Show screen
  270. if (_fade) then {
  271. ("BIS_fnc_blackOut" call BIS_fnc_rscLayer) cutText ["","PLAIN",10e10];
  272. } else {
  273. titleCut ["", "PLAIN"];
  274. };
  275.  
  276. // Add interlacing to optionsMenuClosed
  277. optionsMenuClosed = if (_mode == 0) then {
  278. {
  279. ("BIS_layerEstShot" call BIS_fnc_rscLayer) cutRsc ["RscEstablishingShot", "PLAIN"];
  280. ("BIS_layerInterlacing" call BIS_fnc_rscLayer) cutRsc ["RscInterlacing", "PLAIN"];
  281. };
  282. } else {
  283. {
  284. ("BIS_layerInterlacing" call BIS_fnc_rscLayer) cutRsc ["RscInterlacing", "PLAIN"];
  285. };
  286. };
  287.  
  288. // Show icons
  289. if (count BIS_fnc_establishingShot_icons > 0) then {
  290. _drawEH = addMissionEventHandler [
  291. "Draw3D",
  292. {
  293. {
  294. private ["_icon", "_color", "_target", "_sizeX", "_sizeY", "_angle", "_text", "_shadow"];
  295. _icon = [_x, 0, "", [""]] call BIS_fnc_param;
  296. _color = [_x, 1, [], [[]]] call BIS_fnc_param;
  297. _target = [_x, 2, [], [[], objNull, grpNull]] call BIS_fnc_param;
  298. _sizeX = [_x, 3, 1, [1]] call BIS_fnc_param;
  299. _sizeY = [_x, 4, 1, [1]] call BIS_fnc_param;
  300. _angle = [_x, 5, random 360, [0]] call BIS_fnc_param;
  301. _text = [_x, 6, "", [""]] call BIS_fnc_param;
  302. _shadow = [_x, 7, 0, [0]] call BIS_fnc_param;
  303.  
  304. // Determine condition and position
  305. private ["_condition", "_position"];
  306. _condition = true;
  307. _position = _target;
  308.  
  309. switch (typeName _target) do {
  310. // Object
  311. case typeName objNull: {
  312. _condition = alive _target;
  313. _position = getPosATL _target;
  314. };
  315.  
  316. // Group
  317. case typeName grpNull: {
  318. _condition = {alive _x} count units _target > 0;
  319. _position = getPosATL leader _target;
  320. };
  321. };
  322.  
  323. // Draw icon
  324. if (_condition) then {
  325. drawIcon3D [_icon, _color, _position, _sizeX, _sizeY, _angle, _text, _shadow];
  326. };
  327. } forEach BIS_fnc_establishingShot_icons;
  328. }
  329. ];
  330. };
  331.  
  332. if (_mode == 0) then {
  333. // Spawn instructions separately to allow for no delay in skipping
  334. _key spawn {
  335. scriptName "BIS_fnc_establishingShot: instructions control";
  336.  
  337. disableSerialization;
  338.  
  339. private ["_key"];
  340. _key = _this;
  341.  
  342. if (!(isKeyActive _key) && isNil "BIS_fnc_establishingShot_skip") then {
  343. // Display instructions
  344. private ["_layerTitlecard"];
  345. _layerTitlecard = "BIS_layerTitlecard" call BIS_fnc_rscLayer;
  346. _layerTitlecard cutRsc ["RscDynamicText", "PLAIN"];
  347.  
  348. private ["_dispText", "_ctrlText"];
  349. _dispText = uiNamespace getVariable "BIS_dynamicText";
  350. _ctrlText = _dispText displayCtrl 9999;
  351.  
  352. _ctrlText ctrlSetPosition [
  353. 0 * safeZoneW + safeZoneX,
  354. 0.8 * safeZoneH + safeZoneY,
  355. safeZoneW,
  356. safeZoneH
  357. ];
  358.  
  359. // Determine appropriate key highlight
  360. private ["_keyColor"];
  361. _keyColor = format [
  362. "<t color = '%1'>",
  363. (["GUI", "BCG_RGB"] call BIS_fnc_displayColorGet) call BIS_fnc_colorRGBtoHTML
  364. ];
  365.  
  366. private ["_skipText"];
  367. _skipText = format [
  368. localize "STR_A3_BIS_fnc_titlecard_pressSpace",
  369. "<t size = '0.75'>",
  370. _keyColor,
  371. "</t>",
  372. "</t>"
  373. ];
  374.  
  375. _ctrlText ctrlSetStructuredText parseText _skipText;
  376. _ctrlText ctrlSetFade 1;
  377. _ctrlText ctrlCommit 0;
  378.  
  379. _ctrlText ctrlSetFade 0;
  380. _ctrlText ctrlCommit 1;
  381.  
  382. // Wait for video to finish
  383. waitUntil {{!(isNil _x)} count ["BIS_fnc_establishingShot_skip", "BIS_fnc_establishingShot_UAVDone"] > 0};
  384.  
  385. // Remove instructions
  386. _ctrlText ctrlSetFade 1;
  387. _ctrlText ctrlCommit 0;
  388. };
  389. };
  390.  
  391. private ["_time"];
  392. _time = time + 2;
  393. waitUntil {time >= _time || !(isNil "BIS_fnc_establishingShot_skip")};
  394.  
  395. if (isNil "BIS_fnc_establishingShot_skip") then {
  396. /*((uiNamespace getVariable "RscEstablishingShot") displayCtrl 2500) ctrlSetPosition [
  397. (((safeZoneW / safeZoneH) min 1.2) / 40) + safeZoneX,
  398. ((((safeZoneW / safeZoneH) min 1.2) / 1.2) / 25) + safeZoneY,
  399. safeZoneW,
  400. safeZoneH
  401. ];
  402.  
  403. ((uiNamespace getVariable "RscEstablishingShot") displayCtrl 2500) ctrlCommit 0;
  404.  
  405. // Split text to individual characters
  406. private ["_SITREPArray"];
  407. _SITREPArray = toArray _SITREP;
  408. {_SITREPArray set [_forEachIndex, toString [_x]]} forEach _SITREPArray;
  409.  
  410. private ["_scrollIn"];
  411. _scrollIn = _SITREPArray spawn {
  412. disableSerialization;
  413.  
  414. private ["_SITREPArray"];
  415. _SITREPArray = _this;
  416.  
  417. private ["_SITREPCompile", "_SITREPString", "_SITREPParsed"];
  418. _SITREPCompile = "";
  419.  
  420. // Make text scroll in
  421. for "_i" from 0 to (count _SITREPArray - 1) do {
  422. private ["_character", "_delay"];
  423. _character = _SITREPArray select _i;
  424. _delay = if (_character == "|") then {_character = "<br/>"; 1} else {0.01};
  425.  
  426. _SITREPCompile = _SITREPCompile + _character;
  427.  
  428. private [];
  429. _SITREPString = "<t align = 'left' shadow = '1' font = 'EtelkaMonospacePro'>" + _SITREPCompile + "_</t>";
  430. _SITREPParsed = parseText _SITREPString;
  431.  
  432. if (!(isNull (uiNamespace getVariable "RscEstablishingShot"))) then {
  433. ((uiNamespace getVariable "RscEstablishingShot") displayCtrl 2500) ctrlSetStructuredText _SITREPParsed;
  434. ((uiNamespace getVariable "RscEstablishingShot") displayCtrl 2500) ctrlCommit 0;
  435. };
  436.  
  437. sleep _delay;
  438. };
  439.  
  440. if (!(isNull (uiNamespace getVariable "RscEstablishingShot"))) then {
  441. _SITREPString = "<t align = 'left' shadow = '1' font = 'EtelkaMonospacePro'>" + _SITREPCompile + "</t>";
  442. _SITREPParsed = parseText _SITREPString;
  443.  
  444. ((uiNamespace getVariable "RscEstablishingShot") displayCtrl 2500) ctrlSetStructuredText _SITREPParsed;
  445. };
  446.  
  447. sleep 8;
  448. };*/
  449.  
  450. // Display SITREP
  451. BIS_fnc_establishingShot_SITREP = [
  452. _SITREP,
  453. 0.015 * safeZoneW + safeZoneX,
  454. 0.015 * safeZoneH + safeZoneY,
  455. false,
  456. "<t align = 'left' size = '1.0' font = 'PuristaLight'>%1</t>"
  457. ] spawn BIS_fnc_typeText2;
  458.  
  459. waitUntil {scriptDone BIS_fnc_establishingShot_SITREP || !(isNil "BIS_fnc_establishingShot_skip")};
  460.  
  461. private ["_time"];
  462. _time = time + 2;
  463. waitUntil {time >= _time || !(isNil "BIS_fnc_establishingShot_skip")};
  464.  
  465. if (isNil "BIS_fnc_establishingShot_skip") then {
  466. // Register the UAV finished
  467. BIS_fnc_establishingShot_UAVDone = true;
  468. };
  469. };
  470. };
  471. };
  472. };
  473. };
  474.  
  475. if (_mode == 0) then {
  476. waitUntil {{!(isNil _x)} count ["BIS_fnc_establishingShot_skip", "BIS_fnc_establishingShot_UAVDone"] > 0};
  477.  
  478. // Remove skipping eventhandler if it wasn't removed already
  479. if (!(isNil {uiNamespace getVariable "BIS_fnc_establishingShot_skipEH"})) then {
  480. ([] call BIS_fnc_displayMission) displayRemoveEventHandler ["KeyDown", uiNamespace getVariable "BIS_fnc_establishingShot_skipEH"];
  481. uiNamespace setVariable ["BIS_fnc_establishingShot_skipEH", nil];
  482. };
  483.  
  484. // Static fade-out
  485. 2 fadeSound 0;
  486.  
  487. ("BIS_layerStatic" call BIS_fnc_rscLayer) cutRsc ["RscStatic", "PLAIN"];
  488. waitUntil {!(isNull (uiNamespace getVariable "RscStatic_display"))};
  489. waitUntil {isNull (uiNamespace getVariable "RscStatic_display")};
  490.  
  491. // Remove SITREP
  492. if (!(isNil "BIS_fnc_establishingShot_SITREP")) then {
  493. terminate BIS_fnc_establishingShot_SITREP;
  494. ["", 0, 0, 5, 0, 0, 90] spawn BIS_fnc_dynamicText;
  495. };
  496.  
  497. // Delete sound logics and group
  498. {if (!(isNil _x)) then {deleteVehicle (missionNamespace getVariable _x)}} forEach ["BIS_fnc_establishingShot_logic1", "BIS_fnc_establishingShot_logic2", "BIS_fnc_establishingShot_logic3"];
  499. if (!(isNil "BIS_fnc_establishingShot_logic_group")) then {deleteGroup BIS_fnc_establishingShot_logic_group};
  500.  
  501. // Remove HUD
  502. optionsMenuOpened = nil;
  503. optionsMenuClosed = nil;
  504.  
  505. if (!(isNil "_drawEH")) then {
  506. removeMissionEventHandler ["Draw3D", _drawEH];
  507. };
  508.  
  509. if (!(isNull (uiNamespace getVariable "RscEstablishingShot"))) then {
  510. ((uiNamespace getVariable "RscEstablishingShot") displayCtrl 2500) ctrlSetFade 1;
  511. ((uiNamespace getVariable "RscEstablishingShot") displayCtrl 2500) ctrlCommit 0;
  512. };
  513.  
  514. {
  515. private ["_layer"];
  516. _layer = _x call BIS_fnc_rscLayer;
  517. _layer cutText ["", "PLAIN"];
  518. } forEach ["BIS_layerEstShot", "BIS_layerStatic", "BIS_layerInterlacing"];
  519.  
  520. enableEnvironment false;
  521.  
  522. if (_fade) then {
  523. ("BIS_fnc_blackOut" call BIS_fnc_rscLayer) cutText ["","BLACK FADED",10e10];
  524. } else {
  525. titleCut ["", "BLACK FADED", 10e10];
  526. };
  527.  
  528. sleep 1;
  529.  
  530. enableSaving [true, true];
  531.  
  532. BIS_fnc_establishingShot_fakeUAV cameraEffect ["TERMINATE", "BACK"];
  533. camDestroy BIS_fnc_establishingShot_fakeUAV;
  534.  
  535. ppEffectDestroy _ppColor;
  536. ppEffectDestroy _ppGrain;
  537.  
  538. // Clear existing global variables
  539. BIS_fnc_establishingShot_icons = nil;
  540. BIS_fnc_establishingShot_spaceEH = nil;
  541. BIS_fnc_establishingShot_skip = nil;
  542. BIS_fnc_establishingShot_UAVDone = nil;
  543.  
  544. if (_fade) then {
  545. ["BIS_fnc_establishingShot"] call BIS_fnc_blackIn;
  546. };
  547.  
  548. enableEnvironment true;
  549.  
  550. // Start mission
  551. BIS_missionStarted = true;
  552. BIS_fnc_establishingShot_playing = false;
  553. };
  554.  
  555. true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement