Exemple #1
0
def OpenJournalWindow():
    global StartTime, StartYear
    global JournalWindow, Chapter
    global PortraitWindow, OptionsWindow
    global OldPortraitWindow, OldOptionsWindow

    Table = GemRB.LoadTable("YEARS")
    #StartTime is the time offset for ingame time, beginning from the startyear
    StartTime = Table.GetValue("STARTTIME", "VALUE") / 4500
    #StartYear is the year of the lowest ingame date to be printed
    StartYear = Table.GetValue("STARTYEAR", "VALUE")

    if GUICommon.CloseOtherWindow(OpenJournalWindow):
        GemRB.HideGUI()
        if JournalWindow:
            JournalWindow.Unload()
        if OptionsWindow:
            OptionsWindow.Unload()
        if PortraitWindow:
            PortraitWindow.Unload()
        JournalWindow = None
        GemRB.SetVar("OtherWindow", -1)

        GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
        GemRB.UnhideGUI()
        GUICommonWindows.PortraitWindow = OldPortraitWindow
        OldPortraitWindow = None
        GUICommonWindows.OptionsWindow = OldOptionsWindow
        OldOptionsWindow = None
        GUICommonWindows.SetSelectionChangeHandler(None)
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)
    GemRB.LoadWindowPack("GUIJRNL", 800, 600)
    JournalWindow = Window = GemRB.LoadWindow(2)
    GemRB.SetVar("OtherWindow", JournalWindow.ID)

    #saving the original portrait window
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow()
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0,
                                             OpenJournalWindow)
    Window.SetFrame()

    Button = Window.GetControl(3)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, JournalPrevSectionPress)

    Button = Window.GetControl(4)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, JournalNextSectionPress)

    Chapter = GemRB.GetGameVar("chapter")
    Window.SetVisible(WINDOW_VISIBLE)
    OptionsWindow.SetVisible(WINDOW_VISIBLE)
    PortraitWindow.SetVisible(WINDOW_VISIBLE)
    # this is here just so we redraw the portrait borders properly in case of reselection
    GUICommonWindows.SetSelectionChangeHandler(UpdateJournalWindow)
    UpdateJournalWindow()
Exemple #2
0
def OnLoad():
	global MessageWindow, PortraitWindow

	GemRB.GameSetPartySize(PARTY_SIZE)
	GemRB.GameSetProtagonistMode(2)
	GemRB.SetDefaultActions(1,14,16,17)
	GemRB.LoadWindowPack(GUICommon.GetWindowPack())
	OptionsWindow = MessageWindow = GemRB.LoadWindow(0)
	ActionsWindow = PortraitWindow = GUICommonWindows.OpenPortraitWindow()

	GemRB.SetVar ("MessageWindow", MessageWindow.ID)
	GemRB.SetVar ("PortraitWindow", PortraitWindow.ID)
	GemRB.SetVar ("ActionsWindow", 12345) # dummy so the EF_ACTION callback works
	GemRB.SetVar ("TopWindow", -1)
	GemRB.SetVar ("OtherWindow", -1)
	GemRB.SetVar ("FloatWindow", -1)
	GemRB.SetVar ("ActionsPosition", -1) #already handled in portraitwindow
	GemRB.SetVar ("OptionsPosition", -1) #already handled in messagewindow
	GemRB.SetVar ("MessagePosition", 4)
	GemRB.SetVar ("PortraitPosition", 4)
	GemRB.SetVar ("OtherPosition", 5) #Inactivating
	GemRB.SetVar ("TopPosition", 5) #Inactivating

	GUICommonWindows.SetupMenuWindowControls (OptionsWindow, 1, None)

	MessageWindow.SetVisible(WINDOW_VISIBLE)
	PortraitWindow.SetVisible(WINDOW_VISIBLE)
	return
Exemple #3
0
def OnLoad():
    global PortraitWindow, OptionsWindow

    GemRB.GameSetPartySize(PARTY_SIZE)
    GemRB.GameSetProtagonistMode(1)
    GemRB.LoadWindowPack(GUICommon.GetWindowPack())

    GUICommonWindows.PortraitWindow = None
    GUICommonWindows.ActionsWindow = None
    GUICommonWindows.OptionsWindow = None

    ActionsWindow = GemRB.LoadWindow(3)
    OptionsWindow = GemRB.LoadWindow(0)
    PortraitWindow = GUICommonWindows.OpenPortraitWindow(1)

    GemRB.SetVar("PortraitWindow", PortraitWindow.ID)
    GemRB.SetVar("ActionsWindow", ActionsWindow.ID)
    GemRB.SetVar("OptionsWindow", OptionsWindow.ID)
    GemRB.SetVar("TopWindow", -1)
    GemRB.SetVar("OtherWindow", -1)
    GemRB.SetVar("FloatWindow", -1)
    GemRB.SetVar("PortraitPosition", 2)  #Right
    GemRB.SetVar("ActionsPosition", 4)  #BottomAdded
    GemRB.SetVar("OptionsPosition", 0)  #Left
    GemRB.SetVar("MessagePosition", 4)  #BottomAdded
    GemRB.SetVar("OtherPosition", 5)  #Inactivating
    GemRB.SetVar("TopPosition", 5)  #Inactivating

    GUICommonWindows.OpenActionsWindowControls(ActionsWindow)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 1, None)

    UpdateControlStatus()
Exemple #4
0
def OnLoad():
	# just load the medium window always. we can shrink/expand it, but it is the one with both controls
	# this saves us from haveing to bend over backwards to load the new window and move the text to it (its also shorter code)
	# for reference: medium = 12 = guiwdmb8, large = 7 = guwbtp38, small = 4 = guwbtp28
	MessageWindow = GemRB.LoadWindow(12, GUICommon.GetWindowPack(), WINDOW_BOTTOM|WINDOW_HCENTER)
	MessageWindow.SetFlags(WF_BORDERLESS|IE_GUI_VIEW_IGNORE_EVENTS, OP_OR)
	MessageWindow.AddAlias("MSGWIN")
	MessageWindow.AddAlias("HIDE_CUT", 0)
	
	TMessageTA = MessageWindow.GetControl(1)
	TMessageTA.SetFlags(IE_GUI_TEXTAREA_AUTOSCROLL|IE_GUI_TEXTAREA_HISTORY)
	TMessageTA.SetResizeFlags(IE_GUI_VIEW_RESIZE_ALL)
	TMessageTA.AddAlias("MsgSys", 0)
	TMessageTA.SetColor({'r' : 255, 'g' : 0, 'b' : 0}, TA_COLOR_OPTIONS)
	TMessageTA.SetColor({'r' : 255, 'g' : 255, 'b' : 255}, TA_COLOR_HOVER)
	
	sbar = MessageWindow.GetControl(2)
	sbar.SetResizeFlags(IE_GUI_VIEW_RESIZE_VERTICAL)

	ActionsWindow = GemRB.LoadWindow(3, GUICommon.GetWindowPack(), WINDOW_BOTTOM|WINDOW_HCENTER)
	GUICommonWindows.OpenActionsWindowControls (ActionsWindow)
	ActionsWindow.SetFlags(WF_BORDERLESS|IE_GUI_VIEW_IGNORE_EVENTS, OP_OR)
	ActionsWindow.AddAlias("ACTWIN")
	ActionsWindow.AddAlias("HIDE_CUT", 1)
	ActionsWindow.AddAlias("NOT_DLG", 0)
	
	aFrame = ActionsWindow.GetFrame()
	mFrame = MessageWindow.GetFrame()
	MessageWindow.SetPos(mFrame['x'], mFrame['y'] - aFrame['h'])
	
	Button = ActionsWindow.GetControl(60)
	if Button:
		Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, lambda: ToggleWindowMinimize(OptionsWindow, GS_OPTIONPANE))
		Button = ActionsWindow.GetControl(61)
		Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, lambda: ToggleWindowMinimize(PortraitWindow, GS_PORTRAITPANE))

	if GameCheck.HasHOW():
		OptionsWindow = GemRB.LoadWindow(25, GUICommon.GetWindowPack(), WINDOW_LEFT|WINDOW_VCENTER)
	else:
		OptionsWindow = GemRB.LoadWindow(0, GUICommon.GetWindowPack(), WINDOW_LEFT|WINDOW_VCENTER)
	OptionsWindow.SetFlags(WF_BORDERLESS|IE_GUI_VIEW_IGNORE_EVENTS, OP_OR)
	OptionsWindow.AddAlias("OPTWIN")
	OptionsWindow.AddAlias("HIDE_CUT", 2)
	OptionsWindow.AddAlias("NOT_DLG", 1)
	
	GUICommonWindows.SetupMenuWindowControls (OptionsWindow, 1, None)
	PortraitWindow = GUICommonWindows.OpenPortraitWindow(1)
	PortraitWindow.AddAlias("HIDE_CUT", 3)
	PortraitWindow.AddAlias("NOT_DLG", 2)

	# 1280 and higher don't have this control
	Button = OptionsWindow.GetControl (10)
	if Button:
		Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, lambda: ToggleWindowMinimize(OptionsWindow, GS_OPTIONPANE))
		Button = PortraitWindow.GetControl (8)
		Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, lambda: ToggleWindowMinimize(PortraitWindow, GS_PORTRAITPANE))

	UpdateControlStatus(True)
Exemple #5
0
def OnLoad():
    global MWindow

    # TODO: we can uncomment the "HIDE_CUT" lines below to hide the windows for cutscenes
    # the original doesn't hide them and it looks like there is a map drawing bug at the bottom of the screen due to the bottom
    # row of tiles getting squished for not fitting perfectly on screen (tho I havent seen this in BG2, but maybe wasnt paying attention)

    ActionsWindow = GemRB.LoadWindow(0, GUICommon.GetWindowPack(),
                                     WINDOW_BOTTOM | WINDOW_LEFT)
    ActionsWindow.AddAlias("ACTWIN")
    #ActionsWindow.AddAlias("HIDE_CUT", 1)
    ActionsWindow.AddAlias("NOT_DLG", 0)
    ActionsWindow.SetFlags(WF_BORDERLESS | IE_GUI_VIEW_IGNORE_EVENTS, OP_OR)

    OptionsWindow = GemRB.LoadWindow(2, GUICommon.GetWindowPack(),
                                     WINDOW_BOTTOM | WINDOW_RIGHT)
    OptionsWindow.AddAlias("OPTWIN")
    #OptionsWindow.AddAlias("HIDE_CUT", 2)
    OptionsWindow.AddAlias("NOT_DLG", 1)
    OptionsWindow.SetFlags(WF_BORDERLESS | IE_GUI_VIEW_IGNORE_EVENTS, OP_OR)
    GemRB.SetVar("PortraitPosition", 1)

    MWindow = GemRB.LoadWindow(7, GUICommon.GetWindowPack(),
                               WINDOW_BOTTOM | WINDOW_HCENTER)
    MWindow.SetFlags(WF_DESTROY_ON_CLOSE, OP_NAND)
    MWindow.AddAlias("MSGWIN")
    MWindow.AddAlias("HIDE_CUT", 0)
    MWindow.SetFlags(WF_BORDERLESS | IE_GUI_VIEW_IGNORE_EVENTS, OP_OR)

    PortraitWindow = GUICommonWindows.OpenPortraitWindow(
        1, WINDOW_BOTTOM | WINDOW_HCENTER)
    #PortraitWindow.AddAlias("HIDE_CUT", 3)
    PortraitWindow.AddAlias("NOT_DLG", 2)
    PortraitWindow.SetFlags(WF_BORDERLESS | IE_GUI_VIEW_IGNORE_EVENTS, OP_OR)

    pframe = PortraitWindow.GetFrame()
    pframe['x'] -= 16
    PortraitWindow.SetFrame(pframe)

    MessageTA = MWindow.GetControl(1)
    MessageTA.SetFlags(IE_GUI_TEXTAREA_AUTOSCROLL | IE_GUI_TEXTAREA_HISTORY)
    MessageTA.SetResizeFlags(IE_GUI_VIEW_RESIZE_ALL)
    MessageTA.AddAlias("MsgSys", 0)
    MessageTA.SetColor({'r': 255, 'g': 0, 'b': 0}, TA_COLOR_OPTIONS)
    MessageTA.SetColor({'r': 255, 'g': 255, 'b': 255}, TA_COLOR_HOVER)

    CloseButton = MWindow.GetControl(0)
    CloseButton.SetText(28082)
    CloseButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, lambda: MWindow.Close())
    CloseButton.MakeDefault()

    OpenButton = OptionsWindow.GetControl(10)
    OpenButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, lambda: MWindow.Focus())

    SetupClockWindowControls(ActionsWindow)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow)

    UpdateControlStatus()
Exemple #6
0
def ShowMap ():
	global MapWindow, OptionsWindow, PortraitWindow
	global OldPortraitWindow, OldOptionsWindow

	if GUICommon.CloseOtherWindow (ShowMap):
		if MapWindow:
			MapWindow.Unload ()
		if OptionsWindow:
			OptionsWindow.Unload ()
		if PortraitWindow:
			PortraitWindow.Unload ()

		MapWindow = None
		#this window type should block the game
		GemRB.SetVar ("OtherWindow", -1)
		GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
		GemRB.UnhideGUI ()
		GUICommonWindows.PortraitWindow = OldPortraitWindow
		OldPortraitWindow = None
		GUICommonWindows.OptionsWindow = OldOptionsWindow
		OldOptionsWindow = None
		return

	GemRB.HideGUI ()
	GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

	GemRB.LoadWindowPack ("GUIMAP", 640, 480)
	MapWindow = Window = GemRB.LoadWindow (2)
	#this window type blocks the game normally, but map window doesn't
	GemRB.SetVar ("OtherWindow", MapWindow.ID)
	#saving the original portrait window
	OldOptionsWindow = GUICommonWindows.OptionsWindow
	OptionsWindow = GemRB.LoadWindow (0)
	GUICommonWindows.SetupMenuWindowControls (OptionsWindow, 0, ShowMap)
	OldPortraitWindow = GUICommonWindows.PortraitWindow
	PortraitWindow = GUICommonWindows.OpenPortraitWindow (0)
	OptionsWindow.SetFrame ()

	# World Map
	Button = Window.GetControl (1)
	Button.SetState (IE_GUI_BUTTON_LOCKED)

	# Map Control
	Window.CreateMapControl (2, 0, 0, 0, 0)
	Map = Window.GetControl (2)
	Map.SetEvent (IE_GUI_MAP_ON_PRESS, RevealMap)
	Window.SetVisible (WINDOW_VISIBLE)
	OptionsWindow.SetVisible (WINDOW_GRAYED)
	PortraitWindow.SetVisible (WINDOW_GRAYED)
	OptionsWindow.SetVisible (WINDOW_FRONT)
	PortraitWindow.SetVisible (WINDOW_FRONT)
	Window.SetVisible (WINDOW_FRONT)
	Map.SetStatus (IE_GUI_CONTROL_FOCUSED)
	GemRB.GamePause (0,0)
	return
Exemple #7
0
def OpenMapWindow ():
	global MapWindow, OptionsWindow, PortraitWindow
	global OldPortraitWindow, OldOptionsWindow

	if GUICommon.CloseOtherWindow (OpenMapWindow):
		if MapWindow:
			MapWindow.Unload ()
		if OptionsWindow:
			OptionsWindow.Unload ()
		if PortraitWindow:
			PortraitWindow.Unload ()

		MapWindow = None
		#this window type should block the game
		GemRB.SetVar ("OtherWindow", -1)
		GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
		#OldOptionsWindow.SetVisible (WINDOW_VISIBLE)
		#OldPortraitWindow.SetVisible (WINDOW_VISIBLE)
		GemRB.UnhideGUI ()
		GUICommonWindows.PortraitWindow = OldPortraitWindow
		OldPortraitWindow = None
		GUICommonWindows.OptionsWindow = OldOptionsWindow
		OldOptionsWindow = None
		return

	GemRB.HideGUI ()
	GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

	GemRB.LoadWindowPack ("GUIMAP", 640, 480)
	MapWindow = Window = GemRB.LoadWindow (2)
	#this window type blocks the game normally, but map window doesn't
	GemRB.SetVar ("OtherWindow", MapWindow.ID)
	#saving the original portrait window
	OldOptionsWindow = GUICommonWindows.OptionsWindow
	OptionsWindow = GemRB.LoadWindow (0)
	GUICommonWindows.MarkMenuButton (OptionsWindow)
	GUICommonWindows.SetupMenuWindowControls (OptionsWindow, 0, OpenMapWindow)
	OldPortraitWindow = GUICommonWindows.PortraitWindow
	PortraitWindow = GUICommonWindows.OpenPortraitWindow (0)
	OptionsWindow.SetFrame ()

	# World Map
	Button = Window.GetControl (1)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, OpenWorldMapWindowInside)

	# Map Control
	Window.CreateMapControl (2, 0, 0, 0, 0)
	Map = Window.GetControl (2)
	Map.SetEvent (IE_GUI_MAP_ON_DOUBLE_PRESS, LeftDoublePressMap)
	#OldOptionsWindow.SetVisible (WINDOW_INVISIBLE)
	#OldPortraitWindow.SetVisible (WINDOW_INVISIBLE)
	OptionsWindow.SetVisible (WINDOW_VISIBLE)
	Window.SetVisible (WINDOW_VISIBLE)
	PortraitWindow.SetVisible (WINDOW_VISIBLE)
	Map.SetStatus (IE_GUI_CONTROL_FOCUSED)
Exemple #8
0
def OnLoad():
    global smallID, largeID
    OptionsWindow = GemRB.LoadWindow(0, GUICommon.GetWindowPack(),
                                     WINDOW_BOTTOM | WINDOW_HCENTER)
    OptionsWindow.SetFlags(WF_BORDERLESS | IE_GUI_VIEW_IGNORE_EVENTS, OP_OR)
    OptionsWindow.AddAlias("OPTWIN")
    OptionsWindow.AddAlias("HIDE_CUT", 2)
    OptionsWindow.AddAlias("NOT_DLG", 1)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 1, None)

    # this also has the small MTA window
    OptionsWindow.AddAlias("MSGWIN")
    # compensate for the bogus scrollbar on the CHU BG
    smallMTA = OptionsWindow.GetControl(1)
    smallMTA.AddAlias("MsgSys", 0)
    smallMTA.AddAlias("MTA_SM", 0, True)
    smallMTA.SetFlags(IE_GUI_TEXTAREA_AUTOSCROLL | IE_GUI_TEXTAREA_HISTORY)
    smallMTA.SetColor({'r': 255, 'g': 0, 'b': 0}, TA_COLOR_OPTIONS)
    smallMTA.SetColor({'r': 255, 'g': 255, 'b': 255}, TA_COLOR_HOVER)
    smallID = smallMTA.ID

    sbar = OptionsWindow.GetControl(2)
    sbar.SetResizeFlags(IE_GUI_VIEW_RESIZE_VERTICAL | IE_GUI_VIEW_RESIZE_RIGHT)

    # remove the cheat input textedit
    OptionsWindow.RemoveSubview(OptionsWindow.GetControl(3))

    ActionsWindow = GUICommonWindows.OpenPortraitWindow(
        0, WINDOW_BOTTOM | WINDOW_HCENTER)
    ActionsWindow.SetFlags(WF_BORDERLESS | IE_GUI_VIEW_IGNORE_EVENTS, OP_OR)
    ActionsWindow.AddAlias("ACTWIN")
    ActionsWindow.AddAlias("HIDE_CUT", 1)
    ActionsWindow.AddAlias("NOT_DLG", 0)

    actframe = ActionsWindow.GetFrame()
    optframe = OptionsWindow.GetFrame()

    actframe['y'] -= optframe['h']
    ActionsWindow.SetFrame(actframe)

    DialogWindow = GemRB.LoadWindow(7, GUICommon.GetWindowPack(),
                                    WINDOW_BOTTOM | WINDOW_HCENTER)
    DialogWindow.SetFlags(
        WF_BORDERLESS | IE_GUI_VIEW_IGNORE_EVENTS | IE_GUI_VIEW_INVISIBLE,
        OP_OR)
    DialogWindow.AddAlias("MSGWINLG")
    DialogWindow.AddAlias("HIDE_CUT", 0)
    DialogWindow.AddAlias("NOT_DLG", 2)

    largeMTA = DialogWindow.GetControl(1)
    largeMTA.AddAlias("MTA_LG", 0, True)
    largeID = largeMTA.ID

    return
Exemple #9
0
def OnLoad():
    global MessageWindow, ActionsWindow, PortraitWindow, OptionsWindow

    GemRB.GameSetPartySize(PARTY_SIZE)
    GemRB.GameSetProtagonistMode(0)
    GemRB.LoadWindowPack(GUICommon.GetWindowPack())
    GemRB.SetInfoTextColor(0, 255, 0, 255)
    ActionsWindow = GemRB.LoadWindow(0)
    OptionsWindow = GemRB.LoadWindow(2)
    MessageWindow = GemRB.LoadWindow(7)
    PortraitWindow = GUICommonWindows.OpenPortraitWindow(1)

    MessageTA = MessageWindow.GetControl(1)
    MessageTA.SetFlags(IE_GUI_TEXTAREA_AUTOSCROLL | IE_GUI_TEXTAREA_HISTORY)

    GemRB.SetVar("MessageTextArea", MessageTA.ID)
    GemRB.SetVar("ActionsWindow", ActionsWindow.ID)
    GemRB.SetVar("OptionsWindow", OptionsWindow.ID)
    GemRB.SetVar("MessageWindow", -1)
    GemRB.SetVar("OtherWindow", -1)
    GemRB.SetVar("ActionsPosition", 1)  #Bottom
    GemRB.SetVar("OptionsPosition", 1)  #Bottom
    GemRB.SetVar("MessagePosition", 1)  #Bottom
    GemRB.SetVar("OtherPosition", 0)  #Left

    GemRB.GameSetScreenFlags(0, OP_SET)

    CloseButton = MessageWindow.GetControl(0)
    CloseButton.SetText(28082)
    CloseButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, CommonWindow.OnDecreaseSize)
    CloseButton.SetFlags(IE_GUI_BUTTON_DEFAULT | IE_GUI_BUTTON_MULTILINE,
                         OP_OR)

    OpenButton = OptionsWindow.GetControl(10)
    OpenButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, CommonWindow.OnIncreaseSize)

    # Select all
    Button = ActionsWindow.GetControl(1)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, GUICommon.SelectAllOnPress)

    # Select all
    Button = ActionsWindow.GetControl(3)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, GUICommonWindows.ActionStopPressed)

    FormationButton = ActionsWindow.GetControl(4)
    FormationButton.SetEvent(IE_GUI_BUTTON_ON_PRESS,
                             GUIWORLD.OpenFormationWindow)

    GUICommonWindows.SetupClockWindowControls(ActionsWindow)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow)

    UpdateControlStatus()
