Example #1
0
    Button.SetHotKey('m')

    # workaround for proper closure with ESC
    Button = Window.GetControl(99)
    if not Button:
        Button = Window.CreateButton(99, 0, 0, 0, 0)
    Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, CloseMapWindow)
    Button.MakeEscape()

    return


def CloseMapWindow():
    global WorldMapControl, AreaMapControl

    WorldMapControl = None
    AreaMapControl = None
    GUICommonWindows.CloseTopWindow()


ToggleMapWindow = GUICommonWindows.CreateTopWinLoader(
    0, "GUIMAP", GUICommonWindows.ToggleWindow, InitMapWindow)
OpenMapWindow = GUICommonWindows.CreateTopWinLoader(
    0, "GUIMAP", GUICommonWindows.OpenWindowOnce, InitMapWindow)


def OpenTravelWindow():
    Window = OpenMapWindow()
    InitMapWindow(Window, True)
    return
Example #2
0
	color = {'r' : 30, 'g' : 8, 'b' : 0, 'a' : 0xff}
	WorldMapControl = WMap = Window.ReplaceSubview (4, IE_GUI_WORLDMAP, "FONTDLG", "WMPTY", color, color, color)
	WMap.SetVarAssoc ("Travel", Travel)
	#center on current area
	WMap.Scroll (0,0)
	WMap.Focus()
	if Travel != -1:
		WMap.SetEvent (IE_GUI_WORLDMAP_ON_PRESS, GUIMACommon.MoveToNewArea)

	# Done
	Button = Window.GetControl (0)
	Button.SetText (1403)
	Button.SetEvent (IE_GUI_BUTTON_ON_PRESS, lambda: Window.Close())

ToggleMapWindow = GUICommonWindows.CreateTopWinLoader(3, "GUIMA", GUICommonWindows.ToggleWindow, InitMapWindow, None, WINDOW_TOP|WINDOW_HCENTER)
OpenMapWindow = GUICommonWindows.CreateTopWinLoader(3, "GUIMA", GUICommonWindows.OpenWindowOnce, InitMapWindow, None, WINDOW_TOP|WINDOW_HCENTER)

def NoteChanged (Edit):
	Edit.SetFlags(IE_GUI_VIEW_IGNORE_EVENTS, OP_OR)
	Text = Edit.QueryText ()
	Edit.SetText ("")
	PosX = GemRB.GetVar("MapControlX")
	PosY = GemRB.GetVar("MapControlY")
	GemRB.SetMapnote (PosX, PosY, 1, Text)

	Map = GemRB.GetView("MAP")
	Map.SetVarAssoc ("ShowMapNotes", IE_GUI_MAP_VIEW_NOTES)
	Map.SetStatus (IE_GUI_MAP_VIEW_NOTES)

	return
Example #3
0
        Count = 1
    ScrollBar.SetVarAssoc("TopIndex", Count)
    RefreshInventoryWindow(Window)

    # PST uses unhardcoded/avslots.2da to decide which slots do what per character
    row = GemRB.GetPlayerStat(pc, IE_SPECIFIC)
    SlotMap = list(map(int, AvSlotsTable.GetValue(row, 1, GTV_STR).split(',')))
    InventoryCommon.SlotMap = SlotMap

    # populate inventory slot controls
    for i in range(46):
        InventoryCommon.UpdateSlot(pc, i)


ToggleInventoryWindow = GUICommonWindows.CreateTopWinLoader(
    3, "GUIINV", GUICommonWindows.ToggleWindow, InitInventoryWindow,
    UpdateInventoryWindow, WINDOW_TOP | WINDOW_HCENTER)
OpenInventoryWindow = GUICommonWindows.CreateTopWinLoader(
    3, "GUIINV", GUICommonWindows.OpenWindowOnce, InitInventoryWindow,
    UpdateInventoryWindow, WINDOW_TOP | WINDOW_HCENTER)

InventoryCommon.UpdateInventoryWindow = UpdateInventoryWindow


def RefreshInventoryWindow(Window):
    """Partial redraw without resetting TopIndex."""

    pc = GemRB.GameGetSelectedPCSingle()

    # name
    Label = Window.GetControl(0x10000039)
Example #4
0
        PriestKnownSpellList.append(ks['SpellResRef'])
        Icon.SetVarAssoc("SpellButton", 100 + i)

    if known_cnt == 0: i = -1
    for i in range(i + 1, btncount):
        Icon = Window.GetControl(14 + i)
        Icon.SetFlags(IE_GUI_BUTTON_NO_IMAGE, OP_OR)
        Icon.SetEvent(IE_GUI_BUTTON_ON_PRESS, None)
        Icon.SetEvent(IE_GUI_BUTTON_ON_RIGHT_PRESS, None)
        Icon.SetTooltip('')

    return


TogglePriestWindow = GUICommonWindows.CreateTopWinLoader(
    3, "GUIPR", GUICommonWindows.ToggleWindow, InitPriestWindow,
    UpdatePriestWindow, WINDOW_TOP | WINDOW_HCENTER)
OpenPriestWindow = GUICommonWindows.CreateTopWinLoader(
    3, "GUIPR", GUICommonWindows.OpenWindowOnce, InitPriestWindow,
    UpdatePriestWindow, WINDOW_TOP | WINDOW_HCENTER)


def PriestPrevLevelPress():
    global PriestSpellLevel

    if PriestSpellLevel > 0:
        PriestSpellLevel = PriestSpellLevel - 1
        UpdatePriestWindow(PriestSpellWindow)


def PriestNextLevelPress():
Example #5
0
    GemRB.SetVar("Equipped", Equipped)
    for i in range(4):
        Button = Window.GetControl(109 + i)
        Button.SetVarAssoc("Equipped", i)
    RefreshInventoryWindow()
    # populate inventory slot controls
    SlotCount = GemRB.GetSlotType(-1)["Count"]
    for i in range(SlotCount):
        InventoryCommon.UpdateSlot(pc, i)
    return


InventoryCommon.UpdateInventoryWindow = UpdateInventoryWindow

ToggleInventoryWindow = GUICommonWindows.CreateTopWinLoader(
    2, "GUIINV", GUICommonWindows.ToggleWindow, InitInventoryWindow,
    UpdateInventoryWindow)
OpenInventoryWindow = GUICommonWindows.CreateTopWinLoader(
    2, "GUIINV", GUICommonWindows.OpenWindowOnce, InitInventoryWindow,
    UpdateInventoryWindow)


def RefreshInventoryWindow():
    Window = InventoryWindow

    pc = GemRB.GameGetSelectedPCSingle()

    # name
    Label = Window.GetControl(0x10000032)
    Label.SetText(GemRB.GetPlayerName(pc, 0))
Example #6
0
    ConfigOptButton(Window.GetControl(6), 29722, OpenGameplayOptionsWindow)

    # Keyboard Mappings
    ConfigOptButton(Window.GetControl(7), 29723, OpenKeyboardMappingsWindow)

    # Movies
    ConfigOptButton(Window.GetControl(9), 38156, OpenMoviesWindow)

    # game version, e.g. v1.1.0000
    Label = Window.GetControl(0x10000007)
    Label.SetText(GemRB.Version)

    return


ToggleOptionsWindow = GUICommonWindows.CreateTopWinLoader(
    0, "GUIOPT", GUICommonWindows.ToggleWindow, InitOptionsWindow)
OpenOptionsWindow = GUICommonWindows.CreateTopWinLoader(
    0, "GUIOPT", GUICommonWindows.OpenWindowOnce, InitOptionsWindow)


def TrySavingConfiguration():
    if not GemRB.SaveConfig():
        print("ARGH, could not write config to disk!!")


###################################################


def OpenVideoOptionsWindow():
    """Open video options window"""
    global VideoHelpText
Example #7
0
        Icon.SetEvent(IE_GUI_BUTTON_ON_RIGHT_PRESS, OpenMageSpellInfoWindow)
        spell = GemRB.GetSpell(ks['SpellResRef'])
        Icon.SetTooltip(spell['SpellName'])
        MageKnownSpellList.append(ks['SpellResRef'])

    if known_cnt == 0: i = -1
    for i in range(i + 1, btncount):
        Icon = Window.GetControl(14 + i)
        Icon.SetFlags(IE_GUI_BUTTON_NO_IMAGE, OP_OR)
        Icon.SetEvent(IE_GUI_BUTTON_ON_PRESS, None)
        Icon.SetEvent(IE_GUI_BUTTON_ON_RIGHT_PRESS, None)
        Icon.SetTooltip('')


