From: Laszlo T. <ave...@us...> - 2005-02-28 17:35:57
|
Update of /cvsroot/gemrb/gemrb/gemrb/GUIScripts/bg2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11467/GUIScripts/bg2 Modified Files: GUISTORE.py Log Message: Some updates regarding the Store/GUIScript interface (this broke some pst scripts) Documentation later... Index: GUISTORE.py =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/GUIScripts/bg2/GUISTORE.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** GUISTORE.py 4 Dec 2004 17:35:10 -0000 1.5 --- GUISTORE.py 28 Feb 2005 17:35:11 -0000 1.6 *************** *** 10,19 **** # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of ! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # $Header$ --- 10,19 ---- # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of ! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # $Header$ *************** *** 28,35 **** from GUIDefines import * from GUICommonWindows import SetSelectionChangeHandler ! #import GUICommonWindows StoreWindow = None - StoreShoppingWindow = None StoreIdentifyWindow = None --- 28,34 ---- from GUIDefines import * from GUICommonWindows import SetSelectionChangeHandler ! from GUICommon import CloseOtherWindow StoreWindow = None StoreShoppingWindow = None StoreIdentifyWindow = None *************** *** 40,63 **** StoreRentWindow = None ! HelpStoreRent = None ! pc = 0 ! character_name = "" ! store_name = '' ! store_room_prices = (0, 0, 0, 0) ! party_gold = 0 ! store_buttons = {} ! store_update_functions = {} def OpenStoreWindow (): ! global StoreWindow, store_name, store_room_prices, party_gold ! print "Open store" ! return ! GemRB.HideGUI () ! ! if StoreWindow != None: CloseStoreShoppingWindow () CloseStoreIdentifyWindow () GemRB.UnloadWindow (StoreWindow) --- 39,92 ---- StoreRentWindow = None ! pc = None ! character_name = None ! Store = None ! Buttons = [-1,-1,-1,-1] ! ! # 0 - Store ! # 1 - Tavern ! # 2 - Inn ! # 3 - Temple ! # 4 - Container ! # 5 - Container ! ! # 0 - buy/sell ! # 1 - identify ! # 2 - steal ! # 3 - donate ! # 4 - heal ! # 5 - drink ! # 6 - rent ! ! storebams = ("STORSTOR","STORTVRN","STORINN","STORTMPL","STORBAG","STORBAG") ! roomtypes=(17389,17517,17521,17519) ! ! store_funcs = ( "OpenStoreShoppingWindow", "OpenStoreIdentifyWindow", ! "OpenStoreStealWindow", "OpenStoreDonateWindow", "OpenStoreHealWindow", ! "OpenStoreRumourWindow", "OpenStoreRentWindow" ) ! store_update_funcs = None def OpenStoreWindow (): ! global Store ! global StoreWindow ! global store_update_funcs ! #these are function pointers, not strings ! #can't put this in global init, doh! ! store_update_funcs = (OpenStoreShoppingWindow, ! OpenStoreIdentifyWindow,OpenStoreStealWindow, ! OpenStoreDonateWindow,OpenStoreHealWindow, ! OpenStoreRumourWindow,OpenStoreRentWindow ) ! ! if CloseOtherWindow(StoreWindow): ! GemRB.HideGUI () CloseStoreShoppingWindow () CloseStoreIdentifyWindow () + CloseStoreStealWindow () + CloseStoreDonateWindow () + CloseStoreHealWindow () + CloseStoreRumourWindow () + CloseStoreRentWindow () GemRB.UnloadWindow (StoreWindow) *************** *** 65,83 **** GemRB.SetVar ("OtherWindow", -1) SetSelectionChangeHandler (None) - GemRB.UnhideGUI () return ! # FIXME: temporary ! #GemRB.EnterStore ("FELL") ! GemRB.EnterStore ("BROKAH") ! store_name = string.upper (GemRB.GetStoreName ()) ! store_room_prices = GemRB.GetStoreRoomPrices () ! GemRB.LoadWindowPack ("GUISTORE") StoreWindow = Window = GemRB.LoadWindow (3) ! #GemRB.SetVar ("OtherWindow", StoreWindow) ! GemRB.SetVisible (Window, 1) # Done --- 94,106 ---- GemRB.SetVar ("OtherWindow", -1) SetSelectionChangeHandler (None) GemRB.UnhideGUI () return ! GemRB.HideGUI () GemRB.LoadWindowPack ("GUISTORE") StoreWindow = Window = GemRB.LoadWindow (3) ! GemRB.SetVar ("OtherWindow", StoreWindow) #this is the store button row + Store = GemRB.GetStore() # Done *************** *** 86,189 **** GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "OpenStoreWindow") ! # buy / sell ! Button = GemRB.GetControl (Window, 1) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "OpenStoreShoppingWindow") ! store_buttons['shopping'] = Button ! store_update_functions['shopping'] = UpdateStoreShoppingWindow ! ! # identify ! Button = GemRB.GetControl (Window, 2) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "OpenStoreIdentifyWindow") ! store_buttons['identify'] = Button ! store_update_functions['identify'] = UpdateStoreIdentifyWindow ! ! # steal ! Button = GemRB.GetControl (Window, 3) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "OpenStoreStealWindow") ! store_buttons['steal'] = Button ! store_update_functions['steal'] = UpdateStoreStealWindow ! ! # donate ! Button = GemRB.GetControl (Window, 4) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "OpenStoreDonateWindow") ! store_buttons['donate'] = Button ! store_update_functions['donate'] = UpdateStoreDonateWindow ! ! # heal / cure Button = GemRB.GetControl (Window, 5) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "OpenStoreHealWindow") ! store_buttons['heal'] = Button ! store_update_functions['heal'] = UpdateStoreHealWindow ! ! # rumour ! Button = GemRB.GetControl (Window, 6) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "OpenStoreRumourWindow") ! store_buttons['rumour'] = Button ! store_update_functions['rumour'] = UpdateStoreRumourWindow ! # rent room ! Button = GemRB.GetControl (Window, 7) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "OpenStoreRentWindow") ! store_buttons['rent'] = Button ! store_update_functions['rent'] = UpdateStoreRentWindow ! OpenStoreShoppingWindow () ! GemRB.UnhideGUI() ! ! last_store_action = None ! def SelectStoreAction (action): ! global last_store_action ! ! Window = StoreWindow ! ! if last_store_action != None and action != last_store_action: ! Button = store_buttons[last_store_action] ! GemRB.SetButtonState (Window, Button, IE_GUI_BUTTON_UNPRESSED) ! ! Button = store_buttons[action] ! GemRB.SetButtonState (Window, Button, IE_GUI_BUTTON_SELECTED) ! ! SetSelectionChangeHandler (store_update_functions[action]) ! ! last_store_action = action ! ! def OpenStoreShoppingWindow (): global StoreShoppingWindow - - GemRB.HideGUI () - SelectStoreAction ('shopping') if StoreShoppingWindow != None: Window = StoreShoppingWindow ! GemRB.SetVar ("OtherWindow", Window) UpdateStoreShoppingWindow () - GemRB.UnhideGUI () return ! StoreShoppingWindow = Window = GemRB.LoadWindow (4) ! GemRB.SetVar ("OtherWindow", Window) ! ! # title ... ! Label = GemRB.GetControl (Window, 0x10000001) ! GemRB.SetText (Window, Label, store_name) # buy price ... ! Label = GemRB.GetControl (Window, 0x10000003) ! GemRB.SetText (Window, Label, str (666)) # sell price ... ! Label = GemRB.GetControl (Window, 0x10000004) ! GemRB.SetText (Window, Label, str (999)) ! # Buy ! Button = GemRB.GetControl (Window, 0) GemRB.SetText (Window, Button, 45303) # Sell ! Button = GemRB.GetControl (Window, 1) GemRB.SetText (Window, Button, 45304) --- 109,165 ---- GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "OpenStoreWindow") ! #Store type icon Button = GemRB.GetControl (Window, 5) ! print storebams[Store['StoreType']] ! GemRB.SetButtonSprites(Window, Button,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=GemRB.GetControl (Window, i+1) ! Action = store_buttons[i] ! GemRB.SetButtonSprites(Window, Button, "GUISTBBC", Action, 0,1,0,0) ! GemRB.SetVarAssoc (Window, Button, "Action", i) ! GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_RADIOBUTTON, OP_OR) ! if Action>=0: ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, store_funcs[Action]) ! GemRB.SetButtonState (Window, Button, IE_GUI_BUTTON_ENABLED) ! else: ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "") ! GemRB.SetButtonState (Window, Button, IE_GUI_BUTTON_DISABLED) ! SetSelectionChangeHandler (store_update_funcs[store_buttons[0]]) GemRB.UnhideGUI() ! #initializing selected variables ! GemRB.SetVar("StoreRent",0) ! store_update_funcs[store_buttons[0]] () def OpenStoreShoppingWindow (): global StoreShoppingWindow if StoreShoppingWindow != None: Window = StoreShoppingWindow ! GemRB.SetVar ("TopWindow", Window) UpdateStoreShoppingWindow () return ! StoreShoppingWindow = Window = GemRB.LoadWindow (2) ! GemRB.SetVar ("TopWindow", Window) # buy price ... ! Label = GemRB.GetControl (Window, 0x1000002b) ! GemRB.SetText (Window, Label, 'cost') # sell price ... ! Label = GemRB.GetControl (Window, 0x1000002c) ! GemRB.SetText (Window, Label, 'sell') # Buy ! Button = GemRB.GetControl (Window, 2) GemRB.SetText (Window, Button, 45303) # Sell ! Button = GemRB.GetControl (Window, 3) GemRB.SetText (Window, Button, 45304) *************** *** 196,201 **** # 25 encumbrance button UpdateStoreShoppingWindow () - GemRB.UnhideGUI () --- 172,177 ---- # 25 encumbrance button + SetSelectionChangeHandler( UpdateStoreShoppingWindow ) UpdateStoreShoppingWindow () *************** *** 204,237 **** GemRB.HideGUI () - SelectStoreAction ('identify') if StoreIdentifyWindow != None: Window = StoreIdentifyWindow ! GemRB.SetVar ("OtherWindow", Window) ! UpdateStoreIdentifyWindow () GemRB.UnhideGUI () return ! StoreIdentifyWindow = Window = GemRB.LoadWindow (5) ! GemRB.SetVar ("OtherWindow", Window) ! ! # title ... ! Label = GemRB.GetControl (Window, 0x0fffffff) ! GemRB.SetText (Window, Label, store_name) # Identify ! Button = GemRB.GetControl (Window, 4) GemRB.SetText (Window, Button, 44971) ! # 14 ta # price ... ! Label = GemRB.GetControl (Window, 0x10000001) GemRB.SetText (Window, Label, str (666)) # 6-9 item slots, 0x10000009-c labels ! UpdateStoreIdentifyWindow () GemRB.UnhideGUI () --- 180,209 ---- GemRB.HideGUI () if StoreIdentifyWindow != None: Window = StoreIdentifyWindow ! GemRB.SetVar ("TopWindow", Window) GemRB.UnhideGUI () + UpdateStoreIdentifyWindow () return ! StoreIdentifyWindow = Window = GemRB.LoadWindow (4) ! GemRB.SetVar ("TopWindow", Window) # Identify ! Button = GemRB.GetControl (Window, 5) GemRB.SetText (Window, Button, 44971) ! # 23 ta # price ... ! Label = GemRB.GetControl (Window, 0x10000003) GemRB.SetText (Window, Label, str (666)) # 6-9 item slots, 0x10000009-c labels ! SetSelectionChangeHandler( UpdateStoreIdentifyWindow ) GemRB.UnhideGUI () + UpdateStoreIdentifyWindow () *************** *** 240,265 **** GemRB.HideGUI () - SelectStoreAction ('steal') if StoreStealWindow != None: Window = StoreStealWindow ! GemRB.SetVar ("OtherWindow", Window) ! UpdateStoreStealWindow () GemRB.UnhideGUI () return ! StoreStealWindow = Window = GemRB.LoadWindow (7) ! GemRB.SetVar ("OtherWindow", Window) ! ! # title ... ! Label = GemRB.GetControl (Window, 0x10000000) ! GemRB.SetText (Window, Label, store_name) # Steal ! Button = GemRB.GetControl (Window, 0) GemRB.SetText (Window, Button, 45305) ! UpdateStoreStealWindow () GemRB.UnhideGUI () --- 212,233 ---- GemRB.HideGUI () if StoreStealWindow != None: Window = StoreStealWindow ! GemRB.SetVar ("TopWindow", Window) GemRB.UnhideGUI () + UpdateStoreStealWindow () return ! StoreStealWindow = Window = GemRB.LoadWindow (6) ! GemRB.SetVar ("TopWindow", Window) # Steal ! Button = GemRB.GetControl (Window, 1) GemRB.SetText (Window, Button, 45305) ! SetSelectionChangeHandler( UpdateStoreStealWindow ) GemRB.UnhideGUI () + UpdateStoreStealWindow () *************** *** 268,286 **** GemRB.HideGUI () - SelectStoreAction ('donate') if StoreDonateWindow != None: Window = StoreDonateWindow ! GemRB.SetVar ("OtherWindow", Window) ! UpdateStoreDonateWindow () GemRB.UnhideGUI () return ! StoreDonateWindow = Window = GemRB.LoadWindow (10) ! GemRB.SetVar ("OtherWindow", Window) ! ! # title ... ! Label = GemRB.GetControl (Window, 0x10000005) ! GemRB.SetText (Window, Label, store_name) # Donate --- 236,249 ---- GemRB.HideGUI () if StoreDonateWindow != None: Window = StoreDonateWindow ! GemRB.SetVar ("TopWindow", Window) GemRB.UnhideGUI () + UpdateStoreDonateWindow () return ! StoreDonateWindow = Window = GemRB.LoadWindow (9) ! GemRB.SetVar ("TopWindow", Window) # Donate *************** *** 292,297 **** # 4 5 +- ! UpdateStoreDonateWindow () GemRB.UnhideGUI () --- 255,261 ---- # 4 5 +- ! SetSelectionChangeHandler( UpdateStoreDonateWindow ) GemRB.UnhideGUI () + UpdateStoreDonateWindow () *************** *** 300,318 **** GemRB.HideGUI () - SelectStoreAction ('heal') if StoreHealWindow != None: Window = StoreHealWindow ! GemRB.SetVar ("OtherWindow", Window) ! UpdateStoreHealWindow () GemRB.UnhideGUI () return ! StoreHealWindow = Window = GemRB.LoadWindow (6) ! GemRB.SetVar ("OtherWindow", Window) ! ! # title ... ! Label = GemRB.GetControl (Window, 0x0fffffff) ! GemRB.SetText (Window, Label, store_name) # price ... --- 264,277 ---- GemRB.HideGUI () if StoreHealWindow != None: Window = StoreHealWindow ! GemRB.SetVar ("TopWindow", Window) GemRB.UnhideGUI () + UpdateStoreHealWindow () return ! StoreHealWindow = Window = GemRB.LoadWindow (5) ! GemRB.SetVar ("TopWindow", Window) # price ... *************** *** 331,336 **** # 13 ta - UpdateStoreHealWindow () GemRB.UnhideGUI () --- 290,295 ---- # 13 ta GemRB.UnhideGUI () + UpdateStoreHealWindow () *************** *** 339,570 **** GemRB.HideGUI () - SelectStoreAction ('rumour') if StoreRumourWindow != None: Window = StoreRumourWindow ! GemRB.SetVar ("OtherWindow", Window) ! UpdateStoreRumourWindow () GemRB.UnhideGUI () return ! StoreRumourWindow = Window = GemRB.LoadWindow (9) ! GemRB.SetVar ("OtherWindow", Window) ! ! # title ... ! Label = GemRB.GetControl (Window, 0x1000000a) ! GemRB.SetText (Window, Label, store_name) # 13 ta, 15 ta - UpdateStoreRumourWindow () GemRB.UnhideGUI () def OpenStoreRentWindow (): ! global StoreRentWindow, HelpStoreRent GemRB.HideGUI () - SelectStoreAction ('rent') if StoreRentWindow != None: Window = StoreRentWindow ! GemRB.SetVar ("OtherWindow", Window) ! UpdateStoreRentWindow () GemRB.UnhideGUI () return ! StoreRentWindow = Window = GemRB.LoadWindow (8) ! GemRB.SetVar ("OtherWindow", Window) ! ! # title ... ! Label = GemRB.GetControl (Window, 0x1000000a) ! GemRB.SetText (Window, Label, store_name) ! ! # Peasant ! Button = GemRB.GetControl (Window, 0) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "SelectStoreRentPeasant") ! Button = GemRB.GetControl (Window, 4) ! GemRB.SetText (Window, Button, 45308) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "SelectStoreRentPeasant") ! ! # Merchant ! Button = GemRB.GetControl (Window, 1) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "SelectStoreRentMerchant") ! Button = GemRB.GetControl (Window, 5) ! GemRB.SetText (Window, Button, 45310) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "SelectStoreRentMerchant") ! # Noble ! Button = GemRB.GetControl (Window, 2) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "SelectStoreRentNoble") ! Button = GemRB.GetControl (Window, 6) ! GemRB.SetText (Window, Button, 45313) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "SelectStoreRentNoble") ! # Royal ! Button = GemRB.GetControl (Window, 3) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "SelectStoreRentRoyal") ! Button = GemRB.GetControl (Window, 7) ! GemRB.SetText (Window, Button, 45316) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "SelectStoreRentRoyal") - # Rent ! Button = GemRB.GetControl (Window, 8) ! GemRB.SetText (Window, Button, 45306) ! GemRB.SetButtonState (Window, Button, IE_GUI_BUTTON_DISABLED) ! ! ! # price ... ! Label = GemRB.GetControl (Window, 0x1000000c) ! GemRB.SetText (Window, Label, "0") ! ! HelpStoreRent = Text = GemRB.GetControl (Window, 9) ! GemRB.UnhideGUI () ! last_room = None ! def SelectStoreRent (room): ! global last_room ! Window = StoreRentWindow ! GemRB.SetText (Window, HelpStoreRent, 66865 + room) ! ! if last_room != None and room != last_room: ! Picture = GemRB.GetControl (Window, 0 + last_room) ! GemRB.SetButtonState (Window, Picture, IE_GUI_BUTTON_UNPRESSED) ! Button = GemRB.GetControl (Window, 4 + last_room) ! GemRB.SetButtonState (Window, Button, IE_GUI_BUTTON_UNPRESSED) ! ! Picture = GemRB.GetControl (Window, 0 + room) ! GemRB.SetButtonState (Window, Picture, IE_GUI_BUTTON_SELECTED) ! Button = GemRB.GetControl (Window, 4 + room) ! GemRB.SetButtonState (Window, Button, IE_GUI_BUTTON_PRESSED) ! ! Label = GemRB.GetControl (Window, 0x1000000c) ! GemRB.SetText (Window, Label, str (store_room_prices[room])) ! ! last_room = room ! ! def SelectStoreRentPeasant (): ! SelectStoreRent (0) ! ! def SelectStoreRentMerchant (): ! SelectStoreRent (1) ! ! def SelectStoreRentNoble (): ! SelectStoreRent (2) ! def SelectStoreRentRoyal (): ! SelectStoreRent (3) ! def UpdateStoreCommon (): ! global party_gold, character_name, pc ! ! print "UpdateStoreWindow" ! pc = GemRB.GameGetSelectedPCSingle () ! character_name = GemRB.GetPlayerName (pc, 0) ! party_gold = GemRB.GameGetPartyGold () def UpdateStoreShoppingWindow (): ! Window = StoreShoppingWindow ! ! GemRB.HideGUI () ! UpdateStoreCommon () ! ! # character name ... ! Label = GemRB.GetControl (Window, 0x10000005) ! GemRB.SetText (Window, Label, character_name) ! ! # party gold ... ! Label = GemRB.GetControl (Window, 0x10000002) ! GemRB.SetText (Window, Label, str (party_gold)) ! GemRB.UnhideGUI () def UpdateStoreIdentifyWindow (): ! Window = StoreIdentifyWindow ! ! GemRB.HideGUI () ! UpdateStoreCommon () ! ! # party gold ... ! Label = GemRB.GetControl (Window, 0x10000000) ! GemRB.SetText (Window, Label, str (party_gold)) ! ! # character name ... ! Label = GemRB.GetControl (Window, 0x10000002) ! GemRB.SetText (Window, Label, character_name) ! ! GemRB.UnhideGUI () def UpdateStoreStealWindow (): ! Window = StoreStealWindow ! ! GemRB.HideGUI () ! UpdateStoreCommon () ! ! # party gold ... ! Label = GemRB.GetControl (Window, 0x10000001) ! GemRB.SetText (Window, Label, str (party_gold)) ! ! # character name ... ! Label = GemRB.GetControl (Window, 0x10000002) ! GemRB.SetText (Window, Label, character_name) ! ! GemRB.UnhideGUI () def UpdateStoreDonateWindow (): ! Window = StoreDonateWindow ! ! GemRB.HideGUI () ! UpdateStoreCommon () ! ! # party gold ... ! Label = GemRB.GetControl (Window, 0x10000006) ! GemRB.SetText (Window, Label, str (party_gold)) ! ! GemRB.UnhideGUI () def UpdateStoreHealWindow (): ! Window = StoreHealWindow ! ! GemRB.HideGUI () ! UpdateStoreCommon () ! ! # party gold ... ! Label = GemRB.GetControl (Window, 0x10000000) ! GemRB.SetText (Window, Label, str (party_gold)) ! ! GemRB.UnhideGUI () def UpdateStoreRumourWindow (): ! Window = StoreRumourWindow ! ! GemRB.HideGUI () ! UpdateStoreCommon () ! ! # party gold ... ! Label = GemRB.GetControl (Window, 0x1000000b) ! GemRB.SetText (Window, Label, str (party_gold)) ! ! GemRB.UnhideGUI () def UpdateStoreRentWindow (): ! Window = StoreRentWindow ! ! GemRB.HideGUI () ! UpdateStoreCommon () ! ! # party gold ... ! Label = GemRB.GetControl (Window, 0x1000000b) ! GemRB.SetText (Window, Label, str (party_gold)) ! ! GemRB.UnhideGUI () --- 298,409 ---- GemRB.HideGUI () if StoreRumourWindow != None: Window = StoreRumourWindow ! GemRB.SetVar ("TopWindow", Window) GemRB.UnhideGUI () + UpdateStoreRumourWindow () return ! StoreRumourWindow = Window = GemRB.LoadWindow (8) ! GemRB.SetVar ("TopWindow", Window) # 13 ta, 15 ta GemRB.UnhideGUI () + UpdateStoreRumourWindow () def OpenStoreRentWindow (): ! global StoreRentWindow GemRB.HideGUI () if StoreRentWindow != None: Window = StoreRentWindow ! GemRB.SetVar ("TopWindow", Window) GemRB.UnhideGUI () + UpdateStoreRentWindow () return ! StoreRentWindow = Window = GemRB.LoadWindow (7) ! GemRB.SetVar ("TopWindow", Window) ! # room types ! for i in range(4): ! ok = Store['StoreRoomPrices'][i] ! Button = GemRB.GetControl (Window, i) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "SelectStoreRent") ! GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_RADIOBUTTON, OP_OR) ! GemRB.SetVarAssoc (Window, Button, "StoreRent", i) ! if ok<0: ! GemRB.SetButtonState (Window, Button, IE_GUI_BUTTON_DISABLED) ! else: ! if StoreRent==-1: ! StoreRent = i ! Button = GemRB.GetControl (Window, i+4) ! GemRB.SetText (Window, Button, 14294+i) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "SelectStoreRent") ! GemRB.SetButtonFlags (Window, Button, IE_GUI_BUTTON_RADIOBUTTON, OP_OR) ! GemRB.SetVarAssoc (Window, Button, "StoreRent", i) # Rent ! Button = GemRB.GetControl (Window, 11) ! GemRB.SetText (Window, Button, 14293) ! GemRB.SetVar("StoreRent",StoreRent) GemRB.UnhideGUI () ! def SelectStoreRent (): Window = StoreRentWindow ! room = GemRB.GetVar("StoreRent") ! Text = GemRB.GetControl (Window, 12) ! GemRB.SetText (Window, Text, roomtypes[room] ) ! Label = GemRB.GetControl (Window, 0x1000000d) ! Rent = GemRB.GetVar("StoreRent") ! price = Store['StoreRoomPrices'][Rent] ! GemRB.SetText (Window, Label, str(price) ) ! def UpdateStoreCommon (Window, title, name, gold): ! GemRB.HideGUI() + Label = GemRB.GetControl (Window, title) + GemRB.SetText (Window, Label, Store['StoreName']) ! if name: ! pc = GemRB.GameGetSelectedPCSingle () ! Label = GemRB.GetControl (Window, name) ! GemRB.SetText (Window, Label, GemRB.GetPlayerName (pc, 0) ) ! Label = GemRB.GetControl (Window, gold) ! GemRB.SetText (Window, Label, str( GemRB.GameGetPartyGold () ) ) ! GemRB.UnhideGUI() def UpdateStoreShoppingWindow (): ! UpdateStoreCommon (StoreShoppingWindow, 0x10000003, 0x1000002e, 0x1000002a) def UpdateStoreIdentifyWindow (): ! UpdateStoreCommon (StoreIdentifyWindow, 0x10000000, 0x10000005, 0x10000002) def UpdateStoreStealWindow (): ! UpdateStoreCommon (StoreStealWindow, 0x10000002, 0x10000027, 0x10000023) def UpdateStoreDonateWindow (): ! UpdateStoreCommon (StoreDonateWindow, 0x10000007, 0, 0x10000008) def UpdateStoreHealWindow (): ! UpdateStoreCommon (StoreHealWindow, 0x10000005, 0, 0x10000001) def UpdateStoreRumourWindow (): ! UpdateStoreCommon (StoreRumourWindow, 0x10000011, 0, 0x10000012) def UpdateStoreRentWindow (): ! UpdateStoreCommon (StoreRentWindow, 0x10000008, 0, 0x10000009) ! # price ... ! SelectStoreRent() *************** *** 576,580 **** StoreShoppingWindow = None - def CloseStoreIdentifyWindow (): global StoreIdentifyWindow --- 415,418 ---- *************** *** 584,587 **** --- 422,459 ---- StoreIdentifyWindow = None + def CloseStoreStealWindow (): + global StoreStealWindow + + if StoreStealWindow != None: + GemRB.UnloadWindow (StoreStealWindow) + StoreStealWindow = None + + def CloseStoreDonateWindow (): + global StoreDonateWindow + + if StoreDonateWindow != None: + GemRB.UnloadWindow (StoreDonateWindow) + StoreDonateWindow = None + + def CloseStoreHealWindow (): + global StoreHealWindow + + if StoreHealWindow != None: + GemRB.UnloadWindow (StoreHealWindow) + StoreHealWindow = None + + def CloseStoreRumourWindow (): + global StoreRumourWindow + + if StoreRumourWindow != None: + GemRB.UnloadWindow (StoreRumourWindow) + StoreRumourWindow = None + + def CloseStoreRentWindow (): + global StoreRentWindow + + if StoreRentWindow != None: + GemRB.UnloadWindow (StoreRentWindow) + StoreRentWindow = None ################################################### |