Advertisement
Guest User

Untitled

a guest
Mar 7th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.05 KB | None | 0 0
  1. /***********************************************************************/
  2. /** © 2015 CD PROJEKT S.A. All rights reserved.
  3. /** THE WITCHER® is a trademark of CD PROJEKT S. A.
  4. /** The Witcher game is based on the prose of Andrzej Sapkowski.
  5. /***********************************************************************/
  6.  
  7.  
  8.  
  9.  
  10. class CR4CommonMainMenuBase extends CR4MenuBase
  11. {
  12. private var m_menuData : array< SMenuTab >;
  13.  
  14. private var m_fxSetMovieData : CScriptedFlashFunction;
  15.  
  16. public var importSelected : bool;
  17. public var reopenRequested : bool; default reopenRequested = false;
  18.  
  19. protected var currentMenuName : name;
  20.  
  21. event OnConfigUI()
  22. {
  23. var menuName : name;
  24. var inGameConfigWrapper : CInGameConfigWrapper;
  25. var overlayPopupRef : CR4OverlayPopup;
  26.  
  27. super.OnConfigUI();
  28. m_flashModule = GetMenuFlash();
  29. theGame.GetGuiManager().OnEnteredMainMenu();
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37. {
  38. menuName = 'IngameMenu';
  39. }
  40.  
  41. overlayPopupRef = (CR4OverlayPopup)theGame.GetGuiManager().GetPopup('OverlayPopup');
  42. if (!overlayPopupRef)
  43. {
  44. theGame.RequestPopup( 'OverlayPopup' );
  45. }
  46.  
  47. theGame.GetGuiManager().RequestMouseCursor(true);
  48.  
  49. if (theInput.LastUsedPCInput())
  50. {
  51. theGame.MoveMouseTo(0.17, 0.36);
  52. }
  53.  
  54. inGameConfigWrapper = (CInGameConfigWrapper)theGame.GetInGameConfigWrapper();
  55. inGameConfigWrapper.SetVarValue('Hidden', 'HasSetup', "true");
  56. theGame.SaveUserSettings();
  57.  
  58. SetupMenu();
  59. OnRequestSubMenu( menuName, GetMenuInitData() );
  60.  
  61. theGame.FadeInAsync(300);
  62.  
  63. theInput.StoreContext( 'MAIN_MENU_CONTEXT' );
  64.  
  65. theGame.ReleaseNoSaveLock(theGame.deathSaveLockId);
  66.  
  67.  
  68. updateHudConfigs();
  69.  
  70. theSound.SoundEvent( "play_music_main_menu" );
  71.  
  72. if ( theGame.GetDLCManager().IsEP2Available() )
  73. {
  74. theSound.SoundEvent( "play_music_toussaint" );
  75. theSound.SoundEvent( "mus_main_menu_ep2" );
  76. }
  77. else if ( theGame.GetDLCManager().IsEP1Available() )
  78. {
  79. theSound.SoundEvent( "mus_main_menu_theme_ep1" );
  80. }
  81. else
  82. {
  83. theSound.SoundEvent( "mus_main_menu_theme" );
  84. }
  85. }
  86.  
  87. private function updateHudConfigs():void
  88. {
  89. var hud : CR4ScriptedHud;
  90. hud = (CR4ScriptedHud)theGame.GetHud();
  91.  
  92. if (hud)
  93. {
  94. hud.UpdateHudConfigs();
  95. }
  96. }
  97.  
  98. function GetCurrentBackgroundMovie() : string
  99. {
  100. return "mainmenu.usm";
  101. }
  102.  
  103. event OnClosingMenu()
  104. {
  105. if (m_configUICalled)
  106. {
  107. theInput.RestoreContext( 'MAIN_MENU_CONTEXT', true );
  108. }
  109.  
  110. theGame.GetGuiManager().RequestMouseCursor(false);
  111.  
  112. super.OnClosingMenu();
  113. }
  114.  
  115. function OnRequestSubMenu( menuName: name, optional initData : IScriptable )
  116. {
  117. RequestSubMenu( menuName, initData );
  118. currentMenuName = menuName;
  119. }
  120.  
  121.  
  122.  
  123. event OnSwipe( swipe : int )
  124. {
  125. }
  126.  
  127. private function DefineMenuItem(itemName:name, itemLabel:string, optional parentMenuItem:name) : void
  128. {
  129. var newMenuItem : SMenuTab;
  130.  
  131. newMenuItem.MenuName = itemName;
  132. newMenuItem.MenuLabel = itemLabel;
  133. newMenuItem.Enabled = true;
  134. newMenuItem.Visible = true;
  135.  
  136. newMenuItem.ParentMenu = parentMenuItem;
  137. m_menuData.PushBack(newMenuItem);
  138. }
  139.  
  140. private function SetupMenu() : void
  141. {
  142.  
  143. }
  144.  
  145. event OnCloseMenu()
  146. {
  147. var menu : CR4MenuBase;
  148.  
  149. menu = (CR4MenuBase)GetSubMenu();
  150. if( menu )
  151. {
  152. menu.CloseMenu();
  153. }
  154. CloseMenu();
  155. }
  156.  
  157. function CloseMenuRequest():void
  158. {
  159. var menu : CR4MenuBase;
  160.  
  161. menu = (CR4MenuBase)GetSubMenu();
  162. if( !menu )
  163. {
  164. CloseMenu();
  165. }
  166. }
  167.  
  168. function ChildRequestCloseMenu()
  169. {
  170. var menu : CR4MenuBase;
  171. var menuToOpen : name;
  172.  
  173. if (reopenRequested)
  174. {
  175. reopenRequested = false;
  176. OnRequestSubMenu( 'IngameMenu', GetMenuInitData() );
  177. }
  178. else
  179. {
  180. menu = (CR4MenuBase)GetSubMenu();
  181.  
  182. if( menu )
  183. {
  184.  
  185. menuToOpen = GetParentMenuName(currentMenuName);
  186. if( menuToOpen )
  187. {
  188. OnRequestSubMenu( menuToOpen, GetMenuInitData() );
  189. }
  190. else
  191. {
  192. CloseMenu();
  193. }
  194. }
  195. }
  196. }
  197.  
  198. function GetParentMenuName( menu : name ) : name
  199. {
  200. var i : int;
  201. var parentName : name;
  202. var CurDataItem : SMenuTab;
  203.  
  204. for ( i = 0; i < m_menuData.Size(); i += 1 )
  205. {
  206. CurDataItem = m_menuData[i];
  207.  
  208. if ( CurDataItem.MenuName == menu )
  209. {
  210. parentName = CurDataItem.ParentMenu;
  211. }
  212. }
  213. return parentName;
  214. }
  215.  
  216. protected function GatherBindersArray(out resultArray : CScriptedFlashArray, bindersList : array<SKeyBinding>, optional isContextBinding:bool)
  217. {
  218. var tempFlashObject : CScriptedFlashObject;
  219. var bindingGFxData : CScriptedFlashObject;
  220. var curBinding : SKeyBinding;
  221. var bindingsCount : int;
  222. var i : int;
  223.  
  224. bindingsCount = bindersList.Size();
  225. for( i =0; i < bindingsCount; i += 1 )
  226. {
  227. curBinding = bindersList[i];
  228. tempFlashObject = m_flashValueStorage.CreateTempFlashObject();
  229. bindingGFxData = tempFlashObject.CreateFlashObject("red.game.witcher3.data.KeyBindingData");
  230. bindingGFxData.SetMemberFlashString("gamepad_navEquivalent", curBinding.Gamepad_NavCode );
  231. bindingGFxData.SetMemberFlashInt("keyboard_keyCode", curBinding.Keyboard_KeyCode );
  232. bindingGFxData.SetMemberFlashString("label", GetLocStringByKeyExt(curBinding.LocalizationKey) );
  233. bindingGFxData.SetMemberFlashString("isContextBinding", isContextBinding);
  234. resultArray.PushBackFlashObject(bindingGFxData);
  235. }
  236. }
  237.  
  238. protected function UpdateInputFeedback():void
  239. {
  240. var gfxDataList : CScriptedFlashArray;
  241. gfxDataList = m_flashValueStorage.CreateTempFlashArray();
  242. GatherBindersArray(gfxDataList, m_defaultInputBindings);
  243. m_flashValueStorage.SetFlashArray("mainmenu.buttons.setup", gfxDataList);
  244. }
  245.  
  246. function SetButtons()
  247. {
  248. AddInputBinding("panel_button_common_exit", "escape-gamepad_B", IK_Escape);
  249. AddInputBinding("panel_button_common_use", "enter-gamepad_A", IK_Enter);
  250. AddInputBinding("panel_button_common_navigation", "gamepad_L3");
  251. UpdateInputFeedback();
  252. }
  253.  
  254. function PlayOpenSoundEvent()
  255. {
  256. }
  257.  
  258. public function SetMenuAlpha( value : int ) : void
  259. {
  260. m_flashModule.SetAlpha(value);
  261. }
  262. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement