sr2lua/multi_pause_menu.lua

  1. Multi_lobby_menu_player_list = { 
  2. 	size = 0, 
  3. 	dirty = false, 
  4. } 
  5.  
  6. Multi_lobby_has_variants = true 
  7. Multi_lobby_my_lobby_menu = 0 
  8. Multi_lobby_building_lobby_menu = false 
  9. Multi_lobby_reshowing_friends = false 
  10. Multi_lobby_loading_friends_dialog_handle = 0 
  11. Multi_lobby_custom_data_version = 0 
  12.  
  13. Multi_pause_menu_showing_load_favorites = false 
  14. ----[functions for menus]----- 
  15.  
  16. function multi_lobby_menu_setup() 
  17. 	debug_print("vint","multiplayer_lobby_menu: setup start\n") 
  18. 	Pause_horz_menu = Multi_pause_horz_menu 
  19.  
  20. 	if get_platform() ~= "XBOX360" then 
  21. 		mp_match_type_slider_values[1] = { label = Mp_lobby_game_mode_unranked_PS3 } 
  22. 	else 
  23. 		-- Add ability to get friends gamercards on 360 
  24. 		Multi_lobby_invite_player_menu.on_alt_select = multi_player_get_gamercard 
  25. 		Multi_lobby_invite_player_menu.btn_tips = Multi_lobby_friends_tips 
  26. 	end 
  27.  
  28. 	if get_is_host() then 
  29. 		mp_lobby_stop_countdown() 
  30. 	end 
  31. 	Multi_lobby_my_lobby_menu = Multi_lobby_menu 
  32. 	 
  33. 	if get_platform() == "PC" then 
  34. 		if get_is_matchmaking() == true then 
  35. 			if get_mp_is_ranked() == true then 
  36. 				Pause_lobby_players.btn_tips = Multi_lobby_ranked_menu_tips 
  37. 			else 
  38. 				Pause_lobby_players.btn_tips = Multi_lobby_player_menu_tips 
  39. 			end 
  40. 		else 
  41. 			Pause_lobby_players.btn_tips = Multi_lobby_player_menu_tips_syslink 
  42. 		end 
  43. 	else 
  44. 		if get_is_syslink() then 
  45. 			Pause_lobby_players.btn_tips = Multi_lobby_player_menu_tips_syslink 
  46. 		else 
  47. 			Pause_lobby_players.btn_tips = Multi_lobby_player_menu_tips 
  48. 		end 
  49. 	end 
  50. 	 
  51. 	multi_lobby_menu_setup_populate_menus() 
  52. 	 
  53. 	--subscriptions 
  54. 	vint_dataitem_add_subscription("sr2_multi_lobby_game_data", "update", "multi_menu_game_data_update") 
  55. end 
  56.  
  57. function multi_lobby_menu_setup_populate_menus() 
  58. 	--populate game type list 
  59. 	mp_game_mode_slider_values.num_values = 0 
  60. 	vint_dataresponder_request("sr2_multi_lobby_modes", "multi_player_populate_modes", 0) 
  61. 	--mp_game_mode_slider_values.cur_value = get_mp_mode_index() 
  62. 	 
  63. 	-- populate map list 
  64. 	mp_map_slider_values.num_values = 0 
  65. 	vint_dataresponder_request("sr2_multi_lobby_maps", "multi_player_populate_maps", 0) 
  66. 	--mp_map_slider_values.cur_value = get_mp_map_index() 
  67. 	 
  68. 	--populate activities 
  69. 	Multi_lobby_custom_activities_menu.num_items = 0 
  70. 	vint_dataresponder_request("sr2_multi_lobby_activities", "multi_menu_populate_activities", 0) 
  71. 	 
  72. 	--populate weapons 
  73. 	Multi_lobby_custom_weapons_menu.num_items = 0 
  74. 	vint_dataresponder_request("sr2_multi_lobby_weapon_categories", "multi_menu_populate_weapon_categories", 0) 
  75. 	vint_dataresponder_request("sr2_multi_lobby_special_weapons", "multi_menu_populate_special_weapons", 0) 
  76. 	 
  77. 	--populate weather 
  78. 	mp_weather_slider_values.num_values = 0 
  79. 	vint_dataresponder_request("sr2_multi_lobby_weather", "multi_player_populate_weather", 0) 
  80. 	 
  81. 	--populate tags 
  82. 	Multi_lobby_custom_tags_menu.num_items = 0 
  83. 	vint_dataresponder_request("sr2_multi_lobby_tags", "multi_menu_populate_tags", 0) 
  84. 	 
  85. 	-- populate time of day 
  86. 	mp_tod_slider_values.num_values = 0 
  87. 	vint_dataresponder_request("sr2_multi_lobby_tod", "multi_menu_populate_tod", 0) 
  88. 	 
  89. 	--populate scores 
  90. 	mp_brawl_scores_slider_values.num_values = 0 
  91. 	vint_dataresponder_request("sr2_multi_lobby_match_scores", "multi_menu_populate_scores", 0, 0) 
  92. 	 
  93. 	mp_sa_scores_slider_values.num_values = 0 
  94. 	vint_dataresponder_request("sr2_multi_lobby_match_scores", "multi_menu_populate_scores", 0, 1) 
  95. 	 
  96. 	--populate times 
  97. 	mp_brawl_times_slider_values.num_values = 0 
  98. 	vint_dataresponder_request("sr2_multi_lobby_match_times", "multi_menu_populate_times", 0, 0) 
  99. 	 
  100. 	mp_sa_times_slider_values.num_values = 0 
  101. 	vint_dataresponder_request("sr2_multi_lobby_match_times", "multi_menu_populate_times", 0, 1) 
  102. 	 
  103. 	--set other custom options 
  104. 	vint_dataresponder_request("sr2_multi_lobby_custom_options", "multi_menu_read_custom_options", 0) 
  105. 	 
  106. 	--populate vehicles 
  107. 	mp_vehicle_slider_values.num_values = 0 
  108. 	vint_dataresponder_request("sr2_multi_lobby_vehicles", "multi_menu_populate_vehicles", 0) 
  109. 	 
  110. 	--populate_variants 
  111. 	mp_variant_slider_values.num_values = 0 
  112. 	mp_variant_slider_values.set = false 
  113. 	vint_dataresponder_request("sr2_multi_lobby_preset", "multi_menu_populate_variants", 0) 
  114. 	 
  115. 	--add 'custom' option past menu 
  116. 	multi_menu_add_custom_variant_option() 
  117. end 
  118.  
  119. function multi_lobby_maybe_show_slider( cur_menu, pos ) 
  120. 	if pos == -1 then 
  121. 		return --option not there 
  122. 	end 
  123. 	if cur_menu == Menu_active then 
  124. 		if Menu_active ~= nil and Menu_active.first_vis_item ~= nil and Menu_option_labels ~= nil and Menu_option_labels.max_rows ~= nil then 
  125. 			local top = Menu_active.first_vis_item --does show 
  126. 			local bottom = top + Menu_option_labels.max_rows --doesn't show 
  127. 			if pos < Menu_active.num_items + 1 and pos >= top and pos < bottom then 
  128. 				if Menu_active[pos].type == MENU_ITEM_TYPE_TEXT_SLIDER then 
  129. 					menu_text_slider_update_value(Menu_option_labels[pos-top], Menu_active[pos]) 
  130. 				elseif Menu_active[pos].type == MENU_ITEM_TYPE_INFO_BOX then 
  131. 					menu_info_box_update_value(Menu_option_labels[pos-top], Menu_active[pos]) 
  132. 				end 
  133. 			end 
  134. 		end 
  135. 	end 
  136. end 
  137.  
  138. function multi_lobby_show_main_sliders() 
  139. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.rank_pos ) 
  140. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.variant_pos) 
  141. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.map_pos ) 
  142. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.time_pos) 
  143. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.score_pos) 
  144. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.friendly_fire_pos ) 
  145. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.weather_pos ) 
  146. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.tod_pos) 
  147. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.sprint_pos ) 
  148. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.ammo_pos ) 
  149. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.ped_pos ) 
  150. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.vehicle_pos) 
  151. end 
  152.  
  153. function multi_player_swap_teams() 
  154. 	if get_platform() == "PC" then 
  155. 		if get_mp_is_ranked() == true then 
  156. 			return 
  157. 		end 
  158. 	end 
  159.  
  160. 	-- flip the local player to the other team 
  161. 	if get_is_team_game() == false then 
  162. 		--popup a message box explaining how this is impossible 
  163. 		dialog_box_message("MENU_TITLE_NOTICE", "CANT_SWITCH_TEAMS") 
  164. 		return 
  165. 	end 
  166. 	multi_menu_switch_teams() 
  167. 	debug_print("vint","mp_hud_lobby: Swapping teams!.\n") 
  168. 	--blah call code function 
  169. end 
  170.  
  171. function multi_player_switch_map() 
  172. 	if Multi_lobby_building_lobby_menu == true then 
  173. 		return --dont' do anything 
  174. 	end 
  175. 	-- change current map selection to the next one 
  176. 	if get_is_host() == false then 
  177. 		return 
  178. 	end 
  179. 	mp_switch_maps(mp_map_slider_values.cur_value) 
  180. 	debug_print("vint","mp_hud_lobby: Swapping maps!.\n") 
  181. 	--repopulate activities, can change based on map 
  182. 	Multi_lobby_custom_activities_menu.num_items = 0 
  183. 	vint_dataresponder_request("sr2_multi_lobby_activities", "multi_menu_populate_activities", 0) 
  184. end 
  185.  
  186. function multi_player_switch_match_rank_type() 
  187. 	if get_is_host() == false then 
  188. 		return 
  189. 	end 
  190. 	--change the ranking type 
  191. 	local rank_val = mp_match_type_slider_values.cur_value 
  192. 	local ranked = true 
  193. 	if rank_val == 1 then 
  194. 		ranked = false 
  195. 	end 
  196. 	mp_change_ranked_game_type(ranked) 
  197. 	if Multi_lobby_building_lobby_menu == false then 
  198. 		--rebuild lobby menu 
  199. 		menu_show(Multi_lobby_my_lobby_menu, MENU_TRANSITION_SWEEP_RIGHT) 
  200. 	end 
  201. end 
  202.  
  203. function multi_menu_add_custom_variant_option() 
  204. 	--just stuff the custom option at the end past the last entry 
  205. 	local size = mp_variant_slider_values.num_values 
  206. 	mp_variant_slider_values[size] = { label = "MULTI_LOBBY_CUSTOM_SETTINGS", disabled = true } 
  207. 	mp_variant_slider_values.num_values = size + 1 
  208. 	if mp_variant_slider_values.set == false then 
  209. 		debug_print("vint", "mp_lobby_menu: setting cust 1\n") 
  210. 		multi_player_set_variant_custom() 
  211. 	end 
  212. 	debug_print("vint","mp_lobby_menu: added custom variant\n") 
  213. end 
  214.  
  215. function multi_player_set_variant_custom() 
  216. 	debug_print("vint","mp_lobby_menu: set custom variant\n") 
  217. 	--move slider to the bonus option 
  218. 	Multi_lobby_menu_variant_submenu.text_slider_values.cur_value = mp_variant_slider_values.num_values - 1 
  219. 	 
  220. 	multi_lobby_maybe_show_slider(Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.variant_pos) 
  221. end 
  222.  
  223. Multi_lobby_game_mode = -1 
  224.  
  225. function multi_player_switch_game_mode() 
  226. 	if Multi_lobby_building_lobby_menu == true then 
  227. 		return --dont' do anything 
  228. 	end 
  229.  
  230. 	if Multi_lobby_game_mode == mp_game_mode_slider_values.cur_value then 
  231. 		debug_print("vint","mp_lobby_menu: switch game mode to same mode\n") 
  232. 		return 
  233. 	end 
  234. 	 
  235. 	if get_is_host() == false then 
  236. 		--should we be able to get here? 
  237. 		return 
  238. 	end 
  239. 	debug_print("vint","mp_lobby_menu: swapping game modes\n") 
  240. 	Multi_lobby_game_mode = mp_game_mode_slider_values.cur_value 
  241. 	mp_switch_modes(mp_game_mode_slider_values.cur_value) 
  242. 	debug_print("vint","mp_lobby_menu: setting to default\n") 
  243. 	multi_custom_set_preset(0) --0 is default 
  244. 	mp_map_slider_values.num_values = 0 
  245. 	mp_map_slider_values.cur_value = 0 
  246. 	mp_variant_slider_values.num_values = 0 
  247. 	mp_variant_slider_values.set = false 
  248. 	vint_dataresponder_request("sr2_multi_lobby_preset", "multi_menu_populate_variants", 0) 
  249. 	--add 'custom' option past menu 
  250. 	multi_menu_add_custom_variant_option() 
  251. 	vint_dataresponder_request("sr2_multi_lobby_maps", "multi_player_populate_maps", 0)  
  252. 	mp_map_slider_values.cur_value = get_mp_map_index() 
  253. 	local map_pos = Multi_lobby_my_lobby_menu.num_items - 1 
  254. 	multi_lobby_read_and_show_custom_match_data() 
  255. 	if Multi_lobby_building_lobby_menu == false then 
  256. 		--rebuild lobby menu 
  257. 		menu_show(Multi_lobby_my_lobby_menu, MENU_TRANSITION_SWEEP_RIGHT) 
  258. 	end 
  259. end 
  260.  
  261. function multi_player_start_game() 
  262. 	-- start the game as is bitches! 
  263. 	if start_multiplayer_game() then 
  264. 		pause_menu_exit() 
  265. 	end 
  266. 	--blah 
  267. end 
  268.  
  269. function multi_player_populate_maps(display_name, enabled) 
  270. 	local num_maps = mp_map_slider_values.num_values 
  271. 	mp_map_slider_values.num_values = num_maps + 1 
  272. 	mp_map_slider_values[num_maps] = { label = display_name } 
  273. 	if enabled then 
  274. 		mp_map_slider_values.cur_value = num_maps 
  275. 	end 
  276. end 
  277.  
  278. function multi_player_populate_modes(display_name, enabled) 
  279. 	local num_modes = mp_game_mode_slider_values.num_values 
  280. 	debug_print("vint","mp_lobby_menu: adding mode\n") 
  281. 	mp_game_mode_slider_values.num_values = num_modes + 1 
  282. 	mp_game_mode_slider_values[num_modes] = { label = display_name } 
  283. 	if enabled then 
  284. 		mp_game_mode_slider_values.cur_value = num_modes 
  285. 		Multi_lobby_game_mode = num_modes 
  286. 	end 
  287. end 
  288.  
  289. function multi_menu_populate_variants(display_name, enabled) 
  290. 	local num_variants = mp_variant_slider_values.num_values 
  291. 	mp_variant_slider_values.num_values = num_variants + 1 
  292. 	mp_variant_slider_values[num_variants] = { label = display_name }  
  293. 	if enabled then 
  294. 		mp_variant_slider_values.cur_value = num_variants 
  295. 		mp_variant_slider_values.set = true 
  296. 	end 
  297. end 
  298.  
  299. function multi_menu_populate_activities(display_name, active, available) 
  300. 	local num_activities = Multi_lobby_custom_activities_menu.num_items 
  301. 	 
  302. 	if available == false then 
  303. 		Multi_lobby_custom_activities_menu[num_activities] = {label = display_name, type = MENU_ITEM_TYPE_INFO_BOX, info_text_str = "STORE_NOT_AVAILABLE", on_select = multi_menu_submenu_on_select} 
  304. 		Multi_lobby_custom_activities_menu.num_items = num_activities + 1 
  305. 		multi_lobby_maybe_show_slider( Multi_lobby_custom_activities_menu, num_activities ) 
  306. 		return 
  307. 	end 
  308. 	 
  309. 	local option = 0 
  310. 	if active == false then 
  311. 		option = 1 
  312. 	end 
  313. 	 
  314. 	if get_is_host() == false then 
  315. 		debug_print("vint", "activities client\n") 
  316. 		Multi_lobby_custom_activities_menu[num_activities] = {label = display_name, type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "MULTI_LOBBY_ON" }, [1] = { label = "MULTI_LOBBY_OFF" }, num_values = 2, cur_value = option }, slider_disabled = true, on_value_update = nil, id = num_activities, on_select = multi_menu_submenu_on_select} 
  317. 	else	 
  318. 		debug_print("vint", "activities host\n") 
  319. 		Multi_lobby_custom_activities_menu[num_activities] = {label = display_name, type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "MULTI_LOBBY_ON" }, [1] = { label = "MULTI_LOBBY_OFF" }, num_values = 2, cur_value = option }, on_value_update = multi_lobby_update_activity, id = num_activities, on_select = multi_menu_submenu_on_select} 
  320. 	end 
  321. 	Multi_lobby_custom_activities_menu.num_items = num_activities + 1 
  322. 	multi_lobby_maybe_show_slider( Multi_lobby_custom_activities_menu, num_activities ) 
  323. end 
  324.  
  325. function multi_menu_populate_tags(display_name, enabled) 
  326. 	local num_tags = Multi_lobby_custom_tags_menu.num_items 
  327. 	if get_is_host() then 
  328. 		Multi_lobby_custom_tags_menu[num_tags] = {label = display_name, type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "MULTI_LOBBY_ON" }, [1] = { label = "MULTI_LOBBY_OFF" }, num_values = 2, cur_value = 0 }, on_value_update = multi_lobby_update_tag, id = num_tags, on_select = multi_menu_submenu_on_select} 
  329. 	else 
  330. 		Multi_lobby_custom_tags_menu[num_tags] = {label = display_name, type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "MULTI_LOBBY_ON" }, [1] = { label = "MULTI_LOBBY_OFF" }, num_values = 2, cur_value = 0 }, slider_disabled = true, on_value_update = nil, id = num_tags, on_select = multi_menu_submenu_on_select} 
  331. 	end 
  332. 	if enabled == false then 
  333. 		Multi_lobby_custom_tags_menu[num_tags].text_slider_values.cur_value = 1 
  334. 	end 
  335. 	Multi_lobby_custom_tags_menu.num_items = num_tags + 1 
  336. 	multi_lobby_maybe_show_slider(Multi_lobby_custom_tags_menu, num_tags) 
  337. end 
  338.  
  339. function multi_menu_submenu_on_select(menu_label, menu_data) 
  340. 	menu_show(Multi_lobby_menu, MENU_TRANSITION_SWEEP_LEFT) 
  341. end 
  342.  
  343. function multi_menu_populate_tod(display_name, enabled) 
  344. 	debug_print("vint", "multi_lobby: pop tod\n") 
  345. 	local num_tod = mp_tod_slider_values.num_values 
  346. 	mp_tod_slider_values.num_values = num_tod + 1 
  347. 	mp_tod_slider_values[num_tod] = { label = display_name } 
  348. 	if enabled == true then 
  349. 		debug_print("vint", "multi_lobby: tod set!\n") 
  350. 		mp_tod_slider_values.cur_value = num_tod 
  351. 	end 
  352. end 
  353.  
  354. function multi_menu_populate_vehicles(display_name, enabled) 
  355. 	local num_veh = mp_vehicle_slider_values.num_values 
  356. 	mp_vehicle_slider_values.num_values = num_veh + 1 
  357. 	mp_vehicle_slider_values[num_veh] = { label = display_name } 
  358. 	if enabled then 
  359. 		mp_vehicle_slider_values.cur_value = num_veh 
  360. 	end 
  361. end 
  362.  
  363. function multi_menu_populate_scores(display_name, strongarm, enabled) 
  364. 	local slider = mp_brawl_scores_slider_values 
  365. 	local test = "MULTI_MODE_13" 
  366. 	if strongarm == true then 
  367. 		slider = mp_sa_scores_slider_values 
  368. 		test = "MULTI_MODE_STRONGARM" 
  369. 	end 
  370. 	 
  371. 	local num_items = slider.num_values 
  372. 	slider[num_items] = { label = display_name } 
  373. 	slider.num_values = num_items + 1 
  374. 	if enabled then 
  375. 		debug_print("vint","set score to ".. num_items .."\n") 
  376. 		slider.cur_value = num_items 
  377. 	end 
  378. end 
  379.  
  380. function multi_menu_populate_times(display_name, strongarm, enabled) 
  381. 	local slider = mp_brawl_times_slider_values 
  382. 	if strongarm == true then 
  383. 		slider = mp_sa_times_slider_values 
  384. 	end 
  385. 	local num_items = slider.num_values 
  386. 	 
  387. 	slider[num_items] = { label = display_name } 
  388. 	slider.num_values = num_items + 1 
  389. 	if enabled then 
  390. 		slider.cur_value = num_items 
  391. 	end 
  392. end 
  393.  
  394. function multi_menu_populate_weapon_infos(display_name, id, enabled) 
  395. 	local my_slider = Multi_lobby_custom_weapons_menu[id].text_slider_values 
  396. 	local slider_size = my_slider.num_values 
  397. 	my_slider[slider_size] = {label = display_name} 
  398. 	if enabled then 
  399. 		my_slider.set_value = true 
  400. 		my_slider.cur_value = slider_size 
  401. 	end 
  402. 	my_slider.num_values = slider_size + 1 
  403. end 
  404.  
  405. function multi_menu_populate_weapon_categories(display_name) 
  406. 	local num_types = Multi_lobby_custom_weapons_menu.num_items 
  407. 	if get_is_host() then 
  408. 		Multi_lobby_custom_weapons_menu[num_types] = {label = display_name, type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "test" }, num_values = 0, cur_value = 0 }, on_value_update = multi_lobby_update_weapon_selection, id = num_types, on_select = multi_menu_submenu_on_select} 
  409. 	else 
  410. 		Multi_lobby_custom_weapons_menu[num_types] = {label = display_name, type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "test" }, num_values = 0, cur_value = 0 }, slider_disabled = true, on_value_update = nil, id = num_types, on_select = multi_menu_submenu_on_select} 
  411. 	end 
  412. 	Multi_lobby_custom_weapons_menu.num_items = num_types + 1 
  413. 	local my_slider = Multi_lobby_custom_weapons_menu[num_types].text_slider_values 
  414. 	my_slider.set_value = false 
  415.  
  416. 	--fill out the selections on the slider 
  417. 	vint_dataresponder_request("sr2_multi_lobby_weapon_info", "multi_menu_populate_weapon_infos", 0, num_types) 
  418. 	 
  419. 	--add a 'none' selection 
  420. 	local slider_size = my_slider.num_values 
  421. 	my_slider[slider_size] = {label = "LOCALIZE_NONE"} 
  422. 	my_slider.num_values = slider_size + 1 
  423. 	if my_slider.set_value == false then 
  424. 		my_slider.cur_value = slider_size 
  425. 	end 
  426. 	multi_lobby_maybe_show_slider(Multi_lobby_custom_weapons_menu, num_types) 
  427. end 
  428.  
  429. function multi_menu_populate_special_weapons(display_name, id, enabled) 
  430. 	local num_items = Multi_lobby_custom_weapons_menu.num_items 
  431. 	 
  432. 	if get_is_host() then 
  433. 		Multi_lobby_custom_weapons_menu[num_items] = {label = display_name, type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "MULTI_LOBBY_ON" }, [1] = { label = "MULTI_LOBBY_OFF" }, num_values = 2, cur_value = 0 }, on_value_update = multi_lobby_update_special_weapon_selection, id = id, on_select = multi_menu_submenu_on_select} 
  434. 	else 
  435. 		Multi_lobby_custom_weapons_menu[num_items] = {label = display_name, type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "MULTI_LOBBY_ON" }, [1] = { label = "MULTI_LOBBY_OFF" }, num_values = 2, cur_value = 0 }, slider_disabled = true, on_value_update = nil, id = id, on_select = multi_menu_submenu_on_select} 
  436. 	end 
  437. 	if enabled == false then 
  438. 		Multi_lobby_custom_weapons_menu[num_items].text_slider_values.cur_value = 1 
  439. 	end 
  440. 	 
  441. 	multi_lobby_maybe_show_slider( Multi_lobby_custom_weapons_menu, num_items ) 
  442. 	 
  443. 	Multi_lobby_custom_weapons_menu.num_items = num_items + 1 
  444. end 
  445.  
  446. function multi_player_populate_weather(display_name, current) 
  447. 	local num_types = mp_weather_slider_values.num_values 
  448. 	mp_weather_slider_values[num_types] = {label = display_name} 
  449. 	mp_weather_slider_values.num_values = num_types + 1 
  450. 	if current then 
  451. 		mp_weather_slider_values.cur_value = num_types 
  452. 	end 
  453. end 
  454.  
  455. function multi_menu_read_custom_options(peds, ammo, sprint, friendly_fire) 
  456. 	--just set the cur value on the sliders 
  457. 	local option = 1 
  458. 	if peds then 
  459. 		option = 0 
  460. 	end 
  461. 	Multi_lobby_menu_peds_submenu.text_slider_values.cur_value = option 
  462. 	option = 1 
  463. 	if ammo then 
  464. 		option = 0 
  465. 	end 
  466. 	Multi_lobby_menu_ammo_submenu.text_slider_values.cur_value = option 
  467. 	option = 1 
  468. 	if sprint then 
  469. 		option = 0 
  470. 	end 
  471. 	Multi_lobby_menu_sprint_submenu.text_slider_values.cur_value = option 
  472. 	 
  473. 	Multi_lobby_menu_friendly_fire_submenu.text_slider_values.cur_value = friendly_fire 
  474. 	 
  475. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.ped_pos ) 
  476. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.ammo_pos ) 
  477. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.sprint_pos ) 
  478. 	multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.friendly_fire_pos ) 
  479. 	 
  480. end 
  481.  
  482. function multi_lobby_read_and_show_custom_match_data() 
  483. 	debug_print("vint", "multi lobby: read custom match data\n") 
  484. 	--populate activities 
  485. 	Multi_lobby_custom_activities_menu.num_items = 0 
  486. 	vint_dataresponder_request("sr2_multi_lobby_activities", "multi_menu_populate_activities", 0) 
  487. 	 
  488. 	--populate weapons 
  489. 	Multi_lobby_custom_weapons_menu.num_items = 0 
  490. 	vint_dataresponder_request("sr2_multi_lobby_weapon_categories", "multi_menu_populate_weapon_categories", 0) 
  491. 	vint_dataresponder_request("sr2_multi_lobby_special_weapons", "multi_menu_populate_special_weapons", 0) 
  492. 	 
  493. 	--populate weather 
  494. 	mp_weather_slider_values.num_values = 0 
  495. 	vint_dataresponder_request("sr2_multi_lobby_weather", "multi_player_populate_weather", 0) 
  496. 	 
  497. 	--populate tags 
  498. 	Multi_lobby_custom_tags_menu.num_items = 0 
  499. 	vint_dataresponder_request("sr2_multi_lobby_tags", "multi_menu_populate_tags", 0) 
  500. 	 
  501. 	-- populate time of day 
  502. 	mp_tod_slider_values.num_values = 0 
  503. 	vint_dataresponder_request("sr2_multi_lobby_tod", "multi_menu_populate_tod", 0) 
  504. 	 
  505. 	--populate scores 
  506. 	mp_brawl_scores_slider_values.num_values = 0 
  507. 	vint_dataresponder_request("sr2_multi_lobby_match_scores", "multi_menu_populate_scores", 0, 0) 
  508. 	 
  509. 	mp_sa_scores_slider_values.num_values = 0 
  510. 	vint_dataresponder_request("sr2_multi_lobby_match_scores", "multi_menu_populate_scores", 0, 1) 
  511. 	 
  512. 	--populate times 
  513. 	mp_brawl_times_slider_values.num_values = 0 
  514. 	vint_dataresponder_request("sr2_multi_lobby_match_times", "multi_menu_populate_times", 0, 0) 
  515. 	 
  516. 	mp_sa_times_slider_values.num_values = 0 
  517. 	vint_dataresponder_request("sr2_multi_lobby_match_times", "multi_menu_populate_times", 0, 1) 
  518. 	 
  519. 	--set other custom options 
  520. 	vint_dataresponder_request("sr2_multi_lobby_custom_options", "multi_menu_read_custom_options", 0) 
  521.  
  522. 	--populate vehicles 
  523. 	mp_vehicle_slider_values.num_values = 0 
  524. 	vint_dataresponder_request("sr2_multi_lobby_vehicles", "multi_menu_populate_vehicles", 0) 
  525. 	 
  526. 	--if get_is_host() == false then 
  527. 		--populate_variants 
  528. 		mp_variant_slider_values.num_values = 0 
  529. 		mp_variant_slider_values.set = false 
  530. 		vint_dataresponder_request("sr2_multi_lobby_preset", "multi_menu_populate_variants", 0) 
  531. 		--add 'custom' option past menu 
  532. 		multi_menu_add_custom_variant_option() 
  533. 	--end 
  534. 	 
  535. 	--reshow everything 
  536. 	multi_lobby_show_main_sliders() 
  537. end 
  538.  
  539. function multi_player_send_invite() 
  540. 	debug_print("vint","multi_lobby_menu: sending invite to ".. Menu_active.highlighted_item .."\n") 
  541. 	local result = send_mp_lobby_player_invite(Menu_active.highlighted_item) 
  542. 	if result == true then 
  543. 		--say we invited the friend   
  544. 		local style_insert = {[0] = Multi_lobby_invite_player_menu[Menu_active.highlighted_item].label} 
  545. 		local style_string = vint_insert_values_in_string("MP_INVITE_SENT_BODY", style_insert) 
  546. 		dialog_box_message("MP_INVITE_SENT_TITLE", style_string) 
  547. 	else 
  548. 		local style_insert = {[0] = Multi_lobby_invite_player_menu[Menu_active.highlighted_item].label} 
  549. 		local style_string = vint_insert_values_in_string("INVITE_FAILED_BODY", style_insert) 
  550. 		dialog_box_message("INVITE_FAILED_TITLE", style_string) 
  551. 	end 
  552. 		--do we need to say invite failed? 
  553. end 
  554.  
  555. function multi_player_populate_friends(display_name) 
  556. 	debug_print("vint","multi_lobby_menu: pop_friends\n") 
  557. 	local num_items = Multi_lobby_invite_player_menu.num_items 
  558. 	--add item yay 
  559. 	Multi_lobby_invite_player_menu[num_items] = {label = display_name, type = MENU_ITEM_TYPE_SELECTABLE, on_select = multi_player_send_invite 	} 
  560. 	Multi_lobby_invite_player_menu.num_items = num_items + 1 
  561.  
  562. end 
  563.  
  564. function multi_player_get_gamercard() 
  565. 	debug_print("vint", "Get friend gamercard here!\n") 
  566. 	show_mp_lobby_friend_gamercard(Menu_active.highlighted_item) 
  567. end 
  568.  
  569. function multi_lobby_build_invite_player_request() 
  570. 	debug_print("vint","multi_lobby_menu: player request\n") 
  571. 	Multi_lobby_invite_player_menu.num_items = 0 
  572. 	vint_dataresponder_request("sr2_multi_lobby_friends", "multi_player_populate_friends", 0)  
  573. 	debug_print("vint","multi_lobby_menu: request done\n") 
  574. 	if Multi_lobby_loading_friends_dialog_handle ~= 0 then 
  575. 		dialog_box_force_close(Multi_lobby_loading_friends_dialog_handle) 
  576. 		Multi_lobby_loading_friends_dialog_handle = 0 
  577. 	end 
  578. 	if Multi_lobby_invite_player_menu.num_items == 0 then 
  579. 		dialog_box_message("MENU_TITLE_NOTICE", "NO_FRIENDS_ONLINE") 
  580. 	else 
  581. 		menu_show(Multi_lobby_invite_player_menu, MENU_TRANSITION_SWEEP_RIGHT) 
  582. 	end 
  583. 	debug_print("vint","multi_lobby_menu: test\n") 
  584. end 
  585.  
  586. function multi_lobby_load_friends() 
  587. 	--open a dialog box 
  588. 	Multi_lobby_loading_friends_dialog_handle = dialog_box_message("GAME_LOADING", "MULTI_INVITE_FILTER_FRIENDS") 
  589. 	--request the friends 
  590. 	thread_new("multi_lobby_build_invite_player_request") 
  591. end 
  592.  
  593. function multi_player_switch_game_variant(menu_label, menu_data) 
  594. 	if Multi_lobby_building_lobby_menu == true then 
  595. 		return --dont' do anything 
  596. 	end 
  597. 	if get_is_host() == false then 
  598. 		return 
  599. 	end 
  600. 	debug_print("vint","switching_variants "..menu_data.text_slider_values.cur_value.." out of : ".. menu_data.text_slider_values.num_values.."\n") 
  601. 	multi_custom_set_preset(menu_data.text_slider_values.cur_value) 
  602. 	--re read the custom shiz 
  603. 	multi_lobby_read_and_show_custom_match_data() 
  604. 	multi_lobby_show_main_sliders() 
  605. end 
  606.  
  607. function multi_lobby_update_time_limit(menu_label, menu_data) 
  608. 	if Multi_lobby_building_lobby_menu == true then 
  609. 		return --dont' do anything 
  610. 	end 
  611.  
  612. 	if get_is_host() == false then 
  613. 		--should we be able to get here 
  614. 		return 
  615. 	end 
  616. 	multi_custom_set_time_limit(menu_data.text_slider_values.cur_value) 
  617. 	multi_player_set_variant_custom() 
  618. end 
  619.  
  620. function multi_lobby_update_score_limit(menu_label, menu_data) 
  621. 	if Multi_lobby_building_lobby_menu == true then 
  622. 		return --dont' do anything 
  623. 	end 
  624.  
  625. 	if get_is_host() == false then 
  626. 		--should we be able to get here? 
  627. 		return 
  628. 	end 
  629. 	multi_custom_set_score_limit(menu_data.text_slider_values.cur_value) 
  630. 	multi_player_set_variant_custom() 
  631. end 
  632.  
  633. function multi_lobby_update_friendly_fire(menu_label, menu_data) 
  634. 	if Multi_lobby_building_lobby_menu == true then 
  635. 		return --dont' do anything 
  636. 	end 
  637.  
  638. 	if get_is_host() == false then 
  639. 		--should we be able to get here? 
  640. 		return 
  641. 	end 
  642. 	multi_custom_set_friendly_fire(menu_data.text_slider_values.cur_value) 
  643. 	multi_player_set_variant_custom() 
  644. end 
  645.  
  646. function multi_player_switch_vehicle_set(menu_label, menu_data) 
  647. 	if Multi_lobby_building_lobby_menu == true then 
  648. 		return --dont' do anything 
  649. 	end 
  650.  
  651. 	if get_is_host() == false then 
  652. 		--should we be able to get here? 
  653. 		return 
  654. 	end 
  655. 	debug_print("vint","mp_lobby_menu: changing vehicle "..menu_data.text_slider_values.cur_value.."\n") 
  656. 	multi_custom_set_vehicle_set(menu_data.text_slider_values.cur_value) 
  657. 		debug_print("vint", "mp_lobby_menu: setting cust 3\n") 
  658. 	multi_player_set_variant_custom() 
  659. end 
  660.  
  661. function multi_lobby_update_weather(menu_label, menu_data) 
  662. 	if Multi_lobby_building_lobby_menu == true then 
  663. 		return --dont' do anything 
  664. 	end 
  665.  
  666. 	if get_is_host() == false then 
  667. 		--should we be able to get here? 
  668. 		return 
  669. 	end 
  670. 	 
  671. 	multi_set_weather_stage(menu_data.text_slider_values.cur_value) 
  672. 		debug_print("vint", "mp_lobby_menu: setting cust 4\n") 
  673. end 
  674.  
  675. function multi_lobby_update_tod(menu_label, menu_data) 
  676. 	if Multi_lobby_building_lobby_menu == true then 
  677. 		return --dont' do anything 
  678. 	end 
  679.  
  680. 	if get_is_host() == false then 
  681. 		--should we be able to get here? 
  682. 		return 
  683. 	end 
  684. 	 
  685. 	multi_custom_set_tod(menu_data.text_slider_values.cur_value) 
  686. 		debug_print("vint", "mp_lobby_menu: setting cust 5\n") 
  687. end 
  688.  
  689. function multi_lobby_update_peds(menu_label, menu_data) 
  690. 	if Multi_lobby_building_lobby_menu == true then 
  691. 		return --dont' do anything 
  692. 	end 
  693.  
  694. 	if get_is_host() == false then 
  695. 		--should we be able to get here? 
  696. 		return 
  697. 	end 
  698. 	local peds = true 
  699. 	if menu_data.text_slider_values.cur_value == 1 then 
  700. 		peds = false 
  701. 	end 
  702. 	multi_custom_set_peds(peds) 
  703. 		debug_print("vint", "mp_lobby_menu: setting cust 6\n") 
  704. 	multi_player_set_variant_custom() 
  705. end 
  706.  
  707. function multi_lobby_update_sprint(menu_label, menu_data) 
  708. 	if Multi_lobby_building_lobby_menu == true then 
  709. 		return --dont' do anything 
  710. 	end 
  711.  
  712. 	if get_is_host() == false then 
  713. 		--should we be able to get here? 
  714. 		return 
  715. 	end 
  716. 	local sprint = true 
  717. 	if menu_data.text_slider_values.cur_value == 1 then 
  718. 		sprint = false 
  719. 	end 
  720. 	multi_custom_set_sprint(sprint) 
  721. 		debug_print("vint", "mp_lobby_menu: setting cust 7\n") 
  722. 	multi_player_set_variant_custom() 
  723. end 
  724.  
  725. function multi_lobby_update_ammo(menu_label, menu_data) 
  726. 	if Multi_lobby_building_lobby_menu == true then 
  727. 		return --dont' do anything 
  728. 	end 
  729.  
  730. 	if get_is_host() == false then 
  731. 		--should we be able to get here? 
  732. 		return 
  733. 	end 
  734. 	local ammo = true 
  735. 	if menu_data.text_slider_values.cur_value == 1 then 
  736. 		ammo = false 
  737. 	end 
  738. 	multi_custom_set_ammo(ammo) 
  739. 		debug_print("vint", "mp_lobby_menu: setting cust 8\n") 
  740. 	multi_player_set_variant_custom() 
  741. end 
  742.  
  743. function multi_lobby_update_special_weapon_selection(menu_label, menu_data) 
  744. 	if get_is_host() == false then 
  745. 		--should we be able to get here? 
  746. 		return 
  747. 	end 
  748. 	local weapon_id = menu_data.id 
  749. 	local enabled = true 
  750. 	if menu_data.text_slider_values.cur_value == 1 then 
  751. 		enabled = false 
  752. 	end 
  753. 	multi_enable_special_weapon(weapon_id, enabled) 
  754. 		debug_print("vint", "mp_lobby_menu: setting cust 9\n") 
  755. 	multi_player_set_variant_custom() 
  756. end 
  757.  
  758. function multi_lobby_update_weapon_selection(menu_label, menu_data) 
  759. 	if get_is_host() == false then 
  760. 		--should we be able to get here? 
  761. 		return 
  762. 	end 
  763. 	local category = menu_data.id 
  764. 	local choice = menu_data.text_slider_values.cur_value 
  765. 	 
  766. 	multi_set_weapon_category_choice(category, choice) 
  767. 		debug_print("vint", "mp_lobby_menu: setting cust 10\n") 
  768. 	multi_player_set_variant_custom() 
  769. end 
  770.  
  771. function multi_lobby_update_activity(menu_label, menu_data) 
  772. 	if get_is_host() == false then 
  773. 		--should we be able to get here? 
  774. 		return 
  775. 	end 
  776. 	local activity_val = true 
  777. 	if menu_data.text_slider_values.cur_value == 1 then 
  778. 		activity_val = false 
  779. 	end 
  780. 	multi_custom_set_activity_status(menu_data.id, activity_val) 
  781. 		debug_print("vint", "mp_lobby_menu: setting cust 11\n") 
  782. 	multi_player_set_variant_custom() 
  783.  
  784. end 
  785. 	 
  786. function multi_lobby_update_tag(menu_label, menu_data) 
  787. 	if get_is_host() == false then 
  788. 		--should we be able to get here? 
  789. 		return 
  790. 	end 
  791. 	local tag_val = true 
  792. 	if menu_data.text_slider_values.cur_value == 1 then 
  793. 		tag_val = false 
  794. 	end 
  795. 	multi_custom_set_tag_status(menu_data.id, tag_val) 
  796. 		debug_print("vint", "mp_lobby_menu: setting cust 12\n") 
  797. 	multi_player_set_variant_custom() 
  798. end 
  799.  
  800.  
  801. function multi_lobby_menu_build_menu() 
  802.  
  803. 	Multi_lobby_building_lobby_menu = true 
  804. 	Multi_lobby_my_lobby_menu = Multi_lobby_menu 
  805.  
  806. 	if get_is_matchmaking() then 
  807. 		if get_mp_is_ranked() then 
  808. 			Multi_lobby_my_lobby_menu.header_label_str =  "MULTI_GAMETYPE_3" 
  809. 		else 
  810. 			if get_is_custom_game() then 
  811. 				Multi_lobby_my_lobby_menu.header_label_str = "MULTI_PARTY_GAME" 
  812. 			else 
  813. 				Multi_lobby_my_lobby_menu.header_label_str =  "MULTI_GAMETYPE_2" 
  814. 			end 
  815. 		end 
  816. 		--Multi_lobby_my_lobby_menu.header_label_str = "MULTI_GAMETYPE_4" 
  817. 	else 
  818. 		Multi_lobby_my_lobby_menu.header_label_str = "MULTI_PARTY_GAME" 
  819. 	end 
  820. 	 
  821. 	--update button tips 
  822. 	if get_is_host() and get_is_syslink() == false then 
  823. 		if get_platform() == "PC" then 
  824. 			Multi_lobby_my_lobby_menu.on_alt_select = nil 
  825. 		else 
  826. 			Multi_lobby_my_lobby_menu.on_alt_select = multi_lobby_switch_matchmaking 
  827. 		end 
  828. 		if get_is_matchmaking() then 
  829. 			Multi_lobby_my_lobby_menu.btn_tips = Multi_lobby_lobby_menu_matchmaking_tips 
  830. 		else 
  831. 			Multi_lobby_my_lobby_menu.btn_tips = Multi_lobby_lobby_menu_custom_tips 
  832. 		end 
  833. 	else 
  834. 		Multi_lobby_my_lobby_menu.btn_tips = nil 
  835. 		Multi_lobby_my_lobby_menu.on_alt_select = nil 
  836. 	end 
  837.  
  838. 	--menu is very different based on game state 
  839. 	--method, go through items in order and just add to list keeping track of position 
  840. 	local menu_size = 0 
  841. 	if get_is_host() then 
  842. 		--add 'start game' variant 
  843. 		if get_platform() ~= "PC" then 
  844. 			if get_is_matchmaking() then 
  845. 				Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_find_match_submenu  
  846. 			else 
  847. 				Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_start_match_submenu  
  848. 			end 
  849. 		else 
  850. 			Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_start_match_submenu 
  851. 		end 
  852. 		menu_size = menu_size + 1 
  853. 	end 
  854.  
  855.  
  856. 	if get_platform() ~= "PC" then 
  857. 		if get_is_syslink() == false then 
  858. 			--invite your friends! 
  859. 			Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_invite_submenu  
  860. 			menu_size = menu_size + 1 
  861. 		end 
  862. 	end 
  863.  
  864. 	if get_platform() ~= "PC" then 
  865. 		if get_is_matchmaking() then 
  866. 			-- what type of match!? 
  867. 			Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_match_type_submenu  
  868. 			if get_is_host() == false then 
  869. 				Multi_lobby_my_lobby_menu[menu_size].slider_disabled = true 
  870. 			end 
  871. 		 
  872. 			if get_mp_is_ranked() then 
  873. 				mp_match_type_slider_values.cur_value = 0 
  874. 			else 
  875. 				mp_match_type_slider_values.cur_value = 1 
  876. 			end 
  877. 			Multi_lobby_my_lobby_menu.rank_pos = menu_size 
  878. 			menu_size = menu_size + 1 
  879. 		 
  880. 		else 
  881. 			Multi_lobby_my_lobby_menu.rank_pos = -1 
  882. 		end 
  883. 	end 
  884. 	--everyone has game mode! yay 
  885. 	if get_is_matchmaking() ~= true then 
  886. 		Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_game_mode_submenu  
  887. 	 
  888. 		if get_is_host() == false then 
  889. 			Multi_lobby_my_lobby_menu[menu_size].slider_disabled = true 
  890. 		end 
  891. 		menu_size = menu_size + 1 
  892. 	end 
  893. 	 
  894. 	local num_variants = get_num_mp_variants() 
  895. 	debug_print("vint","mp_lobby_menu: build lobby menu. vars: "..num_variants.."\n") 
  896. 	if num_variants > 0 and get_mp_is_ranked() == false then 
  897. 		--hey we have variants for this mode... show em 
  898. 		Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_variant_submenu 
  899. 		Multi_lobby_my_lobby_menu.variant_pos = menu_size 
  900. 		if get_is_host() == false then 
  901. 			Multi_lobby_my_lobby_menu[menu_size].slider_disabled = true 
  902. 		end 
  903. 		menu_size = menu_size + 1 
  904. 	else 
  905. 		Multi_lobby_my_lobby_menu.variant_pos = -1 
  906. 	end 
  907. 	 
  908. 	--everyone has a map.. gotta have a place to play 
  909. 	Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_map_submenu  
  910. 	Multi_lobby_my_lobby_menu.map_pos = menu_size 
  911. 	if get_is_host() == false then 
  912. 		Multi_lobby_my_lobby_menu[menu_size].slider_disabled = true 
  913. 	end 
  914. 	menu_size = menu_size + 1 
  915. 	 
  916. 	if get_is_matchmaking() == false or get_is_custom_game() == true then  
  917. 		--the rest of this stuff is only used in create your own maptches 
  918. 		Multi_lobby_my_lobby_menu.time_pos = menu_size 
  919. 		Multi_lobby_my_lobby_menu.score_pos = menu_size + 1 
  920. 		Multi_lobby_my_lobby_menu.friendly_fire_pos = menu_size + 2 
  921. 		Multi_lobby_my_lobby_menu.weather_pos = menu_size + 3 
  922. 		Multi_lobby_my_lobby_menu.tod_pos = menu_size + 4 
  923. 		Multi_lobby_my_lobby_menu.sprint_pos = menu_size + 5 
  924. 		Multi_lobby_my_lobby_menu.ammo_pos = menu_size + 6 
  925. 		if get_is_strongarm() then 
  926. 			Multi_lobby_menu_time_submenu.text_slider_values = mp_sa_times_slider_values 
  927. 			Multi_lobby_menu_score_submenu.text_slider_values = mp_sa_scores_slider_values 
  928. 		else 
  929. 			Multi_lobby_menu_time_submenu.text_slider_values = mp_brawl_times_slider_values 
  930. 			Multi_lobby_menu_score_submenu.text_slider_values = mp_brawl_scores_slider_values 
  931. 		end 
  932. 		Multi_lobby_my_lobby_menu[menu_size]   = Multi_lobby_menu_time_submenu  
  933. 		Multi_lobby_my_lobby_menu[menu_size+1] = Multi_lobby_menu_score_submenu  
  934. 		Multi_lobby_my_lobby_menu[menu_size+2] = Multi_lobby_menu_friendly_fire_submenu  
  935. 		Multi_lobby_my_lobby_menu[menu_size+3] = Multi_lobby_menu_weather_submenu 
  936. 		Multi_lobby_my_lobby_menu[menu_size+4] = Multi_lobby_menu_tod_submenu 
  937. 		Multi_lobby_my_lobby_menu[menu_size+5] = Multi_lobby_menu_sprint_submenu 
  938. 		Multi_lobby_my_lobby_menu[menu_size+6] = Multi_lobby_menu_ammo_submenu 
  939. 		if get_is_host() == false then 
  940. 			Multi_lobby_my_lobby_menu[menu_size].slider_disabled = true 
  941. 			Multi_lobby_my_lobby_menu[menu_size+1].slider_disabled = true 
  942. 			Multi_lobby_my_lobby_menu[menu_size+2].slider_disabled = true 
  943. 			Multi_lobby_my_lobby_menu[menu_size+3].slider_disabled = true 
  944. 			Multi_lobby_my_lobby_menu[menu_size+4].slider_disabled = true 
  945. 			Multi_lobby_my_lobby_menu[menu_size+5].slider_disabled = true 
  946. 			Multi_lobby_my_lobby_menu[menu_size+6].slider_disabled = true 
  947. 		end 
  948. 		menu_size = menu_size + 7 
  949. 		if get_is_strongarm() then 
  950. 			Multi_lobby_my_lobby_menu.ped_pos = menu_size 
  951. 			Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_peds_submenu 
  952. 			if get_is_host() == false then 
  953. 				Multi_lobby_my_lobby_menu[menu_size].slider_disabled = true 
  954. 			end 
  955. 			menu_size = menu_size + 1 
  956. 		else 
  957. 			Multi_lobby_my_lobby_menu.ped_pos = -1 
  958. 		end 
  959. 		 
  960. 		if get_is_strongarm() then 
  961. 			Multi_lobby_my_lobby_menu.vehicle_pos = menu_size 
  962. 			Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_vehicles_submenu 
  963. 			if get_is_host() == false then 
  964. 				Multi_lobby_my_lobby_menu[menu_size].slider_disabled = true 
  965. 			end 
  966. 			menu_size = menu_size + 1 
  967. 		else 
  968. 			Multi_lobby_my_lobby_menu.vehicle_pos = -1 
  969. 		end 
  970. 		 
  971. 		Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_weapons_submenu  
  972. 		menu_size = menu_size + 1 
  973. 		 
  974. 		if get_is_strongarm() then 
  975. 			debug_print("vint","mp_lobby_menu: custom menu stronghold\n") 
  976. 			 
  977. 			Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_activities_submenu 
  978. 			Multi_lobby_my_lobby_menu[menu_size+1] = Multi_lobby_menu_tags_submenu 
  979. 			menu_size = menu_size + 2 
  980. 		end 
  981. 		 
  982. 		--possibly add favorites controls 
  983. 		if get_is_host() then 
  984. 			--always get save option 
  985. 			Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_save_favorite_submenu 
  986. 			menu_size = menu_size + 1 
  987. 			Multi_pause_menu_showing_load_favorites = false 
  988. 			if mp_player_has_favorite_match_settings() then 
  989. 				Multi_lobby_my_lobby_menu[menu_size] = Multi_lobby_menu_load_favorite_submenu 
  990. 				menu_size = menu_size + 1 
  991. 				Multi_pause_menu_showing_load_favorites = true 
  992. 			end 
  993. 		end 
  994. 	else  
  995. 		Multi_lobby_my_lobby_menu.time_pos = -1 
  996. 		Multi_lobby_my_lobby_menu.score_pos = -1 
  997. 		Multi_lobby_my_lobby_menu.friendly_fire_pos = -1 
  998. 		Multi_lobby_my_lobby_menu.weather_pos = -1 
  999. 		Multi_lobby_my_lobby_menu.tod_pos = -1 
  1000. 		Multi_lobby_my_lobby_menu.sprint_pos = -1 
  1001. 		Multi_lobby_my_lobby_menu.ammo_pos = -1 
  1002. 		Multi_lobby_my_lobby_menu.ped_pos = -1 
  1003. 	end 
  1004. 	--make sure we have the most up to date stuff in our sliders for width detection 
  1005. 	multi_lobby_menu_setup_populate_menus() 
  1006. 	debug_print("vint","mp_lobby_menu: new menu size: ".. menu_size .."\n") 
  1007. 	Multi_lobby_my_lobby_menu.num_items = menu_size 
  1008. 	 
  1009. end 
  1010.  
  1011. function multi_lobby_menu_post_show() 
  1012. 	debug_print("vint","multi_lobby_menu: post lobby menu show\n") 
  1013. 	Multi_lobby_building_lobby_menu = false 
  1014. end 
  1015.  
  1016. function multi_lobby_switch_matchmaking() 
  1017. 	if get_is_syslink() then 
  1018. 		debug_print("vint","multi_lobby_menu: syslink swapping matchmaking! BAD\n") 
  1019. 		return 
  1020. 	end 
  1021. 	debug_print("vint","mp_lobby_menu: menu change\n") 
  1022. 	--tell the game about the swap 
  1023. 	mp_swap_matchmaking() 
  1024. 	menu_show(Multi_lobby_menu, MENU_TRANSITION_SWEEP_RIGHT) 
  1025. end 
  1026.  
  1027. function multi_lobby_save_favorites_confirm(result, action) 
  1028. 	if action ~= DIALOG_ACTION_CLOSE then 
  1029. 		return 
  1030. 	end 
  1031. 	 
  1032. 	if result == DIALOG_RESULT_YES then 
  1033. 		mp_save_custom_match_settings_as_favorite() 
  1034. 		if Multi_pause_menu_showing_load_favorites == false then 
  1035. 			menu_show(Multi_lobby_menu, MENU_TRANSITION_SWEEP_RIGHT) 
  1036. 		end 
  1037. 	end 
  1038. end 
  1039.  
  1040. function multi_custom_match_maybe_save_settings() 
  1041. 	--throw up a confirmaton box 
  1042. 	if mp_player_has_favorite_match_settings() then 
  1043. 		dialog_box_confirmation("MENU_TITLE_WARNING", "FAVORITE_RESAVE_WARNING", "multi_lobby_save_favorites_confirm") 
  1044. 	else 
  1045. 		mp_save_custom_match_settings_as_favorite() 
  1046. 		if Multi_pause_menu_showing_load_favorites == false then 
  1047. 			menu_show(Multi_lobby_menu, MENU_TRANSITION_SWEEP_RIGHT) 
  1048. 		end 
  1049. 	end 
  1050. end 
  1051.  
  1052. function multi_custom_match_load_favorite_settings() 
  1053. 	mp_load_custom_match_settings_from_favorite() 
  1054. 	--re read the custom shiz 
  1055. 	multi_lobby_read_and_show_custom_match_data() 
  1056. 	multi_lobby_show_main_sliders() 
  1057. end 
  1058.  
  1059. Multi_local_game_data = { 
  1060. 	custom_match = -1, 
  1061. 	ranked_match = -1, 
  1062. 	mode_name = "invalid_mode", 
  1063. 	map_index = 0, 
  1064. } 
  1065. ----[update functions]------ 
  1066. function multi_menu_game_data_update(data_item_handle, event_name) 
  1067. 	local custom_match, ranked_match, mode_name, map_index, variant_name, custom_data_version = vint_dataitem_get(data_item_handle) 
  1068. 	debug_print("vint","mp_hud_lobby: update game map or type \n") 
  1069. 	if get_is_host() then 
  1070. 		--nothing for now, we should be in charge on the host side 
  1071. 	else 
  1072. 		debug_print("vint","mp_lobby_menu: mode_name: "..mode_name.." map_index: "..map_index.."\n") 
  1073. 		--see what's changed 
  1074. 		local menu_change = false; 
  1075. 		local slider_change = false; 
  1076. 		 
  1077. 		if map_index == -1 then 
  1078. 			--random map 
  1079. 			map_index = mp_map_slider_values.num_values - 1 
  1080. 		end 
  1081. 		 
  1082. 		if map_index ~= Multi_local_game_data.map_index then 
  1083. 			mp_map_slider_values.cur_value = map_index 
  1084. 			multi_lobby_maybe_show_slider( Multi_lobby_my_lobby_menu, Multi_lobby_my_lobby_menu.map_pos ) 
  1085. 			debug_print("vint","mp_lobby_menu: new map: ".. map_index .."\n") 
  1086. 			Multi_local_game_data.map_index = map_index 
  1087. 			--repopulate activities 
  1088. 			Multi_lobby_custom_activities_menu.num_items = 0 
  1089. 			vint_dataresponder_request("sr2_multi_lobby_activities", "multi_menu_populate_activities", 0) 
  1090. 		end 
  1091. 		 
  1092. 		if Multi_local_game_data.ranked_match == -1 or Multi_local_game_data.ranked_match ~= ranked_match then 
  1093. 			debug_print("vint","mp_lobby_menu: rank change\n") 
  1094. 			menu_change = true 
  1095. 			Multi_local_game_data.ranked_match = ranked_match 
  1096. 		end 
  1097. 		 
  1098. 		if mode_name ~= Multi_local_game_data.mode_name then 
  1099. 			debug_print("vint","mp_lobby_menu: new mode \n") 
  1100. 			--Multi_lobby_menu_game_mode_client_submenu.info_text_str = mode_name 
  1101. 			slider_change = true; 
  1102. 			menu_change = true; 
  1103. 			Multi_local_game_data.mode_name = mode_name 
  1104. 		end 
  1105. 		 
  1106. 		if Multi_local_game_data.custom_match == -1 or Multi_local_game_data.custom_match ~= custom_match then 
  1107. 			Multi_local_game_data.custom_match = custom_match  
  1108. 			menu_change = true 
  1109. 		end 
  1110. 		 
  1111. 		if Multi_lobby_custom_data_version ~= custom_data_version or menu_change then 
  1112. 			--new custom data, read it all again 
  1113. 			debug_print("vint", "mp_lobby_menu: custom data update\n") 
  1114. 			Multi_lobby_custom_data_version = custom_data_version 
  1115. 			multi_lobby_read_and_show_custom_match_data() 
  1116. 		end 
  1117. 		 
  1118. 		--update map/mode sliders 
  1119. 		if Menu_active == Multi_lobby_my_lobby_menu then 
  1120. 			if menu_change == true then 
  1121. 				menu_show(Multi_lobby_my_lobby_menu, MENU_TRANSITION_SWEEP_RIGHT) 
  1122. 			end 
  1123. 		end 
  1124. 	end 
  1125. end 
  1126.  
  1127. ----[ Sliders for the Menus ]---- 
  1128.  
  1129. Mp_lobby_game_mode_ranked = "MULTI_GAMETYPE_3" 
  1130. Mp_lobby_game_mode_unranked_360 = "MULTI_GAMETYPE_2" 
  1131. Mp_lobby_game_mode_unranked_PS3 = "MULTI_GAMETYPE_2" 
  1132. mp_map_slider_values 			= { [0] = { label = "test" }, num_values = 1, cur_value = 0 } -- values from code 
  1133. mp_game_mode_slider_values 		= { [0] = { label = "test" }, num_values = 1, cur_value = 0 } -- values from code  
  1134. mp_match_type_slider_values		= { [0] = { label = Mp_lobby_game_mode_ranked }, [1] = { label = Mp_lobby_game_mode_unranked_360 }, num_values = 2, cur_value = 0} 
  1135. mp_variant_slider_values		= { num_values = 0, cur_value = 0 } -- values from code 
  1136. --mp_on_off_slider_values			= { [0] = { label = "On" }, [1] = { label = "Off" }, num_values = 2, cur_value = 0 } 
  1137. mp_brawl_times_slider_values   	= { [0] = { label = "test" }, num_values = 1, cur_value = 0 } -- values from code 
  1138. mp_sa_times_slider_values	    = { [0] = { label = "test" }, num_values = 1, cur_value = 0 } -- values from code 
  1139. mp_brawl_scores_slider_values	= { [0] = { label = "test" }, num_values = 1, cur_value = 0 } -- values from code 
  1140. mp_sa_scores_slider_values	    = { [0] = { label = "test" }, num_values = 1, cur_value = 0 } -- values from code 
  1141. mp_tod_slider_values			= { [0] = { label = "MULTI_TOD_DAY" }, [1] = { label = "MULTI_TOD_NIGHT"}, num_values = 2, cur_value = 0 } 
  1142. mp_weather_slider_values		= { [0] = { label = "sunny" }, [1] = { label = "rainy" }, num_values = 2, cur_value = 0 } 
  1143. mp_vehicle_slider_values 		= { [0] = { label = "test" }, num_values = 1, cur_value = 0 } -- values from code 
  1144. ----[Menus]---- 
  1145. Multi_lobby_lobby_menu_matchmaking_tips = { 
  1146. 	a_button 	= 	{ label = "CONTROL_SELECT", 				enabled = btn_tips_default_a, }, 
  1147. 	--x_button 	= 	{ label = "MULTI_PARTY_GAME",		 				enabled = btn_tips_default_a, }, 
  1148. 	b_button 	= 	{ label = "MENU_RESUME", 						enabled = btn_tips_default_a, }, 
  1149. } 
  1150. Multi_lobby_lobby_menu_custom_tips = { 
  1151. 	a_button 	= 	{ label = "CONTROL_SELECT", 				enabled = btn_tips_default_a, }, 
  1152. 	x_button 	= 	{ label = "MULTI_GAMETYPE_4", 				enabled = btn_tips_default_a, }, 
  1153. 	b_button 	= 	{ label = "MENU_RESUME", 						enabled = btn_tips_default_a, }, 
  1154. } 
  1155.  
  1156. Multi_lobby_player_menu_tips_syslink = { 
  1157. 	x_button 	= 	{ label = "MULTI_SWITCH_TEAMS", 				enabled = btn_tips_default_a, }, 
  1158. 	b_button 	= 	{ label = "MENU_RESUME", 						enabled = btn_tips_default_a, }, 
  1159. } 
  1160. 	 
  1161. Multi_lobby_player_menu_tips = { 
  1162. 	a_button 	= 	{ label = "CONTROL_SELECT", 				enabled = btn_tips_default_a, }, 
  1163. 	x_button 	= 	{ label = "MULTI_SWITCH_TEAMS", 				enabled = btn_tips_default_a, }, 
  1164. 	b_button 	= 	{ label = "MENU_RESUME", 						enabled = btn_tips_default_a, }, 
  1165. } 
  1166.  
  1167. Multi_lobby_ranked_menu_tips = { 
  1168. 	a_button 	= 	{ label = "CONTROL_SELECT", 				enabled = btn_tips_default_a, }, 
  1169. 	--x_button 	= 	{ label = "MULTI_SWITCH_TEAMS", 				enabled = btn_tips_default_a, }, 
  1170. 	b_button 	= 	{ label = "MENU_RESUME", 						enabled = btn_tips_default_a, }, 
  1171. } 
  1172.  
  1173. Multi_lobby_friends_tips = { 
  1174. 	a_button 	= 	{ label = "CONTROL_SELECT", 					enabled = btn_tips_default_a, }, 
  1175. 	x_button 	= 	{ label = "MULTI_MENU_SHOW_GAMERCARD", 			enabled = btn_tips_default_a, }, 
  1176. 	b_button 	= 	{ label = "MENU_BACK", 						enabled = btn_tips_default_a, }, 
  1177. } 
  1178.  
  1179. Multi_lobby_subgroup_tips = { 
  1180. 	a_button 	= 	{ label = "MULTI_LOBBY_ACCEPT", 				enabled = btn_tips_default_a, }, 
  1181. 	b_button 	= 	{ label = "MENU_BACK", 						enabled = btn_tips_default_a, }, 
  1182. } 
  1183.  
  1184. Multi_lobby_custom_weapons_menu = { 
  1185. 	num_items = 1, 
  1186. 	header_label_str = "MULTI_LOBBY_WEAPONS", 
  1187. 	on_pause = pause_menu_exit, 
  1188. 	 
  1189. 	[0] = {label = "test",	type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "test" }, num_values = 1, cur_value = 0 } }, 
  1190. 	 
  1191. 	btn_tips = Multi_lobby_subgroup_tips, 
  1192. } 
  1193.  
  1194. Multi_lobby_custom_activities_menu = { 
  1195. 	num_items = 1, 
  1196. 	header_label_str = "MULTI_ACTIVITIES", 
  1197. 	on_pause = pause_menu_exit, 
  1198. 	 
  1199. 	[0] = {label = "test",	type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "test" }, num_values = 1, cur_value = 0 } }, 
  1200. 	 
  1201. 	btn_tips = Multi_lobby_subgroup_tips, 
  1202. } 
  1203.  
  1204. Multi_lobby_custom_tags_menu = { 
  1205. 	num_items = 1, 
  1206. 	header_label_str = "MULTI_TAGS", 
  1207. 	on_pause = pause_menu_exit, 
  1208. 	 
  1209. 	[0] = {label = "test",	type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "test" }, num_values = 1, cur_value = 0 } }, 
  1210. 	 
  1211. 	btn_tips = Multi_lobby_subgroup_tips, 
  1212. } 
  1213.  
  1214. Pause_lobby_players	= {  
  1215. 	header_label_str = "MULTI_LOBBY_SCREEN_PLAYERS", 
  1216. 	on_back = pause_menu_exit, 
  1217. 	on_pause = pause_menu_exit, 
  1218. 	num_items = 1, 
  1219. 	get_width = pause_menu_lobby_players_get_width, 
  1220. 	get_height = pause_menu_lobby_players_get_height, 
  1221. 	on_alt_select = multi_player_swap_teams, 
  1222. 	[0] = { label = "", type = PAUSE_MENU_CONTROL_LOBBY_PLAYERS } 
  1223. } 
  1224.  
  1225. Multi_lobby_invite_player_menu = { 
  1226. 	num_items = 1, 
  1227. 	header_label_str = "MULTI_LOBBY_INVITE_FRIENDS", 
  1228. 	on_pause	= pause_menu_exit, 
  1229. 	 
  1230. 	[0] =  { label = "MM_LOAD_LOADING", type = MENU_ITEM_TYPE_SELECTABLE, on_select = nil }, 
  1231. } 
  1232.  
  1233. Multi_lobby_menu_variant_submenu = {label = "MULTI_LOBBY_VARIANT",	type = MENU_ITEM_TYPE_TEXT_SLIDER, on_value_update = multi_player_switch_game_variant, text_slider_values = mp_variant_slider_values} 
  1234. Multi_lobby_menu_vehicles_submenu = {label = "MULTI_LOBBY_VEHICLES", type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = mp_vehicle_slider_values, on_value_update = multi_player_switch_vehicle_set} 
  1235. Multi_lobby_menu_activities_submenu = {label = "MULTI_ACTIVITIES", type = MENU_ITEM_TYPE_SUB_MENU, sub_menu = Multi_lobby_custom_activities_menu} 
  1236. Multi_lobby_menu_tags_submenu = {label = "MULTI_TAGS", type = MENU_ITEM_TYPE_SUB_MENU, sub_menu = Multi_lobby_custom_tags_menu} 
  1237. Multi_lobby_menu_find_match_submenu = {label = "MULTI_LOBBY_FIND_MATCH", type = MENU_ITEM_TYPE_SELECTABLE, on_select = multi_player_start_game 	} 
  1238. Multi_lobby_menu_start_match_submenu = {label = "MULTI_LOBBY_START_GAME", type = MENU_ITEM_TYPE_SELECTABLE, on_select = multi_player_start_game } 
  1239. Multi_lobby_menu_invite_submenu = {label = "MULTI_LOBBY_INVITE_FRIENDS", type = MENU_ITEM_TYPE_SELECTABLE, on_select = multi_lobby_load_friends} 
  1240. Multi_lobby_menu_match_type_submenu = {label = "MULTI_MATCH_TYPE", type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = mp_match_type_slider_values, on_value_update = multi_player_switch_match_rank_type} 
  1241. Multi_lobby_menu_game_mode_submenu = {label = "MULTI_LOBBY_GAME_MODE", type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = mp_game_mode_slider_values, on_value_update = multi_player_switch_game_mode} 
  1242. Multi_lobby_menu_map_submenu = {label = "MULTI_LOBBY_SCREEN_MAP",	type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = mp_map_slider_values, on_value_update = multi_player_switch_map} 
  1243. Multi_lobby_menu_time_submenu = {label = "MULTI_TIME_LIMIT", type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = mp_sa_times_slider_values, on_value_update = multi_lobby_update_time_limit} 
  1244. Multi_lobby_menu_score_submenu = {label = "MULTI_LOBBY_SCORE_LIMIT", type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = mp_sa_scores_slider_values, on_value_update = multi_lobby_update_score_limit} 
  1245. Multi_lobby_menu_friendly_fire_submenu = {label = "MULTI_LOBBY_FRIENDLY_FIRE", type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "MULTI_LOBBY_ON" }, [1] = { label = "GENERAL_LIGHT"}, [2] = { label = "MULTI_LOBBY_OFF" }, num_values = 3, cur_value = 0 }, on_value_update = multi_lobby_update_friendly_fire} 
  1246. Multi_lobby_menu_weapons_submenu = {label = "MULTI_LOBBY_WEAPONS", type = MENU_ITEM_TYPE_SUB_MENU, sub_menu = Multi_lobby_custom_weapons_menu} 
  1247. Multi_lobby_menu_tod_submenu = {label = "MULTI_LOBBY_TIME_OF_DAY", type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = mp_tod_slider_values, on_value_update = multi_lobby_update_tod} 
  1248. Multi_lobby_menu_weather_submenu = {label = "MULTI_LOBBY_WEATHER", type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = mp_weather_slider_values, on_value_update = multi_lobby_update_weather} 
  1249. Multi_lobby_menu_peds_submenu = {label = "MULTI_PEDESTRIANS", type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "MULTI_LOBBY_ON" }, [1] = { label = "MULTI_LOBBY_OFF" }, num_values = 2, cur_value = 0 }, on_value_update = multi_lobby_update_peds} 
  1250. Multi_lobby_menu_ammo_submenu = {label = "MULTI_UNLIMITED_AMMO", type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "MULTI_LOBBY_ON" }, [1] = { label = "MULTI_LOBBY_OFF" }, num_values = 2, cur_value = 0 }, on_value_update = multi_lobby_update_ammo} 
  1251. Multi_lobby_menu_sprint_submenu = {label = "MULTI_UNLIMITED_SPRINT", type = MENU_ITEM_TYPE_TEXT_SLIDER, text_slider_values = { [0] = { label = "MULTI_LOBBY_ON" }, [1] = { label = "MULTI_LOBBY_OFF" }, num_values = 2, cur_value = 0 }, on_value_update = multi_lobby_update_sprint} 
  1252. Multi_lobby_menu_save_favorite_submenu = {label = "SAVE_FAVORITE", type = MENU_ITEM_TYPE_SELECTABLE, on_select = multi_custom_match_maybe_save_settings } 
  1253. Multi_lobby_menu_load_favorite_submenu = {label = "LOAD_FAVORITE", type = MENU_ITEM_TYPE_SELECTABLE, on_select = multi_custom_match_load_favorite_settings } 
  1254.  
  1255. Multi_lobby_menu = { 
  1256. 	num_items = 0, 
  1257. 	header_label_str = "MULTI_MENU_LOBBY", 
  1258. 	on_back = pause_menu_exit, 
  1259. 	on_pause = pause_menu_exit, 
  1260. 	on_show = multi_lobby_menu_build_menu, 
  1261. 	on_post_show = multi_lobby_menu_post_show, 
  1262. 	map_pos = -1, 
  1263. 	variant_pos = -1, 
  1264. 	rank_pos = -1, 
  1265. 	time_pos = -1, 
  1266. 	score_pos = -1, 
  1267. 	friendly_fire_pos = -1, 
  1268. 	tod_pos = -1, 
  1269. 	weather_pos = -1, 
  1270. 	sprint_pos = -1, 
  1271. 	ammo_pos = -1, 
  1272. 	ped_pos = -1, 
  1273. 	vehicle_pos = -1, 
  1274. } 
  1275.  
  1276. Multi_pause_horz_menu = { 
  1277. 	num_items = 3, 
  1278. 	current_selection = 0, 
  1279. 	on_back = pause_menu_exit, 
  1280. 	on_pause	= pause_menu_exit, 
  1281. 	 
  1282. 	[0] = { label = "MULTI_MENU_LOBBY", 			sub_menu = Multi_lobby_menu }, 
  1283. 	[1] = { label = "MULTI_LOBBY_SCREEN_PLAYERS", 	sub_menu =  Pause_lobby_players	}, 
  1284. 	[2] = { label = "PAUSEMENU_CAT_OPTIONS",		sub_menu = Pause_options_menu 	}, 
  1285. 	 
  1286. } 
  1287.