GUIScript: Use None instead if "", for null event handler.
[gemrb.git] / gemrb / GUIScripts / pst / LoadScreen.py
blob54ee20ca03a063563beab3fe95d90983725feb20
1 # -*-python-*-
2 # GemRB - Infinity Engine Emulator
3 # Copyright (C) 2003 The GemRB Project
5 # This program is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU General Public License
7 # as published by the Free Software Foundation; either version 2
8 # of the License, or (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 # LoadScreen.py - display Loading screen
22 ###################################################
24 import GemRB
25 from GUIDefines import *
27 LoadScreen = None
29 LS_TYPE_LOADING = 0
30 LS_TYPE_SAVING = 1
31 LS_TYPE_UNLOADING = 2
33 def StartLoadScreen (screen_type = LS_TYPE_LOADING):
34 global LoadScreen
36 # While (un)loading, there are no other windows
37 if screen_type == LS_TYPE_SAVING:
38 GemRB.HideGUI ()
40 GemRB.LoadWindowPack ("guils")
41 LoadScreen = Window = GemRB.LoadWindow (0)
43 LoadPic = GemRB.GetGameString (STR_LOADMOS)
45 if LoadPic == "":
46 if screen_type == LS_TYPE_LOADING:
47 LoadPic = "GUILS%02d" %GemRB.Roll (1, 20, 0)
48 elif screen_type == LS_TYPE_SAVING:
49 LoadPic = "GUISG%02d" %GemRB.Roll (1, 10, 0)
50 else:
51 LoadPic = "GUIDS10"
53 Window.SetPicture (LoadPic)
55 Bar = Window.GetControl (0)
56 Progress = 0
57 GemRB.SetVar ("Progress", Progress)
58 Bar.SetVarAssoc ("Progress", Progress)
59 Bar.SetEventByName (IE_GUI_PROGRESS_END_REACHED, "EndLoadScreen")
60 Skull = Window.GetControl (1)
61 Skull.SetMOS ("GSKULOFF")
63 if screen_type == LS_TYPE_SAVING:
64 GemRB.UnhideGUI ()
66 Window.SetVisible (WINDOW_VISIBLE)
69 def EndLoadScreen ():
70 Window = LoadScreen
71 Skull = Window.GetControl (1)
72 Skull.SetMOS ("GSKULON")
73 Window.SetVisible (WINDOW_VISIBLE)