Advertisement
Guest User

ui_main_menu.script

a guest
Jun 30th, 2012
417
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 10.21 KB | None | 0 0
  1. --/amk_rel_1/
  2. -- File:        UI_MAIN_MENU.SCRIPT
  3. -- Description: Load Dialog for STALKER
  4. -- Created:     28.10.2004
  5. -- Lasd edit:   18.01.2006
  6. -- Copyright:   2004 GSC Game World
  7. -- Author:      Serhiy Vynnychenko (narrator@gsc-game.kiev.ua)
  8. -- Version:     0.9
  9.  
  10. class "main_menu" (CUIScriptWnd)
  11.  
  12. function main_menu:__init() super()
  13.     self.mbox_mode = 0
  14.    self:InitControls()
  15.    self:InitCallBacks()
  16. end
  17.  
  18. function main_menu:__finalize()
  19.  
  20. end
  21.  
  22. function main_menu:InitControls()
  23.     self:Init(0,0,1024,768)          
  24.     local xml = CScriptXmlInit()
  25.     xml:ParseFile("ui_mm_main.xml")
  26.      
  27.     xml:InitStatic("back_movie", self)
  28.     xml:InitStatic("background", self)
  29.     xml:InitStatic("fire_movie", 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                    ("ver. " .. mm:GetGSVer())
  38.    
  39. end
  40.  
  41. function main_menu:Show(f)
  42.     self.shniaga:SetVisibleMagnifier(f)
  43. end
  44.  
  45.  
  46. function main_menu:InitCallBacks()
  47.     -- new game
  48.     self:AddCallback("btn_novice",      ui_events.BUTTON_CLICKED,               self.OnButton_new_novice_game,      self)
  49.     self:AddCallback("btn_stalker",     ui_events.BUTTON_CLICKED,               self.OnButton_new_stalker_game,     self)
  50.     self:AddCallback("btn_veteran",     ui_events.BUTTON_CLICKED,               self.OnButton_new_veteran_game,     self)
  51.     self:AddCallback("btn_master",      ui_events.BUTTON_CLICKED,               self.OnButton_new_master_game,      self)
  52.     self:AddCallback("btn_spawn",       ui_events.BUTTON_CLICKED,               self.OnButton_load_spawn,           self)
  53.     -- options                                                                                                         
  54.     self:AddCallback("btn_options",     ui_events.BUTTON_CLICKED,               self.OnButton_options_clicked,      self)
  55.     -- load                                                                                                            
  56.     self:AddCallback("btn_load",        ui_events.BUTTON_CLICKED,               self.OnButton_load_clicked,         self)
  57.     -- save                                                                                                            
  58.     self:AddCallback("btn_save",        ui_events.BUTTON_CLICKED,               self.OnButton_save_clicked,         self)
  59.     -- multiplayer                                                                                                     
  60.     self:AddCallback("btn_multiplayer", ui_events.BUTTON_CLICKED,               self.OnButton_multiplayer_clicked,  self)
  61.     -- quit                                                                                                            
  62.     self:AddCallback("btn_quit",        ui_events.BUTTON_CLICKED,               self.OnButton_quit_clicked,         self)
  63.     self:AddCallback("btn_quit_to_mm",  ui_events.BUTTON_CLICKED,               self.OnButton_disconnect_clicked,   self)
  64.     self:AddCallback("btn_ret",         ui_events.BUTTON_CLICKED,               self.OnButton_return_game,          self)
  65.     self:AddCallback("btn_lastsave",    ui_events.BUTTON_CLICKED,               self.OnButton_last_save,            self)
  66.     self:AddCallback("btn_credits",     ui_events.BUTTON_CLICKED,               self.OnButton_credits_clicked,      self)
  67.     -- message box                                                                                                     
  68.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_OK_CLICKED,       self.OnMsgOk,                       self)
  69.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_CANCEL_CLICKED,   self.OnMsgCancel,                   self)
  70.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_YES_CLICKED,      self.OnMsgYes,                      self)
  71.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_NO_CLICKED,       self.OnMsgNo,                       self)
  72.     self:AddCallback("msg_box",         ui_events.MESSAGE_BOX_QUIT_GAME_CLICKED,self.OnMessageQuitGame,             self)
  73.     self:AddCallback("msg_box",         ui_events.MESSAGE_BOX_QUIT_WIN_CLICKED, self.OnMessageQuitWin,              self)
  74.     --amk
  75.     self:AddCallback("btn_amk",     ui_events.BUTTON_CLICKED,               self.amk_options,       self)
  76.  
  77. end
  78. function main_menu:OnMsgOk()
  79.     self.mbox_mode = 0
  80. end
  81.  
  82. function main_menu:OnMsgCancel()
  83.     self.mbox_mode = 0
  84. end
  85.  
  86. function main_menu:OnMsgYes()
  87.    
  88.     if  self.mbox_mode == 1 then
  89.         self:LoadLastSave()
  90.     end
  91.  
  92.     self.mbox_mode = 0
  93. end
  94.  
  95. function main_menu:OnMsgNo()
  96.     self.mbox_mode = 0
  97. end
  98.  
  99. function main_menu:LoadLastSave()
  100.     local                   console = get_console()
  101.     console:execute         ("main_menu off")
  102.     console:execute         ("load_last_save")
  103. end
  104.  
  105. function main_menu:OnButton_last_save()
  106.     if (alife() == nil) then
  107.         self:LoadLastSave   ();
  108.         return
  109.     end
  110.    
  111.     self.mbox_mode          = 1
  112.     self.message_box:Init   ("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:Init("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:Init("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.     local console = get_console()
  151.     console:execute("main_menu off")
  152. end
  153.  
  154. function main_menu:OnButton_new_novice_game()
  155.     local console = get_console()
  156.     console:execute("g_game_difficulty gd_novice")
  157.     self:StartGame()   
  158. end
  159.  
  160. function main_menu:OnButton_new_stalker_game()
  161.     local console = get_console()
  162.     console:execute("g_game_difficulty gd_stalker")
  163.     self:StartGame()
  164. end
  165.  
  166. function main_menu:OnButton_new_veteran_game()
  167.     local console = get_console()
  168.     console:execute("g_game_difficulty gd_veteran")
  169.     self:StartGame()
  170. end
  171.  
  172. function main_menu:OnButton_new_master_game()
  173.     local console = get_console()
  174.     console:execute("g_game_difficulty gd_master")
  175.     self:StartGame()
  176. end
  177.  
  178. function main_menu:StartGame()
  179.     local console = get_console()
  180.    
  181.     if (alife() ~= nil) then
  182.         console:execute ("disconnect") 
  183.     end
  184.    
  185.     console:execute("start server(all/single/alife/new) client(localhost)")
  186.     console:execute("main_menu off")
  187. end
  188.  
  189. function main_menu:OnButton_load_spawn()
  190.     if self.spawn_dlg == nil then
  191.         self.spawn_dlg = ui_spawn_dialog.spawn_dialog()
  192.         self.spawn_dlg.owner = self
  193.     end
  194.    
  195.     self:GetHolder():start_stop_menu(self.spawn_dlg, true)
  196.     self:GetHolder():start_stop_menu(self, true) --new
  197.     self:Show(false)
  198. end
  199.  
  200. function main_menu:OnButton_save_clicked()
  201.     if self.save_dlg == nil then
  202.         self.save_dlg = ui_save_dialog.save_dialog()
  203.         self.save_dlg.owner = self
  204.     end
  205.    
  206.     self:GetHolder():start_stop_menu(self.save_dlg, true)
  207.     self:GetHolder():start_stop_menu(self, true) --new
  208.     self:Show(false)
  209. end
  210.  
  211. function main_menu:OnButton_options_clicked()
  212.     if self.opt_dlg == nil then
  213.         self.opt_dlg = ui_mm_opt_main.options_dialog()
  214.         self.opt_dlg.owner = self
  215.     end
  216.    
  217.     self.opt_dlg:UpdateControls()
  218.     self:GetHolder():start_stop_menu(self.opt_dlg, true)
  219.     self:GetHolder():start_stop_menu(self, true) --new
  220.     self:Show(false)
  221.   amk_mod.hud_update=true
  222. end
  223.  
  224. function main_menu:OnButton_load_clicked()
  225.     if self.load_dlg ==nil then
  226.         self.load_dlg = ui_load_dialog.load_dialog()
  227.         self.load_dlg.owner = self
  228.     end
  229.    
  230.     self:GetHolder():start_stop_menu(self.load_dlg, true)
  231.     self:GetHolder():start_stop_menu(self, true) --new
  232.     self:Show(false)
  233. end
  234.  
  235. function main_menu:OnButton_multiplayer_clicked()
  236.     if self.mp_dlg ==nil then
  237.         self.mp_dlg = ui_mp_main.mp_main()
  238.         self.mp_dlg.owner = self
  239.     end
  240.     self.mp_dlg:UpdateControls()
  241.     self:GetHolder():start_stop_menu(self.mp_dlg, true)
  242.     self:GetHolder():start_stop_menu(self, true) --new
  243.     self:Show(false)
  244.    
  245. --  self.mp_dlg:OnBtn_Refresh()
  246.    
  247.     local console           = get_console()
  248.     console:execute         ("check_for_updates 0")
  249.    
  250.     self.mp_dlg:OnRadio_NetChanged()
  251. end
  252.  
  253. function main_menu:Dispatch(cmd, param)  --virtual function
  254.     if cmd == 2 then
  255.         self:OnButton_multiplayer_clicked()
  256.     end
  257.     return true
  258. end
  259.  
  260.  
  261. function main_menu:OnKeyboard(dik, keyboard_action)  --virtual function
  262.     CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
  263.     local bind = dik_to_bind(dik)
  264.     local console = get_console()
  265.    
  266.     if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
  267.         local alive_on_level = level.present() and (db.actor ~= nil) and db.actor:alive()
  268.         if dik == DIK_keys.DIK_ESCAPE then
  269.             if level.present() and (db.actor ~= nil) and db.actor:alive() then
  270.                 console:execute("main_menu off")
  271.             end
  272.         end
  273.        
  274.         -- ðàñêîìåíòèðóåì è çàîîäíî âêëþ÷èì óáðàííîå ñïàâí ìåíþ
  275.         if  dik == DIK_keys.DIK_S then
  276.         --  self:OnButton_load_spawn()
  277.        
  278.         elseif  dik == DIK_keys.DIK_Q then
  279.             self:OnMessageQuitWin()
  280.            
  281.         elseif  dik == DIK_keys.DIK_A then
  282.             if amk.check_game() then
  283.                 self:amk_options()
  284.             end
  285.            
  286.         end
  287.         if dik == DIK_keys.DIK_F2 then
  288.             self:start_atlas("spawn")
  289.         end
  290.  
  291.         if dik == DIK_keys.DIK_F3 then
  292.             self:start_atlas2("spawn")
  293.         end
  294.  
  295.         if dik == DIK_keys.DIK_F4 then
  296.             self:start_atlas3("spawn")
  297.        
  298.     end
  299.    
  300.     return true
  301. end
  302. end
  303.  
  304. function main_menu:amk_options()
  305. -- åñëè åùå íè ðàçó íå âûçûâàëè, òî îáîçíà÷èì íàø íîâûé ñêðèïò
  306.     if self.amk_options_dlg == nil then
  307.         self.amk_options_dlg = ui_amk_options.amk_options()
  308.         self.amk_options_dlg.owner = self
  309.     end
  310. -- îñòàíàâëèâàåì ðîäèòåëüñêèé ýëåìåíò, çàïóñêàåì ñâîé, íî ðîäèòåëÿ ïîêàçûâàåì.
  311.     self:GetHolder():start_stop_menu(self.amk_options_dlg, true)
  312.     self:GetHolder():start_stop_menu(self, true)
  313.     self:Show(false)
  314.  
  315. end
  316.  
  317. function main_menu:start_atlas(action)
  318.  
  319. if level.present() and (db.actor ~= nil) and db.actor:alive() then
  320.     get_console():execute("main_menu off")
  321.         local target = ui_atlas.atlas(get_hud(),action)
  322.         level.start_stop_menu(target, true)
  323.     end
  324.  
  325. end
  326.  
  327. function main_menu:start_atlas2(action)
  328.  
  329. if level.present() and (db.actor ~= nil) and db.actor:alive() then
  330.     get_console():execute("main_menu off")
  331.         local target = ui_atlas2.atlas(get_hud(),action)
  332.         level.start_stop_menu(target, true)
  333.     end
  334.  
  335. end
  336.  
  337. function main_menu:start_atlas3(action)
  338.  
  339. if level.present() and (db.actor ~= nil) and db.actor:alive() then
  340.     get_console():execute("main_menu off")
  341.         local target = ui_atlas3.atlas(get_hud(),action)
  342.         level.start_stop_menu(target, true)
  343.     end
  344.  
  345. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement