Advertisement
Hird194

Unexpected end of file found after '{' at line 73

Oct 23rd, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 53.40 KB | None | 0 0
  1. /*
  2. Copyright © CD Projekt RED 2015
  3. */
  4.  
  5. struct SMenuTab
  6. {
  7. var MenuName : name;
  8. var MenuLabel : string;
  9. var Visible : bool;
  10. var Enabled : bool;
  11. var Restricted : bool;
  12. var ParentMenu : name;
  13. var MenuState : name;
  14. };
  15.  
  16. class CR4CommonMenu extends CR4MenuBase
  17. {
  18. private var m_menuData : array< SMenuTab >;
  19. private var m_subMenuData : array< SMenuTab >;
  20. private var m_lastMenuName : name;
  21.  
  22. public var m_hubEnabled : bool;
  23.  
  24. private var m_lockedInHub : bool; default m_lockedInHub = false;
  25. private var m_lockedInMenu : bool; default m_lockedInMenu = false;
  26.  
  27. public var m_contextInputBlocked : bool; default m_contextInputBlocked = false;
  28.  
  29. private var m_fxSubMenuClosed : CScriptedFlashFunction;
  30. private var m_fxUpdateLevel : CScriptedFlashFunction;
  31. private var m_fxUpdateMoney : CScriptedFlashFunction;
  32. private var m_fxUpdateWeight : CScriptedFlashFunction;
  33. private var m_fxNavigateNext : CScriptedFlashFunction;
  34. private var m_fxNavigatePrior : CScriptedFlashFunction;
  35. private var m_fxSelectSubMenuTab : CScriptedFlashFunction;
  36. private var m_fxSetShopInventory : CScriptedFlashFunction;
  37. private var m_fxUpdateTabEnabled : CScriptedFlashFunction;
  38. private var m_fxLockOpenTabNavigation : CScriptedFlashFunction;
  39. private var m_fxBlockMenuClosing : CScriptedFlashFunction;
  40. private var m_fxBlockHubClosing : CScriptedFlashFunction;
  41. private var m_fxSetInputFeedbackVisibility : CScriptedFlashFunction;
  42. private var m_fxSetPlayerDefailsVis : CScriptedFlashFunction;
  43. private var m_fxSetMeditationBackgroundMode : CScriptedFlashFunction;
  44. private var m_fxOnChildMenuConfigured : CScriptedFlashFunction;
  45.  
  46. private var m_fxSelectTab : CScriptedFlashFunction;
  47. private var m_fxEnterCurrentTab : CScriptedFlashFunction;
  48.  
  49. protected var m_defaultBindings : array<SKeyBinding>;
  50. protected var m_contextBindings : array<SKeyBinding>;
  51. protected var m_GFxBindings : array<SKeyBinding>;
  52.  
  53. public var m_contextManager : W3ContextManager;
  54. //---=== modFriendlyMeditation ===---
  55. //public var m_mode_meditation : bool; default m_mode_meditation = false;
  56. //public var m_had_meditation : bool; default m_had_meditation = false;
  57. //---=== modFriendlyMeditation ===---
  58. private var noSaveLock : int;
  59.  
  60. private var isCiri : bool;
  61.  
  62. protected var inventoryHotkey:EInputKey;
  63. protected var characterHotkey:EInputKey;
  64. protected var mapHotkey:EInputKey;
  65. protected var journalHotkey:EInputKey;
  66. protected var alchemyHotkey:EInputKey;
  67. protected var bestiaryHotkey:EInputKey;
  68. protected var glossaryHotkey:EInputKey;
  69. protected var meditationHotkey:EInputKey;
  70. protected var craftingHotkey:EInputKey;
  71.  
  72. event OnConfigUI()
  73. {
  74. var stateName : name;
  75. var menuName : name;
  76. var initData : W3MenuInitData;
  77. var initMapData : W3MapInitData;
  78. var shouldSkipHub : bool;
  79. var lootPopup : CR4LootPopup;
  80.  
  81. if (!thePlayer.IsAlive() || theGame.HasBlackscreenRequested() || theGame.IsFading())
  82. {
  83. CloseMenu();
  84. return true;
  85. }
  86.  
  87. theGame.CreateNoSaveLock( "fullscreen_ui_panels", noSaveLock, false, false );
  88.  
  89. theGame.GameplayFactsRemove("closingHubMenu");
  90.  
  91. theSound.SoundEvent("system_pause");
  92. fetchCurrentHotkeys();
  93.  
  94. m_initialSelectionsToIgnore = 2;
  95.  
  96. m_hideTutorial = true;
  97. m_forceHideTutorial = false;
  98.  
  99. menuName = theGame.GetMenuToOpen();
  100. shouldSkipHub = menuName != '';
  101.  
  102. if( CheckCraftingComponent() || CheckRepairPanelEnabled() || CheckShopPanelEnabled() )
  103. {
  104. theGame.GameplayFactsAdd("shopMode", 1);
  105. }
  106. else
  107. {
  108. theGame.GameplayFactsRemove("shopMode");
  109. }
  110.  
  111. lootPopup = (CR4LootPopup)theGame.GetGuiManager().GetPopup('LootPopup');
  112.  
  113. if (lootPopup)
  114. {
  115. lootPopup.ClosePopup();
  116. }
  117.  
  118. super.OnConfigUI();
  119.  
  120. if ((W3ReplacerCiri)thePlayer)
  121. {
  122. isCiri = true;
  123. }
  124. else
  125. {
  126. isCiri = false;
  127. }
  128.  
  129. m_hubEnabled = true;
  130.  
  131. GameplayFactsSet("GamePausedNotByUI", (int)theGame.IsGameTimePaused());
  132. theGame.Pause("menus");
  133.  
  134. m_flashModule = GetMenuFlash();
  135. m_fxSubMenuClosed = m_flashModule.GetMemberFlashFunction( "onSubMenuClosed" );
  136. m_fxUpdateLevel = m_flashModule.GetMemberFlashFunction( "updatePlayerLevel" );
  137. m_fxUpdateMoney = m_flashModule.GetMemberFlashFunction( "updateMoney" );
  138. m_fxUpdateWeight = m_flashModule.GetMemberFlashFunction( "updateWeight" );
  139. m_fxNavigateNext = m_flashModule.GetMemberFlashFunction( "handleForceNextTab" );
  140. m_fxNavigatePrior = m_flashModule.GetMemberFlashFunction( "handleForcePriorTab" );
  141. m_fxSelectSubMenuTab = m_flashModule.GetMemberFlashFunction( "enterCurrentlySelectedTab" );
  142. m_fxSetShopInventory = m_flashModule.GetMemberFlashFunction( "setShopInventory" );
  143. m_fxUpdateTabEnabled = m_flashModule.GetMemberFlashFunction( "updateTabEnabled" );
  144. m_fxLockOpenTabNavigation = m_flashModule.GetMemberFlashFunction( "lockOpenTabNavigation" );
  145. m_fxBlockMenuClosing = m_flashModule.GetMemberFlashFunction( "blockMenuClosing" );
  146. m_fxBlockHubClosing = m_flashModule.GetMemberFlashFunction( "blockHubClosing" );
  147. m_fxSetInputFeedbackVisibility = m_flashModule.GetMemberFlashFunction( "SetInputFeedbackVisibility" );
  148. m_fxSetPlayerDefailsVis = m_flashModule.GetMemberFlashFunction( "setPlayerDetailsVisible" );
  149. m_fxSetMeditationBackgroundMode = m_flashModule.GetMemberFlashFunction( "setMeditationBackgroundMode" );
  150. m_fxSelectTab = m_flashModule.GetMemberFlashFunction( "setSelectedTab" );
  151. m_fxEnterCurrentTab = m_flashModule.GetMemberFlashFunction( "enterCurrentlySelectedTab" );
  152. m_fxOnChildMenuConfigured = m_flashModule.GetMemberFlashFunction( "onChildMenuConfigured" );
  153.  
  154. stateName = '';
  155. initData = (W3MenuInitData)GetMenuInitData();
  156. if (initData)
  157. {
  158. stateName = initData.getDefaultState();
  159. }
  160.  
  161. if (theGame.GameplayFactsQuerySum("stashMode") == 1)
  162. {
  163. m_hubEnabled = false;
  164. shouldSkipHub = true;
  165. DefineMenuItem('InventoryMenu', "panel_title_stash");
  166. }
  167. else if( CheckCraftingComponent() || CheckRepairPanelEnabled() || CheckShopPanelEnabled() )
  168. {
  169. AddMerchantTagIfMissing();
  170.  
  171. DefineSceneMenuStructure();
  172. }
  173. else
  174. {
  175. DefineMenuStructure();
  176.  
  177. initMapData = (W3MapInitData)initData;
  178.  
  179. SetMenuTabeEnable( 'InventoryMenu', false, 'HorseInventory');
  180.  
  181. if (menuName == 'MapMenu' && initMapData && ( initMapData.GetTriggeredExitEntity() || initMapData.GetUsedFastTravelEntity() ) )
  182. {
  183.  
  184.  
  185. SetSingleMenuTabEnabled( 'MapMenu' );
  186. m_hubEnabled = false;
  187. }
  188.  
  189.  
  190. else if (menuName == 'InventoryMenu' && stateName == 'SingleHorseInventory')
  191. {
  192. stateName = 'HorseInventory';
  193. SetMenuTabeEnable( 'InventoryMenu', false, 'CharacterInventory');
  194. SetMenuTabeEnable( 'JournalParent', false );
  195. SetMenuTabeEnable( 'GlossaryParent', false );
  196. SetMenuTabeEnable( 'MeditationClockMenu', false );
  197. SetMenuTabeEnable( 'MapMenu', false, 'GlobalMap' );
  198. }
  199.  
  200.  
  201. }
  202. DisableNotAllowedTabs();
  203. UpdateTabs();
  204.  
  205. SetupMenu();
  206. if( menuName == '')
  207. {
  208. if (stateName != '')
  209. {
  210. menuName = GetMenuParentName(stateName);
  211. }
  212. else
  213. {
  214. menuName = 'MapMenu';
  215. stateName = 'GlobalMap';
  216.  
  217. }
  218. }
  219. //---=== modFriendlyMeditation ===---
  220. //else if (menuName == 'MeditationClockMenu')
  221. //{
  222. // SetMeditationMode(true);
  223. //}
  224. //---=== modFriendlyMeditation ===---
  225.  
  226. if (isCiri)
  227. {
  228. m_hubEnabled = false;
  229. m_fxSetPlayerDefailsVis.InvokeSelfOneArg(FlashArgBool(false));
  230.  
  231.  
  232.  
  233.  
  234. shouldSkipHub = true;
  235. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt('MapMenu')), FlashArgString('GlobalMap'));
  236.  
  237. }
  238. else
  239. {
  240. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt(menuName)), FlashArgString(stateName));
  241. }
  242.  
  243. if( shouldSkipHub )
  244. {
  245. m_fxEnterCurrentTab.InvokeSelf();
  246. }
  247.  
  248. theInput.StoreContext( 'EMPTY_CONTEXT' );
  249.  
  250. m_contextManager = new W3ContextManager in this;
  251. m_contextManager.Init(this);
  252.  
  253. m_guiManager.RequestMouseCursor(true);
  254.  
  255. if (theInput.LastUsedPCInput())
  256. {
  257. theGame.MoveMouseTo(0.475, 0.48);
  258. }
  259. public function GetIsPlayerMeditatingInBed() : bool
  260. {
  261. return isPlayerMeditatingInBed;
  262. //---=== modFriendlyMeditation ===---
  263. //public function GetIsPlayerMeditatingInBed() : bool
  264. //{
  265. // return isPlayerMeditatingInBed;
  266. //}
  267. //---=== modFriendlyMeditation ===---
  268.  
  269. protected function GetSavedDataMenuName() : name
  270. {
  271. return theGame.GetMenuToOpen();
  272. }
  273.  
  274. function SaveStateData()
  275. {
  276. m_guiManager.UpdateUISavedData( GetMenuName(), UISavedData.openedCategories, '', UISavedData.selectedModule );
  277. }
  278.  
  279. protected function GetFirstChildMenuName( parentName : name ) : name
  280. {
  281. var i : int;
  282.  
  283. for ( i = 0; i < m_menuData.Size(); i += 1 )
  284. {
  285. if( m_menuData[i].ParentMenu == parentName )
  286. {
  287. return m_menuData[i].MenuName;
  288. }
  289. }
  290. return parentName;
  291. }
  292.  
  293. protected function GetMenuParentName( menuName : name ) : name
  294. {
  295. var i : int;
  296.  
  297. for ( i = 0; i < m_menuData.Size(); i += 1 )
  298. {
  299. if( m_menuData[i].MenuName == menuName )
  300. {
  301. if( m_menuData[i].ParentMenu != '' )
  302. {
  303. return m_menuData[i].ParentMenu;
  304. }
  305. }
  306. else if( m_menuData[i].MenuState == menuName )
  307. {
  308. if( m_menuData[i].ParentMenu != '' )
  309. {
  310. return m_menuData[i].ParentMenu;
  311. }
  312. }
  313. }
  314. return menuName;
  315. }
  316.  
  317. protected function HasMenuDefined( menuName : name ) : bool
  318. {
  319. var i : int;
  320.  
  321. for ( i = 0; i < m_menuData.Size(); i += 1 )
  322. {
  323. if ( m_menuData[i].MenuName == menuName )
  324. {
  325. return true;
  326. }
  327. }
  328.  
  329. return false;
  330. }
  331.  
  332. protected function HasMenuWithStateDefined( menuName : name, stateName : name ) : bool
  333. {
  334. var i : int;
  335.  
  336. for ( i = 0; i < m_menuData.Size(); i += 1 )
  337. {
  338. if ( m_menuData[i].MenuName == menuName && m_menuData[i].MenuState == stateName )
  339. {
  340. return true;
  341. }
  342. }
  343.  
  344. return false;
  345. }
  346.  
  347. protected function GetSavedMenuFromParentName( parentMenuName : name ) : name
  348. {
  349. UISavedData = m_guiManager.GetUISavedData( parentMenuName );
  350. if( UISavedData.selectedTag != '' && HasMenuDefined(UISavedData.selectedTag) )
  351. {
  352. return UISavedData.selectedTag;
  353. }
  354. return parentMenuName;
  355. }
  356.  
  357. event OnClosingMenu()
  358. {
  359. var menuInitData : W3MenuInitData;
  360. //---=== modFriendlyMeditation ===---
  361. //var fastForward : CGameFastForwardSystem;
  362. //var waitt : W3PlayerWitcherStateMeditationWaiting;
  363. //---=== modFriendlyMeditation ===---
  364.  
  365. theSound.SoundEvent("system_resume");
  366. OnPlaySoundEvent( "gui_global_panel_close" );
  367.  
  368. theGame.GameplayFactsRemove("stashMode");
  369.  
  370. //---=== modFriendlyMeditation ===---
  371. //if(thePlayer.GetCurrentStateName() == 'MeditationWaiting')
  372. //{
  373. // waitt = (W3PlayerWitcherStateMeditationWaiting)thePlayer.GetCurrentState();
  374. // if(waitt)
  375. // waitt.RequestWaitStop();
  376. //}
  377. //---=== modFriendlyMeditation ===---
  378.  
  379.  
  380. menuInitData = (W3MenuInitData)GetMenuInitData();
  381. if (menuInitData)
  382. {
  383.  
  384. delete menuInitData;
  385. }
  386. if (m_contextManager)
  387. {
  388. delete m_contextManager;
  389. }
  390.  
  391. //---=== modFriendlyMeditation ===---
  392. //StopMeditation();
  393. //
  394. //
  395. //fastForward = theGame.GetFastForwardSystem();
  396. //fastForward.RequestFastForwardShutdown( true );
  397. //---=== modFriendlyMeditation ===---
  398.  
  399. theGame.Unpause("menus");
  400.  
  401. if (m_configUICalled)
  402. {
  403. theInput.RestoreContext( 'EMPTY_CONTEXT', true );
  404. }
  405.  
  406. theGame.SetMenuToOpen( '' );
  407.  
  408. theGame.ReleaseNoSaveLock(noSaveLock);
  409.  
  410.  
  411. theGame.GameplayFactsAdd("closingHubMenu",1);
  412.  
  413. m_guiManager.RequestMouseCursor(false);
  414.  
  415. super.OnClosingMenu();
  416.  
  417.  
  418. theGame.FadeOutAsync( 0 );
  419. theGame.FadeInAsync( 0.2 );
  420. }
  421.  
  422. public function SetInputFeedbackVisibility( value : bool ):void
  423. {
  424. m_fxSetInputFeedbackVisibility.InvokeSelfOneArg( FlashArgBool(value) );
  425. }
  426.  
  427. public function SwitchToSubMenu( MenuName : name, MenuState : string)
  428. {
  429. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt(MenuName)), FlashArgString(MenuState));
  430. m_fxEnterCurrentTab.InvokeSelf();
  431. }
  432.  
  433. event OnHideChildMenu()
  434. {
  435. var childMenu : CR4MenuBase;
  436.  
  437. if (!m_hubEnabled)
  438. {
  439. CloseMenu();
  440. return true;
  441. }
  442.  
  443. childMenu = GetLastChild();
  444.  
  445. m_fxSubMenuClosed.InvokeSelf();
  446. m_GFxBindings.Clear();
  447. m_defaultBindings.Clear();
  448. m_contextBindings.Clear();
  449. UpdateInputFeedback();
  450.  
  451. if (childMenu)
  452. {
  453. childMenu.CloseMenu();
  454. }
  455. }
  456.  
  457. event OnRequestMenu( MenuName : name, MenuState : string)
  458. {
  459. var menuInitData : W3MenuInitData;
  460. var currentSubMenu : CR4MenuBase;
  461. var parentMenuName : name;
  462. var ignoreSaveData : bool;
  463.  
  464. currentSubMenu = (CR4MenuBase)GetSubMenu();
  465. menuInitData = (W3MenuInitData)GetMenuInitData();
  466. if (menuInitData)
  467. {
  468. ignoreSaveData = menuInitData.ignoreSaveSystem;
  469.  
  470. menuInitData.ignoreSaveSystem = false;
  471. }
  472. if( currentSubMenu && currentSubMenu.GetMenuName() == MenuName )
  473. {
  474. parentMenuName = GetMenuParentName(MenuName);
  475. if ( MenuState != NameToString( GetSavedMenuFromParentName( parentMenuName ) ) )
  476. {
  477. MenuName = GetSavedMenuFromParentName( parentMenuName );
  478. }
  479.  
  480. UISavedData.openedCategories.Clear();
  481. if( MenuState != "" )
  482. {
  483. UISavedData.openedCategories.PushBack( GetPanelStateName(MenuState) );
  484. }
  485. m_guiManager.UpdateUISavedData( parentMenuName, UISavedData.openedCategories, MenuName, UISavedData.selectedModule );
  486.  
  487. if( MenuState != "" )
  488. {
  489. currentSubMenu.SetMenuState(GetPanelStateName(MenuState));
  490. OnPlaySoundEvent( "gui_global_submenu_whoosh" );
  491. }
  492. }
  493. else
  494. {
  495. if (currentSubMenu)
  496. {
  497. OnPlaySoundEvent( "gui_global_submenu_whoosh" );
  498. }
  499. else
  500. {
  501. OnPlaySoundEvent( "gui_global_panel_open" );
  502. }
  503.  
  504. parentMenuName = GetMenuParentName(MenuName);
  505.  
  506. if( MenuName == parentMenuName)
  507. {
  508. if (!ignoreSaveData)
  509. {
  510. MenuName = GetSavedMenuFromParentName( parentMenuName );
  511. }
  512. if( MenuName == parentMenuName )
  513. {
  514. MenuName = GetFirstChildMenuName( parentMenuName );
  515. }
  516. }
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523. if( menuInitData )
  524. {
  525. menuInitData.setDefaultState(GetPanelStateName(MenuState));
  526. m_lastMenuName = MenuName;
  527. RequestSubMenu( MenuName, menuInitData );
  528. }
  529. else
  530. {
  531. if( !GetMenuInitData() && MenuState != "" && MenuState != "None" )
  532. {
  533. menuInitData = new W3MenuInitData in this;
  534. menuInitData.setDefaultState(GetPanelStateName(MenuState));
  535. m_lastMenuName = MenuName;
  536. RequestSubMenu( MenuName, menuInitData );
  537. }
  538. else
  539. {
  540. m_lastMenuName = MenuName;
  541. RequestSubMenu( MenuName, GetMenuInitData());
  542. }
  543. }
  544.  
  545. m_fxLockOpenTabNavigation.InvokeSelfOneArg(FlashArgBool(true));
  546.  
  547. theGame.GetTutorialSystem().uiHandler.OnClosingMenu(GetMenuName());
  548.  
  549. UISavedData.openedCategories.Clear();
  550. if( MenuState != "" && MenuState != "None" )
  551. {
  552. UISavedData.openedCategories.PushBack( GetPanelStateName(MenuState) );
  553. }
  554.  
  555. if( MenuName != parentMenuName )
  556. {
  557. m_fxSelectSubMenuTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt(MenuName)), FlashArgString(MenuState));
  558. }
  559.  
  560. m_guiManager.UpdateUISavedData( GetMenuParentName(parentMenuName), UISavedData.openedCategories, MenuName, UISavedData.selectedModule );
  561. }
  562. m_GFxBindings.Clear();
  563. }
  564.  
  565. public function ChildMenuConfigured() : void
  566. {
  567. m_fxLockOpenTabNavigation.InvokeSelfOneArg(FlashArgBool(false));
  568. m_fxOnChildMenuConfigured.InvokeSelf();
  569. }
  570.  
  571. function GetPanelStateName( stateName : string ) : name
  572. {
  573. switch(stateName)
  574. {
  575. case "CharacterInventory" :
  576. return 'CharacterInventory';
  577. case "HorseInventory" :
  578. return 'HorseInventory';
  579. case "GlobalMap" :
  580. return 'GlobalMap';
  581. case "FastTravel" :
  582. return 'FastTravel';
  583. case "Objectives" :
  584. return 'Objectives';
  585. case "Sockets" :
  586. return 'Sockets';
  587. case "Repair" :
  588. return 'Repair';
  589. case "Disassemble" :
  590. return 'Disassemble';
  591. }
  592. return '';
  593. }
  594.  
  595.  
  596.  
  597. event OnSwipe( swipe : int )
  598. {
  599. var subMenu : CR4MenuBase;
  600.  
  601. LogChannel( 'Gui', "CR4CommonMenu::OnSwipe " + swipe );
  602.  
  603. if ( swipe == 0 )
  604. {
  605.  
  606. GoPriorMenu();
  607. }
  608. else if ( swipe == 1 )
  609. {
  610.  
  611. GoNextMenu();
  612. }
  613. else if ( swipe == 3 )
  614. {
  615.  
  616.  
  617. subMenu = (CR4MenuBase)GetSubMenu();
  618. if ( subMenu )
  619. {
  620. subMenu.OnCloseMenu();
  621. }
  622. }
  623. }
  624.  
  625. event OnInputHandled(NavCode:string, KeyCode:int, ActionId:int)
  626. {
  627. LogChannel('GFX', "OnInputHandled, NavCode: "+NavCode+"; actionId: "+ActionId);
  628. if (m_contextManager && !m_contextInputBlocked)
  629. {
  630. m_contextManager.HandleUserInput(NavCode, ActionId);
  631. }
  632. }
  633.  
  634. public function SetMenuNavigationEnabled(enabled:bool) : void
  635. {
  636. m_flashValueStorage.SetFlashBool( "common.input.navigation.enabled", enabled );
  637. }
  638.  
  639. public function UpdateTutorialRestruction():void
  640. {
  641. CheckTutorialRestrictions();
  642. SetupMenu();
  643. }
  644.  
  645.  
  646. private function DefineMenuStructure() : void
  647. {
  648. var curMenuItem : SMenuTab;
  649. var curMenuSubItems : SMenuTab;
  650.  
  651. m_menuData.Clear();
  652. if (!isCiri)
  653. {
  654. DefineMenuItem('GlossaryParent', "panel_title_glossary");
  655. DefineMenuItem('GlossaryBestiaryMenu', "panel_title_glossary_bestiary",'GlossaryParent');
  656.  
  657.  
  658. DefineMenuItem('GlossaryTutorialsMenu', "panel_title_glossary_tutorials",'GlossaryParent');
  659. DefineMenuItem('GlossaryEncyclopediaMenu', "panel_title_glossary_dictionary",'GlossaryParent');
  660. DefineMenuItem('CraftingMenu', "panel_title_crafting", 'GlossaryParent');
  661.  
  662. DefineMenuItem('AlchemyMenu', "panel_title_alchemy", '');
  663.  
  664.  
  665. DefineMenuItem('InventoryMenu', "panel_inventory", '', 'CharacterInventory');
  666. }
  667.  
  668.  
  669. DefineMenuItem('MapMenu', "panel_title_fullmap", '', 'GlobalMap');
  670.  
  671.  
  672.  
  673. if (!isCiri)
  674. {
  675. DefineMenuItem('JournalQuestMenu', "panel_title_journal_quest", '');
  676.  
  677.  
  678. DefineMenuItem('CharacterMenu', "panel_title_character", '');
  679.  
  680. DefineMenuItem('MeditationClockMenu', "panel_title_meditation", '');
  681.  
  682.  
  683.  
  684.  
  685.  
  686. }
  687.  
  688.  
  689. CheckTutorialRestrictions();
  690. }
  691.  
  692. private function DisableNotAllowedTabs()
  693. {
  694. if( !thePlayer.IsActionAllowed( EIAB_OpenGlossary ))
  695. {
  696. SetMenuTabeEnable( 'GlossaryParent', false );
  697. }
  698. if( !thePlayer.IsActionAllowed( EIAB_OpenJournal ))
  699. {
  700. SetMenuTabeEnable( 'JournalQuestMenu', false );
  701. }
  702. if( !thePlayer.IsActionAllowed( EIAB_OpenMap ) && !isCiri)
  703. {
  704. SetMenuTabeEnable( 'MapMenu', false, 'GlobalMap' );
  705. }
  706. if( !thePlayer.IsActionAllowed( EIAB_OpenInventory ))
  707. {
  708. SetMenuTabeEnable( 'InventoryMenu', false, 'CharacterInventory' );
  709. }
  710. if( !thePlayer.IsActionAllowed( EIAB_OpenAlchemy ))
  711. {
  712. SetMenuTabeEnable( 'AlchemyMenu', false );
  713. }
  714. if( !thePlayer.IsActionAllowed( EIAB_OpenCharacterPanel ))
  715. {
  716. SetMenuTabeEnable( 'CharacterMenu', false );
  717. }
  718. if( !thePlayer.IsActionAllowed( EIAB_OpenPreparation ))
  719. {
  720. SetMenuTabeEnable( 'PreparationMenu', false );
  721. }
  722. if( !thePlayer.IsActionAllowed( EIAB_OpenMeditation ) && !GetIsPlayerMeditatingInBed() )
  723. if( !thePlayer.IsActionAllowed( EIAB_OpenMeditation ))
  724. //---=== modFriendlyMeditation ===---
  725. if( !thePlayer.IsActionAllowed( EIAB_OpenMeditation ) /*&& !isPlayerMeditatingInBed*/ )
  726. //---=== modFriendlyMeditation ===---
  727. {
  728. SetMenuTabeEnable( 'MeditationClockMenu', false );
  729. }
  730.  
  731. }
  732.  
  733. public function ActionBlockStateChange(action:EInputActionBlock, blocked:bool) : void
  734. {
  735. var tabName:name;
  736. var subTabName:name;
  737.  
  738. if( action == EIAB_OpenGlossary )
  739. {
  740. SetMenuTabeEnable( 'GlossaryParent', blocked );
  741. tabName = 'GlossaryParent';
  742. subTabName = '';
  743. }
  744. if( action == EIAB_OpenJournal )
  745. {
  746. SetMenuTabeEnable( 'JournalQuestMenu', blocked );
  747. tabName = 'JournalQuestMenu';
  748. subTabName = '';
  749. }
  750. if( action == EIAB_OpenMap )
  751. {
  752. SetMenuTabeEnable( 'MapMenu', blocked, 'GlobalMap' );
  753. tabName = 'MapMenu';
  754. subTabName = 'GlobalMap';
  755. }
  756. if( action == EIAB_OpenInventory )
  757. {
  758. SetMenuTabeEnable( 'InventoryMenu', blocked, 'CharacterInventory' );
  759. tabName = 'InventoryMenu';
  760. subTabName = 'CharacterInventory';
  761. }
  762. if( action == EIAB_OpenAlchemy )
  763. {
  764. SetMenuTabeEnable( 'AlchemyMenu', blocked );
  765. tabName = 'AlchemyMenu';
  766. subTabName = '';
  767. }
  768. if( action == EIAB_OpenCharacterPanel )
  769. {
  770. SetMenuTabeEnable( 'CharacterMenu', blocked );
  771. tabName = 'CharacterMenu';
  772. subTabName = '';
  773. }
  774. if( action == EIAB_OpenPreparation )
  775. {
  776. SetMenuTabeEnable( 'PreparationMenu', blocked );
  777. tabName = 'PreparationMenu';
  778. subTabName = '';
  779. }
  780. if( action == EIAB_OpenMeditation )
  781. {
  782. SetMenuTabeEnable( 'MeditationClockMenu', blocked );
  783. tabName = 'MeditationClockMenu';
  784. subTabName = '';
  785. }
  786.  
  787. m_fxUpdateTabEnabled.InvokeSelfThreeArgs(FlashArgUInt(NameToFlashUInt(tabName)), FlashArgString(subTabName), FlashArgBool(!blocked));
  788. }
  789.  
  790. private function CheckTutorialRestrictions():void
  791. {
  792. var allowedMenus:array<name>;
  793. var tutorialMgr : CR4TutorialSystem;
  794. var restrictionEnabled:bool;
  795. var curRestriction:bool;
  796. var i, len:int;
  797.  
  798. tutorialMgr = theGame.GetTutorialSystem();
  799. if(tutorialMgr && tutorialMgr.IsRunning())
  800. {
  801. restrictionEnabled = tutorialMgr.IsMenuRestrictionsEnable();
  802. allowedMenus = tutorialMgr.GetAllowedMenuList();
  803. len = m_menuData.Size();
  804. for (i = 0; i < len; i+=1)
  805. {
  806. curRestriction = restrictionEnabled && !allowedMenus.Contains(m_menuData[i].MenuName);
  807. m_menuData[i].Restricted = curRestriction;
  808. }
  809. }
  810. }
  811.  
  812. private function DefineSceneMenuStructure() : void
  813. {
  814. var curMenuItem : SMenuTab;
  815. var curMenuSubItems : SMenuTab;
  816.  
  817. m_menuData.Clear();
  818. if( CheckShopPanelEnabled() )
  819. {
  820. DefineMenuItem('InventoryMenu', "panel_title_shop");
  821. }
  822. if ( CheckAlchemyPanelEnabled() )
  823. {
  824. DefineMenuItem('AlchemyMenu', "panel_title_alchemy", '');
  825. }
  826. if( CheckCraftingComponent() )
  827. {
  828. DefineMenuItem('CraftingParent', "panel_title_crafting");
  829. DefineMenuItem('CraftingMenu', "panel_title_crafting", 'CraftingParent');
  830.  
  831. DefineMenuItem('BlacksmithMenu', "panel_title_blacksmith_repair", 'CraftingParent', 'Repair');
  832. DefineMenuItem('BlacksmithMenu', "panel_title_blacksmith_sockets", 'CraftingParent', 'Sockets');
  833. DefineMenuItem('BlacksmithMenu', "panel_title_blacksmith_disassamble", 'CraftingParent', 'Disassemble');
  834. }
  835. }
  836.  
  837. private function GetInitGameplayEntity():IScriptable
  838. {
  839. var l_obj : IScriptable;
  840. var l_entity : IScriptable;
  841. var l_initData : W3InventoryInitData;
  842.  
  843. l_obj = GetMenuInitData();
  844. l_initData = (W3InventoryInitData)l_obj;
  845. if (l_initData)
  846. {
  847. l_entity = (IScriptable)l_initData.containerNPC;
  848. }
  849. else
  850. {
  851. l_entity = l_obj;
  852. }
  853. return l_entity;
  854. }
  855.  
  856. private function AddMerchantTagIfMissing():void
  857. {
  858. var l_entity : W3MerchantNPC;
  859. var shopInventory : CInventoryComponent;
  860.  
  861. l_entity = (W3MerchantNPC)GetInitGameplayEntity();
  862.  
  863. if (l_entity && !l_entity.HasTag('Merchant'))
  864. {
  865. shopInventory = l_entity.GetInventory();
  866. if (shopInventory && !shopInventory.IsEmpty())
  867. {
  868. l_entity.AddTag('Merchant');
  869. }
  870. }
  871. }
  872.  
  873. private function CheckCraftingComponent() : bool
  874. {
  875. var l_npc : W3MerchantNPC;
  876. var l_component : W3CraftsmanComponent;
  877.  
  878. l_npc = (W3MerchantNPC)GetInitGameplayEntity();
  879. if( l_npc )
  880. {
  881. l_component = (W3CraftsmanComponent)l_npc.GetComponentByClassName('W3CraftsmanComponent');
  882. if( l_component )
  883. {
  884. if( !l_npc.IsCraftingDisabled() )
  885. {
  886. return true;
  887. }
  888. }
  889. }
  890. return false;
  891. }
  892.  
  893. private function CheckRepairPanelEnabled() : bool
  894. {
  895. var l_entity : CGameplayEntity;
  896.  
  897. l_entity = (CGameplayEntity)GetInitGameplayEntity();
  898. if( l_entity )
  899. {
  900. if( l_entity.HasTag('Armorer') || l_entity.HasTag('Blacksmith') )
  901. {
  902. return true;
  903. }
  904. }
  905. return false;
  906. }
  907.  
  908. private function CheckAlchemyPanelEnabled() : bool
  909. {
  910. var l_entity : CGameplayEntity;
  911. var invComponent : CInventoryComponent;
  912.  
  913. l_entity = (CGameplayEntity)GetInitGameplayEntity();
  914. if( l_entity )
  915. {
  916. invComponent = l_entity.GetInventory();
  917.  
  918. if ( invComponent.HasTag('type_herbalist') || invComponent.HasTag('type_alchemist') )
  919. {
  920. return true;
  921. }
  922. }
  923. return false;
  924. }
  925.  
  926. private function CheckShopPanelEnabled() : bool
  927. {
  928. var l_entity : CGameplayEntity;
  929.  
  930. l_entity = (CGameplayEntity)GetInitGameplayEntity();
  931. if( l_entity )
  932. {
  933. if( l_entity.HasTag('Merchant') )
  934. {
  935. return true;
  936. }
  937. }
  938. return false;
  939. }
  940.  
  941. private function DefineMenuItem(itemName:name, itemLabel:string, optional parentMenuItem:name, optional menuState:name) : void
  942. {
  943. var newMenuItem : SMenuTab;
  944.  
  945. newMenuItem.MenuName = itemName;
  946. newMenuItem.MenuLabel = itemLabel;
  947. newMenuItem.Enabled = true;
  948. newMenuItem.Visible = true;
  949. newMenuItem.MenuState = menuState;
  950.  
  951. newMenuItem.ParentMenu = parentMenuItem;
  952. m_menuData.PushBack(newMenuItem);
  953. }
  954.  
  955. private function SetupMenu() : void
  956. {
  957. var l_flashSubArray : CScriptedFlashArray;
  958.  
  959. l_flashSubArray = m_flashValueStorage.CreateTempFlashArray();
  960. GetGFxMenuStruct(l_flashSubArray);
  961.  
  962. m_flashValueStorage.SetFlashArray( "panel.main.setup", l_flashSubArray);
  963. OnRefreshHubInfo(false);
  964. }
  965.  
  966. private function GetGFxMenuStruct(out StructGFx : CScriptedFlashArray) : void
  967. {
  968. var i, j : int;
  969. var subLen : int;
  970. var l_flashObject : CScriptedFlashObject;
  971. var l_flashSubObject : CScriptedFlashObject;
  972. var l_flashSubArray : CScriptedFlashArray;
  973. var CurDataItem : SMenuTab;
  974. var CurSubDataItem : SMenuTab;
  975.  
  976. for ( i = 0; i < m_menuData.Size(); i += 1 )
  977. {
  978. CurDataItem = m_menuData[i];
  979.  
  980. if (CurDataItem.ParentMenu == '')
  981. {
  982. l_flashObject = m_flashValueStorage.CreateTempFlashObject();
  983. GetGFxMenuItem(CurDataItem, l_flashObject);
  984.  
  985.  
  986. l_flashSubArray = m_flashValueStorage.CreateTempFlashArray();
  987. for (j = 0; j < m_menuData.Size(); j+=1)
  988. {
  989. CurSubDataItem = m_menuData[j];
  990. if (CurSubDataItem.ParentMenu == CurDataItem.MenuName)
  991. {
  992. l_flashSubObject = m_flashValueStorage.CreateTempFlashObject();
  993. GetGFxMenuItem(CurSubDataItem, l_flashSubObject);
  994. l_flashSubArray.PushBackFlashObject(l_flashSubObject);
  995. }
  996. }
  997. subLen = l_flashSubArray.GetLength();
  998. l_flashObject.SetMemberFlashArray("subItems", l_flashSubArray);
  999. StructGFx.PushBackFlashObject(l_flashObject);
  1000. }
  1001. }
  1002. }
  1003.  
  1004. private function GetGFxMenuItem(MenuItemData:SMenuTab, out GFxObjectData:CScriptedFlashObject):void
  1005. {
  1006. GFxObjectData.SetMemberFlashUInt("id", NameToFlashUInt(MenuItemData.MenuName));
  1007. GFxObjectData.SetMemberFlashString("name", NameToString(MenuItemData.MenuName));
  1008. GFxObjectData.SetMemberFlashString("icon", NameToString(MenuItemData.MenuName));
  1009. GFxObjectData.SetMemberFlashString("label", GetLocStringByKeyExt(MenuItemData.MenuLabel));
  1010. GFxObjectData.SetMemberFlashString("tabDesc", GetLocStringByKeyExt(MenuItemData.MenuLabel + "_desc"));
  1011. GFxObjectData.SetMemberFlashString("tabNewDesc", "Nothing New");
  1012. GFxObjectData.SetMemberFlashBool("visible", MenuItemData.Visible);
  1013. GFxObjectData.SetMemberFlashBool("enabled", MenuItemData.Enabled && !MenuItemData.Restricted);
  1014. GFxObjectData.SetMemberFlashString("state", MenuItemData.MenuState);
  1015. }
  1016.  
  1017.  
  1018. private function UpdateTabs()
  1019. {
  1020. UpdatePlayerOrens();
  1021. UpdatePlayerLevel();
  1022. UpdateItemsCounter();
  1023. }
  1024.  
  1025. public function SetMenuTabVisible(tabName:name, value:bool) : void
  1026. {
  1027. var j : int;
  1028.  
  1029. for (j = 0; j < m_menuData.Size(); j+=1)
  1030. {
  1031. if (m_menuData[j].MenuName == tabName)
  1032. {
  1033. m_menuData[j].Visible = value;
  1034. }
  1035. }
  1036. }
  1037.  
  1038. public function SetMenuTabeEnable(tabName:name, value:bool, optional stateName:name) : void
  1039. {
  1040. var j : int;
  1041.  
  1042. for (j = 0; j < m_menuData.Size(); j+=1)
  1043. {
  1044. if (m_menuData[j].MenuName == tabName && m_menuData[j].MenuState == stateName)
  1045. {
  1046. m_menuData[j].Enabled = value;
  1047. }
  1048. }
  1049. }
  1050.  
  1051. public function SetSingleMenuTabEnabled( tabName:name ) : void
  1052. {
  1053. var j : int;
  1054.  
  1055. for (j = 0; j < m_menuData.Size(); j+=1)
  1056. {
  1057. if (m_menuData[j].MenuName == tabName )
  1058. {
  1059. m_menuData[j].Enabled = true;
  1060. }
  1061. else
  1062. {
  1063. m_menuData[j].Enabled = false;
  1064. }
  1065. }
  1066. }
  1067.  
  1068. public function GoNextMenu() : void
  1069. {
  1070. m_fxNavigateNext.InvokeSelf();
  1071. }
  1072.  
  1073. public function GoPriorMenu() : void
  1074. {
  1075. m_fxNavigatePrior.InvokeSelf();
  1076. }
  1077.  
  1078. public function ShowBackground(value:bool) : void
  1079. {
  1080. m_flashValueStorage.SetFlashBool( "panel.main.background.shows", value);
  1081. }
  1082.  
  1083. public function UpdatePlayerOrens()
  1084. {
  1085. var orens:int;
  1086. orens = thePlayer.GetMoney();
  1087.  
  1088. m_fxUpdateMoney.InvokeSelfOneArg(FlashArgNumber(orens));
  1089. }
  1090.  
  1091. public function UpdatePlayerLevel()
  1092. {
  1093. var curLevel:int;
  1094. var curExp:float;
  1095. var levelExp:float;
  1096. var targetExp:float;
  1097.  
  1098. curLevel = GetCurrentLevel();
  1099. curExp = GetCurrentExperience();
  1100. levelExp = GetLevelExperience();
  1101. targetExp = GetTargetExperience();
  1102.  
  1103. m_fxUpdateLevel.InvokeSelfThreeArgs( FlashArgUInt( curLevel ), FlashArgNumber( curExp - levelExp ), FlashArgNumber( targetExp - levelExp ) );
  1104. }
  1105.  
  1106. public function UpdateItemsCounter() : int
  1107. {
  1108. var encumbrance : int;
  1109. var encumbranceMax : int;
  1110. var _inv : CInventoryComponent;
  1111. var hasHorseUpgrade : bool;
  1112.  
  1113. _inv = thePlayer.GetInventory();
  1114.  
  1115. encumbrance = (int)GetWitcherPlayer().GetEncumbrance();
  1116. encumbranceMax = (int)GetWitcherPlayer().GetMaxRunEncumbrance(hasHorseUpgrade);
  1117.  
  1118. m_fxUpdateWeight.InvokeSelfTwoArgs( FlashArgUInt(encumbrance), FlashArgUInt(encumbranceMax) );
  1119.  
  1120. return encumbrance;
  1121. }
  1122.  
  1123. private function GetCurrentLevel() : int
  1124. {
  1125. var levelManager : W3LevelManager;
  1126.  
  1127. levelManager = GetWitcherPlayer().levelManager;
  1128.  
  1129. return levelManager.GetLevel();
  1130. }
  1131.  
  1132. private function GetCurrentExperience() : float
  1133. {
  1134. var levelManager : W3LevelManager;
  1135.  
  1136. levelManager = GetWitcherPlayer().levelManager;
  1137.  
  1138. return levelManager.GetPointsTotal(EExperiencePoint);;
  1139. }
  1140.  
  1141. private function GetLevelExperience() : float
  1142. {
  1143. var levelManager : W3LevelManager;
  1144.  
  1145. levelManager = GetWitcherPlayer().levelManager;
  1146. return levelManager.GetTotalExpForCurrLevel();
  1147. }
  1148.  
  1149. private function GetTargetExperience() : float
  1150. {
  1151. var levelManager : W3LevelManager;
  1152.  
  1153. levelManager = GetWitcherPlayer().levelManager;
  1154. return levelManager.GetTotalExpForNextLevel();
  1155. }
  1156.  
  1157. public function SetMenuAlpha( value : int ) : void
  1158. {
  1159. m_flashModule.SetAlpha(value);
  1160. }
  1161.  
  1162. function CloseMenuRequest():void
  1163. {
  1164. var menu : CR4MenuBase;
  1165.  
  1166. menu = (CR4MenuBase)GetSubMenu();
  1167. if( !menu )
  1168. {
  1169. CloseMenu();
  1170. }
  1171. }
  1172.  
  1173. event OnFailedCreateMenu()
  1174. {
  1175.  
  1176.  
  1177. m_fxSubMenuClosed.InvokeSelf();
  1178. m_GFxBindings.Clear();
  1179. m_defaultBindings.Clear();
  1180. m_contextBindings.Clear();
  1181. UpdateInputFeedback();
  1182.  
  1183. }
  1184.  
  1185. function ChildRequestCloseMenu()
  1186. {
  1187. if (!m_hubEnabled)
  1188. {
  1189. CloseMenu();
  1190. }
  1191. else
  1192. {
  1193. theGame.GetTutorialSystem().uiHandler.OnOpeningMenu(GetMenuName());
  1194. }
  1195.  
  1196. m_fxSubMenuClosed.InvokeSelf();
  1197. m_GFxBindings.Clear();
  1198. m_defaultBindings.Clear();
  1199. m_contextBindings.Clear();
  1200. UpdateInputFeedback();
  1201.  
  1202. if( m_parentMenu )
  1203. {
  1204. m_parentMenu.ChildRequestCloseMenu();
  1205. }
  1206. OnPlaySoundEvent("gui_global_panel_close");
  1207. }
  1208.  
  1209. public function UpdateGFxButtons(gfxButtonsList : array<SKeyBinding>, optional populateData:bool):void
  1210. {
  1211. m_GFxBindings = gfxButtonsList;
  1212. if (populateData)
  1213. {
  1214. UpdateInputFeedback();
  1215. }
  1216. }
  1217.  
  1218. public function UpdateDefaultButtons(defaultButtonsList : array<SKeyBinding>, optional populateData:bool):void
  1219. {
  1220. m_defaultBindings = defaultButtonsList;
  1221. if (populateData)
  1222. {
  1223. UpdateInputFeedback();
  1224. }
  1225. }
  1226.  
  1227. public function UpdateContextButtons(contextButtonsList : array<SKeyBinding>, optional populateData:bool):void
  1228. {
  1229. m_contextBindings = contextButtonsList;
  1230. if (populateData)
  1231. {
  1232. UpdateInputFeedback();
  1233. }
  1234. }
  1235.  
  1236. protected function GatherBindersArray(out resultArray : CScriptedFlashArray, bindersList : array<SKeyBinding>, optional level:int, optional isContextBinding:bool)
  1237. {
  1238. var tempFlashObject : CScriptedFlashObject;
  1239. var bindingGFxData : CScriptedFlashObject;
  1240. var curBinding : SKeyBinding;
  1241. var bindingsCount : int;
  1242. var i : int;
  1243.  
  1244. bindingsCount = bindersList.Size();
  1245. for( i =0; i < bindingsCount; i += 1 )
  1246. {
  1247. curBinding = bindersList[i];
  1248. tempFlashObject = m_flashValueStorage.CreateTempFlashObject();
  1249.  
  1250. bindingGFxData = tempFlashObject.CreateFlashObject("red.game.witcher3.data.KeyBindingData");
  1251. bindingGFxData.SetMemberFlashString("gamepad_navEquivalent", curBinding.Gamepad_NavCode );
  1252. bindingGFxData.SetMemberFlashInt("keyboard_keyCode", curBinding.Keyboard_KeyCode );
  1253. if (curBinding.IsLocalized)
  1254. {
  1255. bindingGFxData.SetMemberFlashString("label", curBinding.LocalizationKey );
  1256. }
  1257. else
  1258. {
  1259. bindingGFxData.SetMemberFlashString("label", GetLocStringByKeyExt(curBinding.LocalizationKey) );
  1260. }
  1261. bindingGFxData.SetMemberFlashString("isContextBinding", isContextBinding);
  1262. bindingGFxData.SetMemberFlashInt("level", level);
  1263.  
  1264. resultArray.PushBackFlashObject(bindingGFxData);
  1265. }
  1266. }
  1267.  
  1268. public function UpdateInputFeedback():void
  1269. {
  1270. var gfxDataList : CScriptedFlashArray;
  1271. gfxDataList = m_flashValueStorage.CreateTempFlashArray();
  1272. GatherBindersArray(gfxDataList, m_contextBindings, 2, true);
  1273. GatherBindersArray(gfxDataList, m_GFxBindings, 1);
  1274. GatherBindersArray(gfxDataList, m_defaultBindings, 0);
  1275. m_flashValueStorage.SetFlashArray("common.input.feedback.setup", gfxDataList);
  1276. }
  1277.  
  1278. function PlayOpenSoundEvent()
  1279. {
  1280. if (theGame.GetMenuToOpen() == '')
  1281. {
  1282. OnPlaySoundEvent( "gui_global_panel_open" );
  1283. }
  1284. }
  1285.  
  1286. event OnPlaySoundEvent( soundName : string )
  1287. {
  1288. var currentSubMenu : CR4MenuBase;
  1289.  
  1290. currentSubMenu = (CR4MenuBase)GetSubMenu();
  1291.  
  1292.  
  1293. if (soundName != "gui_global_highlight" || !currentSubMenu)
  1294. {
  1295. super.OnPlaySoundEvent( soundName );
  1296. }
  1297. }
  1298.  
  1299. event OnOpenSubPanel(menuName:name)
  1300. {
  1301.  
  1302. if(theGame.GetTutorialSystem() && theGame.GetTutorialSystem().IsRunning())
  1303. {
  1304. theGame.GetTutorialSystem().uiHandler.OnClosingMenu(GetMenuName());
  1305. theGame.GetTutorialSystem().uiHandler.OnOpeningMenu(menuName);
  1306. }
  1307.  
  1308. LogChannel( 'Gui', "OnOpenSubPanel " + menuName );
  1309. }
  1310.  
  1311. event OnCloseSubPanel(menuName:name)
  1312. {
  1313.  
  1314. if(theGame.GetTutorialSystem() && theGame.GetTutorialSystem().IsRunning())
  1315. {
  1316. theGame.GetTutorialSystem().uiHandler.OnClosingMenu(menuName);
  1317. theGame.GetTutorialSystem().uiHandler.OnOpeningMenu(GetMenuName());
  1318. }
  1319.  
  1320. LogChannel( 'Gui', "OnCloseSubPanel");
  1321. }
  1322.  
  1323. event OnControllerChanged(isGamepad:bool)
  1324. {
  1325.  
  1326. }
  1327.  
  1328.  
  1329. //---=== modFriendlyMeditation ===---
  1330. //public function SetMeditationMode(value:bool):void
  1331. //{
  1332. // if (m_mode_meditation != value)
  1333. // {
  1334. // m_mode_meditation = value;
  1335. //
  1336. //
  1337. //
  1338. //
  1339. //
  1340. // if (m_mode_meditation)
  1341. // {
  1342. // m_had_meditation = true;
  1343. // }
  1344. // }
  1345. //}
  1346. //
  1347. //private function StopMeditation()
  1348. //{
  1349. // var medd : W3PlayerWitcherStateMeditation;
  1350. // var waitt : W3PlayerWitcherStateMeditationWaiting;
  1351. //
  1352. // if (m_had_meditation)
  1353. // {
  1354. // SetMeditationMode(false);
  1355. // if(thePlayer.GetCurrentStateName() == 'MeditationWaiting')
  1356. // {
  1357. // waitt = (W3PlayerWitcherStateMeditationWaiting)thePlayer.GetCurrentState();
  1358. // if(waitt)
  1359. // {
  1360. // waitt.StopRequested();
  1361. // }
  1362. // }
  1363. // else
  1364. // {
  1365. // medd = (W3PlayerWitcherStateMeditation)GetWitcherPlayer().GetCurrentState();
  1366. // if(medd)
  1367. // {
  1368. // medd.StopRequested();
  1369. // }
  1370. // }
  1371. // }
  1372. //}
  1373. //---=== modFriendlyMeditation ===---
  1374.  
  1375.  
  1376.  
  1377. private function SendLastItemInfoData() : void
  1378. {
  1379. var l_flashSubArray : CScriptedFlashArray;
  1380.  
  1381. l_flashSubArray = m_flashValueStorage.CreateTempFlashArray();
  1382. GetNewItemsGFxMenuStruct(l_flashSubArray);
  1383.  
  1384. m_flashValueStorage.SetFlashArray( "panel.main.panelinfo.newestitems", l_flashSubArray);
  1385. }
  1386.  
  1387. private function SendQuestsInfoData() : void
  1388. {
  1389. var l_flashSubArray : CScriptedFlashArray;
  1390.  
  1391. l_flashSubArray = m_flashValueStorage.CreateTempFlashArray();
  1392. GetTrackedQuestGFxMenuStruct(l_flashSubArray);
  1393.  
  1394. m_flashValueStorage.SetFlashArray( "panel.main.panelinfo.quests", l_flashSubArray);
  1395. }
  1396.  
  1397. private function SendGlossaryInfoData() : void
  1398. {
  1399. var l_flashSubArray : CScriptedFlashArray;
  1400.  
  1401. l_flashSubArray = m_flashValueStorage.CreateTempFlashArray();
  1402. GetGlossaryGFxMenuStruct(l_flashSubArray);
  1403.  
  1404. m_flashValueStorage.SetFlashArray( "panel.main.panelinfo.glossary", l_flashSubArray);
  1405. }
  1406.  
  1407. private function SendAlchemyInfoData() : void
  1408. {
  1409. var l_flashSubArray : CScriptedFlashArray;
  1410.  
  1411. l_flashSubArray = m_flashValueStorage.CreateTempFlashArray();
  1412. GetAlchemyGFxMenuStruct(l_flashSubArray);
  1413.  
  1414. m_flashValueStorage.SetFlashArray( "panel.main.panelinfo.alchemy", l_flashSubArray);
  1415. }
  1416.  
  1417. private function SendSkillsInfoData() : void
  1418. {
  1419. var l_flashSubArray : CScriptedFlashArray;
  1420.  
  1421. l_flashSubArray = m_flashValueStorage.CreateTempFlashArray();
  1422. GetSkillGFxMenuStruct(l_flashSubArray);
  1423.  
  1424. m_flashValueStorage.SetFlashArray( "panel.main.panelinfo.skills", l_flashSubArray);
  1425. }
  1426.  
  1427. private function SendMappinInfoData() : void
  1428. {
  1429. var l_flashSubArray : CScriptedFlashArray;
  1430.  
  1431. l_flashSubArray = m_flashValueStorage.CreateTempFlashArray();
  1432. GetMappinGFxMenuStruct(l_flashSubArray);
  1433.  
  1434. m_flashValueStorage.SetFlashArray( "panel.main.panelinfo.map", l_flashSubArray);
  1435. }
  1436.  
  1437. private function GetNewItemsGFxMenuStruct( out StructGFx : CScriptedFlashArray ) : void
  1438. {
  1439. var i : int;
  1440. var l_flashObject : CScriptedFlashObject;
  1441. var newestItems : array < SItemUniqueId >;
  1442. var _inv : CInventoryComponent;
  1443. var item : SItemUniqueId;
  1444. var iconPath : string;
  1445. var itemsDisplayed : int;
  1446. var m_guiManager : CR4GuiManager;
  1447. // modCustomLocalizationFix++
  1448. var itemNameString : string;
  1449. // modCustomLocalizationFix--
  1450.  
  1451. _inv = thePlayer.GetInventory();
  1452. m_guiManager = theGame.GetGuiManager();
  1453. if( !CheckCraftingComponent() && !CheckRepairPanelEnabled() && !CheckShopPanelEnabled() )
  1454. {
  1455. newestItems = m_guiManager.GetNewestItems();
  1456. }
  1457. for ( i = 0; i < newestItems.Size(); i += 1 )
  1458. {
  1459. item = newestItems[i];
  1460. if( _inv.IsIdValid(item) && !( _inv.ItemHasTag( item, 'NoShow' )) )
  1461. {
  1462. l_flashObject = m_flashValueStorage.CreateTempFlashObject();
  1463.  
  1464. iconPath = _inv.GetItemIconPathByUniqueID( item );
  1465. l_flashObject.SetMemberFlashString( "iconName", iconPath );
  1466. l_flashObject.SetMemberFlashString( "category", GetLocStringByKeyExt( "item_category_" + _inv.GetItemCategory( item ) ) + " " + GetItemRarityDescriptionFromInt( _inv.GetItemQuality(item) ) );
  1467. // modCustomLocalizationFix++
  1468. itemNameString = GetLocStringByKeyExt( _inv.GetItemLocalizedNameByUniqueID( item ) );
  1469. if (itemNameString == "")
  1470. itemNameString = _inv.GetItemLocalizedNameByUniqueID( item );
  1471. l_flashObject.SetMemberFlashString( "itemName", itemNameString);
  1472. // modCustomLocalizationFix--
  1473. StructGFx.PushBackFlashObject(l_flashObject);
  1474. }
  1475. }
  1476. m_fxSetShopInventory.InvokeSelfOneArg(FlashArgBool( CheckShopPanelEnabled() || CheckCraftingComponent() ));
  1477. }
  1478.  
  1479. private function GetTrackedQuestGFxMenuStruct( out StructGFx : CScriptedFlashArray ) : void
  1480. {
  1481. var l_flashObject : CScriptedFlashObject;
  1482. var curTrackedQuest : CJournalQuest;
  1483. var curHighlightedObjective : CJournalQuestObjective;
  1484.  
  1485. curTrackedQuest = theGame.GetJournalManager().GetTrackedQuest();
  1486. curHighlightedObjective = theGame.GetJournalManager().GetHighlightedObjective();
  1487.  
  1488. l_flashObject = m_flashValueStorage.CreateTempFlashObject();
  1489. if( curTrackedQuest )
  1490. {
  1491. l_flashObject.SetMemberFlashString( "questName", GetLocStringById( curTrackedQuest.GetTitleStringId() ));
  1492. l_flashObject.SetMemberFlashString( "objectiveName", GetLocStringById( curHighlightedObjective.GetTitleStringId()));
  1493. }
  1494. else
  1495. {
  1496. l_flashObject.SetMemberFlashString( "questName", "");
  1497. l_flashObject.SetMemberFlashString( "objectiveName", "");
  1498. }
  1499. StructGFx.PushBackFlashObject(l_flashObject);
  1500. }
  1501.  
  1502. private function GetGlossaryGFxMenuStruct( out StructGFx : CScriptedFlashArray ) : void
  1503. {
  1504. var l_flashObject : CScriptedFlashObject;
  1505. var m_guiManager : CR4GuiManager;
  1506. var glossaryEntries : array < SGlossaryEntry >;
  1507. var i : int;
  1508. var m_definitionsManager : CDefinitionsManagerAccessor;
  1509.  
  1510. m_guiManager = theGame.GetGuiManager();
  1511. glossaryEntries = m_guiManager.GetNewGlossaryEntries();
  1512. for( i = 0; i < glossaryEntries.Size(); i += 1 )
  1513. {
  1514. l_flashObject = m_flashValueStorage.CreateTempFlashObject();
  1515. l_flashObject.SetMemberFlashString( "topText", GetLocStringByKeyExt( glossaryEntries[i].panelName ));
  1516. if( glossaryEntries[i].newEntry )
  1517. {
  1518. l_flashObject.SetMemberFlashString( "bottomText", GetEntryTitle( glossaryEntries[i].newEntry ));
  1519. }
  1520. else
  1521. {
  1522. m_definitionsManager = theGame.GetDefinitionsManager();
  1523. l_flashObject.SetMemberFlashString( "bottomText", GetLocStringByKeyExt( m_definitionsManager.GetItemLocalisationKeyName( glossaryEntries[i].tag ) ));
  1524. }
  1525. StructGFx.PushBackFlashObject(l_flashObject);
  1526. }
  1527. }
  1528.  
  1529. private function GetAlchemyGFxMenuStruct( out StructGFx : CScriptedFlashArray ) : void
  1530. {
  1531. var l_flashObject : CScriptedFlashObject;
  1532. var m_guiManager : CR4GuiManager;
  1533. var alchemyEntries : array < SGlossaryEntry >;
  1534. var i : int;
  1535. var m_definitionsManager : CDefinitionsManagerAccessor;
  1536.  
  1537. m_guiManager = theGame.GetGuiManager();
  1538. alchemyEntries = m_guiManager.GetNewAlchemyEntries();
  1539. for( i = 0; i < alchemyEntries.Size(); i += 1 )
  1540. {
  1541. l_flashObject = m_flashValueStorage.CreateTempFlashObject();
  1542. l_flashObject.SetMemberFlashString( "topText", GetLocStringByKeyExt( alchemyEntries[i].panelName ));
  1543. m_definitionsManager = theGame.GetDefinitionsManager();
  1544. l_flashObject.SetMemberFlashString( "bottomText", GetLocStringByKeyExt( m_definitionsManager.GetItemLocalisationKeyName( alchemyEntries[i].tag ) ));
  1545. StructGFx.PushBackFlashObject(l_flashObject);
  1546. }
  1547. }
  1548.  
  1549. function GetEntryTitle( journalBase : CJournalBase ) : string
  1550. {
  1551. var journalCreature : CJournalCreature;
  1552. var journalCharacter : CJournalCharacter;
  1553. var journalGlossary : CJournalGlossary;
  1554.  
  1555. journalCreature = (CJournalCreature)journalBase;
  1556. if( journalCreature )
  1557. {
  1558. return GetLocStringById( journalCreature.GetNameStringId() );
  1559. }
  1560.  
  1561. journalCharacter = (CJournalCharacter)journalBase;
  1562. if( journalCharacter )
  1563. {
  1564. return GetLocStringById( journalCharacter.GetNameStringId() );
  1565. }
  1566.  
  1567. journalGlossary = (CJournalGlossary)journalBase;
  1568. if( journalGlossary )
  1569. {
  1570. return GetLocStringById( journalGlossary.GetTitleStringId() );
  1571. }
  1572. return "";
  1573. }
  1574.  
  1575. private function GetSkillGFxMenuStruct( out StructGFx : CScriptedFlashArray ) : void
  1576. {
  1577. var l_flashObject : CScriptedFlashObject;
  1578. var m_guiManager : CR4GuiManager;
  1579. var skillEntries : array < ESkill >;
  1580. var skillStruct : SSkill;
  1581. var i : int;
  1582. var m_definitionsManager : CDefinitionsManagerAccessor;
  1583.  
  1584. m_guiManager = theGame.GetGuiManager();
  1585. skillEntries = m_guiManager.GetNewSkillsEntries();
  1586. for( i = 0; i < skillEntries.Size(); i += 1 )
  1587. {
  1588. l_flashObject = m_flashValueStorage.CreateTempFlashObject();
  1589. skillStruct = thePlayer.GetPlayerSkill( skillEntries[i] );
  1590. l_flashObject.SetMemberFlashString( "topText", GetLocStringByKeyExt( skillStruct.localisationNameKey ));
  1591.  
  1592. l_flashObject.SetMemberFlashString( "bottomText", GetLocStringByKeyExt( SkillPathTypeToLocalisationKey(skillStruct.skillPath)));
  1593. StructGFx.PushBackFlashObject(l_flashObject);
  1594. }
  1595. }
  1596.  
  1597. private function GetMappinGFxMenuStruct( out StructGFx : CScriptedFlashArray ) : void
  1598. {
  1599. var l_flashObject : CScriptedFlashObject;
  1600. var m_guiManager : CR4GuiManager;
  1601. var mappinEntries : array < SMappinEntry >;
  1602. var i : int;
  1603. var m_definitionsManager : CDefinitionsManagerAccessor;
  1604.  
  1605. m_guiManager = theGame.GetGuiManager();
  1606. mappinEntries = m_guiManager.GetNewMappinEntries();
  1607. for( i = 0; i < mappinEntries.Size(); i += 1 )
  1608. {
  1609. l_flashObject = m_flashValueStorage.CreateTempFlashObject();
  1610.  
  1611. l_flashObject.SetMemberFlashString( "topText", GetLocStringByKeyExt( StrLower("map_location_"+mappinEntries[i].newMappin) ));
  1612. if( mappinEntries[i].newMappinType != '' )
  1613. {
  1614. l_flashObject.SetMemberFlashString( "bottomText", GetLocStringByKeyExt( StrLower("map_location_"+mappinEntries[i].newMappinType) ) );
  1615. l_flashObject.SetMemberFlashString( "type", mappinEntries[i].newMappinType );
  1616. }
  1617. else
  1618. {
  1619. l_flashObject.SetMemberFlashString( "bottomText", "" );
  1620. l_flashObject.SetMemberFlashString( "type", mappinEntries[i].newMappin );
  1621. }
  1622. StructGFx.PushBackFlashObject(l_flashObject);
  1623. }
  1624. }
  1625.  
  1626. event OnRefreshHubInfo( fromAs : bool )
  1627. {
  1628. SendQuestsInfoData();
  1629. SendSkillsInfoData();
  1630. SendLastItemInfoData();
  1631. if( !fromAs )
  1632. {
  1633. SendGlossaryInfoData();
  1634. SendAlchemyInfoData();
  1635. SendMappinInfoData();
  1636. }
  1637. }
  1638.  
  1639. event OnVideoStopped()
  1640. {
  1641. var menuSprite : CScriptedFlashSprite;
  1642. var menuSprite2 : CScriptedFlashSprite;
  1643. var menuStorybook : CR4GlossaryStorybookMenu;
  1644. menuStorybook = (CR4GlossaryStorybookMenu)GetSubMenu();
  1645. if( menuStorybook.bMovieIsPlaying )
  1646. {
  1647. menuSprite2 = this.GetMenuFlash();
  1648. menuSprite2.SetVisible(true);
  1649. menuStorybook.SetMovieIsPlaying( false );
  1650. menuStorybook.ShowMenuAgain();
  1651. }
  1652. }
  1653.  
  1654. public function SetLockedInHub(value:bool) : void
  1655. {
  1656. m_lockedInHub = value;
  1657.  
  1658. m_fxBlockHubClosing.InvokeSelfOneArg( FlashArgBool(value) );
  1659. }
  1660.  
  1661. public function SetLockedInMenu(value:bool)
  1662. {
  1663. var childMenu : CR4MenuBase;
  1664.  
  1665. m_lockedInMenu = value;
  1666.  
  1667. childMenu = GetLastChild();
  1668.  
  1669. if (childMenu)
  1670. {
  1671. childMenu.UpdateRestrictDirectClosing(value);
  1672. }
  1673.  
  1674. m_fxBlockMenuClosing.InvokeSelfOneArg( FlashArgBool(value) );
  1675. }
  1676.  
  1677. public function IsLockedInHub() : bool
  1678. {
  1679. return m_lockedInHub;
  1680. }
  1681.  
  1682. public function IsLockedInMenu() : bool
  1683. {
  1684. return m_lockedInMenu;
  1685. }
  1686.  
  1687. protected function fetchCurrentHotkeys() : void
  1688. {
  1689. var outKeys : array< EInputKey >;
  1690.  
  1691. outKeys.Clear();
  1692. theInput.GetPCKeysForAction('PanelInv', outKeys);
  1693. if (outKeys.Size() > 0)
  1694. {
  1695. inventoryHotkey = outKeys[0];
  1696. }
  1697. else
  1698. {
  1699. inventoryHotkey = IK_None;
  1700. }
  1701.  
  1702. outKeys.Clear();
  1703. theInput.GetPCKeysForAction('PanelChar', outKeys);
  1704. if (outKeys.Size() > 0)
  1705. {
  1706. characterHotkey = outKeys[0];
  1707. }
  1708. else
  1709. {
  1710. characterHotkey = IK_None;
  1711. }
  1712.  
  1713. outKeys.Clear();
  1714. theInput.GetPCKeysForAction('PanelMapPC', outKeys);
  1715. if (outKeys.Size() > 0)
  1716. {
  1717. mapHotkey = outKeys[0];
  1718. }
  1719. else
  1720. {
  1721. mapHotkey = IK_None;
  1722. }
  1723.  
  1724. outKeys.Clear();
  1725. theInput.GetPCKeysForAction('PanelJour', outKeys);
  1726. if (outKeys.Size() > 0)
  1727. {
  1728. journalHotkey = outKeys[0];
  1729. }
  1730. else
  1731. {
  1732. journalHotkey = IK_None;
  1733. }
  1734.  
  1735. outKeys.Clear();
  1736. theInput.GetPCKeysForAction('PanelAlch', outKeys);
  1737. if (outKeys.Size() > 0)
  1738. {
  1739. alchemyHotkey = outKeys[0];
  1740. }
  1741. else
  1742. {
  1743. alchemyHotkey = IK_None;
  1744. }
  1745.  
  1746. outKeys.Clear();
  1747. theInput.GetPCKeysForAction('PanelBestiary', outKeys);
  1748. if (outKeys.Size() > 0)
  1749. {
  1750. bestiaryHotkey = outKeys[0];
  1751. }
  1752. else
  1753. {
  1754. bestiaryHotkey = IK_None;
  1755. }
  1756.  
  1757. outKeys.Clear();
  1758. theInput.GetPCKeysForAction('PanelGlossary', outKeys);
  1759. if (outKeys.Size() > 0)
  1760. {
  1761. glossaryHotkey = outKeys[0];
  1762. }
  1763. else
  1764. {
  1765. glossaryHotkey = IK_None;
  1766. }
  1767.  
  1768. outKeys.Clear();
  1769. theInput.GetPCKeysForAction('PanelMeditation', outKeys);
  1770. if (outKeys.Size() > 0)
  1771. {
  1772. meditationHotkey = outKeys[0];
  1773. }
  1774. else
  1775. {
  1776. meditationHotkey = IK_None;
  1777. }
  1778.  
  1779. outKeys.Clear();
  1780. theInput.GetPCKeysForAction('PanelCrafting', outKeys);
  1781. if (outKeys.Size() > 0)
  1782. {
  1783. craftingHotkey = outKeys[0];
  1784. }
  1785. else
  1786. {
  1787. craftingHotkey = IK_None;
  1788. }
  1789. }
  1790.  
  1791.  
  1792.  
  1793. event OnHotkeyTriggered(keyCode:EInputKey)
  1794. {
  1795. var childMenu : CR4MenuBase;
  1796. var invMenu : CR4InventoryMenu;
  1797. var charMenu : CR4CharacterMenu;
  1798. var mapMenu : CR4MapMenu;
  1799. var jourMenu : CR4JournalQuestMenu;
  1800. var alchMenu : CR4AlchemyMenu;
  1801. var bestMenu : CR4GlossaryBestiaryMenu;
  1802. var glossMenu : CR4GlossaryEncyclopediaMenu;
  1803. var medMenu : CR4MeditationClockMenu;
  1804. var craftMenu : CR4CraftingMenu;
  1805.  
  1806. childMenu = GetLastChild();
  1807.  
  1808. if (childMenu && !IsLockedInHub() && !IsLockedInMenu())
  1809. {
  1810. if (keyCode == inventoryHotkey)
  1811. {
  1812. invMenu = (CR4InventoryMenu)childMenu;
  1813. if (invMenu)
  1814. {
  1815. invMenu.CloseMenu();
  1816. CloseMenu();
  1817. }
  1818. else if (HasMenuWithStateDefined('InventoryMenu', 'CharacterInventory') && thePlayer.IsActionAllowed( EIAB_OpenInventory ))
  1819. {
  1820. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt('InventoryMenu')), FlashArgString('CharacterInventory'));
  1821. m_fxEnterCurrentTab.InvokeSelf();
  1822. }
  1823. }
  1824. else if (keyCode == characterHotkey)
  1825. {
  1826. charMenu = (CR4CharacterMenu)childMenu;
  1827.  
  1828. if (charMenu)
  1829. {
  1830. charMenu.CloseMenu();
  1831. CloseMenu();
  1832. }
  1833. else if (HasMenuDefined('CharacterMenu') && thePlayer.IsActionAllowed( EIAB_OpenCharacterPanel ))
  1834. {
  1835. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt('CharacterMenu')), FlashArgString(''));
  1836. m_fxEnterCurrentTab.InvokeSelf();
  1837. }
  1838. }
  1839. else if (keyCode == mapHotkey)
  1840. {
  1841. mapMenu = (CR4MapMenu)childMenu;
  1842.  
  1843. if (mapMenu)
  1844. {
  1845. mapMenu.CloseMenu();
  1846. CloseMenu();
  1847. }
  1848. else if (HasMenuWithStateDefined('MapMenu', 'GlobalMap') && thePlayer.IsActionAllowed( EIAB_OpenMap ))
  1849. {
  1850. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt('MapMenu')), FlashArgString('GlobalMap'));
  1851. m_fxEnterCurrentTab.InvokeSelf();
  1852. }
  1853. }
  1854. else if (keyCode == journalHotkey)
  1855. {
  1856. jourMenu = (CR4JournalQuestMenu)childMenu;
  1857.  
  1858. if (jourMenu)
  1859. {
  1860. jourMenu.CloseMenu();
  1861. CloseMenu();
  1862. }
  1863. else if (HasMenuDefined('JournalQuestMenu') && thePlayer.IsActionAllowed( EIAB_OpenJournal ))
  1864. {
  1865. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt('JournalQuestMenu')), FlashArgString(''));
  1866. m_fxEnterCurrentTab.InvokeSelf();
  1867. }
  1868. }
  1869. else if (keyCode == alchemyHotkey)
  1870. {
  1871. alchMenu = (CR4AlchemyMenu)childMenu;
  1872.  
  1873. if (alchMenu)
  1874. {
  1875. alchMenu.CloseMenu();
  1876. CloseMenu();
  1877. }
  1878. else if (HasMenuDefined('AlchemyMenu') && thePlayer.IsActionAllowed( EIAB_OpenAlchemy ))
  1879. {
  1880. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt('AlchemyMenu')), FlashArgString(''));
  1881. m_fxEnterCurrentTab.InvokeSelf();
  1882. }
  1883. }
  1884. else if (keyCode == bestiaryHotkey)
  1885. {
  1886. bestMenu = (CR4GlossaryBestiaryMenu)childMenu;
  1887.  
  1888. if (bestMenu)
  1889. {
  1890. bestMenu.CloseMenu();
  1891. CloseMenu();
  1892. }
  1893. else if (HasMenuDefined('GlossaryBestiaryMenu') && thePlayer.IsActionAllowed( EIAB_OpenGlossary ))
  1894. {
  1895. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt('GlossaryBestiaryMenu')), FlashArgString(''));
  1896. m_fxEnterCurrentTab.InvokeSelf();
  1897. }
  1898. }
  1899. else if (keyCode == glossaryHotkey)
  1900. {
  1901. glossMenu = (CR4GlossaryEncyclopediaMenu)childMenu;
  1902.  
  1903. if (glossMenu)
  1904. {
  1905. glossMenu.CloseMenu();
  1906. CloseMenu();
  1907. }
  1908. else if (HasMenuDefined('GlossaryEncyclopediaMenu') && thePlayer.IsActionAllowed( EIAB_OpenGlossary ))
  1909. {
  1910. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt('GlossaryEncyclopediaMenu')), FlashArgString(''));
  1911. m_fxEnterCurrentTab.InvokeSelf();
  1912. }
  1913. }
  1914. else if (keyCode == meditationHotkey)
  1915. {
  1916. medMenu = (CR4MeditationClockMenu)childMenu;
  1917.  
  1918. if (medMenu)
  1919. {
  1920. medMenu.CloseMenu();
  1921. CloseMenu();
  1922. }
  1923. else if (HasMenuDefined('MeditationClockMenu') && thePlayer.IsActionAllowed( EIAB_OpenMeditation ))
  1924. {
  1925. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt('MeditationClockMenu')), FlashArgString(''));
  1926. m_fxEnterCurrentTab.InvokeSelf();
  1927. }
  1928. }
  1929. else if (keyCode == craftingHotkey && theGame.GameplayFactsQuerySum("shopMode") == 0)
  1930. {
  1931. craftMenu = (CR4CraftingMenu)childMenu;
  1932.  
  1933. if (craftMenu)
  1934. {
  1935. craftMenu.CloseMenu();
  1936. CloseMenu();
  1937. }
  1938. else if (HasMenuDefined('CraftingMenu') && thePlayer.IsActionAllowed( EIAB_OpenGlossary ))
  1939. {
  1940. m_fxSelectTab.InvokeSelfTwoArgs(FlashArgUInt(NameToFlashUInt('CraftingMenu')), FlashArgString(''));
  1941. m_fxEnterCurrentTab.InvokeSelf();
  1942. }
  1943. }
  1944. }
  1945. }
  1946.  
  1947. event OnCloseMenu()
  1948. {
  1949. if (!m_lockedInHub)
  1950. {
  1951. CloseMenu();
  1952. }
  1953. }
  1954. }
  1955.  
  1956. exec function testLockInHub(locked:bool)
  1957. {
  1958. var guiManager : CR4GuiManager;
  1959. var rootMenu : CR4CommonMenu;
  1960.  
  1961. guiManager = theGame.GetGuiManager();
  1962.  
  1963. if (guiManager && guiManager.IsAnyMenu())
  1964. {
  1965. rootMenu = (CR4CommonMenu)guiManager.GetRootMenu();
  1966.  
  1967. if (rootMenu)
  1968. {
  1969. rootMenu.SetLockedInHub(locked);
  1970. }
  1971. }
  1972. }
  1973.  
  1974. exec function testLockInMenu(locked:bool)
  1975. {
  1976. var guiManager : CR4GuiManager;
  1977. var rootMenu : CR4CommonMenu;
  1978.  
  1979. guiManager = theGame.GetGuiManager();
  1980.  
  1981. if (guiManager && guiManager.IsAnyMenu())
  1982. {
  1983. rootMenu = (CR4CommonMenu)guiManager.GetRootMenu();
  1984.  
  1985. if (rootMenu)
  1986. {
  1987. rootMenu.SetLockedInMenu(locked);
  1988. }
  1989. }
  1990. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement