From: Laszlo T. <ave...@us...> - 2004-12-16 19:12:53
|
Update of /cvsroot/gemrb/gemrb/gemrb/GUIScripts/bg1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12698/GUIScripts/bg1 Modified Files: CharGen6.py Added Files: GUICG15.py GUICG7.py Log Message: added racial enemy and mage spell selection to bg1 guiscripts fixed a problem in the tob mage spell selection --- NEW FILE: GUICG7.py --- # -*-python-*- # GemRB - Infinity Engine Emulator # Copyright (C) 2003-2004 The GemRB Project # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # 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: /cvsroot/gemrb/gemrb/gemrb/GUIScripts/bg1/GUICG7.py,v 1.1 2004/12/16 19:12:43 avenger_teambg Exp $ # character generation, mage spells (GUICG7) import GemRB from GUICommon import GetLearnableMageSpells, GetLearnablePriestSpells MageSpellsWindow = 0 MageSpellsTextArea = 0 DoneButton = 0 Learnable = [] def OnLoad(): global MageSpellsWindow, MageSpellsTextArea, DoneButton global MageSpellsSelectPointsLeft, Learnable AlignmentTable = GemRB.LoadTable("aligns") ClassTable = GemRB.LoadTable("classes") ClassRow = GemRB.GetVar("Class")-1 Class = GemRB.GetTableValue(ClassTable, ClassRow, 5) TmpTable = GemRB.LoadTable("clskills") TableName = GemRB.GetTableValue(TmpTable, Class, 2) if TableName == "*": GemRB.SetNextScript("GUICG6") return GemRB.LoadWindowPack("GUICG") MageSpellsWindow = GemRB.LoadWindow(7) v = GemRB.GetVar("Alignment") Learnable = GetLearnableMageSpells( GemRB.GetVar("Class Kit"), v, 1) GemRB.SetVar("MageSpellBook", 0) GemRB.SetVar("SpellMask", 0) MageSpellsSelectPointsLeft = 2 PointsLeftLabel = GemRB.GetControl(MageSpellsWindow, 0x1000001b) GemRB.SetLabelUseRGB(MageSpellsWindow, PointsLeftLabel, 1) GemRB.SetText(MageSpellsWindow, PointsLeftLabel, str(MageSpellsSelectPointsLeft)) for i in range (24): SpellButton = GemRB.GetControl(MageSpellsWindow, i + 2) GemRB.SetButtonFlags(MageSpellsWindow, SpellButton, IE_GUI_BUTTON_PICTURE|IE_GUI_BUTTON_CHECKBOX, OP_OR) if i < len(Learnable): Spell = GemRB.GetSpell(Learnable[i]) GemRB.SetSpellIcon(MageSpellsWindow, SpellButton, Learnable[i]) GemRB.SetButtonState(MageSpellsWindow, SpellButton, IE_GUI_BUTTON_ENABLED) GemRB.SetEvent(MageSpellsWindow, SpellButton, IE_GUI_BUTTON_ON_PRESS, "MageSpellsSelectPress") GemRB.SetVarAssoc(MageSpellsWindow, SpellButton, "SpellMask", 1 << i) GemRB.SetTooltip(MageSpellsWindow, SpellButton, Spell['SpellName']) else: GemRB.SetButtonState(MageSpellsWindow, SpellButton, IE_GUI_BUTTON_DISABLED) GemRB.SetToken("number", str(MageSpellsSelectPointsLeft)) MageSpellsTextArea = GemRB.GetControl(MageSpellsWindow, 27) GemRB.SetText(MageSpellsWindow, MageSpellsTextArea, 17250) DoneButton = GemRB.GetControl(MageSpellsWindow, 0) GemRB.SetButtonState(MageSpellsWindow, DoneButton, IE_GUI_BUTTON_DISABLED) GemRB.SetEvent(MageSpellsWindow, DoneButton, IE_GUI_BUTTON_ON_PRESS, "MageSpellsDonePress") GemRB.SetText(MageSpellsWindow, DoneButton, 11973) GemRB.SetButtonFlags(MageSpellsWindow, DoneButton, IE_GUI_BUTTON_DEFAULT, OP_OR) MageSpellsCancelButton = GemRB.GetControl(MageSpellsWindow, 29) GemRB.SetButtonState(MageSpellsWindow, MageSpellsCancelButton, IE_GUI_BUTTON_ENABLED) GemRB.SetEvent(MageSpellsWindow, MageSpellsCancelButton, IE_GUI_BUTTON_ON_PRESS, "MageSpellsCancelPress") GemRB.SetText(MageSpellsWindow, MageSpellsCancelButton, 13727) GemRB.SetVisible(MageSpellsWindow,1) return def MageSpellsSelectPress(): global MageSpellsWindow, MageSpellsTextArea, DoneButton global MageSpellsSelectPointsLeft, Learnable MageSpellBook = GemRB.GetVar("MageSpellBook") SpellMask = GemRB.GetVar("SpellMask") Spell = abs(MageSpellBook - SpellMask) i = -1 while (Spell > 0): i = i + 1 Spell = Spell >> 1 Spell = GemRB.GetSpell(Learnable[i]) GemRB.SetText(MageSpellsWindow, MageSpellsTextArea, Spell["SpellDesc"]) if SpellMask < MageSpellBook: MageSpellsSelectPointsLeft = MageSpellsSelectPointsLeft + 1 for i in range (len(Learnable)): SpellButton = GemRB.GetControl(MageSpellsWindow, i + 2) if (((1 << i) & SpellMask) == 0): GemRB.SetButtonState(MageSpellsWindow, SpellButton, IE_GUI_BUTTON_ENABLED) GemRB.SetButtonState(MageSpellsWindow, DoneButton, IE_GUI_BUTTON_DISABLED) else: MageSpellsSelectPointsLeft = MageSpellsSelectPointsLeft - 1 if MageSpellsSelectPointsLeft == 0: for i in range (len(Learnable)): SpellButton = GemRB.GetControl(MageSpellsWindow, i + 2) if ((1 << i) & SpellMask) == 0: GemRB.SetButtonState(MageSpellsWindow, SpellButton, IE_GUI_BUTTON_DISABLED) GemRB.SetButtonState(MageSpellsWindow, DoneButton, IE_GUI_BUTTON_ENABLED) PointsLeftLabel = GemRB.GetControl(MageSpellsWindow, 0x1000001b) GemRB.SetText(MageSpellsWindow, PointsLeftLabel, str(MageSpellsSelectPointsLeft)) GemRB.SetVar("MageSpellBook", SpellMask) return def MageSpellsCancelPress(): GemRB.UnloadWindow(MageSpellsWindow) GemRB.SetNextScript("CharGen6") #haterace return def MageSpellsDonePress(): GemRB.UnloadWindow(MageSpellsWindow) GemRB.SetNextScript("GUICG6") #abilities return Index: CharGen6.py =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/GUIScripts/bg1/CharGen6.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CharGen6.py 24 May 2004 14:57:06 -0000 1.3 --- CharGen6.py 16 Dec 2004 19:12:43 -0000 1.4 *************** *** 109,113 **** def NextPress(): GemRB.UnloadWindow(CharGenWindow) ! GemRB.SetNextScript("GUICG6") #skills return --- 109,113 ---- def NextPress(): GemRB.UnloadWindow(CharGenWindow) ! GemRB.SetNextScript("GUICG15") #skills (haterace) return --- NEW FILE: GUICG15.py --- #character generation, racial enemy (GUICG15) import GemRB RaceWindow = 0 TextAreaControl = 0 DoneButton = 0 RaceTable = 0 RaceCount = 0 TopIndex = 0 def DisplayRaces(): global TopIndex TopIndex=GemRB.GetVar("TopIndex") for i in range(0, 6): Button = GemRB.GetControl(RaceWindow,i+2) Val = GemRB.GetTableValue(RaceTable, i+TopIndex,0) if Val==0: GemRB.SetText(RaceWindow, Button, "") GemRB.SetButtonState(RaceWindow,Button,IE_GUI_BUTTON_DISABLED) else: GemRB.SetText(RaceWindow,Button, Val) GemRB.SetButtonState(RaceWindow,Button,IE_GUI_BUTTON_ENABLED) GemRB.SetEvent(RaceWindow,Button,IE_GUI_BUTTON_ON_PRESS,"RacePress") GemRB.SetVarAssoc(RaceWindow,Button,"HateRace",GemRB.GetTableValue(RaceTable,i+TopIndex,1) ) return def OnLoad(): global RaceWindow, TextAreaControl, DoneButton global RaceTable, RaceCount, TopIndex ClassTable = GemRB.LoadTable("classes") ClassRow = GemRB.GetVar("Class")-1 Class = GemRB.GetTableValue(ClassTable, ClassRow, 5) TmpTable = GemRB.LoadTable("clskills") TableName = GemRB.GetTableValue(TmpTable, Class, 0) if TableName == "*": GemRB.SetNextScript("GUICG7") return GemRB.LoadWindowPack("GUICG") RaceWindow = GemRB.LoadWindow(15) RaceTable = GemRB.LoadTable(TableName) RaceCount = GemRB.GetTableRowCount(RaceTable)-6 if RaceCount<0: RaceCount=0 for i in range(0,6): Button = GemRB.GetControl(RaceWindow,i+2) GemRB.SetButtonFlags(RaceWindow,Button,IE_GUI_BUTTON_RADIOBUTTON,OP_OR) GemRB.SetButtonSprites(RaceWindow, Button,"GUIHRC",i,0,1,2,3) BackButton = GemRB.GetControl(RaceWindow,10) GemRB.SetText(RaceWindow,BackButton,15416) DoneButton = GemRB.GetControl(RaceWindow,11) GemRB.SetText(RaceWindow,DoneButton,11973) GemRB.SetButtonFlags(RaceWindow, DoneButton, IE_GUI_BUTTON_DEFAULT,OP_OR) GemRB.SetButtonState(RaceWindow,DoneButton,IE_GUI_BUTTON_DISABLED) TextAreaControl = GemRB.GetControl(RaceWindow, 8) GemRB.SetText(RaceWindow,TextAreaControl,17256) TopIndex = 0 GemRB.SetVar("TopIndex",0) ScrollBarControl = GemRB.GetControl(RaceWindow, 1) GemRB.SetVarAssoc(RaceWindow, ScrollBarControl, "TopIndex",RaceCount) GemRB.SetEvent(RaceWindow, ScrollBarControl, IE_GUI_SCROLLBAR_ON_CHANGE, "DisplayRaces") GemRB.SetEvent(RaceWindow,DoneButton,IE_GUI_BUTTON_ON_PRESS,"NextPress") GemRB.SetEvent(RaceWindow,BackButton,IE_GUI_BUTTON_ON_PRESS,"BackPress") GemRB.SetVisible(RaceWindow,1) DisplayRaces() return def RacePress(): Race = GemRB.GetVar("HateRace") Row = GemRB.FindTableValue(RaceTable,1, Race) GemRB.SetText(RaceWindow,TextAreaControl, GemRB.GetTableValue(RaceTable, Row, 2) ) GemRB.SetButtonState(RaceWindow,DoneButton,IE_GUI_BUTTON_ENABLED) return def BackPress(): GemRB.UnloadWindow(RaceWindow) GemRB.SetVar("HateRace",0) #scrapping the race value GemRB.SetNextScript("CharGen6") return def NextPress(): GemRB.UnloadWindow(RaceWindow) GemRB.SetNextScript("GUICG7") #mage spells return |