SHARE
TWEET

Item Vacuum

TKGP May 16th, 2017 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.     local amk_title         = amk_ver.amk_title
  39.     local amk_version       = amk_ver.amk_version
  40.     local amk_revision  = amk_ver.amk_revision
  41.     local amk_en_title  = amk_ver.amk_en_title
  42.     local amk_en_version    = amk_ver.amk_en_version
  43.     local debug_mode = ""
  44.     _ver:SetText("Game version - " .. mm:GetGSVer() .. "  " .. amk_title .. " " .. amk_version .. "" .. amk_revision .. " " .. amk_en_title .. " " .. amk_en_version)
  45. end
  46.  
  47. function main_menu:Show(f)
  48.     self.shniaga:SetVisibleMagnifier(f)
  49. end
  50.  
  51.  
  52. function main_menu:InitCallBacks()
  53.     -- new game
  54.     self:AddCallback("btn_novice",      ui_events.BUTTON_CLICKED,               self.OnButton_new_novice_game,      self)
  55.     self:AddCallback("btn_stalker",     ui_events.BUTTON_CLICKED,               self.OnButton_new_stalker_game,     self)
  56.     self:AddCallback("btn_veteran",     ui_events.BUTTON_CLICKED,               self.OnButton_new_veteran_game,     self)
  57.     self:AddCallback("btn_master",      ui_events.BUTTON_CLICKED,               self.OnButton_new_master_game,      self)
  58.     self:AddCallback("btn_spawn",       ui_events.BUTTON_CLICKED,               self.OnButton_load_spawn,           self)
  59.     -- options                                                                                                         
  60.     self:AddCallback("btn_options",     ui_events.BUTTON_CLICKED,               self.OnButton_options_clicked,      self)
  61.     -- load                                                                                                            
  62.     self:AddCallback("btn_load",        ui_events.BUTTON_CLICKED,               self.OnButton_load_clicked,         self)
  63.     -- save                                                                                                            
  64.     self:AddCallback("btn_save",        ui_events.BUTTON_CLICKED,               self.OnButton_save_clicked,         self)
  65.     -- multiplayer                                                                                                     
  66.     self:AddCallback("btn_multiplayer", ui_events.BUTTON_CLICKED,               self.OnButton_multiplayer_clicked,  self)
  67.     -- quit                                                                                                            
  68.     self:AddCallback("btn_quit",        ui_events.BUTTON_CLICKED,               self.OnButton_quit_clicked,         self)
  69.     self:AddCallback("btn_quit_to_mm",  ui_events.BUTTON_CLICKED,               self.OnButton_disconnect_clicked,   self)
  70.     self:AddCallback("btn_ret",         ui_events.BUTTON_CLICKED,               self.OnButton_return_game,          self)
  71.     self:AddCallback("btn_lastsave",    ui_events.BUTTON_CLICKED,               self.OnButton_last_save,            self)
  72.     self:AddCallback("btn_credits",     ui_events.BUTTON_CLICKED,               self.OnButton_credits_clicked,      self)
  73.     -- message box                                                                                                     
  74.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_OK_CLICKED,       self.OnMsgOk,                       self)
  75.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_CANCEL_CLICKED,   self.OnMsgCancel,                   self)
  76.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_YES_CLICKED,      self.OnMsgYes,                      self)
  77.     self:AddCallback("msg_box",     ui_events.MESSAGE_BOX_NO_CLICKED,       self.OnMsgNo,                       self)
  78.     self:AddCallback("msg_box",         ui_events.MESSAGE_BOX_QUIT_GAME_CLICKED,self.OnMessageQuitGame,             self)
  79.     self:AddCallback("msg_box",         ui_events.MESSAGE_BOX_QUIT_WIN_CLICKED, self.OnMessageQuitWin,              self)
  80.     --amk
  81.     self:AddCallback("btn_amk",     ui_events.BUTTON_CLICKED,               self.amk_options,       self)
  82.  
  83. end
  84. function main_menu:OnMsgOk()
  85.     self.mbox_mode = 0
  86. end
  87.  
  88. function main_menu:OnMsgCancel()
  89.     self.mbox_mode = 0
  90. end
  91.  
  92. function main_menu:OnMsgYes()
  93.    
  94.     if  self.mbox_mode == 1 then
  95.         self:LoadLastSave()
  96.     end
  97.  
  98.     self.mbox_mode = 0
  99. end
  100.  
  101. function main_menu:OnMsgNo()
  102.     self.mbox_mode = 0
  103. end
  104.  
  105. function main_menu:LoadLastSave()
  106.     local                   console = get_console()
  107.     console:execute         ("main_menu off")
  108.     console:execute         ("load_last_save")
  109. end
  110.  
  111. function main_menu:OnButton_last_save()
  112.     if (alife() == nil) then
  113.         self:LoadLastSave   ();
  114.         return
  115.     end
  116.    
  117.     self.mbox_mode          = 1
  118.     self.message_box:Init   ("message_box_confirm_load_save")
  119.     self:GetHolder():start_stop_menu(self.message_box, true)
  120. end
  121.  
  122. function main_menu:OnButton_credits_clicked()
  123. --  local console = get_console()
  124. --  console:execute("main_menu off")
  125.     game.start_tutorial("credits_seq")
  126. end
  127.  
  128. function main_menu:OnButton_quit_clicked()
  129.     self.message_box:Init("message_box_quit_windows")
  130.     self:GetHolder():start_stop_menu(self.message_box, true)
  131. end
  132.  
  133.  
  134. function main_menu:OnButton_disconnect_clicked()
  135.     self.message_box:Init("message_box_quit_game")
  136.    
  137.     if (level.game_id() ~= 1) then     
  138.         self.message_box:SetText("ui_mm_disconnect_message")    -- MultiPlayer
  139.     else
  140.         self.message_box:SetText("ui_mm_quit_game_message")     -- SinglePlayer
  141.     end
  142.     self:GetHolder():start_stop_menu(self.message_box, true)
  143. end
  144.  
  145. function main_menu:OnMessageQuitGame()
  146.     local console = get_console()
  147.     console:execute("disconnect")
  148. end
  149.  
  150. function main_menu:OnMessageQuitWin()
  151.     local console = get_console()
  152.     console:execute("quit")
  153. end
  154.  
  155. function main_menu:OnButton_return_game()
  156.     local console = get_console()
  157.     console:execute("main_menu off")
  158. end
  159.  
  160. function main_menu:OnButton_new_novice_game()
  161.     local console = get_console()
  162.     console:execute("g_game_difficulty gd_novice")
  163.     self:StartGame()   
  164. end
  165.  
  166. function main_menu:OnButton_new_stalker_game()
  167.     local console = get_console()
  168.     console:execute("g_game_difficulty gd_stalker")
  169.     self:StartGame()
  170. end
  171.  
  172. function main_menu:OnButton_new_veteran_game()
  173.     local console = get_console()
  174.     console:execute("g_game_difficulty gd_veteran")
  175.     self:StartGame()
  176. end
  177.  
  178. function main_menu:OnButton_new_master_game()
  179.     local console = get_console()
  180.     console:execute("g_game_difficulty gd_master")
  181.     self:StartGame()
  182. end
  183.  
  184. function main_menu:StartGame()
  185.     local console = get_console()
  186.    
  187.     if (alife() ~= nil) then
  188.         console:execute ("disconnect") 
  189.     end
  190.    
  191.     console:execute("start server(all/single/alife/new) client(localhost)")
  192.     console:execute("main_menu off")
  193. end
  194.  
  195. function main_menu:OnButton_load_spawn()
  196.     if self.spawn_dlg == nil then
  197.         self.spawn_dlg = ui_spawn_dialog.spawn_dialog()
  198.         self.spawn_dlg.owner = self
  199.     end
  200.    
  201.     self:GetHolder():start_stop_menu(self.spawn_dlg, true)
  202.     self:GetHolder():start_stop_menu(self, true) --new
  203.     self:Show(false)
  204. end
  205.  
  206. function main_menu:OnButton_save_clicked()
  207.     if self.save_dlg == nil then
  208.         self.save_dlg = ui_save_dialog.save_dialog()
  209.         self.save_dlg.owner = self
  210.     end
  211.    
  212.     self:GetHolder():start_stop_menu(self.save_dlg, true)
  213.     self:GetHolder():start_stop_menu(self, true) --new
  214.     self:Show(false)
  215. end
  216.  
  217. function main_menu:OnButton_options_clicked()
  218.     if self.opt_dlg == nil then
  219.         self.opt_dlg = ui_mm_opt_main.options_dialog()
  220.         self.opt_dlg.owner = self
  221.     end
  222.    
  223.     self.opt_dlg:UpdateControls()
  224.     self:GetHolder():start_stop_menu(self.opt_dlg, true)
  225.     self:GetHolder():start_stop_menu(self, true) --new
  226.     self:Show(false)
  227.   amk_mod.hud_update=true
  228. end
  229.  
  230. function main_menu:OnButton_load_clicked()
  231.     if self.load_dlg ==nil then
  232.         self.load_dlg = ui_load_dialog.load_dialog()
  233.         self.load_dlg.owner = self
  234.     end
  235.    
  236.     self:GetHolder():start_stop_menu(self.load_dlg, true)
  237.     self:GetHolder():start_stop_menu(self, true) --new
  238.     self:Show(false)
  239. end
  240.  
  241. function main_menu:OnButton_multiplayer_clicked()
  242.     if self.mp_dlg ==nil then
  243.         self.mp_dlg = ui_mp_main.mp_main()
  244.         self.mp_dlg.owner = self
  245.     end
  246.     self.mp_dlg:UpdateControls()
  247.     self:GetHolder():start_stop_menu(self.mp_dlg, true)
  248.     self:GetHolder():start_stop_menu(self, true) --new
  249.     self:Show(false)
  250.    
  251. --  self.mp_dlg:OnBtn_Refresh()
  252.    
  253.     local console           = get_console()
  254.     console:execute         ("check_for_updates 0")
  255.    
  256.     self.mp_dlg:OnRadio_NetChanged()
  257. end
  258.  
  259. function main_menu:Dispatch(cmd, param)  --virtual function
  260.     if cmd == 2 then
  261.         self:OnButton_multiplayer_clicked()
  262.     end
  263.     return true
  264. end
  265.  
  266. function main_menu:OnKeyboard(dik, keyboard_action)  --virtual function
  267.     CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
  268.     local bind = dik_to_bind(dik)
  269.     local console = get_console()
  270.    
  271.     if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
  272.         if dik == DIK_keys.DIK_ESCAPE then
  273.             if level.present() and (db.actor ~= nil) and db.actor:alive() then
  274.                 console:execute("main_menu off")
  275.             end
  276.         end
  277.        
  278.         -- раскоментируем и заоодно включим убранное спавн меню
  279.         if  dik == DIK_keys.DIK_S then
  280.         --  self:OnButton_load_spawn()
  281.        
  282.         elseif  dik == DIK_keys.DIK_Q then
  283.             self:OnMessageQuitWin()
  284.            
  285.         elseif  dik == DIK_keys.DIK_A then
  286.             if amk.check_game() then
  287.                 self:amk_options()
  288.             end
  289.        
  290.         -- Hoover up items under the map
  291.         elseif dik == DIK_keys.DIK_F1 then
  292.             for id = 0, 65535 do
  293.                 local obj = level.object_by_id(id)
  294.                 if obj and not obj:parent() then
  295.                     local distance = obj:position():distance_to_xz(db.actor:position())
  296.                     if distance < 5 then
  297.                         db.actor:transfer_item(obj, db.actor)
  298.                     end
  299.                 end
  300.             end
  301.         end
  302.     end
  303.    
  304.     return true
  305. end
  306.  
  307. function main_menu:amk_options()
  308. -- если еще ни разу не вызывали, то обозначим наш новый скрипт
  309.     if self.amk_options_dlg == nil then
  310.         self.amk_options_dlg = ui_amk_options.amk_options()
  311.         self.amk_options_dlg.owner = self
  312.     end
  313. -- останавливаем родительский элемент, запускаем свой, но родителя показываем.
  314.     self:GetHolder():start_stop_menu(self.amk_options_dlg, true)
  315.     self:GetHolder():start_stop_menu(self, true)
  316.     self:Show(false)
  317.  
  318. 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
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top