ToggleSpellWindow = GUICommonWindows.CreateTopWinLoader(
    3, "GUIMG", GUICommonWindows.ToggleWindow, InitMageWindow,
    UpdateMageWindow, WINDOW_TOP | WINDOW_HCENTER)
OpenSpellWindow = GUICommonWindows.CreateTopWinLoader(
    3, "GUIMG", GUICommonWindows.OpenWindowOnce, InitMageWindow,
    UpdateMageWindow, WINDOW_TOP | WINDOW_HCENTER)


def MagePrevLevelPress():
    global MageSpellLevel

    if MageSpellLevel > 0:
        MageSpellLevel = MageSpellLevel - 1
        UpdateMageWindow()


def MageNextLevelPress():
Example #8
0
        # each journal entry consists of the title and description
        # but the game displays the entry date between the two
        je2 = GemRB.GetString(je['Text']).split("\n", 1)
        JournalTitle = "\n[color=" + Color + "]" + je2[0] + "[/color]\n"
        if len(je2) == 1:
            # broken entry, bg1 style (no title)
            JournalText = ""
        else:
            JournalText = "\n" + je2[1] + "\n"

        Text.Append(JournalTitle + GemRB.GetString(15980) + JournalText)
    return


ToggleJournalWindow = GUICommonWindows.CreateTopWinLoader(
    2, "GUIJRNL", GUICommonWindows.ToggleWindow, InitJournalWindow,
    UpdateLogWindow)
OpenJournalWindow = GUICommonWindows.CreateTopWinLoader(
    2, "GUIJRNL", GUICommonWindows.OpenWindowOnce, InitJournalWindow,
    UpdateLogWindow)


###################################################
def PrevChapterPress():
    global Chapter
    if GameCheck.IsTOB():
        firstChapter = 0
    else:
        firstChapter = 1

    if Chapter > firstChapter:
Example #9
0
        Button.SetActionInterval(200)

    # Done
    Button = Window.GetControl(0)
    if GemRB.GetVar("Travel") == -1:
        Button.SetState(IE_GUI_BUTTON_ENABLED)
        Button.OnPress(OpenMapWindow)
    else:
        Button.SetState(IE_GUI_BUTTON_DISABLED)

    Button.SetHotKey('m')

    return


ToggleMapWindow = GUICommonWindows.CreateTopWinLoader(
    2, "GUIMAP", GUICommonWindows.ToggleWindow, InitMapWindow)
OpenMapWindow = GUICommonWindows.CreateTopWinLoader(
    2, "GUIMAP", GUICommonWindows.OpenWindowOnce, InitMapWindow)

WMWID = 2 if GameCheck.IsIWD2() else 0
OpenTravelWindow = GUICommonWindows.CreateTopWinLoader(
    WMWID, "GUIWMAP", GUICommonWindows.OpenWindowOnce, InitWorldMapWindow)


def HasMapNotes():
    return GameCheck.IsBG2() or GameCheck.IsIWD2() or GameCheck.IsPST()


def AddNoteWindow():
    global NoteLabel, MapWindow
Example #10
0
def MageSelectionChanged (oldwin):
	global Sorcerer
	# added game check, since although sorcerers have almost no use for their spellbook, there's no other way to quickly check spell descriptions
	
	UpdateMageWindow(oldwin)
	
	pc = GemRB.GameGetSelectedPCSingle ()
	Sorcerer = GameCheck.IsBG2() and Spellbook.HasSorcererBook (pc)

	if Sorcerer:
		OpenSorcererWindow (ToggleSpellWindow.Args)
	else:
		OpenMageWindow (ToggleSpellWindow.Args)

ToggleMageWindow = GUICommonWindows.CreateTopWinLoader(2, "GUIMG", GUICommonWindows.ToggleWindow, InitMageWindow, MageSelectionChanged)
OpenMageWindow = GUICommonWindows.CreateTopWinLoader(2, "GUIMG", GUICommonWindows.OpenWindowOnce, InitMageWindow, MageSelectionChanged)

