Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Load the new HUD.
- function HSwitch:LoadHUD(new)
- local backup = {} --Values that need to be carried across between HUD changes.
- backup.RADAR = {}
- backup.RADAR.targets = RADAR.targets
- backup.RADAR.enable = RADAR.enable
- backup.RADAR.duration = RADAR.duration
- backup.RADAR.endtime = RADAR.endtime
- backup.RADAR.bombs = RADAR.bombs
- backup.RADAR.bombs_count = RADAR.bombs_count
- backup.RADAR.repeating = RADAR.repeating
- backup.RADAR.samples = RADAR.samples
- backup.RADAR.samples_count = RADAR.samples_count
- backup.RADAR.called_corpses = RADAR.called_corpses
- backup.MSTACK = {}
- backup.MSTACK.msgs = MSTACK.msgs
- backup.MSTACK.last = MSTACK.last
- backup.WSWITCH = {}
- backup.WSWITCH.Show = WSWITCH.Show
- backup.WSWITCH.Selected = WSWITCH.Selected
- backup.WSWITCH.NextSwitch = WSWITCH.NextSwitch
- backup.WSWITCH.WeaponCache = WSWITCH.WeaponCache
- backup.TBHUD = {}
- backup.TBHUD.buttons = TBHUD.buttons
- backup.TBHUD.buttons_count = TBHUD.buttons_count
- backup.TBHUD.focus_ent = TBHUD.focus_ent
- backup.TBHUD.focus_stick = TBHUD.focus_string
- backup.CLSCORE = {}
- backup.CLSCORE.Events = CLSCORE.Events
- backup.CLSCORE.Scores = CLSCORE.Scores
- backup.CLSCORE.TraitorIDs = CLSCORE.TraitorIDs
- backup.CLSCORE.DetectiveIDs = CLSCORE.DetectiveIDs
- backup.CLSCORE.Players = CLSCORE.Players
- backup.CLSCORE.StartTime = CLSCORE.StartTime
- backup.CLSCORE.Panel = CLSCORE.Panel
- backup.CLSCORE.EventDisplay = CLSCORE.EventDisplay
- backup.tipsenabled = GetConVar("ttt_tips_enable"):GetBool()
- hook.Call("HideScoreboard", GM or GAMEMODE) -- Protect against scoreboard becoming stuck open
- if backup.tipsenabled then
- local callbacks = cvars.GetConVarCallbacks("ttt_tips_enable")
- if callbacks then
- for _,func in pairs(callbacks) do
- func("ttt_tips_enable", true, false)
- end
- end
- end
- for _, fname in pairs(HSwitch.modifiedFiles) do --Reset modified files to defaults before loading a new HUD
- local path = "default/" .. fname
- if file.Exists(path, "LUA") then
- include(path)
- print("[HUDSWITCHER] Defaulted " .. fname)
- else
- print("[HUDSWITCHER] Failed to reset file " .. fname .. ", tell Phoenixf129")
- end
- end
- HSwitch.modifiedFiles = {}
- GAMEMODE.HUDPaint = function() end
- GAMEMODE.HUDShouldDraw = function() return true end
- GM = GAMEMODE
- HSwitch:FixHUDIssues()
- local files, _ = file.Find("huds/" .. new .. "/*.lua", "LUA")
- for _, fname in pairs(files) do
- table.insert(HSwitch.modifiedFiles, fname)
- local path = "huds/" .. new .. "/" .. fname
- include(path)
- MsgN("[HUDSWITCHER] Loaded "..path)
- end
- --Restore carried values
- RADAR.targets = backup.RADAR.targets
- RADAR.enable = backup.RADAR.enable
- RADAR.duration = backup.RADAR.duration
- RADAR.endtime = backup.RADAR.endtime
- RADAR.bombs = backup.RADAR.bombs
- RADAR.bombs_count = backup.RADAR.bombs_count
- RADAR.repeating = backup.RADAR.repeating
- RADAR.samples = backup.RADAR.samples
- RADAR.samples_count = backup.RADAR.samples_count
- RADAR.called_corpses = backup.RADAR.called_corpses
- MSTACK.msgs = backup.MSTACK.msgs
- MSTACK.last = backup.MSTACK.last
- WSWITCH.Show = backup.WSWITCH.Show
- WSWITCH.Selected = backup.WSWITCH.Selected
- WSWITCH.NextSwitch = backup.WSWITCH.NextSwitch
- WSWITCH.WeaponCache = backup.WSWITCH.WeaponCache
- TBHUD.buttons = backup.TBHUD.buttons
- TBHUD.buttons_count = backup.TBHUD.buttons_count
- TBHUD.focus_ent = backup.TBHUD.focus_ent
- TBHUD.focus_string = backup.TBHUD.focus_stick
- CLSCORE.Events = backup.CLSCORE.Events
- CLSCORE.Scores = backup.CLSCORE.Scores
- CLSCORE.TraitorIDs = backup.CLSCORE.TraitorIDs
- CLSCORE.DetectiveIDs = backup.CLSCORE.DetectiveIDs
- CLSCORE.Players = backup.CLSCORE.Players
- CLSCORE.StartTime = backup.CLSCORE.StartTime
- CLSCORE.Panel = backup.CLSCORE.Panel
- CLSCORE.EventDisplay = backup.CLSCORE.EventDisplay
- if backup.tipsenabled then
- local callbacks = cvars.GetConVarCallbacks("ttt_tips_enable")
- if callbacks then
- for _,func in pairs(callbacks) do
- func("ttt_tips_enable", false, true)
- end
- end
- end
- hook.Call("HUDSwitched")
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement