./main_menu_top.lua

  1. --Globals... 
  2. Main_menu_press_start_peg = -1			--Peg to load language specific pess start button... 
  3. Main_menu_list = -1 
  4. Menu_newsticker = -1 
  5.  
  6. MAIN_MENU_MEGA_LIST_SIZE = 435 
  7. Main_menu_input_tracker = -1 
  8. local Main_menu_mouse_input_tracker = -1 
  9. local Main_menu_returned_to_start = false 
  10. local Main_menu_top_doc = -1 
  11. local Main_menu_top = { } 
  12. local Online_check_thread = -1 
  13.  
  14. -- PC Menu has height adjusted 
  15. local PC_menu_adjusted = false 
  16.  
  17. function main_menu_top_init() 
  18. 	Main_menu_top_doc = vint_document_find("main_menu_top") 
  19.  
  20. 	--Load appropriate press start button... 
  21. 	local language = game_get_language() 
  22. 	 
  23. 	--Hide press start... 
  24. 	main_menu_top_press_start_hide() 
  25.  
  26. 	--Initialize Hint Bar store it to global Menu_hint_bar 
  27. 	Menu_hint_bar = Vdo_hint_bar:new("hint_bar", 0, Main_menu_common_doc) 
  28.  
  29. 		-- Subscribe to common inputs 
  30. 	Main_menu_input_tracker = Vdo_input_tracker:new() 
  31. 	Main_menu_input_tracker:add_input("map",		"main_menu_do_nothing",	50) 
  32. 	Main_menu_input_tracker:add_input("select", 	"main_menu_button_a",		50) 
  33. 	Main_menu_input_tracker:add_input("back", 	"main_menu_button_b",		50)	 
  34. 	Main_menu_input_tracker:add_input("nav_up", 	"main_menu_nav_up", 			50) 
  35. 	Main_menu_input_tracker:add_input("nav_down", "main_menu_nav_down",		50) 
  36. 	Main_menu_input_tracker:subscribe(false) 
  37. 	 
  38. 	-- Add mouse inputs for the PC 
  39. 	if game_get_platform() == "PC" then 
  40. 		Main_menu_mouse_input_tracker = Vdo_input_tracker:new() 
  41. 		Main_menu_mouse_input_tracker:subscribe(false) 
  42. 	end 
  43.  
  44. 	--Setup button hints 
  45. 	--Menu_hint_bar:set_hints()   
  46. 	Menu_hint_bar:set_visible(false) 
  47. 	 
  48. 	--Hide megalist 
  49. 	local main_menu_list_h = vint_object_find("main_menu_list") 
  50. 	vint_set_property(main_menu_list_h, "visible", false) 
  51.  
  52. 	local newsticker_h = vint_object_find("newsticker") 
  53. 	vint_set_property(newsticker_h, "visible", false) 
  54. 	 
  55. 	vint_apply_start_values(Screen_in_anim.handle) 
  56. 	 
  57. 	if Main_menu_gameboot_complete == true then 
  58. 		--Game is already loaded, so we know we are coming from game, there is no loading or press start... 
  59. 	 
  60. 		--Skip load Screen... 
  61. 		main_menu_load_skip() 
  62. 	 
  63. 		--Skip press start... 
  64. 		main_menu_top_press_start_skip() 
  65. 		 
  66. 		--Show menu... 
  67. 		main_menu_top_menu_show() 
  68. 		 
  69. 		--Show MM logo...	 
  70. 		main_menu_logo_show() 
  71.  
  72. 	else 
  73. 		-- Start load sequence... 
  74. 		main_menu_load_start() 
  75. 	end 
  76. 	 
  77. end 
  78.  
  79. function main_menu_top_reset() 
  80. 	-- Move the ticker down, and everything else up on PC 
  81. 	if game_get_platform() == "PC" then 
  82. 		local main_menu_list_h = vint_object_find("main_menu_list") 
  83. 		vint_set_property(main_menu_list_h, "scale", 0.9, 0.9) 
  84. 		 
  85. 		local base_grp_h = vint_object_find("base_grp") 
  86. 		local x, y = vint_get_property(base_grp_h, "anchor") 
  87. 		if vint_is_std_res() then 
  88. 			vint_set_property(base_grp_h, "anchor", x, y - 30) 
  89. 		else 
  90. 			vint_set_property(base_grp_h, "anchor", x, y - 40) 
  91. 		end 
  92. 		 
  93. 		x, y = Menu_newsticker:get_anchor() 
  94. 		if vint_is_std_res() then 
  95. 			Menu_newsticker:set_anchor(x, y + 40) 
  96. 		else 
  97. 			Menu_newsticker:set_anchor(x, y + 50) 
  98. 		end 
  99. 		PC_menu_adjusted = true 
  100. 	end 
  101. end 
  102.  
  103. function main_menu_top_lost_focus() 
  104. 	local main_menu_list_h = vint_object_find("main_menu_list") 
  105. 	vint_set_property(main_menu_list_h, "visible", false) 
  106. 	 
  107. 	List:set_visible(true) 
  108. 	Header_obj:set_visible(true) 
  109. 	 
  110. 	main_menu_logo_hide() 
  111. 	 
  112. 	Main_menu_input_tracker:subscribe(false) 
  113. 	if Main_menu_mouse_input_tracker ~= -1 then 
  114. 		Main_menu_mouse_input_tracker:subscribe(false) 
  115. 	end 
  116. end 
  117.  
  118. function main_menu_top_input_lock(locked) 
  119. 	Main_menu_input_tracker:subscribe(not locked) 
  120. 	if Main_menu_mouse_input_tracker ~= -1 then 
  121. 		Main_menu_mouse_input_tracker:subscribe(not locked) 
  122. 	end 
  123. end 
  124.  
  125. function main_menu_top_gained_focus() 
  126. 	local main_menu_list_h = vint_object_find("main_menu_list") 
  127.  
  128. 	List:set_visible(false) 
  129. 	Header_obj:set_visible(false) 
  130. 	 
  131. 	-- Hide hint bar hints 
  132. 	Menu_hint_bar:set_hints()   
  133.  
  134. 	bg_saints_show(false) 
  135. 	main_menu_logo_show() 
  136.  
  137. 	if Main_menu_returned_to_start == true then 
  138. 		vint_set_property(main_menu_list_h, "visible", false) 
  139. 		Menu_newsticker:set_visible(false) 
  140. 		return 
  141. 	else  
  142. 		vint_set_property(main_menu_list_h, "visible", true) 
  143. 	end 
  144. 	 
  145. 	Main_menu_input_tracker:subscribe(true) 
  146. 	if Main_menu_mouse_input_tracker ~= -1 then 
  147. 		Main_menu_mouse_input_tracker:subscribe(true) 
  148. 	end 
  149. 	 
  150. 	if Enter_dlc_menu == true then 
  151. 		main_menu_top_dlc() 
  152. 		Enter_dlc_menu = false 
  153. 	end 
  154. end 
  155.  
  156. function main_menu_top_cleanup() 
  157. 	if Main_menu_press_start_peg ~= -1 then 
  158. 		game_peg_unload(Main_menu_press_start_peg) 
  159. 	end 
  160. 	 
  161. 	if Online_check_thread ~= -1 then 
  162. 		thread_kill(Online_check_thread) 
  163. 	end 
  164. end 
  165.  
  166. ------------------------------------------------------------------------------- 
  167. -- Initialize press start screen... 
  168. -- Setup controls, and show proper press start bitmap... 
  169. ------------------------------------------------------------------------------- 
  170. function main_menu_top_press_start_init() 
  171. 	--Start init... 
  172. end 
  173.  
  174. function main_menu_top_press_start_show() 
  175. 	 
  176. 	if Menu_hint_bar ~= -1 then 
  177. 		Menu_hint_bar:set_visible(false) 
  178. 	end 
  179. 	 
  180. 	if Main_menu_list ~= -1 then 
  181. 	 
  182. 		--Clear any submenu stacks... 
  183. 		menu_common_stack_clear() 
  184. 		 
  185. 		Main_menu_returned_to_start = true 
  186. 		vint_set_property(Main_menu_list.handle, "visible", false) 
  187. 	end 
  188. 			 
  189. 	if Main_menu_input_tracker ~= -1 then 
  190. 		Main_menu_input_tracker:subscribe(false) 
  191. 	end 
  192. 	 
  193. 	if Main_menu_mouse_input_tracker ~= -1 then 
  194. 		Main_menu_mouse_input_tracker:subscribe(false) 
  195. 	end 
  196. 		 
  197. 	local press_start_pulse_h = vint_object_find("press_start_pulse", 0, Main_menu_top_doc) 
  198. 	lua_play_anim(press_start_pulse_h, 0, Main_menu_top_doc) 
  199. 	 
  200. 	--Show start group stuff... 
  201. 	local h = vint_object_find("press_start_grp", 0, Main_menu_top_doc) 
  202. 	vint_set_property(h, "visible", true) 
  203. 	vint_set_property(h, "alpha", 0) 
  204. 	 
  205. 	local anim_h = vint_object_find("intro_press_start_anim", 0, Main_menu_top_doc) 
  206. 	lua_play_anim(anim_h, 0, Main_menu_top_doc) 
  207.  
  208. 	local screen_grp_h = vint_object_find("screen_grp", 0, Main_menu_common_doc) 
  209. 	vint_set_property(screen_grp_h, "anchor", -1000, 0) 
  210. 	 
  211. end 
  212.  
  213. function main_menu_top_press_start_hide() 
  214. 	--Show start group stuff... 
  215. 	local h = vint_object_find("press_start_grp") 
  216. 	vint_set_property(h, "visible", false) 
  217. end 
  218.  
  219. -- Turns off press start... 
  220. function main_menu_top_press_start_skip() 
  221. 	--Show start group stuff... 
  222. 	local h = vint_object_find("press_start_grp") 
  223. 	vint_set_property(h, "visible", false) 
  224. end 
  225.  
  226. function main_menu_create_top_menu() 
  227. 	Main_menu_top = { } 
  228. 	 
  229. 	if Show_continue then 
  230. 		Main_menu_top[#Main_menu_top + 1] = Continue_button 
  231. 	end 
  232. 	 
  233. 	Main_menu_top[#Main_menu_top + 1] = Campaign_button 
  234. 	Main_menu_top[#Main_menu_top + 1] = Coop_button 
  235.  
  236. 	if game_is_german_build() == false then 
  237. 		Main_menu_top[#Main_menu_top + 1] = Whored_button 
  238. 	end 
  239.  
  240. 	Main_menu_top[#Main_menu_top + 1] = DLC_button 
  241.  
  242. 	if game_get_platform() ~= "PS3" then 
  243. 		Main_menu_top[#Main_menu_top + 1] = Community_button	 
  244. 	end 
  245.  
  246. 	if game_get_platform() == "PC" then 
  247. 		Main_menu_top[#Main_menu_top + 1] = Options_button 
  248. 	end 
  249. 	 
  250. 	Main_menu_top[#Main_menu_top + 1] = Extras_button  
  251. 	 
  252. 	if game_get_platform() == "PC" then 
  253. 		-- Main_menu_top[#Main_menu_top + 1] = Machinima_button 
  254. 		Main_menu_top[#Main_menu_top + 1] = Mm_quit_game 
  255. 	end 
  256.  
  257. 	-- Create megalist... 
  258. 	if Main_menu_list == -1 then 
  259. 		Main_menu_list = Vdo_pause_mega_list:new("main_menu_list") 
  260. 		Main_menu_list:set_button_color(COLOR_MAINMENU_TOGGLE_TEXT_SELECTED, COLOR_MAINMENU_TOGGLE_TEXT_UNSELECTED) 
  261. 		Main_menu_list:set_shadows(true) 
  262. 		Main_menu_list:draw_items(Main_menu_top, 1, MAIN_MENU_MEGA_LIST_SIZE, 10, "center") 
  263. 		Main_menu_list:show_bar(false) 
  264. 	else 
  265. 		Main_menu_list:draw_items(Main_menu_top, 1, MAIN_MENU_MEGA_LIST_SIZE, 10, "center") 
  266. 	end 
  267.  
  268. 	if game_get_platform() == "PC" then 
  269. 		Main_menu_mouse_input_tracker:remove_all() 
  270. 		Main_menu_list:add_mouse_inputs("main_menu", Main_menu_mouse_input_tracker) 
  271. 	end 
  272. end 
  273.  
  274. --Show menu... 
  275. function main_menu_top_menu_show(show_continue) 
  276. 	if show_continue then  
  277. 		Show_continue = true 
  278. 	end 
  279. 	 
  280. 	Menu_hint_bar:set_hints() 
  281. 	Menu_hint_bar:set_visible(true) 
  282. 	 
  283. 	Main_menu_returned_to_start = false 
  284. 	 
  285. 	-- Check for money shot unlocks after Press Start. 
  286. 	main_menu_money_shot_check() 
  287. 	 
  288. 	main_menu_create_top_menu() 
  289. 	vint_set_property(Main_menu_list.handle, "visible", true) 
  290.  
  291. 	--Disabling Newsticker for demo... 
  292. 	if not game_is_demo() then 
  293. 		if Menu_newsticker == -1 then 
  294. 			Menu_newsticker = Vdo_newsticker:new("newsticker", 0, 0, "main_menu_top.lua", "Menu_newsticker") 
  295. 		end 
  296. 		 
  297. 		Menu_newsticker:set_visible(true) 
  298. 		 
  299. 		-- Move the ticker down, and everything else up on PC 
  300. 		if game_get_platform() == "PC" and PC_menu_adjusted == false then 
  301. 			local main_menu_list_h = vint_object_find("main_menu_list") 
  302. 			vint_set_property(main_menu_list_h, "scale", 0.9, 0.9) 
  303. 			 
  304. 			local base_grp_h = vint_object_find("base_grp") 
  305. 			local x, y = vint_get_property(base_grp_h, "anchor") 
  306. 			if vint_is_std_res() then 
  307. 				vint_set_property(base_grp_h, "anchor", x, y - 30) 
  308. 			else 
  309. 				vint_set_property(base_grp_h, "anchor", x, y - 40) 
  310. 			end 
  311. 			 
  312. 			x, y = Menu_newsticker:get_anchor() 
  313. 			if vint_is_std_res() then 
  314. 				Menu_newsticker:set_anchor(x, y + 40) 
  315. 			else 
  316. 				Menu_newsticker:set_anchor(x, y + 50) 
  317. 			end 
  318. 			PC_menu_adjusted = true 
  319. 		end 
  320. 	end 
  321. 			 
  322. 	-- Subscribe to inputs 
  323. 	Main_menu_input_tracker:subscribe(true) 
  324. 		-- Add mouse inputs for the PC 
  325. 	if game_get_platform() == "PC" then 
  326. 		Main_menu_mouse_input_tracker:subscribe(true) 
  327. 	end 
  328.  
  329. 	bg_saints_set_type(BG_TYPE_CENTER,true) 
  330. end 
  331.  
  332.  
  333. -- show main menu 
  334. function main_menu_start() 
  335.  
  336. -- legacy shit... 
  337. --	pause_save_get_global_info(false)	-- this can block across frames 
  338. --	pause_save_get_global_info(get_device) 
  339.  
  340. 	-- Show main menu on screen... 
  341. 	 
  342. end 
  343.  
  344. function main_menu_do_nothing() 
  345.  
  346. end 
  347.  
  348. ------------------------------------------------------------------------------- 
  349. -- Navigation Functions... 
  350. ------------------------------------------------------------------------------- 
  351. function main_menu_nav_up() 
  352. 	-- Move highlight up 
  353. 	Main_menu_list:move_cursor(-1) 
  354. end 
  355.  
  356. function main_menu_nav_down() 
  357. 	-- Move highlight down 
  358. 	Main_menu_list:move_cursor(1) 
  359. end 
  360.  
  361. function main_menu_button_b() 
  362. 	if game_get_platform() == "PC" then 
  363. 		main_menu_initiate_quit_game() 
  364. 	end 
  365. 	--Nav the screen back... 
  366. end 
  367.  
  368. function main_menu_button_a() 
  369. 	--Nav the screen forward... 
  370.  
  371. 	--Set the screen data to the list data 
  372. 	local data = Main_menu_list:return_data() 
  373. 	local current_selection = Main_menu_list:get_selection() 
  374. 	if current_selection == -1 then 
  375. 		return 
  376. 	end 
  377. 	 
  378. 	--Clear any sub menu stacks... 
  379. 	menu_common_stack_clear() 
  380. 	 
  381. 	--pass off the input to the list 
  382. 	Main_menu_list:button_a() 
  383. 	 
  384. end 
  385.  
  386. function main_menu_mouse_click(event, target_handle) 
  387. 	local new_index = Main_menu_list:get_button_index(target_handle) 
  388. 	if new_index ~= 0 then 
  389. 		Main_menu_list:set_selection(new_index) 
  390. 		--Main_menu_list:move_cursor(0, true) 
  391. 		main_menu_button_a() 
  392. 	end 
  393. end 
  394.  
  395. function main_menu_mouse_move(event, target_handle) 
  396. 	local new_index = Main_menu_list:get_button_index(target_handle) 
  397. 	if new_index ~= 0 then 
  398. 		Main_menu_list:set_selection(new_index) 
  399. 		Main_menu_list:move_cursor(0, true) 
  400. 	end 
  401. end 
  402.  
  403. -- Continue button 
  404. function main_menu_top_continue() 
  405. 	main_menu_continue() 
  406. end 
  407.  
  408. -- Campaign menu 
  409. function main_menu_top_campaign() 
  410. 	--Do Campaign Game 
  411. 	push_screen("main_menu_campaign") 
  412. end 
  413.  
  414. function mm_top_redeem_check() 
  415. 	main_menu_supress_profile_change(true) 
  416. 	online_and_privilege_validator_begin(true, true, true, false, false) 
  417. 	while Online_validator_result == ONLINE_VALIDATOR_IN_PROGRESS do 
  418. 		thread_yield() 
  419. 	end 
  420. 	main_menu_supress_profile_change(false) 
  421. 	 
  422. 	main_menu_top_input_lock(false) 
  423. 	if Online_validator_result ~= ONLINE_VALIDATOR_PASSED then 
  424. 		return 
  425. 	end 
  426. 	 
  427. 	main_menu_redeem_code() 
  428. 	Online_check_thread = -1 
  429. end 
  430.  
  431. function mm_top_coop_dlg_cb(result, action) 
  432. 	if game_get_platform() == "PC" then 
  433. 		if result == 0 then 
  434. 			main_menu_top_dlc() 
  435. 		end 
  436. 	else 
  437. 		if result == 0 then 
  438. 			Online_check_thread = thread_new("mm_top_redeem_check") 
  439. 		elseif result == 1 then 
  440. 			main_menu_top_dlc() 
  441. 		end 
  442. 	end 
  443. end 
  444.  
  445. function main_menu_top_coop_dlc_checked(has_coop, cancelled) 
  446. 	if has_coop then 
  447. 		--Do coop Coop 
  448. 		push_screen("main_menu_coop_top") 
  449. 	elseif not cancelled then 
  450. 		local options 
  451. 		local back_option = 1 
  452. 		if game_get_platform() == "PC" then 
  453. 			options = { [0] = "GO_DLC_STORE", [1] = "CONTROL_CANCEL" } 
  454. 		else 
  455. 			options = { [0] = "REDEEM_CODE", [1] = "GO_DLC_STORE", [2] = "CONTROL_CANCEL" } 
  456. 			back_option = 2 
  457. 		end 
  458. 		dialog_box_open("DIALOG_COOP_DLC_TITLE", "DLC_COOP_DLC_MAIN_BODY", options, "mm_top_coop_dlg_cb",  
  459. 								0, DIALOG_PRIORITY_ACTION, false, nil, false, false, false, back_option) 
  460. 		 
  461. 	end 
  462. end 
  463.  
  464. function main_menu_top_check_coop() 
  465. 	main_menu_supress_profile_change(true) 
  466. 	online_and_privilege_validator_begin(true, false, false, false, false) 
  467. 	while Online_validator_result == ONLINE_VALIDATOR_IN_PROGRESS do 
  468. 		thread_yield() 
  469. 	end 
  470. 	main_menu_supress_profile_change(false) 
  471. 	 
  472. 	main_menu_top_input_lock(false) 
  473. 	if Online_validator_result ~= ONLINE_VALIDATOR_PASSED then 
  474. 		return 
  475. 	end 
  476. 	 
  477. 	game_check_coop_dlc("main_menu_top_coop_dlc_checked") 
  478. 	Online_check_thread = -1 
  479. end 
  480.  
  481. function main_menu_top_coop() 
  482. 	Whored_mode_active = false 
  483. 	 
  484. 	main_menu_top_input_lock(true) 
  485. 	 
  486. 	Online_check_thread = thread_new("main_menu_top_check_coop") 
  487. end 
  488.  
  489. function main_menu_top_whored() 
  490. 	Whored_mode_active = true 
  491. 	 
  492. 	--Do coop Coop 
  493. 	push_screen("main_menu_coop_top") 
  494. end 
  495.  
  496. function mm_check_dlc() 
  497. 	-- If there's a previous check, let it finish 
  498. 	while Online_validator_result == ONLINE_VALIDATOR_IN_PROGRESS do 
  499. 		thread_yield() 
  500. 	end 
  501. 	 
  502. 	online_and_privilege_validator_begin(true, true, false, false, false) 
  503. 	while Online_validator_result == ONLINE_VALIDATOR_IN_PROGRESS do 
  504. 		thread_yield() 
  505. 	end 
  506. 	 
  507. 	main_menu_top_input_lock(false) 
  508. 	if Online_validator_result == ONLINE_VALIDATOR_PASSED then 
  509. 		push_screen("store_dlc") 
  510. 	end 
  511. 	 
  512. 	Online_check_thread = -1 
  513. end 
  514.  
  515. function main_menu_top_dlc() 
  516. 	if game_get_platform() == "PC" then 
  517. 		game_steam_open_dlc_page_overlay() 
  518. 		return 
  519. 	end 
  520.  
  521. 	main_menu_top_input_lock(true) 
  522. 	Online_check_thread = thread_new("mm_check_dlc") 
  523. end 
  524.  
  525. function mm_community_check() 
  526. 	online_and_privilege_validator_begin(true, true, true, false, false) 
  527. 	while Online_validator_result == ONLINE_VALIDATOR_IN_PROGRESS do 
  528. 		thread_yield() 
  529. 	end 
  530. 	 
  531. 	if Online_validator_result == ONLINE_VALIDATOR_PASSED then 
  532. 		if main_menu_check_user_content() == false then 
  533. 			dialog_box_message("MENU_TITLE_WARNING", "USER_CONTENT_PRIV_DENIED") 
  534. 		else  
  535. 			community_login_open() 
  536. 		end 
  537. 	end 
  538. 	 
  539. 	Online_check_thread = -1 
  540. end 
  541.  
  542. function main_menu_top_community() 
  543. 	Online_check_thread = thread_new("mm_community_check") 
  544. end 
  545.  
  546. function main_menu_top_options() 
  547. 	--Top Options 
  548. 	push_screen("pause_options_menu") 
  549. end 
  550.  
  551. function main_menu_top_extras() 
  552. 	--Top Extras 
  553. 	push_screen("main_menu_extras") 
  554. end 
  555.  
  556. function main_menu_top_machinima() 
  557. 	-- This should bring up cinema_clip_manager, or show a dialog box saying that there are no clips to edit 
  558. 	push_screen("pause_options_clip_select") 
  559. end 
  560.  
  561. function main_menu_initiate_quit_game() 
  562. 	dialog_box_destructive_confirmation("PLT_QUIT_GAME", "PLT_QUIT_GAME_WARNING", "main_menu_top_confirm_quit") 
  563. end 
  564.  
  565. function main_menu_top_confirm_quit(return_value) 
  566. 	if return_value == 0 then -- YES 
  567. 		game_request_game_terminate() 
  568. 	end 
  569. end 
  570.  
  571. ------------------------------------------------------------------------------- 
  572. -- Main Menu BMS Loaded 
  573. ------------------------------------------------------------------------------- 
  574. function main_menu_top_bmp_loaded() 
  575. 	--This is for the press start image... 
  576. 	--It is a null function callback... 
  577. end 
  578.  
  579.  
  580. ------------------------------------------------------------------------------- 
  581. -- Temp function to remove the demo disabling..stuff... 
  582. -- use the console to access... "vint_lua main_menu_top mm_coop" 
  583. ------------------------------------------------------------------------------- 
  584. function mm_coop() 
  585. 	for i, v in pairs(Main_menu_top) do 
  586. 		v.disabled = nil 
  587. 	end 
  588. 	-- Create megalist... 
  589. 	Main_menu_list:draw_items(Main_menu_top, 1, MAIN_MENU_MEGA_LIST_SIZE, "center") 
  590. --	Main_menu_list:set_highlight_color(COLOR_STORE_REWARDS_PRIMARY) 
  591. end 
  592.  
  593. Continue_button	= { label = "MAINMENU_CONTINUE",			type = TYPE_BUTTON, on_select = main_menu_top_continue } 
  594. Campaign_button 	= { label = "MAINMENU_CAMPAIGN",			type = TYPE_BUTTON, on_select = main_menu_top_campaign } 
  595. Coop_button 		= { label = "MAINMENU_COOP_OPTION", 	type = TYPE_BUTTON, on_select = main_menu_top_coop 	 } 
  596. Whored_button 		= { label = "MAINMENU_WHORED",			type = TYPE_BUTTON, on_select = main_menu_top_whored 	 } 
  597. DLC_button			= { label = "MAINMENU_DLC",				type = TYPE_BUTTON, on_select = main_menu_top_dlc		 } 
  598. Community_button	= { label = "MAINMENU_COMMUNITY", 		type = TYPE_BUTTON, on_select = main_menu_top_community} 
  599. Options_button		= { label = "MAINMENU_OPTIONS",			type = TYPE_BUTTON, on_select = main_menu_top_options	 } 
  600. Extras_button		= { label = "MAINMENU_EXTRAS", 			type = TYPE_BUTTON, on_select = main_menu_top_extras	 } 
  601. Machinima_button	= { label = "MAINMENU_MACHINIMA_MODE", type = TYPE_BUTTON, on_select = main_menu_top_machinima } 
  602. Mm_quit_game 		= { label = "PLT_QUIT_GAME",				type = TYPE_BUTTON, on_select = main_menu_initiate_quit_game} 
  603.