Exemple #10
0
def OpenMageWindow():
    global MageWindow, OptionsWindow, PortraitWindow, OtherWindow, MageSpellInfoWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenMageWindow):
        CloseMageSpellUnmemorizeWindow()
        if MageSpellInfoWindow:
            MageSpellInfoWindow.Unload()
            MageSpellInfoWindow = None
        if OtherWindow:
            OtherWindow.Unload()
            OtherWindow = None
        if MageWindow:
            MageWindow.Unload()
        if OptionsWindow:
            OptionsWindow.Unload()
        if PortraitWindow:
            PortraitWindow.Unload()

        MageWindow = None
        GemRB.SetVar("OtherWindow", -1)
        GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
        GemRB.UnhideGUI()
        GUICommonWindows.PortraitWindow = OldPortraitWindow
        OldPortraitWindow = None
        GUICommonWindows.OptionsWindow = OldOptionsWindow
        OldOptionsWindow = None
        GUICommonWindows.SetSelectionChangeHandler(None)
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIMG", 640, 480)

    #saving the original portrait window
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.MarkMenuButton(OptionsWindow)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0, OpenMageWindow)
    OptionsWindow.SetFrame()
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow(0)

    GUICommonWindows.SetSelectionChangeHandler(SetupMageWindow)
    SetupMageWindow()
    return
Exemple #11
0
def OnLoad():
    global PortraitWindow, OptionsWindow

    GemRB.GameSetPartySize(PARTY_SIZE)
    GemRB.GameSetProtagonistMode(1)
    GemRB.LoadWindowPack(GUICommon.GetWindowPack())

    GUICommonWindows.PortraitWindow = None
    GUICommonWindows.ActionsWindow = None
    GUICommonWindows.OptionsWindow = None

    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 1, None)
    PortraitWindow = GUICommonWindows.OpenPortraitWindow(1)

    # 1280 and higher don't have this control
    if OptionsWindow.HasControl(10):
        Button = OptionsWindow.GetControl(10)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MinimizeOptions)
        Button = PortraitWindow.GetControl(8)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS,
                        GUICommonWindows.MinimizePortraits)

    ActionsWindow = GemRB.LoadWindow(3)
    GUICommonWindows.OpenActionsWindowControls(ActionsWindow)
    if ActionsWindow.HasControl(60):
        Button = ActionsWindow.GetControl(60)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MaximizeOptions)
        Button = ActionsWindow.GetControl(61)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MaximizePortraits)

    GemRB.SetVar("PortraitWindow", PortraitWindow.ID)
    GemRB.SetVar("ActionsWindow", ActionsWindow.ID)
    GemRB.SetVar("OptionsWindow", OptionsWindow.ID)
    GemRB.SetVar("TopWindow", -1)
    GemRB.SetVar("OtherWindow", -1)
    GemRB.SetVar("FloatWindow", -1)
    GemRB.SetVar("PortraitPosition", 2)  #Right
    GemRB.SetVar("ActionsPosition", 4)  #BottomAdded
    GemRB.SetVar("OptionsPosition", 0)  #Left
    GemRB.SetVar("MessagePosition", 4)  #BottomAdded
    GemRB.SetVar("OtherPosition", 5)  #Inactivating
    GemRB.SetVar("TopPosition", 5)  #Inactivating

    UpdateControlStatus()
Exemple #12
0
def WorldMapWindowCommon(Travel):
    global WorldMapWindow, WorldMapControl
    global OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(CloseWorldMapWindow):
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIWMAP", 800, 600)
    WorldMapWindow = Window = GemRB.LoadWindow(2)

    #(fuzzie just copied this from the map window code..)
    GemRB.SetVar("OtherWindow", WorldMapWindow.ID)
    #saving the original portrait window
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow()
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0, OpenMapWindow)
    OptionsWindow.SetFrame()

    Window.CreateWorldMapControl(4, 0, 62, 640, 418, Travel, "infofont")
    WorldMapControl = Window.GetControl(4)
    WorldMapControl.SetAnimation("WMDAG")
    WorldMapControl.SetEvent(IE_GUI_WORLDMAP_ON_PRESS, MoveToNewArea)
    WorldMapControl.SetEvent(IE_GUI_MOUSE_ENTER_WORLDMAP, ChangeTooltip)

    # Done
    Button = Window.GetControl(0)
    if Travel >= 0:
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenWorldMapWindow)
    else:
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenMapWindow)
    Window.SetVisible(WINDOW_VISIBLE)
    WorldMapControl.SetStatus(IE_GUI_CONTROL_FOCUSED)
def OnLoad():
	global PortraitWindow, OptionsWindow

	GemRB.GameSetPartySize (MAX_PARTY_SIZE)
	GemRB.GameSetProtagonistMode (2)
	GemRB.LoadWindowPack (GUICommon.GetWindowPack())

	GUICommonWindows.PortraitWindow = None
	GUICommonWindows.ActionsWindow = None
	GUICommonWindows.OptionsWindow = None

	#this is different in IWD (0) and HoW (25)
	if GameCheck.HasHOW():
		OptionsWindow = GemRB.LoadWindow (25)
	else:
		OptionsWindow = GemRB.LoadWindow (0)
	GUICommonWindows.SetupMenuWindowControls (OptionsWindow, 1, None)
	PortraitWindow = GUICommonWindows.OpenPortraitWindow (1)

	ActionsWindow = GemRB.LoadWindow (3)
	GUICommonWindows.OpenActionsWindowControls (ActionsWindow)

	GemRB.SetVar ("PortraitWindow", PortraitWindow.ID)
	GemRB.SetVar ("ActionsWindow", ActionsWindow.ID)
	GemRB.SetVar ("OptionsWindow", OptionsWindow.ID)
	GemRB.SetVar ("TopWindow", -1)
	GemRB.SetVar ("OtherWindow", -1)
	GemRB.SetVar ("FloatWindow", -1)
	GemRB.SetVar ("PortraitPosition", 2) #Right
	GemRB.SetVar ("ActionsPosition", 4) #BottomAdded
	GemRB.SetVar ("OptionsPosition", 0) #Left
	GemRB.SetVar ("MessagePosition", 4) #BottomAdded
	GemRB.SetVar ("OtherPosition", 5) #Inactivating
	GemRB.SetVar ("TopPosition", 5) #Inactivating
	
	UpdateControlStatus ()
Exemple #14
0
def WorldMapWindowCommon(Travel):
    global WorldMapWindow, WorldMapControl
    global OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(CloseWorldMapWindow):
        CloseWorldMapWindow()
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    if GameCheck.IsIWD2():
        GemRB.LoadWindowPack("GUIWMAP", 800, 600)
        WorldMapWindow = Window = GemRB.LoadWindow(2)
    else:
        GemRB.LoadWindowPack("GUIWMAP", 640, 480)
        WorldMapWindow = Window = GemRB.LoadWindow(0)

    #(fuzzie just copied this from the map window code..)
    GemRB.SetVar("OtherWindow", WorldMapWindow.ID)
    Window.SetFrame()
    #saving the original portrait window
    if GameCheck.IsIWD2():
        OldPortraitWindow = GUICommonWindows.PortraitWindow
        PortraitWindow = GUICommonWindows.OpenPortraitWindow()
        OldOptionsWindow = GUICommonWindows.OptionsWindow
        OptionsWindow = GemRB.LoadWindow(0)
        GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0,
                                                 OpenMapWindow)
        OptionsWindow.SetFrame()

    if GameCheck.IsBG2():
        Window.CreateWorldMapControl(4, 0, 62, 640, 418, Travel, "floattxt")
    elif GameCheck.IsBG1():
        Window.CreateWorldMapControl(4, 0, 62, 640, 418, Travel, "toolfont", 1)
        WorldMapControl = Window.GetControl(4)
        WorldMapControl.SetTextColor(IE_GUI_WMAP_COLOR_BACKGROUND, 0xa4, 0x6a,
                                     0x4c, 0x00)
    else:
        Window.CreateWorldMapControl(4, 0, 62, 640, 418, Travel, "infofont")
    WorldMapControl = Window.GetControl(4)
    WorldMapControl.SetAnimation("WMDAG")
    WorldMapControl.SetEvent(IE_GUI_WORLDMAP_ON_PRESS, MoveToNewArea)
    WorldMapControl.SetEvent(IE_GUI_MOUSE_ENTER_WORLDMAP, ChangeTooltip)
    # center on current area
    MapC()

    if not GameCheck.IsIWD2():
        #north
        Button = Window.GetControl(1)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MapN)

        #south
        Button = Window.GetControl(2)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MapS)

    if GameCheck.IsBG2():
        #northwest
        Button = Window.GetControl(8)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MapNW)

        #northeast
        Button = Window.GetControl(9)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MapNE)

        #west
        Button = Window.GetControl(10)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MapW)

        #center
        Button = Window.GetControl(11)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MapC)

        #east
        Button = Window.GetControl(12)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MapE)

        #southwest
        Button = Window.GetControl(13)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MapSW)

        #southeast
        Button = Window.GetControl(14)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MapSE)

    # Done
    Button = Window.GetControl(0)
    if Travel >= 0:
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenWorldMapWindow)
    else:
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenMapWindow)
    Button.SetFlags(IE_GUI_BUTTON_CANCEL, OP_OR)

    Window.SetVisible(WINDOW_VISIBLE)
    WorldMapControl.SetStatus(IE_GUI_CONTROL_FOCUSED)
    return
