-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRestartManager.lua
More file actions
87 lines (72 loc) · 2.43 KB
/
RestartManager.lua
File metadata and controls
87 lines (72 loc) · 2.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
RestartManager = {
START_SCREEN_MAIN = 1,
START_SCREEN_JOIN_GAME = 2,
START_SCREEN_MULTIPLAYER = 3,
START_SCREEN_SETTINGS = 5,
START_SCREEN_SETTINGS_ADVANCED = 6,
START_SCREEN_GAMEPAD_SIGNIN = 7,
START_SCREEN_ESPORTS = 8,
init = function (self, args)
self.restarting = string.find(args, "-restart") ~= nil
end
}
function RestartManager:handleRestart()
local startScreen = getStartMode()
if startScreen == RestartManager.START_SCREEN_MAIN then
g_gui:showGui("MainScreen")
elseif startScreen == RestartManager.START_SCREEN_JOIN_GAME then
g_multiplayerScreen:onJoinGameClick()
elseif startScreen == RestartManager.START_SCREEN_MULTIPLAYER then
g_gui:showGui("MainScreen")
g_mainScreen:onMultiplayerClickPerform()
elseif startScreen == RestartManager.START_SCREEN_SETTINGS then
g_gui:showGui("SettingsScreen")
g_settingsScreen:showGeneralSettings()
elseif startScreen == RestartManager.START_SCREEN_SETTINGS_ADVANCED then
g_gui:showGui("SettingsScreen")
g_settingsScreen:showDisplaySettings()
elseif startScreen == RestartManager.START_SCREEN_GAMEPAD_SIGNIN then
g_gui:showGui("GamepadSigninScreen")
elseif startScreen == RestartManager.START_SCREEN_ESPORTS then
g_gui:changeScreen(nil, EsportsScreen)
end
if promptUserConfirmScreenMode() then
self.restartDisplayTime = 15000
g_gui:showYesNoDialog({
text = g_i18n:getText("dialog_keepDisplayProperties") .. "\n" .. tostring(self.restartDisplayTime / 1000),
callback = self.restartDisplayOk,
target = self
})
self.restartDisplayTimerId = addTimer(1000, "restartDisplayTimeUpdate", self)
end
end
function RestartManager:setStartScreen(screen)
setStartMode(screen)
end
function RestartManager:restartDisplayTimeUpdate()
self.restartDisplayTime = self.restartDisplayTime - 1000
if self.restartDisplayTime > 0 then
g_yesNoDialog:setText(g_i18n:getText("dialog_keepDisplayProperties") .. "\n" .. tostring(self.restartDisplayTime / 1000))
setTimerTime(self.restartDisplayTimerId, 1000)
return true
else
self.restartDisplayTime = nil
self.restartDisplayTimerId = nil
self:restartDisplayNotOk()
return false
end
end
function RestartManager:restartDisplayOk(yes)
removeTimer(self.restartDisplayTimerId)
self.restartDisplayTime = nil
self.restartDisplayTimerId = nil
if yes then
setUserConfirmScreenMode(true)
else
self:restartDisplayNotOk()
end
end
function RestartManager:restartDisplayNotOk()
setUserConfirmScreenMode(false)
doRestart(true, "")
end