SHARE
TWEET

Untitled

a guest Aug 13th, 2013 38 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top