ToggleSorcererWindow = GUICommonWindows.CreateTopWinLoader(8, "GUIMG", GUICommonWindows.ToggleWindow, InitMageWindow, MageSelectionChanged)
OpenSorcererWindow = GUICommonWindows.CreateTopWinLoader(8, "GUIMG", GUICommonWindows.OpenWindowOnce, InitMageWindow, MageSelectionChanged)

def MagePrevLevelPress ():
	global MageSpellLevel

	if MageSpellLevel > 0:
		MageSpellLevel = MageSpellLevel - 1
		UpdateMageWindow (MageWindow)
	return

def MageNextLevelPress ():
	global MageSpellLevel
Example #11
0
        Button = Window.GetControl(27 + i)
        Button.SetAnimation(None)

        Button.SetFlags(IE_GUI_BUTTON_NO_IMAGE, OP_OR)
        Button.SetFlags(IE_GUI_BUTTON_PICTURE, OP_NAND)
        Button.SetEvent(IE_GUI_BUTTON_ON_PRESS, None)
        Button.SetEvent(IE_GUI_BUTTON_ON_RIGHT_PRESS, None)
        Button.SetTooltip('')
        Button.EnableBorder(0, 0)

    Window.Focus()
    return


TogglePriestWindow = GUICommonWindows.CreateTopWinLoader(
    2, "GUIPR", GUICommonWindows.ToggleWindow, InitPriestWindow,
    UpdatePriestWindow)
OpenPriestWindow = GUICommonWindows.CreateTopWinLoader(
    2, "GUIPR", GUICommonWindows.OpenWindowOnce, InitPriestWindow,
    UpdatePriestWindow)


def PriestPrevLevelPress():
    global PriestSpellLevel

    if PriestSpellLevel > 0:
        PriestSpellLevel = PriestSpellLevel - 1
        UpdatePriestWindow(PriestSpellWindow)
    return

Example #12
0
    Button = Window.GetControl(6)
    Button.SetState(IE_GUI_BUTTON_LOCKED)
    Button.SetSprites('STFCTION', 0, frame, 0, 0, 0)
    Button.SetEvent(IE_GUI_MOUSE_ENTER_BUTTON, OnRecordsHelpFaction)
    Button.SetEvent(IE_GUI_MOUSE_LEAVE_BUTTON, OnRecordsButtonLeave)

    # help, info textarea
    stats_overview = GetStatOverview(pc)
    Text = Window.GetControl(0)
    Text.SetText(stats_overview)
    return


ToggleRecordsWindow = GUICommonWindows.CreateTopWinLoader(
    3, "GUIREC", GUICommonWindows.ToggleWindow, InitRecordsWindow,
    UpdateRecordsWindow, WINDOW_TOP | WINDOW_HCENTER, True)
OpenRecordsWindow = GUICommonWindows.CreateTopWinLoader(
    3, "GUIREC", GUICommonWindows.OpenWindowOnce, InitRecordsWindow,
    UpdateRecordsWindow, WINDOW_TOP | WINDOW_HCENTER, True)


# puts default info to textarea (overview of PC's bonuses, saves, etc.
def OnRecordsButtonLeave():
    OnRecordsHelpStat(-1, 0, stats_overview)
    return


def OnRecordsHelpFaction():
    Help = GemRB.GetString(20106) + "\n\n" + faction_help
    OnRecordsHelpStat(-1, 0, Help)
Example #13
0
        if BookCount:
            SelectedBook = ActiveSpellBooks[0]
        else:
            SelectedBook = 0
        GemRB.SetVar("SelectedBook", SelectedBook)


def SelectedNewPlayer(Window):
    FetchActiveSpellbooks()
    SelectFirstActiveBook()
    UpdateSpellBook()
    return


ToggleSpellBookWindow = GUICommonWindows.CreateTopWinLoader(
    2, "GUISPL", GUICommonWindows.ToggleWindow, InitSpellBookWindow,
    SelectedNewPlayer)
OpenSpellBookWindow = GUICommonWindows.CreateTopWinLoader(
    2, "GUISPL", GUICommonWindows.OpenWindowOnce, InitSpellBookWindow,
    SelectedNewPlayer)


def ResetScrollBar():
    ScrollBar = SpellBookWindow.GetControl(54)
    GemRB.SetVar("SpellTopIndex", 0)
    SpellBookWindow.SetEventProxy(ScrollBar)


def ScrollBarPress():
    UpdateSpellBookWindow()