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.
21 # GUIJRNL.py - scripts to control journal/diary windows from GUIJRNL winpack
23 ###################################################
26 import GUICommonWindows
27 from GUIDefines
import *
29 ###################################################
31 OldOptionsWindow
= None
32 OldPortraitWindow
= None
38 ###################################################
39 def OpenJournalWindow ():
40 global JournalWindow
, OptionsWindow
, PortraitWindow
41 global OldPortraitWindow
, OldOptionsWindow
42 global StartTime
, StartYear
, Chapter
44 if GUICommon
.CloseOtherWindow (OpenJournalWindow
):
47 JournalWindow
.Unload ()
49 OptionsWindow
.Unload ()
51 PortraitWindow
.Unload ()
54 GemRB
.SetVar ("OtherWindow", -1)
55 GUICommon
.GameWindow
.SetVisible(WINDOW_VISIBLE
)
57 GUICommonWindows
.PortraitWindow
= OldPortraitWindow
58 OldPortraitWindow
= None
59 GUICommonWindows
.OptionsWindow
= OldOptionsWindow
60 OldOptionsWindow
= None
61 GUICommonWindows
.SetSelectionChangeHandler (None)
64 Table
= GemRB
.LoadTable("YEARS")
65 #StartTime is the time offset for ingame time, beginning from the startyear
66 StartTime
= Table
.GetValue("STARTTIME", "VALUE") / 4500
67 #StartYear is the year of the lowest ingame date to be printed
68 StartYear
= Table
.GetValue("STARTYEAR", "VALUE")
71 GUICommon
.GameWindow
.SetVisible(WINDOW_INVISIBLE
)
73 GemRB
.LoadWindowPack ("GUIJRNL", 640, 480)
74 JournalWindow
= Window
= GemRB
.LoadWindow (2)
75 GemRB
.SetVar ("OtherWindow", JournalWindow
.ID
)
76 #saving the original portrait window
77 OldOptionsWindow
= GUICommonWindows
.OptionsWindow
78 OptionsWindow
= GemRB
.LoadWindow (0)
79 GUICommonWindows
.MarkMenuButton (OptionsWindow
)
80 GUICommonWindows
.SetupMenuWindowControls (OptionsWindow
, 0, OpenJournalWindow
)
81 OptionsWindow
.SetFrame ()
82 OldPortraitWindow
= GUICommonWindows
.PortraitWindow
83 PortraitWindow
= GUICommonWindows
.OpenPortraitWindow (0)
85 Button
= Window
.GetControl (3)
86 Button
.SetEvent (IE_GUI_BUTTON_ON_PRESS
, JournalPrevSectionPress
)
88 Button
= Window
.GetControl (4)
89 Button
.SetEvent (IE_GUI_BUTTON_ON_PRESS
, JournalNextSectionPress
)
91 Chapter
= GemRB
.GetGameVar("chapter")
92 GemRB
.SetVar("TopIndex", 0)
93 GUICommonWindows
.SetSelectionChangeHandler (UpdateJournalWindow
)
94 UpdateJournalWindow ()
96 OptionsWindow
.SetVisible (WINDOW_VISIBLE
)
97 Window
.SetVisible (WINDOW_VISIBLE
)
98 PortraitWindow
.SetVisible (WINDOW_VISIBLE
)
101 ###################################################
102 def UpdateJournalWindow ():
103 Window
= JournalWindow
106 Title
= Window
.GetControl (5)
107 Title
.SetText (16202 + Chapter
)
110 Text
= Window
.GetControl (1)
113 for i
in range (GemRB
.GetJournalSize (Chapter
)):
114 je
= GemRB
.GetJournalEntry (Chapter
, i
)
119 hours
= je
['GameTime'] / 4500
121 year
= str (StartYear
+ int(days
/365))
122 dayandmonth
= StartTime
+ days
%365
123 GemRB
.SetToken("GAMEDAY", str(days
) )
124 GemRB
.SetToken("HOUR",str(hours
%24 ) )
125 GemRB
.SetVar("DAYANDMONTH",dayandmonth
)
126 GemRB
.SetToken("YEAR",year
)
127 #Text.Append ("[color=FFFF00]"+GemRB.GetString(15980)+"[/color]", 3*i)
128 Text
.Append (GemRB
.GetString(15980), 3*i
)
129 Text
.Append (je
['Text'], 3*i
+ 1)
130 Text
.Append ("", 3*i
+ 2)
133 ###################################################
134 def JournalPrevSectionPress ():
138 Chapter
= Chapter
- 1
139 UpdateJournalWindow ()
142 ###################################################
143 def JournalNextSectionPress ():
146 #if GemRB.GetJournalSize (Chapter + 1) > 0:
147 if Chapter
< GemRB
.GetGameVar("chapter"):
148 Chapter
= Chapter
+ 1
149 UpdateJournalWindow ()
152 ###################################################
153 # End of file GUIJRNL.py