From: Laszlo T. <ave...@us...> - 2005-03-02 20:04:52
|
Update of /cvsroot/gemrb/gemrb/gemrb/GUIScripts/bg1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29865/bg1 Modified Files: GUISTORE.py Log Message: added guistore for all games (still needs a lot of work) Index: GUISTORE.py =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/GUIScripts/bg1/GUISTORE.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** GUISTORE.py 4 Dec 2004 12:33:42 -0000 1.1 --- GUISTORE.py 2 Mar 2005 20:04:10 -0000 1.2 *************** *** 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$ *************** *** 27,35 **** import GemRB from GUIDefines import * from GUICommonWindows import SetSelectionChangeHandler ! #import GUICommonWindows StoreWindow = None - StoreShoppingWindow = None StoreIdentifyWindow = None --- 27,35 ---- import GemRB from GUIDefines import * + from ie_stats import * from GUICommonWindows import SetSelectionChangeHandler ! from GUICommon import CloseOtherWindow StoreWindow = None StoreShoppingWindow = None StoreIdentifyWindow = None *************** *** 40,83 **** 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) StoreWindow = None 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 --- 40,107 ---- 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) StoreWindow = None 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) --- 110,166 ---- 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.SetVar ("StoreRent",0) GemRB.UnhideGUI() ! #initializing selected variables ! 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 () --- 173,178 ---- # 25 encumbrance button + SetSelectionChangeHandler( UpdateStoreShoppingWindow ) UpdateStoreShoppingWindow () *************** *** 203,237 **** global StoreIdentifyWindow - 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,206 ---- global StoreIdentifyWindow if StoreIdentifyWindow != None: Window = StoreIdentifyWindow ! GemRB.SetVar ("TopWindow", Window) 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 ) UpdateStoreIdentifyWindow () *************** *** 239,265 **** global StoreStealWindow - 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 () --- 208,226 ---- global StoreStealWindow if StoreStealWindow != None: Window = StoreStealWindow ! GemRB.SetVar ("TopWindow", Window) UpdateStoreStealWindow () return ! StoreStealWindow = Window = GemRB.LoadWindow (6) ! GemRB.SetVar ("TopWindow", Window) # Steal ! Button = GemRB.GetControl (Window, 1) GemRB.SetText (Window, Button, 45305) + SetSelectionChangeHandler( UpdateStoreStealWindow ) UpdateStoreStealWindow () *************** *** 267,286 **** global StoreDonateWindow - 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 --- 228,239 ---- global StoreDonateWindow if StoreDonateWindow != None: Window = StoreDonateWindow ! GemRB.SetVar ("TopWindow", Window) UpdateStoreDonateWindow () return ! StoreDonateWindow = Window = GemRB.LoadWindow (9) ! GemRB.SetVar ("TopWindow", Window) # Donate *************** *** 292,297 **** # 4 5 +- UpdateStoreDonateWindow () - GemRB.UnhideGUI () --- 245,250 ---- # 4 5 +- + SetSelectionChangeHandler( UpdateStoreDonateWindow ) UpdateStoreDonateWindow () *************** *** 299,318 **** global StoreHealWindow - 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 ... --- 252,263 ---- global StoreHealWindow if StoreHealWindow != None: Window = StoreHealWindow ! GemRB.SetVar ("TopWindow", Window) UpdateStoreHealWindow () return ! StoreHealWindow = Window = GemRB.LoadWindow (5) ! GemRB.SetVar ("TopWindow", Window) # price ... *************** *** 332,336 **** UpdateStoreHealWindow () - GemRB.UnhideGUI () --- 277,280 ---- *************** *** 338,570 **** global StoreRumourWindow ! 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 () --- 282,433 ---- global StoreRumourWindow ! GemRB.SetVar ("TopIndex", 0) if StoreRumourWindow != None: Window = StoreRumourWindow ! GemRB.SetVar ("TopWindow", Window) UpdateStoreRumourWindow () return ! StoreRumourWindow = Window = GemRB.LoadWindow (8) ! GemRB.SetVar ("TopWindow", Window) ! #removing those pesky labels ! for i in range(5): ! GemRB.DeleteControl (Window, 0x10000005+i) ! ScrollBar = GemRB.GetControl (Window, 5) ! GemRB.SetEvent (Window, ScrollBar, IE_GUI_SCROLLBAR_ON_CHANGE, "UpdateStoreRumourWindow") ! Count=Store['StoreDrinkCount'] ! if Count<5: ! Count=1 ! else: ! Count=Count-4 ! GemRB.SetVarAssoc(Window, ScrollBar, "TopIndex", Count) + UpdateStoreRumourWindow () def OpenStoreRentWindow (): ! global StoreRentWindow if StoreRentWindow != None: Window = StoreRentWindow ! GemRB.SetVar ("TopWindow", Window) UpdateStoreRentWindow () return ! StoreRentWindow = Window = GemRB.LoadWindow (7) ! GemRB.SetVar ("TopWindow", Window) ! # room types ! StoreRent = -1 ! 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) ! if ok<0: ! GemRB.SetButtonState (Window, Button, IE_GUI_BUTTON_DISABLED) # Rent ! Button = GemRB.GetControl (Window, 11) ! GemRB.SetText (Window, Button, 14293) ! GemRB.SetVar ("StoreRent",StoreRent) + 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 (): Window = StoreRumourWindow ! UpdateStoreCommon (Window, 0x10000011, 0, 0x10000012) ! TopIndex=GemRB.GetVar ("TopIndex") ! for i in range(5): ! Drink = GemRB.GetStoreDrink (i+TopIndex) ! print Drink ! Button = GemRB.GetControl (Window, i) ! if Drink != None: ! GemRB.SetText (Window, Button, Drink['DrinkName']) ! GemRB.SetVarAssoc (Window, Button, "Index", i) ! GemRB.SetButtonState (Window, Button, IE_GUI_BUTTON_ENABLED) ! GemRB.SetEvent (Window, Button, IE_GUI_BUTTON_ON_PRESS, "GulpDrink") ! else: ! GemRB.SetText (Window, Button, "") ! GemRB.SetButtonState (Window, Button, IE_GUI_BUTTON_DISABLED) ! def GulpDrink (): ! pc = GemRB.GameGetSelectedPCSingle () ! intox = GemRB.GetPlayerStat (pc, IE_INTOXICATION) ! if intox > 80: ! print "Too drunk" ! return ! gold = GemRB.GameGetPartyGold () ! Index = GemRB.GetVar ("TopIndex")+GemRB.GetVar ("Index") ! Drink = GemRB.GetStoreDrink (Index) ! if gold < Drink['Price']: ! print "No money" ! return ! GemRB.SetPlayerStat (pc, IE_INTOXICATION, intox+Drink['Strength']) ! #get some rumour ! PlaySound("gulp") ! ! def UpdateStoreRentWindow (): ! UpdateStoreCommon (StoreRentWindow, 0x10000008, 0, 0x10000009) ! # price ... ! SelectStoreRent () *************** *** 576,580 **** StoreShoppingWindow = None - def CloseStoreIdentifyWindow (): global StoreIdentifyWindow --- 439,442 ---- *************** *** 584,587 **** --- 446,483 ---- 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 ################################################### |