From: Jarda B. <edh...@us...> - 2005-05-29 22:52:57
|
Update of /cvsroot/gemrb/gemrb/gemrb/GUIScripts/pst In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31722/GUIScripts/pst Modified Files: FloatMenuWindow.py GUICommonWindows.py GUIINV.py GUIJRNL.py GUIOPT.py GUIWORLD.py Log Message: Container window updated a bit ?Enhanceents? to control in option windows Index: GUICommonWindows.py =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/GUIScripts/pst/GUICommonWindows.py,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** GUICommonWindows.py 14 May 2005 16:47:54 -0000 1.31 --- GUICommonWindows.py 29 May 2005 22:52:47 -0000 1.32 *************** *** 35,38 **** --- 35,40 ---- global PortraitWindow PortraitWindow = None + ActionsWindow = None + # Buttons: # 0 CNTREACH *************** *** 389,392 **** --- 391,407 ---- GemRB.EnableButtonBorder (PortraitWindow, Button, FRAME_PC_TARGET, 0) + + def DisableAnimatedWindows (): + global ActionsWindow + #PortraitWindow = GemRB.GetVar ("PortraitWindow") + GemRB.SetVar ("PortraitWindow", -1) + ActionsWindow = GemRB.GetVar ("ActionsWindow") + GemRB.SetVar ("ActionsWindow", -1) + + def EnableAnimatedWindows (): + GemRB.SetVar ("PortraitWindow", PortraitWindow) + GemRB.SetVar ("ActionsWindow", ActionsWindow) + + def GetSavingThrow (SaveName, row, level): SaveTable = GemRB.LoadTable (SaveName) *************** *** 430,431 **** --- 445,520 ---- return + + def SetEncumbranceButton (Window, ButtonID, pc): + """Set current/maximum encumbrance button for a given pc, + using numeric font""" + + # Loading tables of modifications + Table = GemRB.LoadTable ("strmod") + TableEx = GemRB.LoadTable ("strmodex") + + # Getting the character's strength + sstr = GemRB.GetPlayerStat (pc, IE_STR) + ext_str = GemRB.GetPlayerStat (pc, IE_STREXTRA) + + # Compute encumbrance + maximum = GemRB.GetTableValue (Table, sstr, 3) + GemRB.GetTableValue (TableEx, ext_str, 3) + current = GemRB.GetPlayerStat (pc, IE_ENCUMBRANCE) + + Button = GemRB.GetControl (Window, ButtonID) + # FIXME: there should be a space before LB symbol (':') + GemRB.SetText (Window, Button, str (current) + ":\n\n\n\n" + str (maximum) + ":") + + # Set button color for overload + ratio = (0.0 + current) / maximum + if ratio > 1.0: + GemRB.SetButtonTextColor (Window, Button, 255, 0, 0, True) + elif ratio > 0.8: + GemRB.SetButtonTextColor (Window, Button, 255, 255, 0, True) + else: + GemRB.SetButtonTextColor (Window, Button, 255, 255, 255, True) + + # FIXME: Current encumbrance is hardcoded + # Unloading tables is not necessary, i think (they will stay cached) + #GemRB.UnloadTable (Table) + #GemRB.UnloadTable (TableEx) + + + def SetItemButton (Window, Button, Slot, PressHandler, RightPressHandler): + if Slot != None: + Item = GemRB.GetItem (Slot['ItemResRef']) + identified = Slot['Flags'] & IE_INV_ITEM_IDENTIFIED + #GemRB.SetVarAssoc (Window, Button, "LeftIndex", LeftTopIndex+i) + #GemRB.SetButtonSprites (Window, Button, 'IVSLOT', 0, 0, 0, 0, 0) + GemRB.SetItemIcon (Window, Button, Slot['ItemResRef'],0) + + if Item['StackAmount'] > 1: + GemRB.SetText (Window, Button, str (Slot['Usages0'])) + else: + GemRB.SetText (Window, Button, '') + + + if not identified or Item['ItemNameIdentified'] == -1: + GemRB.SetTooltip (Window, Button, Item['ItemName']) + else: + GemRB.SetTooltip (Window, Button, Item['ItemNameIdentified']) + + #GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_PICTURE, OP_OR) + #GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_NO_IMAGE, OP_NAND) + + GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, PressHandler) + GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_RIGHT_PRESS, RightPressHandler) + #GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_SHIFT_PRESS, ShiftPressHandler) + #GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_DRAG_DROP, DragDropHandler) + + else: + #GemRB.SetVarAssoc (Window, Button, "LeftIndex", -1) + GemRB.SetItemIcon (Window, Button, '') + GemRB.SetTooltip (Window, Button, 4273) # Ground Item + GemRB.SetText (Window, Button, '') + GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_PICTURE, OP_NAND) + + GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "") + GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_RIGHT_PRESS, "") + #GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_SHIFT_PRESS, "") + #GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_DRAG_DROP, "") Index: GUIINV.py =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/GUIScripts/pst/GUIINV.py,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** GUIINV.py 16 May 2005 12:01:16 -0000 1.23 --- GUIINV.py 29 May 2005 22:52:47 -0000 1.24 *************** *** 30,34 **** import GemRB from GUICommon import CloseOtherWindow ! from GUICommonWindows import GetActorPortrait, SetSelectionChangeHandler --- 30,34 ---- import GemRB from GUICommon import CloseOtherWindow ! from GUICommonWindows import GetActorPortrait, SetSelectionChangeHandler, SetEncumbranceButton *************** *** 150,183 **** GemRB.SetButtonPicture (Window, Button, GetActorPortrait (pc, 'INVENTORY')) ! # encumbrance ! Button = GemRB.GetControl (Window, 46) ! ! # Current encumbrance ! encumbrance = GemRB.GetPlayerStat (pc, ie_stats.IE_ENCUMBRANCE) ! ! # Loading tables of modifications ! Table = GemRB.LoadTable("strmod") ! TableEx = GemRB.LoadTable("strmodex") ! # Getting the character's strength ! sstr = GemRB.GetPlayerStat (pc, ie_stats.IE_STR) ! ext_str = GemRB.GetPlayerStat (pc, ie_stats.IE_STREXTRA) ! ! max_encumb = GemRB.GetTableValue(Table, sstr, 3) + GemRB.GetTableValue(TableEx, ext_str, 3) ! # FIXME: there should be a space before LB symbol ! GemRB.SetText (Window, Button, str (encumbrance) + ":\n\n\n\n" + str (max_encumb) + ":") ! ! ratio = (0.0 + encumbrance) / max_encumb ! if ratio > 1.0: ! GemRB.SetButtonTextColor (Window, Button, 255, 0, 0, True) ! elif ratio > 0.8: ! GemRB.SetButtonTextColor (Window, Button, 255, 255, 0, True) ! else: ! GemRB.SetButtonTextColor (Window, Button, 255, 255, 255, True) ! ! ! # FIXME: Current encumbrance is hardcoded ! # Unloading tables is not necessary, i think (they will stay cached) ! #GemRB.UnloadTable (Table) ! #GemRB.UnloadTable (TableEx) # armor class --- 150,154 ---- GemRB.SetButtonPicture (Window, Button, GetActorPortrait (pc, 'INVENTORY')) ! SetEncumbranceButton (Window, 46, pc) # armor class Index: GUIWORLD.py =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/GUIScripts/pst/GUIWORLD.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** GUIWORLD.py 4 Dec 2004 17:40:00 -0000 1.3 --- GUIWORLD.py 29 May 2005 22:52:47 -0000 1.4 *************** *** 28,31 **** --- 28,32 ---- from GUIDefines import * from GUICommon import CloseOtherWindow + from GUICommonWindows import EnableAnimatedWindows, DisableAnimatedWindows, SetEncumbranceButton, SetItemButton ContainerWindow = None *************** *** 33,38 **** ReformPartyWindow = None def OpenContainerWindow (): ! global ContainerWindow if CloseOtherWindow(OpenContainerWindow): --- 34,42 ---- ReformPartyWindow = None + Container = None + + def OpenContainerWindow (): ! global ContainerWindow, PortraitWindow, ActionsWindow if CloseOtherWindow(OpenContainerWindow): *************** *** 40,45 **** GemRB.UnloadWindow (ContainerWindow) ContainerWindow = None - GemRB.SetVar ("OtherWindow", -1) GemRB.UnhideGUI () return --- 44,49 ---- GemRB.UnloadWindow (ContainerWindow) ContainerWindow = None GemRB.SetVar ("OtherWindow", -1) + EnableAnimatedWindows () GemRB.UnhideGUI () return *************** *** 49,62 **** ContainerWindow = Window = GemRB.LoadWindow (8) GemRB.SetVar ("OtherWindow", Window) # 0 - 5 - Ground Item # 10 - 13 - Personal Item # 50 hand ! # 52, 53 scroller groound, scroller personal # 54 - encumbrance - encumbrance = '10\n255' Button = GemRB.GetControl (Window, 54) ! GemRB.SetText (Window, Button, encumbrance) GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_NO_IMAGE, OP_SET) --- 53,81 ---- ContainerWindow = Window = GemRB.LoadWindow (8) GemRB.SetVar ("OtherWindow", Window) + DisableAnimatedWindows () # 0 - 5 - Ground Item # 10 - 13 - Personal Item # 50 hand ! # 52, 53 scroller ground, scroller personal # 54 - encumbrance + # 0x10000036 - label gold + + for i in range (6): + Button = GemRB.GetControl (Window, i) + GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_ALIGN_RIGHT | IE_GUI_BUTTON_ALIGN_BOTTOM, OP_OR) + #GemRB.SetButtonFont (Window, Button, 'NUMBER') + + for i in range (4): + Button = GemRB.GetControl (Window, 10 + i) + GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_ALIGN_RIGHT | IE_GUI_BUTTON_ALIGN_BOTTOM, OP_OR) + #GemRB.SetButtonFont (Window, Button, 'NUMBER') + + + Button = GemRB.GetControl (Window, 50) + GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_NO_IMAGE, OP_SET) Button = GemRB.GetControl (Window, 54) ! GemRB.SetButtonFont (Window, Button, "NUMBER") GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_NO_IMAGE, OP_SET) *************** *** 70,75 **** --- 89,225 ---- GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "OpenContainerWindow") + UpdateContainerWindow () + + GemRB.UnhideGUI () + + + def UpdateContainerWindow (): + global Container + + Window = ContainerWindow + + pc = GemRB.GameGetFirstSelectedPC () + SetEncumbranceButton (Window, 54, pc) + + party_gold = GemRB.GameGetPartyGold () + Text = GemRB.GetControl (Window, 0x10000036) + GemRB.SetText (Window, Text, str (party_gold)) + + Container = GemRB.GetContainer (0) #will use first selected pc anyway + LeftCount = Container['ItemCount'] + ScrollBar = GemRB.GetControl (Window, 52) + Count = LeftCount / 3 + if Count < 1: + Count = 1 + GemRB.SetVarAssoc (Window, ScrollBar, "LeftTopIndex", Count) + + inventory_slots = GemRB.GetSlots (pc, 0x8000) + RightCount = len (inventory_slots) + ScrollBar = GemRB.GetControl (Window, 53) + Count = RightCount / 2 + if Count < 1: + Count = 1 + GemRB.SetVarAssoc (Window, ScrollBar, "RightTopIndex", Count) + + RedrawContainerWindow () + + + def RedrawContainerWindow (): + Window = ContainerWindow + + LeftTopIndex = GemRB.GetVar ("LeftTopIndex") * 3 + LeftIndex = GemRB.GetVar ("LeftIndex") + RightTopIndex = GemRB.GetVar ("RightTopIndex") * 2 + RightIndex = GemRB.GetVar ("RightIndex") + LeftCount = Container['ItemCount'] + pc = GemRB.GameGetFirstSelectedPC () + inventory_slots = GemRB.GetSlots (pc, 0x8000) + RightCount = len (inventory_slots) + + for i in range (6): + #this is an autoselected container, but we could use PC too + Slot = GemRB.GetContainerItem (0, i + LeftTopIndex) + Button = GemRB.GetControl (Window, i) + + SetItemButton (Window, Button, Slot, '', '') + + if Slot != None: + GemRB.SetVarAssoc (Window, Button, "LeftIndex", LeftTopIndex+i) + else: + GemRB.SetVarAssoc (Window, Button, "LeftIndex", -1) + + + for i in range(4): + if i + RightTopIndex < RightCount: + Slot = GemRB.GetSlotItem (pc, inventory_slots[i+RightTopIndex]) + else: + Slot = None + Button = GemRB.GetControl (Window, i + 10) + + SetItemButton (Window, Button, Slot, '', '') + + if Slot != None: + GemRB.SetVarAssoc (Window, Button, "RightIndex", RightTopIndex+i) + else: + GemRB.SetVarAssoc (Window, Button, "RightIndex", -1) + + + + def CloseContainerWindow (): + global OldActionsWindow, OldMessageWindow, ContainerWindow + + if ContainerWindow == None: + return + + GemRB.HideGUI () + + GemRB.UnloadWindow (ContainerWindow) + ContainerWindow = None + GemRB.SetVar ("ActionsWindow", OldActionsWindow) + GemRB.SetVar ("MessageWindow", OldMessageWindow) + Table = GemRB.LoadTable ("containr") + row = Container['Type'] + tmp = GemRB.GetTableValue (Table, row, 2) + #play closing sound if applicable + if tmp!='*': + GemRB.PlaySound (tmp) + + #it is enough to close here + GemRB.UnloadTable (Table) + GemRB.UnhideGUI () + + #doing this way it will inform the core system too, which in turn will call + #CloseContainerWindow () + def LeaveContainer (): + GemRB.LeaveContainer() + + def DropItemContainer (): + RightIndex = GemRB.GetVar ("RightIndex") + if RightIndex < 0: + return + + #we need to get the right slot number + pc = GemRB.GameGetFirstSelectedPC () + inventory_slots = GemRB.GetSlots (pc, 0x8000) + if RightIndex >= len (inventory_slots): + return + + GemRB.ChangeContainerItem (0, inventory_slots[RightIndex], 0) + UpdateContainerWindow () + + + def TakeItemContainer (): + LeftIndex = GemRB.GetVar ("LeftIndex") + if LeftIndex < 0: + return + + if LeftIndex >= Container['ItemCount']: + return + + GemRB.ChangeContainerItem (0, LeftIndex, 1) + UpdateContainerWindow () + def OpenReformPartyWindow (): *************** *** 82,85 **** --- 232,236 ---- GemRB.SetVar ("OtherWindow", -1) + EnableAnimatedWindows () GemRB.LoadWindowPack ("GUIREC") GemRB.UnhideGUI () *************** *** 90,93 **** --- 241,245 ---- ReformPartyWindow = Window = GemRB.LoadWindow (24) GemRB.SetVar ("OtherWindow", Window) + DisableAnimatedWindows () # Remove *************** *** 115,118 **** --- 267,271 ---- GemRB.GameSetFormation (last_formation) + EnableAnimatedWindows () GemRB.SetVar ("OtherWindow", -1) GemRB.UnhideGUI () *************** *** 123,126 **** --- 276,280 ---- FormationWindow = Window = GemRB.LoadWindow (27) GemRB.SetVar ("OtherWindow", Window) + DisableAnimatedWindows () # Done Index: FloatMenuWindow.py =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/GUIScripts/pst/FloatMenuWindow.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** FloatMenuWindow.py 14 May 2005 15:01:29 -0000 1.8 --- FloatMenuWindow.py 29 May 2005 22:52:47 -0000 1.9 *************** *** 34,37 **** --- 34,38 ---- MENU_MODE_ITEMS = 3 MENU_MODE_SPELLS = 4 + MENU_MODE_ABILITIES = 5 float_menu_mode = MENU_MODE_SINGLE *************** *** 99,109 **** # Use Special Ability Button = GemRB.GetControl (Window, 5) GemRB.SetTooltip (Window, Button, 8195) ! # Menu Anchors Button = GemRB.GetControl (Window, 11) GemRB.SetTooltip (Window, Button, 8199) GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_DRAGGABLE, OP_OR) GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_DRAG, "FloatMenuDrag") Button = GemRB.GetControl (Window, 12) GemRB.SetTooltip (Window, Button, 8199) --- 100,112 ---- # Use Special Ability Button = GemRB.GetControl (Window, 5) + GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "FloatMenuSelectAbilities") GemRB.SetTooltip (Window, Button, 8195) ! # Menu Anchors/Handles Button = GemRB.GetControl (Window, 11) GemRB.SetTooltip (Window, Button, 8199) GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_DRAGGABLE, OP_OR) GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_DRAG, "FloatMenuDrag") + Button = GemRB.GetControl (Window, 12) GemRB.SetTooltip (Window, Button, 8199) *************** *** 193,199 **** for i in range (5): UpdateFloatMenuItem (pc, i, 0) ! #elif float_menu_mode == MENU_MODE_SPELLS: ! # for i in range (5): ! # UpdateFloatMenuSpell (pc, i, 2) def UpdateFloatMenuSingleAction (i): --- 196,205 ---- for i in range (5): UpdateFloatMenuItem (pc, i, 0) ! elif float_menu_mode == MENU_MODE_SPELLS: ! for i in range (5): ! UpdateFloatMenuSpell (pc, i, True) ! elif float_menu_mode == MENU_MODE_ABILITIES: ! for i in range (5): ! UpdateFloatMenuSpell (pc, i, False) def UpdateFloatMenuSingleAction (i): *************** *** 267,270 **** --- 273,315 ---- + def UpdateFloatMenuSpell (pc, i, spells): + Window = FloatMenuWindow + if spells: + #slot_item = GemRB.GetSlotItem (pc, 9 + i) + # FIXME: + type = IE_SPELL_TYPE_PRIEST + else: + #slot_item = GemRB.GetSlotItem (pc, 20 + i) + type = IE_SPELL_TYPE_INNATE + + level = 1 # FIXME + mem_cnt = GemRB.GetMemorizedSpellsCount (pc, type, level) + ms = GemRB.GetMemorizedSpell (pc, type, level, i) + + Button = GemRB.GetControl (Window, 15 + i) + GemRB.SetButtonSprites (Window, Button, 'AMGENS', 0, 0, 1, 2, 3) + + + if ms: + GemRB.SetSpellIcon (Window, Button, ms['SpellResRef']) + #if ms['Flags']: + # GemRB.SetEvent (Window, Icon, IE_GUI_BUTTON_ON_PRESS, "OpenPriestSpellUnmemorizeWindow") + #else: + # GemRB.SetEvent (Window, Icon, IE_GUI_BUTTON_ON_PRESS, "OnPriestUnmemorizeSpell") + #GemRB.SetEvent (Window, Icon, IE_GUI_BUTTON_ON_RIGHT_PRESS, "OpenPriestSpellInfoWindow") + spell = GemRB.GetSpell (ms['SpellResRef']) + GemRB.SetTooltip (Window, Button, spell['SpellName']) + #PriestMemorizedSpellList.append (ms['SpellResRef']) + #GemRB.SetVarAssoc (Window, Icon, "SpellButton", i) + #GemRB.EnableButtonBorder (Window, Icon, 0, ms['Flags'] == 0) + GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_NO_IMAGE, OP_NAND) + else: + GemRB.SetSpellIcon (Window, Button, '') + GemRB.SetText (Window, Button, '') + GemRB.SetTooltip (Window, Button, '') + + + + def FloatMenuSelectNextPC (): global float_menu_mode *************** *** 283,286 **** --- 328,332 ---- global float_menu_mode float_menu_mode = MENU_MODE_WEAPONS + # FIXME: Force attack mode UpdateFloatMenuWindow () *************** *** 295,298 **** --- 341,351 ---- UpdateFloatMenuWindow () + def FloatMenuSelectAbilities (): + global float_menu_mode + float_menu_mode = MENU_MODE_ABILITIES + UpdateFloatMenuWindow () + + + def FloatMenuDrag (): dx, dy = GemRB.GetVar ("DragX"), GemRB.GetVar ("DragY") Index: GUIJRNL.py =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/GUIScripts/pst/GUIJRNL.py,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** GUIJRNL.py 13 May 2005 16:34:20 -0000 1.14 --- GUIJRNL.py 29 May 2005 22:52:47 -0000 1.15 *************** *** 32,35 **** --- 32,36 ---- from GUIDefines import * from GUICommon import CloseOtherWindow + from GUICommonWindows import EnableAnimatedWindows, DisableAnimatedWindows ################################################### *************** *** 38,43 **** BeastsWindow = None QuestsWindow = None - PortraitWindow = None - ActionsWindow = None # list of all assigned (0) or completed (1) quests --- 39,42 ---- *************** *** 79,84 **** GemRB.UnloadWindow(JournalWindow) #making the portraitwindow visible again ! GemRB.SetVar ("PortraitWindow", PortraitWindow) ! GemRB.SetVar ("ActionsWindow", ActionsWindow) GemRB.SetVar ("OtherWindow", -1) PortraitWindow = None --- 78,82 ---- GemRB.UnloadWindow(JournalWindow) #making the portraitwindow visible again ! EnableAnimatedWindows () GemRB.SetVar ("OtherWindow", -1) PortraitWindow = None *************** *** 93,100 **** JournalWindow = GemRB.LoadWindow (0) GemRB.SetVar ("OtherWindow", JournalWindow) ! PortraitWindow = GemRB.GetVar ("PortraitWindow") ! GemRB.SetVar ("PortraitWindow", -1) ! ActionsWindow = GemRB.GetVar ("ActionsWindow") ! GemRB.SetVar ("ActionsWindow", -1) # Quests --- 91,95 ---- JournalWindow = GemRB.LoadWindow (0) GemRB.SetVar ("OtherWindow", JournalWindow) ! DisableAnimatedWindows () # Quests *************** *** 440,443 **** --- 435,439 ---- # orig. game. So it's probably computed since "awakening" # there instead of start of the day. + # FIXME: use strref 19310 or 64192 gt = StartTime + je["GameTime"] Index: GUIOPT.py =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/GUIScripts/pst/GUIOPT.py,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** GUIOPT.py 13 May 2005 17:07:49 -0000 1.16 --- GUIOPT.py 29 May 2005 22:52:47 -0000 1.17 *************** *** 38,41 **** --- 38,42 ---- from GUIDefines import * from GUICommon import CloseOtherWindow + from GUICommonWindows import EnableAnimatedWindows, DisableAnimatedWindows import MessageWindow *************** *** 52,57 **** MoviesWindow = None KeysWindow = None - PortraitWindow = None - ActionsWindow = None ################################################### --- 53,56 ---- *************** *** 74,77 **** --- 73,77 ---- GemRB.UnloadWindow (OptionsWindow) GemRB.SetVar ("OtherWindow", -1) + EnableAnimatedWindows () GemRB.SetVar ("PortraitWindow", PortraitWindow) GemRB.SetVar ("ActionsWindow", ActionsWindow) *************** *** 87,94 **** OptionsWindow = Window = GemRB.LoadWindow (0) GemRB.SetVar ("OtherWindow", OptionsWindow) ! PortraitWindow = GemRB.GetVar ("PortraitWindow") ! GemRB.SetVar ("PortraitWindow", -1) ! ActionsWindow = GemRB.GetVar ("ActionsWindow") ! GemRB.SetVar ("ActionsWindow", -1) # Return to Game --- 87,91 ---- OptionsWindow = Window = GemRB.LoadWindow (0) GemRB.SetVar ("OtherWindow", OptionsWindow) ! DisableAnimatedWindows () # Return to Game *************** *** 172,181 **** OptCancel ('VideoOptions', Window, 8) ! OptSlider ('Brightness', Window, 1, 10, 31234, "Brightness Correction") ! OptSlider ('Contrast', Window, 2, 11, 31429, "Gamma Correction") ! OptCheckbox ('SoftwareBlitting', Window, 6, 15, 30898) ! OptCheckbox ('SoftwareMirroring', Window, 4, 13, 30896) ! OptCheckbox ('SoftwareTransparency', Window, 5, 14, 30897) GemRB.UnhideGUI () --- 169,178 ---- OptCancel ('VideoOptions', Window, 8) ! OptSlider ('VideoOptions', 'Brightness', Window, 1, 10, 31234, "Brightness Correction") ! OptSlider ('VideoOptions', 'Contrast', Window, 2, 11, 31429, "Gamma Correction") ! OptCheckbox ('VideoOptions', 'SoftwareBlitting', Window, 6, 15, 30898, "SoftBlt") ! OptCheckbox ('VideoOptions', 'SoftwareMirroring', Window, 4, 13, 30896, "SoftMirrorBlt") ! OptCheckbox ('VideoOptions', 'SoftwareTransparency', Window, 5, 14, 30897, "SoftSrcKeyBlt") GemRB.UnhideGUI () *************** *** 184,187 **** --- 181,187 ---- + def DisplayHelpVideoOptions (): + GemRB.SetText (VideoOptionsWindow, VideoHelpText, 31052) + def DisplayHelpBrightness (): GemRB.SetText (VideoOptionsWindow, VideoHelpText, 31431) *************** *** 231,235 **** # save values, so we can restore them on cancel ! for v in "Volume Ambients", "Volume SFX", "Volume Voices", "Volume Music", "Volume Movie": saved_audio_options[v] = GemRB.GetVar (v) --- 231,235 ---- # save values, so we can restore them on cancel ! for v in "Volume Ambients", "Volume SFX", "Volume Voices", "Volume Music", "Volume Movie", "Sound Processing", "Music Processing": saved_audio_options[v] = GemRB.GetVar (v) *************** *** 241,253 **** ! OptSlider ('AmbientVolume', Window, 1, 10, 31460, "Volume Ambients", "UpdateVolume") ! OptSlider ('SoundFXVolume', Window, 2, 11, 31466, "Volume SFX") ! OptSlider ('VoiceVolume', Window, 3, 12, 31467, "Volume Voices") ! OptSlider ('MusicVolume', Window, 4, 13, 31468, "Volume Music", "UpdateVolume") ! OptSlider ('MovieVolume', Window, 5, 14, 31469, "Volume Movie") ! OptCheckbox ('CreativeEAX', Window, 6, 15, 30900) ! OptCheckbox ('SoundProcessing', Window, 16, 17, 63242) ! OptCheckbox ('MusicProcessing', Window, 18, 19, 63243) --- 241,253 ---- ! OptSlider ('AudioOptions', 'AmbientVolume', Window, 1, 10, 31460, "Volume Ambients", "UpdateVolume") ! OptSlider ('AudioOptions', 'SoundFXVolume', Window, 2, 11, 31466, "Volume SFX") ! OptSlider ('AudioOptions', 'VoiceVolume', Window, 3, 12, 31467, "Volume Voices") ! OptSlider ('AudioOptions', 'MusicVolume', Window, 4, 13, 31468, "Volume Music", "UpdateVolume") ! OptSlider ('AudioOptions', 'MovieVolume', Window, 5, 14, 31469, "Volume Movie") ! OptCheckbox ('AudioOptions', 'CreativeEAX', Window, 6, 15, 30900, "Environmental Audio") ! OptCheckbox ('AudioOptions', 'SoundProcessing', Window, 16, 17, 63242, "Sound Processing") ! OptCheckbox ('AudioOptions', 'MusicProcessing', Window, 18, 19, 63243, "Music Processing") *************** *** 262,265 **** --- 262,268 ---- + def DisplayHelpAudioOptions (): + GemRB.SetText (AudioOptionsWindow, AudioHelpText, 31210) + def DisplayHelpAmbientVolume (): GemRB.SetText (AudioOptionsWindow, AudioHelpText, 31227) *************** *** 317,331 **** OptCancel ('GameplayOptions', Window, 11) ! OptSlider ('TooltipDelay', Window, 1, 13, 31481, "Tooltip") ! OptSlider ('MouseScrollingSpeed', Window, 2, 14, 31482, "Mouse Scroll Speed") ! OptSlider ('KeyboardScrollingSpeed', Window, 3, 15, 31480, "Keyboard Scroll Speed") ! OptSlider ('Difficulty', Window, 4, 16, 31479, "Difficulty Level") ! OptCheckbox ('DitherAlways', Window, 5, 17, 31217) ! OptCheckbox ('Gore', Window, 6, 18, 31218) ! OptCheckbox ('AlwaysRun', Window, 22, 23, 62418) ! OptButton ('FeedbackOptions', Window, 8, 20, 31478) ! OptButton ('AutopauseOptions', Window, 9, 21, 31470) GemRB.UnhideGUI () --- 320,334 ---- OptCancel ('GameplayOptions', Window, 11) ! OptSlider ('GameplayOptions', 'TooltipDelay', Window, 1, 13, 31481, "Tooltip") ! OptSlider ('GameplayOptions', 'MouseScrollingSpeed', Window, 2, 14, 31482, "Mouse Scroll Speed") ! OptSlider ('GameplayOptions', 'KeyboardScrollingSpeed', Window, 3, 15, 31480, "Keyboard Scroll Speed") ! OptSlider ('GameplayOptions', 'Difficulty', Window, 4, 16, 31479, "Difficulty Level") ! OptCheckbox ('GameplayOptions', 'DitherAlways', Window, 5, 17, 31217, "Always Dither") ! OptCheckbox ('GameplayOptions', 'Gore', Window, 6, 18, 31218, "Gore???") ! OptCheckbox ('GameplayOptions', 'AlwaysRun', Window, 22, 23, 62418, "Always Run") ! OptButton ('GameplayOptions', 'FeedbackOptions', Window, 8, 20, 31478) ! OptButton ('GameplayOptions', 'AutopauseOptions', Window, 9, 21, 31470) GemRB.UnhideGUI () *************** *** 333,336 **** --- 336,342 ---- + def DisplayHelpGameplayOptions (): + GemRB.SetText (GameplayOptionsWindow, GameplayHelpText, 31212) + def DisplayHelpTooltipDelay (): GemRB.SetText (GameplayOptionsWindow, GameplayHelpText, 31232) *************** *** 391,404 **** OptCancel ('FeedbackOptions', Window, 8) ! OptSlider ('MarkerFeedback', Window, 1, 10, 37463, "GUI Feedback Level") ! OptSlider ('LocatorFeedback', Window, 2, 11, 37586, "Locator Feedback Level") ! OptSlider ('SelectionFeedbackLevel', Window, 20, 21, 54879, "Selection Sounds Frequency") ! OptSlider ('CommandFeedbackLevel', Window, 22, 23, 55012, "Command Sounds Frequency") ! OptCheckbox ('CharacterStates', Window, 6, 15, 37594) ! OptCheckbox ('MiscellaneousMessages', Window, 17, 19, 37596) ! OptCheckbox ('ToHitRolls', Window, 3, 12, 37588) ! OptCheckbox ('CombatInfo', Window, 4, 13, 37590) ! OptCheckbox ('SpellCasting', Window, 5, 14, 37592) --- 397,410 ---- OptCancel ('FeedbackOptions', Window, 8) ! OptSlider ('FeedbackOptions', 'MarkerFeedback', Window, 1, 10, 37463, "GUI Feedback Level") ! OptSlider ('FeedbackOptions', 'LocatorFeedback', Window, 2, 11, 37586, "Locator Feedback Level") ! OptSlider ('FeedbackOptions', 'SelectionFeedbackLevel', Window, 20, 21, 54879, "Selection Sounds Frequency") ! OptSlider ('FeedbackOptions', 'CommandFeedbackLevel', Window, 22, 23, 55012, "Command Sounds Frequency") ! OptCheckbox ('FeedbackOptions', 'CharacterStates', Window, 6, 15, 37594, "") ! OptCheckbox ('FeedbackOptions', 'MiscellaneousMessages', Window, 17, 19, 37596, "") ! OptCheckbox ('FeedbackOptions', 'ToHitRolls', Window, 3, 12, 37588, "") ! OptCheckbox ('FeedbackOptions', 'CombatInfo', Window, 4, 13, 37590, "") ! OptCheckbox ('FeedbackOptions', 'SpellCasting', Window, 5, 14, 37592, "") *************** *** 407,410 **** --- 413,419 ---- + def DisplayHelpFeedbackOptions (): + GemRB.SetText (FeedbackOptionsWindow, FeedbackHelpText, 37410) + def DisplayHelpMarkerFeedback (): GemRB.SetText (FeedbackOptionsWindow, FeedbackHelpText, 37411) *************** *** 462,472 **** OptCancel ('AutopauseOptions', Window, 17) ! OptCheckbox ('CharacterHit', Window, 2, 9, 37598) ! OptCheckbox ('CharacterInjured', Window, 3, 10, 37681) ! OptCheckbox ('CharacterDead', Window, 4, 11, 37682) ! OptCheckbox ('CharacterAttacked', Window, 5, 12, 37683) ! OptCheckbox ('WeaponUnusable', Window, 6, 13, 37684) ! OptCheckbox ('TargetGone', Window, 7, 14, 37685) ! OptCheckbox ('EndOfRound', Window, 8, 15, 37686) GemRB.UnhideGUI () --- 471,481 ---- OptCancel ('AutopauseOptions', Window, 17) ! OptCheckbox ('AutopauseOptions', 'CharacterHit', Window, 2, 9, 37598, "") ! OptCheckbox ('AutopauseOptions', 'CharacterInjured', Window, 3, 10, 37681, "") ! OptCheckbox ('AutopauseOptions', 'CharacterDead', Window, 4, 11, 37682, "") ! OptCheckbox ('AutopauseOptions', 'CharacterAttacked', Window, 5, 12, 37683, "") ! OptCheckbox ('AutopauseOptions', 'WeaponUnusable', Window, 6, 13, 37684, "") ! OptCheckbox ('AutopauseOptions', 'TargetGone', Window, 7, 14, 37685, "") ! OptCheckbox ('AutopauseOptions', 'EndOfRound', Window, 8, 15, 37686, "") GemRB.UnhideGUI () *************** *** 474,477 **** --- 483,489 ---- + def DisplayHelpAutopauseOptions (): + GemRB.SetText (AutopauseOptionsWindow, AutopauseHelpText, 31214) + def DisplayHelpCharacterHit (): GemRB.SetText (AutopauseOptionsWindow, AutopauseHelpText, 37688) *************** *** 804,816 **** GemRB.UnloadTable (MovieTable) - GemRB.SetVisible (MoviesWindow, 0) GemRB.PlayMovie (key) - GemRB.SetVisible (MoviesWindow, 1) ################################################### def OnCreditsPress (): - GemRB.SetVisible (MoviesWindow, 0) GemRB.PlayMovie ("CREDITS") - GemRB.SetVisible (MoviesWindow, 1) ################################################### --- 816,824 ---- *************** *** 825,832 **** ! def OptSlider (name, window, slider_id, label_id, label_strref, assoc_var, fn = None): """Standard slider for option windows""" slider = GemRB.GetControl (window, slider_id) ! #GemRB.SetEvent (window, slider, IE_GUI_MOUSE_OVER_BUTTON, "DisplayHelp" + name) if fn: GemRB.SetEvent (window, slider, IE_GUI_SLIDER_ON_CHANGE, fn) --- 833,841 ---- ! def OptSlider (winname, ctlname, window, slider_id, label_id, label_strref, assoc_var, fn = None): """Standard slider for option windows""" slider = GemRB.GetControl (window, slider_id) ! #GemRB.SetEvent (window, slider, IE_GUI_MOUSE_ENTER_BUTTON, "DisplayHelp" + ctlname) ! #GemRB.SetEvent (window, slider, IE_GUI_MOUSE_LEAVE_BUTTON, "DisplayHelp" + winname) if fn: GemRB.SetEvent (window, slider, IE_GUI_SLIDER_ON_CHANGE, fn) *************** *** 837,847 **** GemRB.SetButtonFlags (window, label, IE_GUI_BUTTON_NO_IMAGE, OP_SET) GemRB.SetButtonState (window, label, IE_GUI_BUTTON_LOCKED) ! #GemRB.SetEvent (window, label, IE_GUI_MOUSE_OVER_BUTTON, "DisplayHelp" + name) ! GemRB.SetEvent (window, label, IE_GUI_MOUSE_ENTER_BUTTON, "DisplayHelp" + name) return slider ! def OptCheckbox (name, window, button_id, label_id, label_strref): """Standard checkbox for option windows""" --- 846,857 ---- GemRB.SetButtonFlags (window, label, IE_GUI_BUTTON_NO_IMAGE, OP_SET) GemRB.SetButtonState (window, label, IE_GUI_BUTTON_LOCKED) ! #GemRB.SetEvent (window, label, IE_GUI_MOUSE_OVER_BUTTON, "DisplayHelp" + ctlname) ! GemRB.SetEvent (window, label, IE_GUI_MOUSE_ENTER_BUTTON, "DisplayHelp" + ctlname) ! GemRB.SetEvent (window, label, IE_GUI_MOUSE_LEAVE_BUTTON, "DisplayHelp" + winname) return slider ! def OptCheckbox (winname, ctlname, window, button_id, label_id, label_strref, assoc_var): """Standard checkbox for option windows""" *************** *** 849,853 **** GemRB.SetButtonFlags (window, button, IE_GUI_BUTTON_CHECKBOX, OP_OR) GemRB.SetButtonState (window, button, IE_GUI_BUTTON_SELECTED) ! GemRB.SetEvent (window, button, IE_GUI_MOUSE_OVER_BUTTON, "DisplayHelp" + name) label = GemRB.GetControl (window, label_id) --- 859,865 ---- GemRB.SetButtonFlags (window, button, IE_GUI_BUTTON_CHECKBOX, OP_OR) GemRB.SetButtonState (window, button, IE_GUI_BUTTON_SELECTED) ! GemRB.SetEvent (window, button, IE_GUI_MOUSE_ENTER_BUTTON, "DisplayHelp" + ctlname) ! GemRB.SetEvent (window, button, IE_GUI_MOUSE_LEAVE_BUTTON, "DisplayHelp" + winname) ! GemRB.SetVarAssoc (window, button, assoc_var, 1) label = GemRB.GetControl (window, label_id) *************** *** 855,868 **** GemRB.SetButtonFlags (window, label, IE_GUI_BUTTON_NO_IMAGE, OP_SET) GemRB.SetButtonState (window, label, IE_GUI_BUTTON_LOCKED) ! #GemRB.SetEvent (window, label, IE_GUI_MOUSE_OVER_BUTTON, "DisplayHelp" + name) ! GemRB.SetEvent (window, label, IE_GUI_MOUSE_ENTER_BUTTON, "DisplayHelp" + name) return button ! def OptButton (name, window, button_id, label_id, label_strref): """Standard subwindow button for option windows""" button = GemRB.GetControl (window, button_id) ! GemRB.SetEvent (window, button, IE_GUI_BUTTON_ON_PRESS, "Open%sWindow" %name) ! GemRB.SetEvent (window, button, IE_GUI_MOUSE_OVER_BUTTON, "DisplayHelp" + name) label = GemRB.GetControl (window, label_id) --- 867,881 ---- GemRB.SetButtonFlags (window, label, IE_GUI_BUTTON_NO_IMAGE, OP_SET) GemRB.SetButtonState (window, label, IE_GUI_BUTTON_LOCKED) ! GemRB.SetEvent (window, label, IE_GUI_MOUSE_ENTER_BUTTON, "DisplayHelp" + ctlname) ! GemRB.SetEvent (window, label, IE_GUI_MOUSE_LEAVE_BUTTON, "DisplayHelp" + winname) return button ! def OptButton (winname, ctlname, window, button_id, label_id, label_strref): """Standard subwindow button for option windows""" button = GemRB.GetControl (window, button_id) ! GemRB.SetEvent (window, button, IE_GUI_BUTTON_ON_PRESS, "Open%sWindow" %ctlname) ! GemRB.SetEvent (window, button, IE_GUI_MOUSE_ENTER_BUTTON, "DisplayHelp" + ctlname) ! GemRB.SetEvent (window, button, IE_GUI_MOUSE_LEAVE_BUTTON, "DisplayHelp" + winname) label = GemRB.GetControl (window, label_id) *************** *** 870,891 **** GemRB.SetButtonFlags (window, label, IE_GUI_BUTTON_NO_IMAGE, OP_SET) GemRB.SetButtonState (window, label, IE_GUI_BUTTON_LOCKED) ! #GemRB.SetEvent (window, label, IE_GUI_MOUSE_OVER_BUTTON, "DisplayHelp" + name) ! GemRB.SetEvent (window, label, IE_GUI_MOUSE_ENTER_BUTTON, "DisplayHelp" + name) ! def OptDone (name, window, button_id): """Standard `Done' button for option windows""" button = GemRB.GetControl (window, button_id) GemRB.SetText (window, button, 1403) # Done ! GemRB.SetEvent (window, button, IE_GUI_BUTTON_ON_PRESS, "Open%sWindow" %name) GemRB.SetVarAssoc (window, button, "Cancel", 0) ! def OptCancel (name, window, button_id): """Standard `Cancel' button for option windows""" button = GemRB.GetControl (window, button_id) GemRB.SetText (window, button, 4196) # Cancel ! GemRB.SetEvent (window, button, IE_GUI_BUTTON_ON_PRESS, "Open%sWindow" %name) GemRB.SetVarAssoc (window, button, "Cancel", 1) ! def OptHelpText (name, window, text_id, text_strref): """Standard textarea with context help for option windows""" text = GemRB.GetControl (window, text_id) --- 883,904 ---- GemRB.SetButtonFlags (window, label, IE_GUI_BUTTON_NO_IMAGE, OP_SET) GemRB.SetButtonState (window, label, IE_GUI_BUTTON_LOCKED) ! GemRB.SetEvent (window, label, IE_GUI_MOUSE_ENTER_BUTTON, "DisplayHelp" + ctlname) ! GemRB.SetEvent (window, label, IE_GUI_MOUSE_LEAVE_BUTTON, "DisplayHelp" + winname) ! def OptDone (winname, window, button_id): """Standard `Done' button for option windows""" button = GemRB.GetControl (window, button_id) GemRB.SetText (window, button, 1403) # Done ! GemRB.SetEvent (window, button, IE_GUI_BUTTON_ON_PRESS, "Open%sWindow" %winname) GemRB.SetVarAssoc (window, button, "Cancel", 0) ! def OptCancel (winname, window, button_id): """Standard `Cancel' button for option windows""" button = GemRB.GetControl (window, button_id) GemRB.SetText (window, button, 4196) # Cancel ! GemRB.SetEvent (window, button, IE_GUI_BUTTON_ON_PRESS, "Open%sWindow" %winname) GemRB.SetVarAssoc (window, button, "Cancel", 1) ! def OptHelpText (winname, window, text_id, text_strref): """Standard textarea with context help for option windows""" text = GemRB.GetControl (window, text_id) |