Exemple #15
0
def OpenMapWindow():
    import GUICommonWindows
    global MapWindow, OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenMapWindow):
        if MapWindow:
            MapWindow.Unload()
        if OptionsWindow:
            OptionsWindow.Unload()
        if PortraitWindow:
            PortraitWindow.Unload()

        MapWindow = None
        #this window type should block the game
        GemRB.SetVar("OtherWindow", -1)
        GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
        GemRB.UnhideGUI()
        GUICommonWindows.PortraitWindow = OldPortraitWindow
        OldPortraitWindow = None
        GUICommonWindows.OptionsWindow = OldOptionsWindow
        OldOptionsWindow = None
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIMAP", 640, 480)
    MapWindow = Window = GemRB.LoadWindow(2)
    #this window type blocks the game normally, but map window doesn't
    GemRB.SetVar("OtherWindow", MapWindow.ID)
    #saving the original portrait window
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.MarkMenuButton(OptionsWindow)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0, OpenMapWindow)
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow(0)
    OptionsWindow.SetFrame()

    # World Map
    Button = Window.GetControl(1)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenWorldMapWindowInside)

    # Hide or Show mapnotes
    Button = Window.GetControl(3)
    Button.SetFlags(IE_GUI_BUTTON_CHECKBOX, OP_OR)
    # Is this an option?
    GemRB.SetVar("ShowMapNotes", IE_GUI_MAP_VIEW_NOTES)
    Button.SetVarAssoc("ShowMapNotes", IE_GUI_MAP_VIEW_NOTES)

    Label = Window.GetControl(0x10000003)
    Label.SetText("")

    # Map Control
    Window.CreateMapControl(2, 0, 0, 0, 0, 0x10000003, "FLAG1")
    Map = Window.GetControl(2)
    Map.SetVarAssoc("ShowMapNotes", IE_GUI_MAP_VIEW_NOTES)
    Map.SetEvent(IE_GUI_MAP_ON_RIGHT_PRESS, AddNoteWindow)
    Map.SetEvent(IE_GUI_MAP_ON_DOUBLE_PRESS, LeftDoublePressMap)
    OptionsWindow.SetVisible(WINDOW_VISIBLE)
    Window.SetVisible(WINDOW_VISIBLE)
    PortraitWindow.SetVisible(WINDOW_VISIBLE)
    Map.SetStatus(IE_GUI_CONTROL_FOCUSED | IE_GUI_MAP_VIEW_NOTES)
    return
Exemple #16
0
def OpenPriestWindow():
    import GUICommonWindows
    global PriestWindow, OptionsWindow, PortraitWindow, PriestSpellInfoWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenPriestWindow):
        ClosePriestSpellUnmemorizeWindow()
        if PriestSpellInfoWindow:
            PriestSpellInfoWindow.Unload()
            PriestSpellInfoWindow = None
        if PriestWindow:
            PriestWindow.Unload()
        if OptionsWindow:
            OptionsWindow.Unload()
        if PortraitWindow:
            PortraitWindow.Unload()

        PriestWindow = None
        GemRB.SetVar("OtherWindow", -1)
        GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
        GemRB.UnhideGUI()
        GUICommonWindows.PortraitWindow = OldPortraitWindow
        OldPortraitWindow = None
        GUICommonWindows.OptionsWindow = OldOptionsWindow
        OldOptionsWindow = None
        GUICommonWindows.SetSelectionChangeHandler(None)
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIPR", 640, 480)
    PriestWindow = Window = GemRB.LoadWindow(2)
    GemRB.SetVar("OtherWindow", PriestWindow.ID)
    #saving the original portrait window
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.MarkMenuButton(OptionsWindow)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0,
                                             OpenPriestWindow)
    OptionsWindow.SetFrame()
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow(0)

    Button = Window.GetControl(1)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, PriestPrevLevelPress)

    Button = Window.GetControl(2)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, PriestNextLevelPress)

    #setup level buttons
    if GameCheck.IsBG2():
        for i in range(7):
            Button = Window.GetControl(55 + i)
            Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, RefreshPriestLevel)
            Button.SetFlags(IE_GUI_BUTTON_RADIOBUTTON, OP_OR)

        for i in range(7):
            Button = Window.GetControl(55 + i)
            Button.SetVarAssoc("PriestSpellLevel", i)

    # Setup memorized spells buttons
    for i in range(12):
        Button = Window.GetControl(3 + i)
        Button.SetBorder(0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 1)
        Button.SetSprites("SPELFRAM", 0, 0, 0, 0, 0)
        Button.SetFlags(
            IE_GUI_BUTTON_PICTURE | IE_GUI_BUTTON_PLAYONCE
            | IE_GUI_BUTTON_PLAYALWAYS, OP_OR)
        Button.SetState(IE_GUI_BUTTON_LOCKED)

    # Setup book spells buttons
    for i in range(GUICommon.GetGUISpellButtonCount()):
        Button = Window.GetControl(27 + i)
        Button.SetFlags(
            IE_GUI_BUTTON_NO_IMAGE | IE_GUI_BUTTON_PLAYONCE
            | IE_GUI_BUTTON_PLAYALWAYS, OP_OR)
        Button.SetState(IE_GUI_BUTTON_LOCKED)

    GUICommonWindows.SetSelectionChangeHandler(UpdatePriestWindow)
    UpdatePriestWindow()
    return
Exemple #17
0
def OpenSpellBookWindow():
    global SpellBookWindow, OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenSpellBookWindow):
        if SpellBookWindow:
            SpellBookWindow.Unload()
        if OptionsWindow:
            OptionsWindow.Unload()
        if PortraitWindow:
            PortraitWindow.Unload()

        SpellBookWindow = None
        GemRB.SetVar("OtherWindow", -1)
        GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
        GemRB.UnhideGUI()
        GUICommonWindows.PortraitWindow = OldPortraitWindow
        OldPortraitWindow = None
        GUICommonWindows.OptionsWindow = OldOptionsWindow
        OldOptionsWindow = None
        GUICommonWindows.SetSelectionChangeHandler(None)
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUISPL", 800, 600)
    SpellBookWindow = Window = GemRB.LoadWindow(2)
    GemRB.SetVar("OtherWindow", SpellBookWindow.ID)
    #saving the original portrait window
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow()
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0,
                                             OpenSpellBookWindow)
    Window.SetFrame()

    Button = Window.GetControl(92)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, SpellBookPrevPress)

    Button = Window.GetControl(93)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, SpellBookNextPress)

    #setup level buttons
    for i in range(9):
        Button = Window.GetControl(55 + i)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, RefreshSpellBookLevel)
        Button.SetFlags(IE_GUI_BUTTON_RADIOBUTTON, OP_OR)
        Button.SetVarAssoc("SpellBookSpellLevel", i)

    # Setup memorized spells buttons
    for i in range(24):
        Button = Window.GetControl(6 + i)
        Button.SetBorder(0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 1)
        #Button.SetBAM ("SPELFRAM",0,0,0)
        Button.SetFlags(
            IE_GUI_BUTTON_PICTURE | IE_GUI_BUTTON_PLAYONCE
            | IE_GUI_BUTTON_NO_IMAGE, OP_OR)

    # Setup book spells buttons
    for i in range(8):
        Button = Window.GetControl(30 + i)
        Button.SetFlags(IE_GUI_BUTTON_PLAYONCE, OP_OR)
        Button.SetState(IE_GUI_BUTTON_LOCKED)
        Button.SetVarAssoc("SpellIndex", i)

    GUICommonWindows.SetSelectionChangeHandler(SelectedNewPlayer)
    SelectedNewPlayer()
    return
Exemple #18
0
def OpenRecordsWindow():
    import GUICommonWindows

    global RecordsWindow, OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenRecordsWindow):
        if InformationWindow: OpenInformationWindow()

        if RecordsWindow:
            RecordsWindow.Unload()
        if OptionsWindow:
            OptionsWindow.Unload()
        if PortraitWindow:
            PortraitWindow.Unload()

        RecordsWindow = None
        GemRB.SetVar("OtherWindow", -1)
        GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
        GemRB.UnhideGUI()
        GUICommonWindows.PortraitWindow = OldPortraitWindow
        OldPortraitWindow = None
        GUICommonWindows.UpdatePortraitWindow()
        GUICommonWindows.OptionsWindow = OldOptionsWindow
        OldOptionsWindow = None
        GUICommonWindows.SetSelectionChangeHandler(None)
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIREC", 640, 480)
    RecordsWindow = Window = GemRB.LoadWindow(2)
    GemRB.SetVar("OtherWindow", RecordsWindow.ID)
    # saving the original portrait window
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0,
                                             OpenRecordsWindow)
    GUICommonWindows.MarkMenuButton(OptionsWindow)
    OptionsWindow.SetFrame()
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow(0)

    # dual class
    Button = Window.GetControl(0)
    Button.SetText(7174)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, DualClass.DualClassWindow)

    # levelup
    Button = Window.GetControl(37)
    Button.SetText(7175)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, LevelUp.OpenLevelUpWindow)

    # information
    Button = Window.GetControl(1)
    Button.SetText(11946)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenInformationWindow)

    # reform party
    Button = Window.GetControl(51)
    Button.SetText(16559)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenRecReformPartyWindow)

    # customize
    Button = Window.GetControl(50)
    Button.SetText(10645)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, GUIRECCommon.OpenCustomizeWindow)

    # export
    Button = Window.GetControl(36)
    Button.SetText(13956)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, GUIRECCommon.OpenExportWindow)

    # kit info
    if GameCheck.IsBG2():
        Button = Window.GetControl(52)
        Button.SetText(61265)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenKitInfoWindow)

    GUICommonWindows.SetSelectionChangeHandler(UpdateRecordsWindow)
    UpdateRecordsWindow()

    OptionsWindow.SetVisible(WINDOW_VISIBLE)
    Window.SetVisible(WINDOW_VISIBLE)
    PortraitWindow.SetVisible(WINDOW_VISIBLE)
    return
Exemple #19
0
def OpenRecordsWindow ():
	global RecordsWindow, OptionsWindow, PortraitWindow
	global OldPortraitWindow, OldOptionsWindow, SelectWindow
	global BonusSpellTable, HateRaceTable

	if GUICommon.CloseOtherWindow (OpenRecordsWindow):
		if RecordsWindow:
			RecordsWindow.Unload ()
		if OptionsWindow:
			OptionsWindow.Unload ()
		if PortraitWindow:
			PortraitWindow.Unload ()

		RecordsWindow = None
		GemRB.SetVar ("OtherWindow", -1)
		GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
		GemRB.UnhideGUI ()
		GUICommonWindows.PortraitWindow = OldPortraitWindow
		OldPortraitWindow = None
		GUICommonWindows.OptionsWindow = OldOptionsWindow
		OldOptionsWindow = None
		GUICommonWindows.SetSelectionChangeHandler (None)
		return

	GemRB.HideGUI ()
	GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

	GemRB.LoadWindowPack ("GUIREC", 800, 600)
	RecordsWindow = Window = GemRB.LoadWindow (2)
	GemRB.SetVar ("OtherWindow", RecordsWindow.ID)
	#saving the original portrait window
	OldPortraitWindow = GUICommonWindows.PortraitWindow
	PortraitWindow = GUICommonWindows.OpenPortraitWindow ()
	OldOptionsWindow = GUICommonWindows.OptionsWindow
	OptionsWindow = GemRB.LoadWindow (0)
	GUICommonWindows.SetupMenuWindowControls (OptionsWindow, 0, OpenRecordsWindow)
	Window.SetFrame ()

	if not BonusSpellTable:
		BonusSpellTable = GemRB.LoadTable ("mxsplbon")
	if not HateRaceTable:
		HateRaceTable = GemRB.LoadTable ("haterace")

	#portrait icon
	Button = Window.GetControl (2)
	Button.SetState (IE_GUI_BUTTON_LOCKED)
	Button.SetFlags (IE_GUI_BUTTON_NO_IMAGE | IE_GUI_BUTTON_PICTURE, OP_SET)

	#information (help files)
	Button = Window.GetControl (1)
	Button.SetText (11946)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, OpenHelpWindow)

	#biography
	Button = Window.GetControl (59)
	Button.SetText (18003)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, GUIRECCommon.OpenBiographyWindow)

	#export
	Button = Window.GetControl (36)
	Button.SetText (13956)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, GUIRECCommon.OpenExportWindow)

	#customize
	Button = Window.GetControl (50)
	Button.SetText (10645)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, GUIRECCommon.OpenCustomizeWindow)

	#general
	GemRB.SetVar ("SelectWindow", 1)

	Button = Window.GetControl (60)
	Button.SetTooltip (40316)
	Button.SetVarAssoc ("SelectWindow", 1)
	Button.SetFlags (IE_GUI_BUTTON_RADIOBUTTON, OP_OR)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, UpdateRecordsWindow)

	#weapons and armour
	Button = Window.GetControl (61)
	Button.SetTooltip (40317)
	Button.SetVarAssoc ("SelectWindow", 2)
	Button.SetFlags (IE_GUI_BUTTON_RADIOBUTTON, OP_OR)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, UpdateRecordsWindow)

	#skills and feats
	Button = Window.GetControl (62)
	Button.SetTooltip (40318)
	Button.SetVarAssoc ("SelectWindow", 3)
	Button.SetFlags (IE_GUI_BUTTON_RADIOBUTTON, OP_OR)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, UpdateRecordsWindow)

	#miscellaneous
	Button = Window.GetControl (63)
	Button.SetTooltip (33500)
	Button.SetVarAssoc ("SelectWindow", 4)
	Button.SetFlags (IE_GUI_BUTTON_RADIOBUTTON, OP_OR)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, UpdateRecordsWindow)

	#level up
	Button = Window.GetControl (37)
	Button.SetText (7175)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, UpdateRecordsWindow) #TODO: OpenLevelUpWindow

	GUICommonWindows.SetSelectionChangeHandler (UpdateRecordsWindow)

	UpdateRecordsWindow ()
	return
Exemple #20
0
def OpenRecordsWindow():
    import GUICommonWindows

    global RecordsWindow, OptionsWindow, PortraitWindow, PauseState
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenRecordsWindow):
        if InformationWindow: OpenInformationWindow()

        GUIRECCommon.CloseSubSubCustomizeWindow()
        GUIRECCommon.CloseSubCustomizeWindow()
        GUIRECCommon.CloseCustomizeWindow()
        GUIRECCommon.ExportCancelPress()
        GUIRECCommon.CloseBiographyWindow()
        KitDonePress()
        CloseInformationWindow()

        if RecordsWindow:
            RecordsWindow.Unload()
        if OptionsWindow:
            OptionsWindow.Unload()
        if PortraitWindow:
            PortraitWindow.Unload()

        RecordsWindow = None
        GemRB.SetVar("OtherWindow", -1)
        GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
        GemRB.UnhideGUI()
        GUICommonWindows.PortraitWindow = OldPortraitWindow
        OldPortraitWindow = None
        GUICommonWindows.UpdatePortraitWindow()
        GUICommonWindows.OptionsWindow = OldOptionsWindow
        OldOptionsWindow = None
        GUICommonWindows.SetSelectionChangeHandler(None)
        GemRB.GamePause(PauseState, 3)
        return

    PauseState = GemRB.GamePause(3, 1)
    GemRB.GamePause(1, 3)

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIREC", 640, 480)
    RecordsWindow = Window = GemRB.LoadWindow(2)
    GemRB.SetVar("OtherWindow", RecordsWindow.ID)
    # saving the original portrait window
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0,
                                             OpenRecordsWindow)
    GUICommonWindows.MarkMenuButton(OptionsWindow)
    OptionsWindow.SetFrame()
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow(0)

    # dual class
    Button = Window.GetControl(0)
    Button.SetText(7174)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, DualClass.DualClassWindow)

    # levelup
    Button = Window.GetControl(37)
    Button.SetText(7175)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, LevelUp.OpenLevelUpWindow)

    # information
    Button = Window.GetControl(1)
    Button.SetText(11946)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenInformationWindow)

    # reform party
    Button = Window.GetControl(51)
    Button.SetText(16559)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenRecReformPartyWindow)

    # customize
    Button = Window.GetControl(50)
    Button.SetText(10645)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, GUIRECCommon.OpenCustomizeWindow)

    # export
    Button = Window.GetControl(36)
    Button.SetText(13956)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, GUIRECCommon.OpenExportWindow)

    # kit info
    if GameCheck.IsBG2():
        Button = Window.GetControl(52)
        Button.SetText(61265)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenKitInfoWindow)

    # create a button so we can map it do ESC for quit exiting
    Button = Window.CreateButton(99, 0, 0, 1, 1)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenRecordsWindow)
    Button.SetFlags(IE_GUI_BUTTON_CANCEL, OP_OR)

    GUICommonWindows.SetSelectionChangeHandler(UpdateRecordsWindow)
    UpdateRecordsWindow()

    Window.SetKeyPressEvent(GUICommonWindows.SwitchPCByKey)

    OptionsWindow.SetVisible(WINDOW_VISIBLE)
    Window.SetVisible(WINDOW_VISIBLE)
    PortraitWindow.SetVisible(WINDOW_VISIBLE)
    return
Exemple #21
0
def OpenOptionsWindow():
    """Open main options window"""

    global GameOptionsWindow, OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenOptionsWindow):
        CloseOptionsWindow()
        return

    GemRB.GamePause(1, 3)

    CommonWindow.CloseContainerWindow()
    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)
    if GameCheck.IsBG1():
        GUICommonWindows.SetSelectionChangeHandler(None)

    GemRB.LoadWindowPack("GUIOPT", WIDTH, HEIGHT)
    GameOptionsWindow = Window = GemRB.LoadWindow(2)
    GemRB.SetVar("OtherWindow", GameOptionsWindow.ID)

    if OldOptionsWindow == None:
        # OptionsWindow is the leftmost menu bar window present in most of the games
        OldOptionsWindow = GUICommonWindows.OptionsWindow
        OptionsWindow = GemRB.LoadWindow(0)
        GUICommonWindows.MarkMenuButton(OptionsWindow)
        GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0,
                                                 OpenOptionsWindow)
        OptionsWindow.SetFrame()
        if not GameCheck.IsBG1(
        ):  #not in PST either, but it has its own OpenOptionsWindow()
            OptionsWindow.SetFrame()
            #saving the original portrait window
            OldPortraitWindow = GUICommonWindows.PortraitWindow
            PortraitWindow = GUICommonWindows.OpenPortraitWindow(0)

    # Return to Game
    Button = Window.GetControl(11)
    Button.SetText(10308)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenOptionsWindow)
    Button.SetFlags(IE_GUI_BUTTON_CANCEL, OP_OR)

    # Quit Game
    Button = Window.GetControl(10)
    Button.SetText(13731)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenQuitMsgWindow)

    # Load Game
    Button = Window.GetControl(5)
    Button.SetText(13729)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenLoadMsgWindow)

    # Save Game
    Button = Window.GetControl(6)
    Button.SetText(13730)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenSaveMsgWindow)

    # Video Options
    Button = Window.GetControl(7)
    Button.SetText(17162)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenVideoOptionsWindow)

    # Audio Options
    Button = Window.GetControl(8)
    Button.SetText(17164)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenAudioOptionsWindow)

    # Gameplay Options
    Button = Window.GetControl(9)
    Button.SetText(17165)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenGameplayOptionsWindow)

    # game version, e.g. v1.1.0000
    VersionLabel = Window.GetControl(0x1000000b)
    VersionLabel.SetText(GEMRB_VERSION)

    if GameCheck.IsIWD2():
        # Keyboard shortcuts
        KeyboardButton = Window.GetControl(13)
        KeyboardButton.SetText(33468)
        KeyboardButton.SetEvent(IE_GUI_BUTTON_ON_PRESS,
                                OpenHotkeyOptionsWindow)

        # Movies
        MoviesButton = Window.GetControl(14)
        MoviesButton.SetText(15415)
        MoviesButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenMovieWindow)

    RestoreWinVisibility()

    return
