Advertisement
Guest User

Untitled

a guest
Jun 10th, 2015
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.23 KB | None | 0 0
  1. -- File: UI_MAIN_MENU.SCRIPT
  2. -- Description: Load Dialog for STALKER
  3. -- Created: 28.10.2004
  4. -- Lasd edit: 18.01.2006
  5. -- Copyright: 2004 GSC Game World
  6. -- Author: Serhiy Vynnychenko (narrator@gsc-game.kiev.ua)
  7. -- Version: 0.9
  8.  
  9. class "main_menu" (CUIScriptWnd)
  10.  
  11. function main_menu:__init() super()
  12. self.mbox_mode = 0
  13. self:InitControls()
  14. self:InitCallBacks()
  15. xr_s.on_main_menu_on() --' Distemper 03.2008 --
  16. end
  17.  
  18. function main_menu:__finalize()
  19. end
  20.  
  21. function main_menu:InitControls()
  22. self:SetWndRect (Frect():set(0,0,1024,768))
  23.  
  24. local xml = CScriptXmlInit()
  25. xml:ParseFile ("ui_mm_main.xml")
  26.  
  27. xml:InitStatic ("background", self)
  28. self.shniaga = xml:InitMMShniaga("shniaga_wnd",self);
  29.  
  30. self.message_box = CUIMessageBoxEx()
  31. self:Register (self.message_box, "msg_box")
  32.  
  33. local _ver = xml:InitStatic ("static_version",self)
  34. local mm = _G.main_menu.get_main_menu()
  35. _ver:SetText ("ver. " .. mm:GetGSVer())
  36.  
  37. end
  38.  
  39. function main_menu:Show(f)
  40. self.shniaga:SetVisibleMagnifier(f)
  41. end
  42.  
  43.  
  44. function main_menu:InitCallBacks()
  45. -- new game
  46. self:AddCallback("btn_novice", ui_events.BUTTON_CLICKED, self.OnButton_new_novice_game, self)
  47. self:AddCallback("btn_stalker", ui_events.BUTTON_CLICKED, self.OnButton_new_stalker_game, self)
  48. self:AddCallback("btn_veteran", ui_events.BUTTON_CLICKED, self.OnButton_new_veteran_game, self)
  49. self:AddCallback("btn_master", ui_events.BUTTON_CLICKED, self.OnButton_new_master_game, self)
  50. self:AddCallback("btn_spawn", ui_events.BUTTON_CLICKED, self.OnButton_load_spawn, self)
  51. -- options
  52. self:AddCallback("btn_options", ui_events.BUTTON_CLICKED, self.OnButton_options_clicked, self)
  53. -- load
  54. self:AddCallback("btn_load", ui_events.BUTTON_CLICKED, self.OnButton_load_clicked, self)
  55. -- save
  56. self:AddCallback("btn_save", ui_events.BUTTON_CLICKED, self.OnButton_save_clicked, self)
  57. -- multiplayer
  58. self:AddCallback("btn_multiplayer", ui_events.BUTTON_CLICKED, self.OnButton_multiplayer_clicked, self)
  59. -- quit
  60. self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.OnButton_quit_clicked, self)
  61. self:AddCallback("btn_quit_to_mm", ui_events.BUTTON_CLICKED, self.OnButton_disconnect_clicked, self)
  62. self:AddCallback("btn_ret", ui_events.BUTTON_CLICKED, self.OnButton_return_game, self)
  63. self:AddCallback("btn_lastsave", ui_events.BUTTON_CLICKED, self.OnButton_last_save, self)
  64. self:AddCallback("btn_credits", ui_events.BUTTON_CLICKED, self.OnButton_credits_clicked, self)
  65. -- message box
  66. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_OK_CLICKED, self.OnMsgOk, self)
  67. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_CANCEL_CLICKED, self.OnMsgCancel, self)
  68. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_YES_CLICKED, self.OnMsgYes, self)
  69. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_NO_CLICKED, self.OnMsgNo, self)
  70. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_QUIT_GAME_CLICKED,self.OnMessageQuitGame, self)
  71. self:AddCallback("msg_box", ui_events.MESSAGE_BOX_QUIT_WIN_CLICKED, self.OnMessageQuitWin, self)
  72. end
  73. function main_menu:OnMsgOk()
  74. self.mbox_mode = 0
  75. end
  76.  
  77. function main_menu:OnMsgCancel()
  78. self.mbox_mode = 0
  79. end
  80.  
  81. function main_menu:OnMsgYes()
  82.  
  83. if self.mbox_mode == 1 then
  84. self:LoadLastSave()
  85. end
  86.  
  87. self.mbox_mode = 0
  88. end
  89.  
  90. function main_menu:OnMsgNo()
  91. self.mbox_mode = 0
  92. end
  93.  
  94. function main_menu:LoadLastSave()
  95. local console = get_console()
  96. console:execute ("main_menu off")
  97. console:execute ("load_last_save")
  98. end
  99.  
  100. function main_menu:OnButton_last_save()
  101. if ( alife() == nil) then
  102. self:LoadLastSave ()
  103. return
  104. end
  105.  
  106. if ( (db.actor ~= nil) and (db.actor:alive() == false) ) then
  107. self:LoadLastSave ()
  108. return
  109. end
  110.  
  111. self.mbox_mode = 1
  112. self.message_box:InitMessageBox ("message_box_confirm_load_save")
  113. self:GetHolder():start_stop_menu(self.message_box, true)
  114. end
  115.  
  116. function main_menu:OnButton_credits_clicked()
  117. -- local console = get_console()
  118. -- console:execute("main_menu off")
  119. game.start_tutorial("credits_seq")
  120. end
  121.  
  122. function main_menu:OnButton_quit_clicked()
  123. self.message_box:InitMessageBox("message_box_quit_windows")
  124. self:GetHolder():start_stop_menu(self.message_box, true)
  125. end
  126.  
  127.  
  128. function main_menu:OnButton_disconnect_clicked()
  129. self.message_box:InitMessageBox("message_box_quit_game")
  130.  
  131. if (level.game_id() ~= 1) then
  132. self.message_box:SetText("ui_mm_disconnect_message") -- MultiPlayer
  133. else
  134. self.message_box:SetText("ui_mm_quit_game_message") -- SinglePlayer
  135. end
  136. self:GetHolder():start_stop_menu(self.message_box, true)
  137. end
  138.  
  139. function main_menu:OnMessageQuitGame()
  140. local console = get_console()
  141. console:execute("disconnect")
  142. end
  143.  
  144. function main_menu:OnMessageQuitWin()
  145. local console = get_console()
  146. console:execute("quit")
  147. end
  148.  
  149. function main_menu:OnButton_return_game()
  150. log("333")
  151. local console = get_console()
  152. console:execute("main_menu off")
  153. xr_s.on_main_menu_off() --' Distemper 03.2008 --
  154. end
  155.  
  156. function main_menu:OnButton_new_novice_game()
  157. local console = get_console()
  158. console:execute("g_game_difficulty gd_novice")
  159. self:StartGame()
  160. end
  161.  
  162. function main_menu:OnButton_new_stalker_game()
  163. local console = get_console()
  164. console:execute("g_game_difficulty gd_stalker")
  165. self:StartGame()
  166. end
  167.  
  168. function main_menu:OnButton_new_veteran_game()
  169. local console = get_console()
  170. console:execute("g_game_difficulty gd_veteran")
  171. self:StartGame()
  172. end
  173.  
  174. function main_menu:OnButton_new_master_game()
  175. local console = get_console()
  176. console:execute("g_game_difficulty gd_master")
  177. self:StartGame()
  178. end
  179.  
  180. function main_menu:StartGame()
  181. local console = get_console()
  182.  
  183. if (alife() ~= nil) then
  184. console:execute ("disconnect")
  185. end
  186. device():pause(false)
  187. console:execute("start server(all/single/alife/new) client(localhost)")
  188. console:execute("main_menu off")
  189. end
  190.  
  191. function main_menu:OnButton_load_spawn()
  192. if self.spawn_dlg == nil then
  193. self.spawn_dlg = ui_spawn_dialog.spawn_dialog()
  194. self.spawn_dlg.owner = self
  195. end
  196.  
  197. self:GetHolder():start_stop_menu(self.spawn_dlg, true)
  198. self:GetHolder():start_stop_menu(self, true) --new
  199. self:Show(false)
  200. end
  201.  
  202. function main_menu:OnButton_save_clicked()
  203. if self.save_dlg == nil then
  204. self.save_dlg = ui_save_dialog.save_dialog()
  205. self.save_dlg.owner = self
  206. end
  207.  
  208. self.save_dlg:FillList()
  209. self:GetHolder():start_stop_menu(self.save_dlg, true)
  210. self:GetHolder():start_stop_menu(self, true) --new
  211. self:Show(false)
  212. end
  213.  
  214. function main_menu:OnButton_options_clicked()
  215. if self.opt_dlg == nil then
  216. self.opt_dlg = ui_mm_opt_main.options_dialog()
  217. self.opt_dlg.owner = self
  218. end
  219.  
  220. self.opt_dlg:UpdateControls()
  221. self:GetHolder():start_stop_menu(self.opt_dlg, true)
  222. self:GetHolder():start_stop_menu(self, true) --new
  223. self:Show(false)
  224. end
  225.  
  226. function main_menu:OnButton_load_clicked()
  227. if self.load_dlg ==nil then
  228. self.load_dlg = ui_load_dialog.load_dialog()
  229. self.load_dlg.owner = self
  230. end
  231.  
  232. self.load_dlg:FillList()
  233. self:GetHolder():start_stop_menu(self.load_dlg, true)
  234. self:GetHolder():start_stop_menu(self, true) --new
  235. self:Show(false)
  236. end
  237.  
  238. function main_menu:OnButton_multiplayer_clicked()
  239. if self.mp_dlg ==nil then
  240. self.mp_dlg = ui_mp_main.mp_main()
  241. self.mp_dlg.owner = self
  242. end
  243. self.mp_dlg:UpdateControls()
  244. self:GetHolder():start_stop_menu(self.mp_dlg, true)
  245. self:GetHolder():start_stop_menu(self, true) --new
  246. self.mp_dlg:on_show_script()
  247. self:Show(false)
  248.  
  249. -- self.mp_dlg:OnBtn_Refresh()
  250.  
  251. local console = get_console()
  252. console:execute ("check_for_updates 0")
  253.  
  254. self.mp_dlg:OnRadio_NetChanged()
  255. end
  256.  
  257. function main_menu:Dispatch(cmd, param) --virtual function
  258. if cmd == 2 then
  259. self:OnButton_multiplayer_clicked()
  260. end
  261. return true
  262. end
  263.  
  264. function main_menu:OnKeyboard(dik, keyboard_action) --virtual function
  265. CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
  266. local bind = dik_to_bind(dik)
  267. local console = get_console()
  268.  
  269. if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
  270. if dik == DIK_keys.DIK_ESCAPE then
  271. if level.present() and
  272. ( ((db.actor ~= nil)and(db.actor:alive())) or
  273. (false==IsGameTypeSingle())
  274. ) then
  275. self.OnButton_return_game() --' xStream 02.2008
  276. -- console:execute("main_menu off") --' xStream 02.2008
  277. end
  278. end
  279.  
  280. if dik == DIK_keys.DIK_F10 then
  281.  
  282.  
  283. local a = db.actor:position() -- Our position's coordinates
  284. local lvid = db.actor:level_vertex_id()
  285. local gvid = db.actor:game_vertex_id()
  286. local text = "Position:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..lvid.."\\ngame_vertex_id= "..gvid
  287. news_manager.send_tip(db.actor, text, nil, nil, 30000)
  288.  
  289.  
  290. end
  291.  
  292.  
  293. -- if dik == DIK_keys.DIK_S then
  294. -- self:OnButton_load_spawn()
  295.  
  296. -- else
  297. if dik == DIK_keys.DIK_Q then
  298. self:OnMessageQuitWin()
  299. end
  300.  
  301. end
  302.  
  303. return true
  304. end
  305.  
  306. function main_menu:OnMenuReloaded()
  307. self:OnButton_options_clicked()
  308. self.opt_dlg:OnMenuReloaded()
  309. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement