Advertisement
Guest User

Untitled

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