Exemple #22
0
def OpenInventoryWindow():
    global InventoryWindow, OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenInventoryWindow):
        if GemRB.IsDraggingItem() == 1:
            pc = GemRB.GameGetSelectedPCSingle()
            #store the item in the inventory before window is closed
            GemRB.DropDraggedItem(pc, -3)
            #dropping on ground if cannot store in inventory
            if GemRB.IsDraggingItem() == 1:
                GemRB.DropDraggedItem(pc, -2)

        InventoryCommon.CloseIdentifyItemWindow()
        InventoryCommon.CloseAbilitiesItemWindow()
        InventoryCommon.CancelColor()
        if InventoryCommon.ItemInfoWindow:
            InventoryCommon.ItemInfoWindow.Unload()
            InventoryCommon.ItemInfoWindow = None
        if InventoryCommon.ItemAmountWindow:
            InventoryCommon.ItemAmountWindow.Unload()
            InventoryCommon.ItemAmountWindow = None
        if InventoryCommon.ErrorWindow:
            InventoryCommon.ErrortWindow.Unload()
            InventoryCommon.ErrortWindow = None

        if InventoryWindow:
            InventoryWindow.Unload()
        if OptionsWindow:
            OptionsWindow.Unload()
        if PortraitWindow:
            PortraitWindow.Unload()

        InventoryWindow = None
        GemRB.SetVar("OtherWindow", -1)
        GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
        GemRB.UnhideGUI()
        GUICommonWindows.PortraitWindow = OldPortraitWindow
        GUICommonWindows.UpdatePortraitWindow()
        OldPortraitWindow = None
        GUICommonWindows.OptionsWindow = OldOptionsWindow
        OldOptionsWindow = None
        GUICommonWindows.SetSelectionChangeHandler(None)
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIINV", 800, 600)
    InventoryWindow = Window = GemRB.LoadWindow(2)
    GemRB.SetVar("OtherWindow", InventoryWindow.ID)
    #TODO: Setup the MessageLabel here if needed
    #saving the original portrait window
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow()
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 1,
                                             OpenInventoryWindow)
    Window.SetFrame()

    Window.SetKeyPressEvent(GUICommonWindows.SwitchPCByKey)

    #ground items scrollbar
    ScrollBar = Window.GetControl(66)
    ScrollBar.SetEvent(IE_GUI_SCROLLBAR_ON_CHANGE, RefreshInventoryWindow)

    # Ground Items (6)
    for i in range(5):
        Button = Window.GetControl(i + 68)
        Button.SetEvent(IE_GUI_MOUSE_ENTER_BUTTON,
                        InventoryCommon.MouseEnterGround)
        Button.SetEvent(IE_GUI_MOUSE_LEAVE_BUTTON,
                        InventoryCommon.MouseLeaveGround)
        Button.SetVarAssoc("GroundItemButton", i)
        Button.SetFont("NUMFONT")

    Button = Window.GetControl(81)
    Button.SetTooltip(12011)
    Button.SetVarAssoc("GroundItemButton", 6)
    Button.SetFont("NUMFONT")
    Button.SetFlags(
        IE_GUI_BUTTON_ALIGN_RIGHT | IE_GUI_BUTTON_ALIGN_BOTTOM
        | IE_GUI_BUTTON_PICTURE, OP_OR)

    #major & minor clothing color
    Button = Window.GetControl(62)
    Button.SetFlags(IE_GUI_BUTTON_PICTURE, OP_OR)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, InventoryCommon.MajorPress)
    Button.SetTooltip(12007)

    Button = Window.GetControl(63)
    Button.SetFlags(IE_GUI_BUTTON_PICTURE, OP_OR)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, InventoryCommon.MinorPress)
    Button.SetTooltip(12008)

    #hair & skin color
    Button = Window.GetControl(82)
    Button.SetFlags(IE_GUI_BUTTON_PICTURE, OP_OR)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, InventoryCommon.HairPress)
    Button.SetTooltip(37560)

    Button = Window.GetControl(83)
    Button.SetFlags(IE_GUI_BUTTON_PICTURE, OP_OR)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, InventoryCommon.SkinPress)
    Button.SetTooltip(37559)

    # paperdoll
    Button = Window.GetControl(50)
    Button.SetState(IE_GUI_BUTTON_LOCKED)
    Button.SetFlags(
        IE_GUI_BUTTON_NO_IMAGE | IE_GUI_BUTTON_PICTURE
        | IE_GUI_BUTTON_ANIMATED, OP_SET)
    Button.SetEvent(IE_GUI_BUTTON_ON_DRAG_DROP, InventoryCommon.OnAutoEquip)

    # portrait
    Button = Window.GetControl(84)
    Button.SetState(IE_GUI_BUTTON_LOCKED)
    Button.SetFlags(IE_GUI_BUTTON_NO_IMAGE | IE_GUI_BUTTON_PICTURE, OP_SET)

    # armor class
    Label = Window.GetControl(0x10000038)
    Label.SetTooltip(17183)

    # hp current
    Label = Window.GetControl(0x10000039)
    Label.SetTooltip(17184)

    # hp max
    Label = Window.GetControl(0x1000003a)
    Label.SetTooltip(17378)

    # info label, game paused, etc
    Label = Window.GetControl(0x1000003f)
    Label.SetText("")

    SlotCount = GemRB.GetSlotType(-1)["Count"]
    for slot in range(SlotCount):
        SlotType = GemRB.GetSlotType(slot + 1)
        if SlotType["ID"]:
            Button = Window.GetControl(SlotType["ID"])
            Button.SetEvent(IE_GUI_MOUSE_ENTER_BUTTON,
                            InventoryCommon.MouseEnterSlot)
            Button.SetEvent(IE_GUI_MOUSE_LEAVE_BUTTON,
                            InventoryCommon.MouseLeaveSlot)
            Button.SetVarAssoc("ItemButton", slot + 1)
            Button.SetFont("NUMFONT")

    GemRB.SetVar("TopIndex", 0)

    for i in range(4):
        Button = Window.GetControl(109 + i)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, ChangeWeaponPressed)
        Button.SetVarAssoc("Equipped", i)
        Button.SetFlags(IE_GUI_BUTTON_RADIOBUTTON, OP_OR)
        #Why they mess up .chu's i don't know
        Button.SetSprites("INVBUT3", i, 0, 1, 2, 3)

    # create a button so we can map it do ESC for quit exiting
    Button = Window.CreateButton(999, 0, 0, 1, 1)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenInventoryWindow)
    Button.SetFlags(IE_GUI_BUTTON_CANCEL, OP_OR)

    GUICommonWindows.SetSelectionChangeHandler(UpdateInventoryWindow)

    UpdateInventoryWindow()
    return
Exemple #23
0
def OpenOptionsWindow():
    global GameOptionsWindow, OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenOptionsWindow):
        CloseOptionsWindow()
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIOPT", 800, 600)
    GameOptionsWindow = Window = GemRB.LoadWindow(2)
    GemRB.SetVar("OtherWindow", GameOptionsWindow.ID)
    #saving the original portrait window
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow()
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0,
                                             OpenOptionsWindow)
    Window.SetFrame()

    LoadButton = Window.GetControl(5)
    SaveButton = Window.GetControl(6)
    QuitButton = Window.GetControl(10)
    GraphicsButton = Window.GetControl(7)
    SoundButton = Window.GetControl(8)
    GamePlayButton = Window.GetControl(9)
    MoviesButton = Window.GetControl(14)
    KeyboardButton = Window.GetControl(13)
    ReturnButton = Window.GetControl(11)

    LoadButton.SetText(13729)
    LoadButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenLoadMsgWindow)
    SaveButton.SetText(13730)
    SaveButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenSaveMsgWindow)
    QuitButton.SetText(13731)
    QuitButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenQuitMsgWindow)
    GraphicsButton.SetText(17162)
    GraphicsButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenVideoOptionsWindow)
    SoundButton.SetText(17164)
    SoundButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenAudioOptionsWindow)
    GamePlayButton.SetText(17165)
    GamePlayButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenGameplayOptionsWindow)
    MoviesButton.SetText(15415)
    MoviesButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenMovieWindow)
    KeyboardButton.SetText(33468)
    KeyboardButton.SetEvent(IE_GUI_BUTTON_ON_PRESS,
                            None)  #TODO: OpenKeyboardWindow
    ReturnButton.SetText(10308)
    ReturnButton.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenOptionsWindow)
    ReturnButton.SetFlags(IE_GUI_BUTTON_CANCEL, OP_OR)

    VersionLabel = Window.GetControl(0x1000000B)
    VersionLabel.SetText(GEMRB_VERSION)

    Window.SetVisible(WINDOW_VISIBLE)
    OptionsWindow.SetVisible(WINDOW_VISIBLE)
    PortraitWindow.SetVisible(WINDOW_VISIBLE)
    return
Exemple #24
0
def OpenJournalWindow ():
	import GUICommonWindows
	global JournalWindow, OptionsWindow, PortraitWindow
	global OldPortraitWindow, OldOptionsWindow
	global StartTime, StartYear
	global Chapter

	if GUICommon.CloseOtherWindow (OpenJournalWindow):
		
		if JournalWindow:
			JournalWindow.Unload ()
		if OptionsWindow:
			OptionsWindow.Unload ()
		if PortraitWindow:
			PortraitWindow.Unload ()

		JournalWindow = None
		GemRB.SetVar ("OtherWindow", -1)
		GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
		GemRB.UnhideGUI ()
		GUICommonWindows.PortraitWindow = OldPortraitWindow
		OldPortraitWindow = None
		GUICommonWindows.OptionsWindow = OldOptionsWindow
		OldOptionsWindow = None
		GUICommonWindows.SetSelectionChangeHandler (None)
		return
		
	Table = GemRB.LoadTable("YEARS")
	StartTime = Table.GetValue("STARTTIME", "VALUE") / 4500
	StartYear = Table.GetValue("STARTYEAR", "VALUE")

	GemRB.HideGUI ()
	GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

	GemRB.LoadWindowPack ("GUIJRNL", 640, 480)
	JournalWindow = Window = GemRB.LoadWindow (2)
	GemRB.SetVar ("OtherWindow", JournalWindow.ID)
	#saving the original portrait window
	OldOptionsWindow = GUICommonWindows.OptionsWindow
	OptionsWindow = GemRB.LoadWindow (0)
	GUICommonWindows.MarkMenuButton (OptionsWindow)
	GUICommonWindows.SetupMenuWindowControls (OptionsWindow, 0, OpenJournalWindow)
	OptionsWindow.SetFrame ()
	OldPortraitWindow = GUICommonWindows.PortraitWindow
	PortraitWindow = GUICommonWindows.OpenPortraitWindow (0)

	# prev. chapter
	Button = JournalWindow.GetControl (3)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, PrevChapterPress)

	# next chapter
	Button = JournalWindow.GetControl (4)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, NextChapterPress)

	GemRB.SetVar ("Section", Section)
	# Quests
	Button = JournalWindow.GetControl (6)
	Button.SetFlags (IE_GUI_BUTTON_RADIOBUTTON, OP_OR)
	Button.SetVarAssoc ("Section", 1)
	Button.SetText (45485)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, UpdateLogWindow)

	# Quests completed
	Button = JournalWindow.GetControl (7)
	Button.SetFlags (IE_GUI_BUTTON_RADIOBUTTON, OP_OR)
	Button.SetVarAssoc ("Section", 2)
	Button.SetText (45486)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, UpdateLogWindow)

	# Journal
	Button = JournalWindow.GetControl (8)
	Button.SetFlags (IE_GUI_BUTTON_RADIOBUTTON, OP_OR)
	Button.SetVarAssoc ("Section", 4)
	Button.SetText (15333)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, UpdateLogWindow)

	# User
	Button = JournalWindow.GetControl (9)
	Button.SetFlags (IE_GUI_BUTTON_RADIOBUTTON, OP_OR)
	Button.SetVarAssoc ("Section", 0)
	Button.SetText (45487)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, UpdateLogWindow)

	# Order
	Button = JournalWindow.GetControl (10)
	Button.SetText (4627)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, ToggleOrderWindow)

	# Done
	#Button = JournalWindow.GetControl (3)
	#Button.SetText (20636)
	#Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, OpenJournalWindow)

	Chapter = GemRB.GetGameVar("chapter")
	if Chapter>65535:
		Chapter=0

	GUICommonWindows.SetSelectionChangeHandler (UpdateLogWindow)
	UpdateLogWindow ()
	OptionsWindow.SetVisible (WINDOW_VISIBLE)
	Window.SetVisible (WINDOW_FRONT)
	PortraitWindow.SetVisible (WINDOW_VISIBLE)
	return
Exemple #25
0
def ShowMap():
    import GameCheck
    import GUICommonWindows
    global MapWindow, OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(ShowMap):
        if MapWindow:
            MapWindow.Unload()
        if OptionsWindow:
            OptionsWindow.Unload()
        if PortraitWindow:
            PortraitWindow.Unload()

        MapWindow = None
        #this window type should block the game
        GemRB.SetVar("OtherWindow", -1)
        GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
        GemRB.UnhideGUI()
        GUICommonWindows.PortraitWindow = OldPortraitWindow
        OldPortraitWindow = None
        GUICommonWindows.OptionsWindow = OldOptionsWindow
        OldOptionsWindow = None
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIMAP", 640, 480)
    MapWindow = Window = GemRB.LoadWindow(2)
    #this window type blocks the game normally, but map window doesn't
    GemRB.SetVar("OtherWindow", MapWindow.ID)
    #saving the original portrait window
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0, ShowMap)
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow()
    OptionsWindow.SetFrame()

    # World Map
    Button = Window.GetControl(1)
    Button.SetState(IE_GUI_BUTTON_LOCKED)

    # Hide or Show mapnotes
    if HasMapNotes():
        Button = Window.GetControl(3)
        Button.SetState(IE_GUI_BUTTON_LOCKED)

        Label = Window.GetControl(0x10000003)
        Label.SetText("")

    # Map Control
    if GameCheck.IsBG2() or GameCheck.IsIWD2():
        Window.CreateMapControl(2, 0, 0, 0, 0, 0x10000003, "FLAG1")
    else:
        Window.CreateMapControl(2, 0, 0, 0, 0)
    Map = Window.GetControl(2)
    if HasMapNotes():
        GemRB.SetVar("ShowMapNotes", IE_GUI_MAP_REVEAL_MAP)
        Map.SetVarAssoc("ShowMapNotes", IE_GUI_MAP_REVEAL_MAP)
    Map.SetEvent(IE_GUI_MAP_ON_PRESS, RevealMap)
    Window.SetVisible(WINDOW_VISIBLE)
    OptionsWindow.SetVisible(WINDOW_GRAYED)
    PortraitWindow.SetVisible(WINDOW_GRAYED)
    OptionsWindow.SetVisible(WINDOW_FRONT)
    PortraitWindow.SetVisible(WINDOW_FRONT)
    Window.SetVisible(WINDOW_FRONT)
    if HasMapNotes():
        Map.SetStatus(IE_GUI_CONTROL_FOCUSED | IE_GUI_MAP_REVEAL_MAP)
    else:
        Map.SetStatus(IE_GUI_CONTROL_FOCUSED)
    GemRB.GamePause(0, 0)
    return
Exemple #26
0
def OpenInventoryWindow ():
	global InventoryWindow, OptionsWindow, PortraitWindow
	global OldPortraitWindow, OldOptionsWindow

	if GUICommon.CloseOtherWindow (OpenInventoryWindow):
		if GemRB.IsDraggingItem () == 1:
			pc = GemRB.GameGetSelectedPCSingle ()
			#store the item in the inventory before window is closed
			GemRB.DropDraggedItem (pc, -3)
			#dropping on ground if cannot store in inventory
			if GemRB.IsDraggingItem () == 1:
				GemRB.DropDraggedItem (pc, -2)

		if InventoryWindow:
			InventoryWindow.Unload ()
		if OptionsWindow:
			OptionsWindow.Unload ()
		if PortraitWindow:
			PortraitWindow.Unload ()

		InventoryWindow = None
		GemRB.SetVar ("OtherWindow", -1)
		GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
		GemRB.UnhideGUI ()
		GUICommonWindows.PortraitWindow = OldPortraitWindow
		GUICommonWindows.UpdatePortraitWindow ()
		OldPortraitWindow = None
		GUICommonWindows.OptionsWindow = OldOptionsWindow
		OldOptionsWindow = None
		GUICommonWindows.SetSelectionChangeHandler (None)
		return

	GemRB.HideGUI ()
	GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

	GemRB.LoadWindowPack ("GUIINV", 640, 480)
	InventoryWindow = Window = GemRB.LoadWindow (2)
	GemRB.SetVar ("OtherWindow", InventoryWindow.ID)
	GemRB.SetVar ("MessageLabel", Window.GetControl (0x1000003f).ID )
	OldOptionsWindow = GUICommonWindows.OptionsWindow
	OptionsWindow = GemRB.LoadWindow (0)
	GUICommonWindows.SetupMenuWindowControls (OptionsWindow, 0, OpenInventoryWindow)
	OptionsWindow.SetFrame ()
	#saving the original portrait window
	OldPortraitWindow = GUICommonWindows.PortraitWindow
	PortraitWindow = GUICommonWindows.OpenPortraitWindow (0)

	#ground items scrollbar
	ScrollBar = Window.GetControl (66)
	ScrollBar.SetEvent (IE_GUI_SCROLLBAR_ON_CHANGE, RefreshInventoryWindow)

	#Ground Item
	for i in range (5):
		Button = Window.GetControl (i+68)
		Button.SetEvent (IE_GUI_MOUSE_ENTER_BUTTON, InventoryCommon.MouseEnterGround)
		Button.SetEvent (IE_GUI_MOUSE_LEAVE_BUTTON, InventoryCommon.MouseLeaveGround)
		Button.SetVarAssoc ("GroundItemButton", i)
		Button.SetSprites ("STONSLOT",0,0,1,2,3)

	#major & minor clothing color
	Button = Window.GetControl (62)
	Button.SetFlags (IE_GUI_BUTTON_PICTURE,OP_OR)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, InventoryCommon.MajorPress)
	Button.SetTooltip (12007)

	Button = Window.GetControl (63)
	Button.SetFlags (IE_GUI_BUTTON_PICTURE,OP_OR)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, InventoryCommon.MinorPress)
	Button.SetTooltip (12008)

	#portrait
	Button = Window.GetControl (50)
	Button.SetState (IE_GUI_BUTTON_LOCKED)
	Button.SetFlags (IE_GUI_BUTTON_NO_IMAGE | IE_GUI_BUTTON_PICTURE, OP_SET)
	Button.SetEvent (IE_GUI_BUTTON_ON_DRAG_DROP, InventoryCommon.OnAutoEquip)

	#encumbrance
	Button = Window.GetControl (67)
	r = Button.GetRect ()
	Label = Window.CreateLabel (0x10000043, r["X"],r["Y"],r["Width"],15,
		"NUMBER","0:",IE_FONT_ALIGN_LEFT|IE_FONT_ALIGN_TOP)
	Label = Window.CreateLabel (0x10000044, r["X"],r["Y"]+r["Height"]-15,r["Width"],15,
		"NUMBER","0:",IE_FONT_ALIGN_RIGHT|IE_FONT_ALIGN_BOTTOM)

	#armor class
	Label = Window.GetControl (0x10000038)
	Label.SetTooltip (17183)

	#hp current
	Label = Window.GetControl (0x10000039)
	Label.SetTooltip (17184)

	#hp max
	Label = Window.GetControl (0x1000003a)
	Label.SetTooltip (17378)

	#info label, game paused, etc
	Label = Window.GetControl (0x1000003f)
	Label.SetText ("")

	SlotCount = GemRB.GetSlotType (-1)["Count"]
	for slot in range (SlotCount):
		SlotType = GemRB.GetSlotType (slot+1)
		if SlotType["ID"]:
			Button = Window.GetControl (SlotType["ID"])
			Button.SetEvent (IE_GUI_MOUSE_ENTER_BUTTON, InventoryCommon.MouseEnterSlot)
			Button.SetEvent (IE_GUI_MOUSE_LEAVE_BUTTON, InventoryCommon.MouseLeaveSlot)
			Button.SetVarAssoc ("ItemButton", slot+1)
			Button.SetSprites ("STONSLOT",0,0,1,2,3)

	GemRB.SetVar ("TopIndex", 0)
	GUICommonWindows.SetSelectionChangeHandler (UpdateInventoryWindow)
	UpdateInventoryWindow ()
	OptionsWindow.SetVisible (WINDOW_VISIBLE)
	Window.SetVisible (WINDOW_FRONT)
	PortraitWindow.SetVisible (WINDOW_VISIBLE)
	return
Exemple #27
0
def OpenMageWindow():
    global MageWindow, OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenMageWindow):
        if MageWindow:
            MageWindow.Unload()
        if OptionsWindow:
            OptionsWindow.Unload()
        if PortraitWindow:
            PortraitWindow.Unload()

        MageWindow = None
        GemRB.SetVar("OtherWindow", -1)
        GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
        GemRB.UnhideGUI()
        GUICommonWindows.PortraitWindow = OldPortraitWindow
        OldPortraitWindow = None
        GUICommonWindows.OptionsWindow = OldOptionsWindow
        OldOptionsWindow = None
        GUICommonWindows.SetSelectionChangeHandler(None)
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIMG", 640, 480)
    MageWindow = Window = GemRB.LoadWindow(2)
    GemRB.SetVar("OtherWindow", MageWindow.ID)
    #saving the original portrait window
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0, OpenMageWindow)
    OptionsWindow.SetFrame()
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow(0)

    Button = Window.GetControl(1)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MagePrevLevelPress)

    Button = Window.GetControl(2)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, MageNextLevelPress)

    ## 	#unknown usage
    ## 	Button = Window.GetControl (55)
    ## 	Button.SetState (IE_GUI_BUTTON_LOCKED)
    ## 	#Button.SetText (123)
    ## 	#Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, xxPress)

    ## 	#setup level buttons
    ## 	for i in range (9):
    ## 		Button = Window.GetControl (56 + i)
    ## 		Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, RefreshMageLevel)
    ## 		Button.SetFlags (IE_GUI_BUTTON_RADIOBUTTON, OP_OR)

    ## 	for i in range (9):
    ## 		Button = Window.GetControl (56 + i)
    ## 		Button.SetVarAssoc ("MageSpellLevel", i)

    # Setup memorized spells buttons
    for i in range(12):
        Button = Window.GetControl(3 + i)
        Button.SetBorder(0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 1)
        Button.SetSprites("SPELFRAM", 0, 0, 0, 0, 0)
        Button.SetFlags(IE_GUI_BUTTON_PICTURE, OP_OR)
        Button.SetState(IE_GUI_BUTTON_LOCKED)

    # Setup book spells buttons
    for i in range(GUICommon.GetIWDSpellButtonCount()):
        Button = Window.GetControl(27 + i)
        Button.SetFlags(IE_GUI_BUTTON_NO_IMAGE, OP_OR)
        Button.SetState(IE_GUI_BUTTON_LOCKED)

    GUICommonWindows.SetSelectionChangeHandler(UpdateMageWindow)
    UpdateMageWindow()
    OptionsWindow.SetVisible(WINDOW_VISIBLE)
    #bringing the window front
    Window.SetVisible(WINDOW_FRONT)
    PortraitWindow.SetVisible(WINDOW_VISIBLE)
    return
Exemple #28
0
def OpenOptionsWindow():
    """Open main options window"""
    global BackgroundWindow, OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenOptionsWindow):
        CloseOptionsWindow()
        return

    hideflag = GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIOPT", 640, 480)
    BackgroundWindow = Window = GemRB.LoadWindow(2)
    GemRB.SetVar("OtherWindow", BackgroundWindow.ID)
    #saving the original portrait window
    if OldPortraitWindow == None:
        OldOptionsWindow = GUICommonWindows.OptionsWindow
        OptionsWindow = GemRB.LoadWindow(0)
        GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0,
                                                 OpenOptionsWindow)
        OptionsWindow.SetFrame()
        OldPortraitWindow = GUICommonWindows.PortraitWindow
        PortraitWindow = GUICommonWindows.OpenPortraitWindow(0)

    # Return to Game
    Button = Window.GetControl(11)
    Button.SetText(10308)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenOptionsWindow)

    # Quit Game
    Button = Window.GetControl(10)
    Button.SetText(13731)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenQuitMsgWindow)

    # Load Game
    Button = Window.GetControl(5)
    Button.SetText(13729)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenLoadMsgWindow)

    # Save Game
    Button = Window.GetControl(6)
    Button.SetText(13730)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenSaveMsgWindow)

    # Graphics
    Button = Window.GetControl(7)
    Button.SetText(17162)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenVideoOptionsWindow)

    # Audio
    Button = Window.GetControl(8)
    Button.SetText(17164)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenAudioOptionsWindow)

    # Gameplay
    Button = Window.GetControl(9)
    Button.SetText(17165)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenGameplayOptionsWindow)

    # game version, e.g. v1.1.0000
    Label = Window.GetControl(0x1000000b)
    Label.SetText(GEMRB_VERSION)

    OptionsWindow.SetVisible(WINDOW_VISIBLE)
    Window.SetVisible(WINDOW_VISIBLE)
    PortraitWindow.SetVisible(WINDOW_VISIBLE)
    return
Exemple #29
0
def OpenInventoryWindow():
    """Opens the inventory window."""

    import GUICommonWindows

    global InventoryWindow, OptionsWindow, PortraitWindow
    global OldPortraitWindow, OldOptionsWindow

    if GUICommon.CloseOtherWindow(OpenInventoryWindow):
        if GemRB.IsDraggingItem() == 1:
            pc = GemRB.GameGetSelectedPCSingle()
            #store the item in the inventory before window is closed
            GemRB.DropDraggedItem(pc, -3)
            #dropping on ground if cannot store in inventory
            if GemRB.IsDraggingItem() == 1:
                GemRB.DropDraggedItem(pc, -2)

        InventoryCommon.CloseIdentifyItemWindow()
        InventoryCommon.CloseAbilitiesItemWindow()
        InventoryCommon.CancelColor()
        if InventoryCommon.ItemInfoWindow:
            InventoryCommon.ItemInfoWindow.Unload()
            InventoryCommon.ItemInfoWindow = None
        if InventoryCommon.ItemAmountWindow:
            InventoryCommon.ItemAmountWindow.Unload()
            InventoryCommon.ItemAmountWindow = None
        if InventoryCommon.ErrorWindow:
            InventoryCommon.ErrortWindow.Unload()
            InventoryCommon.ErrortWindow = None

        if InventoryWindow:
            InventoryWindow.Unload()
        if OptionsWindow:
            OptionsWindow.Unload()
        if PortraitWindow:
            PortraitWindow.Unload()

        InventoryWindow = None
        GemRB.SetVar("OtherWindow", -1)
        GemRB.SetVar("MessageLabel", -1)
        GUICommonWindows.PortraitWindow = OldPortraitWindow
        GUICommonWindows.UpdatePortraitWindow()
        OldPortraitWindow = None
        GUICommonWindows.OptionsWindow = OldOptionsWindow
        OldOptionsWindow = None
        #don't go back to multi selection mode when going to the store screen
        if not GemRB.GetVar("Inventory"):
            GUICommon.GameWindow.SetVisible(WINDOW_VISIBLE)
            GemRB.UnhideGUI()
            GUICommonWindows.SetSelectionChangeHandler(None)
        return

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(WINDOW_INVISIBLE)

    GemRB.LoadWindowPack("GUIINV", 640, 480)
    InventoryWindow = Window = GemRB.LoadWindow(2)
    GemRB.SetVar("OtherWindow", InventoryWindow.ID)
    GemRB.SetVar("MessageLabel", Window.GetControl(0x1000003f).ID)
    OldOptionsWindow = GUICommonWindows.OptionsWindow
    OptionsWindow = GemRB.LoadWindow(0)
    GUICommonWindows.MarkMenuButton(OptionsWindow)
    GUICommonWindows.SetupMenuWindowControls(OptionsWindow, 0,
                                             OpenInventoryWindow)
    OptionsWindow.SetFrame()
    #saving the original portrait window
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow(0)

    #ground items scrollbar
    ScrollBar = Window.GetControl(66)
    ScrollBar.SetEvent(IE_GUI_SCROLLBAR_ON_CHANGE, RefreshInventoryWindow)

    #Ground Item
    for i in range(5):
        Button = Window.GetControl(i + 68)
        Button.SetEvent(IE_GUI_MOUSE_ENTER_BUTTON,
                        InventoryCommon.MouseEnterGround)
        Button.SetEvent(IE_GUI_MOUSE_LEAVE_BUTTON,
                        InventoryCommon.MouseLeaveGround)
        Button.SetVarAssoc("GroundItemButton", i)
        Button.SetSprites("STONSLOT", 0, 0, 2, 4, 3)

    #major & minor clothing color
    Button = Window.GetControl(62)
    Button.SetSprites("INVBUT", 0, 0, 1, 0, 0)
    Button.SetFlags(IE_GUI_BUTTON_PICTURE, OP_OR)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, InventoryCommon.MajorPress)
    Button.SetTooltip(12007)

    Button = Window.GetControl(63)
    Button.SetSprites("INVBUT", 0, 0, 1, 0, 0)
    Button.SetFlags(IE_GUI_BUTTON_PICTURE, OP_OR)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, InventoryCommon.MinorPress)
    Button.SetTooltip(12008)

    #portrait
    Button = Window.GetControl(50)
    Button.SetState(IE_GUI_BUTTON_LOCKED)
    Button.SetFlags(IE_GUI_BUTTON_NO_IMAGE | IE_GUI_BUTTON_PICTURE, OP_SET)
    Button.SetEvent(IE_GUI_BUTTON_ON_DRAG_DROP, InventoryCommon.OnAutoEquip)

    #encumbrance
    Button = Window.GetControl(67)
    r = Button.GetRect()
    Label = Window.CreateLabel(
        0x10000043, r["X"], r["Y"], r["Width"], 20, "NUMBER", "0:",
        IE_FONT_ALIGN_LEFT | IE_FONT_ALIGN_TOP | IE_FONT_SINGLE_LINE)
    Label = Window.CreateLabel(
        0x10000044, r["X"], r["Y"] + r["Height"] - 20, r["Width"], 20,
        "NUMBER", "0:",
        IE_FONT_ALIGN_RIGHT | IE_FONT_ALIGN_BOTTOM | IE_FONT_SINGLE_LINE)

    # armor class
    Label = Window.GetControl(0x10000038)
    Label.SetTooltip(17183)

    # hp current
    Label = Window.GetControl(0x10000039)
    Label.SetTooltip(17184)

    # hp max
    Label = Window.GetControl(0x1000003a)
    Label.SetTooltip(17378)

    # info label, game paused, etc
    Label = Window.GetControl(0x1000003f)
    Label.SetText("")

    SlotCount = GemRB.GetSlotType(-1)["Count"]
    for slot in range(SlotCount):
        SlotType = GemRB.GetSlotType(slot + 1)
        if SlotType["ID"]:
            Button = Window.GetControl(SlotType["ID"])
            Button.SetEvent(IE_GUI_MOUSE_ENTER_BUTTON,
                            InventoryCommon.MouseEnterSlot)
            Button.SetEvent(IE_GUI_MOUSE_LEAVE_BUTTON,
                            InventoryCommon.MouseLeaveSlot)
            Button.SetVarAssoc("ItemButton", slot + 1)
            #keeping 2 in the original place, because it is how
            #the gui resource has it, but setting the other cycles
            Button.SetSprites("STONSLOT", 0, 0, 2, 4, 3)

    # create a button so we can map it do ESC for quit exiting
    Button = Window.CreateButton(999, 0, 0, 1, 1)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, OpenInventoryWindow)
    Button.SetFlags(IE_GUI_BUTTON_CANCEL, OP_OR)

    GemRB.SetVar("TopIndex", 0)
    GUICommonWindows.SetSelectionChangeHandler(UpdateInventoryWindow)
    UpdateInventoryWindow()
    OptionsWindow.SetVisible(WINDOW_VISIBLE)
    Window.SetVisible(WINDOW_FRONT)
    PortraitWindow.SetVisible(WINDOW_VISIBLE)
    Window.SetKeyPressEvent(GUICommonWindows.SwitchPCByKey)
    return
Exemple #30
0
def OpenStoreWindow():
    global Store
    global StoreWindow, ActionWindow, PortraitWindow
    global OldPortraitWindow
    global store_funcs
    global Inventory
    global CureTable

    CureTable = GemRB.LoadTable(
        "speldesc")  #additional info not supported by core

    #these are function pointers, not strings
    #can't put this in global init, doh!
    store_funcs = (OpenStoreShoppingWindow, OpenStoreIdentifyWindow,
                   OpenStoreStealWindow, OpenStoreHealWindow,
                   OpenStoreDonateWindow, OpenStoreRumourWindow,
                   OpenStoreRentWindow)

    GemRB.HideGUI()
    GUICommon.GameWindow.SetVisible(
        WINDOW_INVISIBLE)  #removing the game control screen

    if GemRB.GetVar("Inventory"):
        Inventory = 1
    else:
        Inventory = None

    GemRB.SetVar("Action", 0)
    GemRB.LoadWindowPack("GUISTORE", 640, 480)
    StoreWindow = Window = GemRB.LoadWindow(3)
    #saving the original portrait window
    OldPortraitWindow = GUICommonWindows.PortraitWindow
    PortraitWindow = GUICommonWindows.OpenPortraitWindow(0)
    ActionWindow = GemRB.LoadWindow(0)
    #this window is static and grey, but good to stick the frame onto
    ActionWindow.SetFrame()

    Store = GemRB.GetStore()

    # Done
    Button = Window.GetControl(0)
    Button.SetText(1403)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, CloseStoreWindow)

    #Store type icon
    Button = Window.GetControl(5)
    #Button.SetSprites (storebams[Store['StoreType']],0,0,0,0,0)

    #based on shop type, these buttons will change
    store_type = Store['StoreType']
    store_buttons = Store['StoreButtons']
    for i in range(4):
        Buttons[i] = Button = Window.GetControl(i + 1)
        Action = store_buttons[i]
        Button.SetVarAssoc("Action", i)
        if Action >= 0:
            Button.SetFlags(IE_GUI_BUTTON_RADIOBUTTON, OP_OR)
            #this is different from IWD???
            #Button.SetSprites ("SSBBS", Action, 0,1,2,0)
            Button.SetTooltip(storetips[Action])
            Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, store_funcs[Action])
            Button.SetState(IE_GUI_BUTTON_ENABLED)
        else:
            Button.SetFlags(IE_GUI_BUTTON_NO_IMAGE, OP_OR)
            Button.SetTooltip("")
            Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, None)
            Button.SetState(IE_GUI_BUTTON_DISABLED)

    ActionWindow.SetVisible(WINDOW_VISIBLE)
    Window.SetVisible(WINDOW_VISIBLE)
    store_funcs[store_buttons[0]]()
    PortraitWindow.SetVisible(WINDOW_VISIBLE)
    return