[sanguoforciv4] r358 committed - CvGameCoreDLL <- r354 , bts319jp...

5 views
Skip to first unread message

codesite...@google.com

unread,
May 8, 2010, 11:23:31 AM5/8/10
to sanguom...@googlegroups.com
Revision: 358
Author: wynymk
Date: Sat May 8 08:22:53 2010
Log: CvGameCoreDLL <- r354 , bts319jp
Python <- (v2.5 for bts 319+ patch E), 317Difference, bts319jp
http://code.google.com/p/sanguoforciv4/source/detail?r=358

Added:
/trunk/319cnDifference/Assets/Python/Screens
/trunk/319cnDifference/Assets/Python/Screens/CvWorldBuilderScreen.py
Modified:
/trunk/319cnDifference/Assets/Python/CvUtil.py
/trunk/319cnDifference/CvGameCoreDLL/CvGameCoreDLL.rc
/trunk/319cnDifference/CvGameCoreDLL/CvGameTextMgr.cpp

=======================================
--- /dev/null
+++ /trunk/319cnDifference/Assets/Python/Screens/CvWorldBuilderScreen.py
Sat May 8 08:22:53 2010
@@ -0,0 +1,3071 @@
+## Sid Meier's Civilization 4
+## Copyright Firaxis Games 2005
+from CvPythonExtensions import *
+import CvUtil
+import CvScreensInterface
+import ScreenInput
+import CvEventInterface
+import CvScreenEnums
+import time
+import Popup as PyPopup
+
+gc = CyGlobalContext()
+ArtFileMgr = CyArtFileMgr()
+localText = CyTranslator()
+
+class CvWorldBuilderScreen:
+ "World Builder Screen"
+
+ def __init__ (self) :
+ print("init-ing world builder screen")
+ self.m_advancedStartTabCtrl = None
+ self.m_normalPlayerTabCtrl = 0
+ self.m_normalMapTabCtrl = 0
+ self.m_tabCtrlEdit = 0
+ self.m_flyoutMenu = 0
+ self.m_bCtrlEditUp = False
+ self.m_bUnitEdit = False
+ self.m_bCityEdit = False
+ self.m_bNormalPlayer = True
+ self.m_bNormalMap = False
+ self.m_bReveal = False
+ self.m_bDiplomacy = False
+ self.m_bLandmark = False
+ self.m_bEraseAll = False
+ self.m_bUnitEditCtrl = False
+ self.m_bCityEditCtrl = False
+ self.m_bShowBigBrush = False
+ self.m_bLeftMouseDown = False
+ self.m_bRightMouseDown = False
+ self.m_bChangeFocus = False
+ self.m_iNormalPlayerCurrentIndexes = []
+ self.m_iNormalMapCurrentIndexes = []
+ self.m_iNormalMapCurrentList = []
+ self.m_iAdvancedStartCurrentIndexes = []
+ self.m_iAdvancedStartCurrentList = []
+ self.m_iCurrentPlayer = 0
+ self.m_iCurrentTeam = 0
+ self.m_iCurrentUnitPlayer = 0
+ self.m_iCurrentUnit = 0
+ self.m_iCurrentX = -1
+ self.m_iCurrentY = -1
+ self.m_pCurrentPlot = 0
+ self.m_pActivePlot = 0
+ self.m_pRiverStartPlot = -1
+
+ self.m_iUnitTabID = -1
+ self.m_iBuildingTabID = -1
+ self.m_iTechnologyTabID = -1
+ self.m_iImprovementTabID = -1
+ self.m_iBonusTabID = -1
+ self.m_iImprovementListID = -1
+ self.m_iBonusListID = -1
+ self.m_iTerrainTabID = -1
+ self.m_iTerrainListID = -1
+ self.m_iFeatureListID = -1
+ self.m_iPlotTypeListID = -1
+ self.m_iRouteListID = -1
+ self.m_iTerritoryTabID = -1
+ self.m_iTerritoryListID = -1
+
+ self.m_iASUnitTabID = -1
+ self.m_iASUnitListID = -1
+ self.m_iASCityTabID = -1
+ self.m_iASCityListID = -1
+ self.m_iASBuildingsListID = -1
+ self.m_iASAutomateListID = -1
+ self.m_iASImprovementsTabID = -1
+ self.m_iASRoutesListID = -1
+ self.m_iASImprovementsListID = -1
+ self.m_iASVisibilityTabID = -1
+ self.m_iASVisibilityListID = -1
+ self.m_iASTechTabID = -1
+ self.m_iASTechListID = -1
+
+ self.m_iBrushSizeTabID = -1
+ self.m_iBrushWidth = 1
+ self.m_iBrushHeight = 1
+ self.m_iFlyoutEditUnit = 1
+ self.m_iFlyoutEditCity = 0
+ self.m_iFlyoutAddScript = -1
+ self.m_iFlyoutChangeStartYear = -2
+ self.m_pFlyoutPlot = 0
+ self.m_bFlyout = False
+ self.m_pUnitToScript = -1
+ self.m_pCityToScript = -1
+ self.m_pPlotToScript = -1
+ self.m_iUnitEditCheckboxID = -1
+ self.m_iCityEditCheckboxID = -1
+ self.m_iNormalPlayerCheckboxID = -1
+ self.m_iNormalMapCheckboxID = -1
+ self.m_iRevealTileCheckboxID = -1
+ self.m_iDiplomacyCheckboxID = -1
+ self.m_iLandmarkCheckboxID = -1
+ self.m_iEraseCheckboxID = -1
+ self.iScreenWidth = 228
+# >>> CYBERFRONT // text: wb menu
+ self.iScreenWidth2 = 228 + 35*3
+# <<< CYBERFRONT
+
+ self.m_bSideMenuDirty = false
+ self.m_bASItemCostDirty = false
+ self.m_iCost = 0
+
+ def interfaceScreen (self):
+ # This is the main interface screen, create it as such
+ self.initVars()
+ screen = CyGInterfaceScreen( "WorldBuilderScreen",
CvScreenEnums.WORLDBUILDER_SCREEN )
+ screen.setCloseOnEscape(False)
+ screen.setAlwaysShown(True)
+
+ self.setSideMenu()
+ self.refreshSideMenu()
+
+ #add interface items
+ self.refreshPlayerTabCtrl()
+
+ self.refreshAdvancedStartTabCtrl(false)
+
+ if (CyInterface().isInAdvancedStart()):
+ pPlayer = gc.getPlayer(self.m_iCurrentPlayer)
+ pPlot = pPlayer.getStartingPlot()
+ CyCamera().JustLookAtPlot(pPlot)
+
+ self.m_normalMapTabCtrl = getWBToolNormalMapTabCtrl()
+
+ self.m_normalMapTabCtrl.setNumColumns((gc.getNumBonusInfos()/10)+1);
+
self.m_normalMapTabCtrl.addTabSection(localText.getText("TXT_KEY_WB_IMPROVEMENTS",()));
+ self.m_iImprovementTabID = 0
+ self.m_iNormalMapCurrentIndexes.append(0)
+
+ self.m_iNormalMapCurrentList.append(0)
+ self.m_iImprovementListID = 0
+
+
self.m_normalMapTabCtrl.addTabSection(localText.getText("TXT_KEY_WB_BONUSES",
()));
+ self.m_iBonusTabID = 1
+ self.m_iNormalMapCurrentIndexes.append(0)
+
+ self.m_iNormalMapCurrentList.append(0)
+ self.m_iBonusListID = 0
+
+ self.m_normalMapTabCtrl.setNumColumns((gc.getNumTerrainInfos()/10)+1);
+
self.m_normalMapTabCtrl.addTabSection(localText.getText("TXT_KEY_WB_TERRAINS",()))
+ self.m_iTerrainTabID = 2
+ self.m_iNormalMapCurrentIndexes.append(0)
+
+ self.m_iNormalMapCurrentList.append(0)
+ self.m_iTerrainListID = 0
+ self.m_iPlotTypeListID = 1
+ self.m_iFeatureListID = 2
+ self.m_iRouteListID = 3
+
+ # Territory
+
+ self.m_normalMapTabCtrl.setNumColumns(8);
+
self.m_normalMapTabCtrl.addTabSection(localText.getText("TXT_KEY_WB_TERRITORY",()))
+ self.m_iTerritoryTabID = 3
+ self.m_iNormalMapCurrentIndexes.append(0)
+
+ self.m_iNormalMapCurrentList.append(0)
+ self.m_iTerritoryListID = 0
+
+ # This should be a forced redraw screen
+ screen.setForcedRedraw( True )
+
+ screen.setDimensions( 0, 0, screen.getXResolution(),
screen.getYResolution() )
+ # This should show the screen immidiately and pass input to the game
+ screen.showScreen(PopupStates.POPUPSTATE_IMMEDIATE, True)
+
+ setWBInitialCtrlTabPlacement()
+ return 0
+
+ def killScreen(self):
+ if (self.m_tabCtrlEdit != 0):
+ self.m_tabCtrlEdit.destroy()
+ self.m_tabCtrlEdit = 0
+
+ screen = CyGInterfaceScreen( "WorldBuilderScreen",
CvScreenEnums.WORLDBUILDER_SCREEN )
+ screen.hideScreen()
+
CyEngine().clearColoredPlots(PlotLandscapeLayers.PLOT_LANDSCAPE_LAYER_REVEALED_PLOTS)
+
CyEngine().clearAreaBorderPlots(AreaBorderLayers.AREA_BORDER_LAYER_REVEALED_PLOTS)
+
CyEngine().clearAreaBorderPlots(AreaBorderLayers.AREA_BORDER_LAYER_WORLD_BUILDER)
+
CyEngine().clearAreaBorderPlots(AreaBorderLayers.AREA_BORDER_LAYER_HIGHLIGHT_PLOT)
+ CvScreensInterface.hideWorldBuilderDiplomacyScreen()
+
+ def handleInput (self, inputClass):
+ if (inputClass.getNotifyCode() == NotifyCode.NOTIFY_CLICKED) and
inputClass.isShiftKeyDown() and inputClass.isCtrlKeyDown():
+ return 1
+ elif (inputClass.getNotifyCode() == NotifyCode.NOTIFY_CHARACTER):
+ key = inputClass.getData()
+ if key == int(InputTypes.KB_ESCAPE):
+ if (self.m_bDiplomacy):
+ self.normalPlayerTabModeCB()
+ return 1
+ elif (inputClass.getNotifyCode() ==
NotifyCode.NOTIFY_LISTBOX_ITEM_SELECTED):
+ if (inputClass.getFunctionName() == "WorldBuilderPlayerChoice"):
+ self.handlePlayerUnitPullDownCB(inputClass.getData())
+ elif(inputClass.getFunctionName() == "WorldBuilderTechByEra"):
+ self.handleWorldBuilderTechByEraPullDownCB(inputClass.getData())
+ elif(inputClass.getFunctionName() == "WorldBuilderBrushSize"):
+ self.handleBrushHeightCB(inputClass.getData())
+ self.handleBrushWidthCB(inputClass.getData())
+ elif(inputClass.getFunctionName() == "WorldBuilderTeamChoice"):
+ self.handleSelectTeamPullDownCB(inputClass.getData())
+ return 1
+
+ def mouseOverPlot (self, argsList):
+
+ if (self.m_bReveal):
+ self.m_pCurrentPlot = CyInterface().getMouseOverPlot()
+ if (CyInterface().isLeftMouseDown() and self.m_bLeftMouseDown):
+ self.setMultipleReveal(True)
+ elif(CyInterface().isRightMouseDown() and self.m_bRightMouseDown):
+ self.setMultipleReveal(False)
+ else: #if ((self.m_tabCtrlEdit == 0) or (not
self.m_tabCtrlEdit.isEnabled())):
+ self.m_pCurrentPlot = CyInterface().getMouseOverPlot()
+ self.m_iCurrentX = self.m_pCurrentPlot.getX()
+ self.m_iCurrentY = self.m_pCurrentPlot.getY()
+ if (CyInterface().isLeftMouseDown() and self.m_bLeftMouseDown):
+ if (self.useLargeBrush()):
+ self.placeMultipleObjects()
+ else:
+ self.placeObject()
+ elif (CyInterface().isRightMouseDown() and self.m_bRightMouseDown):
+ if (not (self.m_bCityEdit or self.m_bUnitEdit)):
+ if (self.useLargeBrush()):
+ self.removeMultipleObjects()
+ else:
+ self.removeObject()
+ return
+
+ def getHighlightPlot (self, argsList):
+
+ self.refreshASItemCost()
+
+ if (self.m_pCurrentPlot != 0):
+# if (CyInterface().isInAdvancedStart() and
self.m_pCurrentPlot.isAdjacentNonrevealed(CyGame().getActiveTeam())):
+# if (self.getASActiveVisibility() == -1):
+# return []
+ if (CyInterface().isInAdvancedStart()):
+ if (self.m_iCost <= 0):
+ return []
+
+ if ((self.m_pCurrentPlot != 0) and not self.m_bShowBigBrush and not
self.m_bDiplomacy and isMouseOverGameSurface()):
+ return (self.m_pCurrentPlot.getX(), self.m_pCurrentPlot.getY())
+
+ return []
+
+ def leftMouseDown (self, argsList):
+ bShift, bCtrl, bAlt = argsList
+ self.m_bLeftMouseDown = True
+
+ if CyInterface().isInAdvancedStart():
+ self.placeObject()
+ return 1
+
+ if (bAlt and bCtrl) or (self.m_bUnitEdit):
+ if (self.m_pCurrentPlot.getNumUnits() > 0):
+ self.m_iCurrentUnit = 0
+ self.setUnitEditInfo(False)
+ return 1
+ elif (bCtrl) or (self.m_bCityEdit):
+ if (self.m_pCurrentPlot.isCity()):
+ self.initCityEditScreen()
+ return 1
+ elif (self.m_bReveal):
+ if (self.m_pCurrentPlot != 0):
+ self.setMultipleReveal(True)
+ elif (bShift and not bCtrl and not bAlt):
+ self.createFlyoutMenu()
+ return 1
+
+ if (self.useLargeBrush()):
+ self.placeMultipleObjects()
+ else:
+ self.placeObject()
+ return 1
+
+ def rightMouseDown (self, argsList):
+ self.m_bRightMouseDown = True
+
+ if CyInterface().isInAdvancedStart():
+ self.removeObject()
+ return 1
+
+ if (self.m_bCityEdit or self.m_bUnitEdit):
+ self.createFlyoutMenu()
+ elif (self.m_bReveal):
+ if (self.m_pCurrentPlot != 0):
+ self.setMultipleReveal(False)
+ else:
+ if (self.useLargeBrush()):
+ self.removeMultipleObjects()
+ else:
+ self.removeObject()
+
+ return 1
+
+ def update(self, fDelta):
+ if (not CyInterface().isLeftMouseDown()):
+ self.m_bLeftMouseDown = False
+ if (not CyInterface().isRightMouseDown()):
+ self.m_bRightMouseDown = False
+
+ if (not self.m_bChangeFocus) and (not isMouseOverGameSurface()):
+ self.m_bChangeFocus = True
+
+ if (self.m_bChangeFocus and isMouseOverGameSurface() and (not
self.m_bUnitEdit and not self.m_bCityEdit)):
+ self.m_bChangeFocus = False
+ setFocusToCVG()
+ return
+
+ # Will update the screen (every 250 MS)
+ def updateScreen(self):
+ screen = CyGInterfaceScreen( "WorldBuilderScreen",
CvScreenEnums.WORLDBUILDER_SCREEN )
+
+ if (CyInterface().isInAdvancedStart()):
+ if (self.m_bSideMenuDirty):
+ self.refreshSideMenu()
+ if (self.m_bASItemCostDirty):
+ self.refreshASItemCost()
+
+ if (CyInterface().isDirty(InterfaceDirtyBits.Advanced_Start_DIRTY_BIT)
and not CyInterface().isFocusedWidget()):
+ self.refreshAdvancedStartTabCtrl(true)
+ CyInterface().setDirty(InterfaceDirtyBits.Advanced_Start_DIRTY_BIT,
false)
+
+ if (self.useLargeBrush()):
+ self.m_bShowBigBrush = True
+ else:
+ self.m_bShowBigBrush = False
+
+ if (self.m_bCtrlEditUp):
+ if ( (not self.m_bUnitEdit) and (not self.m_bCityEdit) and (not
self.m_tabCtrlEdit.isEnabled()) and not CyInterface().isInAdvancedStart()):
+ if (self.m_bNormalMap):
+ self.m_normalMapTabCtrl.enable(True)
+ if (self.m_bNormalPlayer):
+ self.m_normalPlayerTabCtrl.enable(True)
+ self.m_bCtrlEditUp = False
+ return 0
+ if ((self.m_bNormalMap) and(self.m_normalMapTabCtrl.getActiveTab() ==
self.m_iTerrainTabID) and
(self.m_iNormalMapCurrentList[self.m_normalMapTabCtrl.getActiveTab()] ==
self.m_iRouteListID)):
+ if
(self.m_iNormalMapCurrentIndexes[self.m_normalMapTabCtrl.getActiveTab()] ==
gc.getNumRouteInfos()):
+ if (self.m_pRiverStartPlot != -1):
+ self.setRiverHighlights()
+ return 0
+ self.highlightBrush()
+ return 0
+
+ def redraw( self ):
+ return 0
+
+ def resetTechButtons( self ) :
+ for i in range (gc.getNumTechInfos()):
+ strName = "Tech_%s" %(i,)
+ self.m_normalPlayerTabCtrl.setCheckBoxState("Technologies",
gc.getTechInfo(i).getDescription(),
gc.getTeam(gc.getPlayer(self.m_iCurrentPlayer).getTeam()).isHasTech(i))
+ return 1
+
+ def handleAllPlotsCB ( self, popupReturn ) :
+ iButton = popupReturn.getButtonClicked()
+ if (iButton < PlotTypes.NUM_PLOT_TYPES):
+ iTempVal =
self.m_iNormalMapCurrentIndexes[self.m_normalMapTabCtrl.getActiveTab()]
+ self.m_iNormalMapCurrentIndexes[self.m_normalMapTabCtrl.getActiveTab()]
= iButton
+ self.setAllPlots()
+ self.m_iNormalMapCurrentIndexes[self.m_normalMapTabCtrl.getActiveTab()]
= iTempVal
+ if (not (self.m_bUnitEdit or self.m_bCityEdit)):
+ self.m_normalPlayerTabCtrl.enable(self.m_bNormalPlayer)
+ self.m_normalMapTabCtrl.enable(self.m_bNormalMap)
+ else:
+ self.m_normalPlayerTabCtrl.enable(False)
+ self.m_normalMapTabCtrl.enable(False)
+ return 1
+
+ def allPlotsCB(self):
+ self.m_normalPlayerTabCtrl.enable(False)
+ self.m_normalMapTabCtrl.enable(False)
+ if (self.m_tabCtrlEdit != 0):
+ self.m_tabCtrlEdit.enable(False)
+
+ popup=PyPopup.PyPopup(CvUtil.EventWBAllPlotsPopup,
EventContextTypes.EVENTCONTEXT_ALL)
+ iPopupWidth = 200
+ iPopupHeight = 50*PlotTypes.NUM_PLOT_TYPES
+ popup.setSize(iPopupWidth, iPopupHeight)
+
+
popup.setHeaderString(localText.getText("TXT_KEY_WB_CHANGE_ALL_PLOTS",()))
+
+ for i in range (PlotTypes.NUM_PLOT_TYPES):
+ if (i==0):
+ popup.addButton(localText.getText("TXT_KEY_WB_ADD_MOUNTAIN",()))
+ elif(i==1):
+ popup.addButton(localText.getText("TXT_KEY_WB_ADD_HILL",()))
+ elif(i==2):
+ popup.addButton(localText.getText("TXT_KEY_WB_ADD_GRASS",()))
+ elif(i==3):
+ popup.addButton(localText.getText("TXT_KEY_WB_ADD_OCEAN",()))
+
+ popup.addButton(localText.getText("TXT_KEY_SCREEN_CANCEL", ()))
+ popup.launch(False)
+ return 1
+
+ def refreshReveal ( self ) :
+
CyEngine().clearAreaBorderPlots(AreaBorderLayers.AREA_BORDER_LAYER_REVEALED_PLOTS)
+ for i in range (CyMap().getGridWidth()):
+ for j in range (CyMap().getGridHeight()):
+ pPlot = CyMap().plot(i,j)
+ if (not pPlot.isNone()):
+ self.showRevealed(pPlot)
+ return 1
+
+ def setAllPlots ( self ) :
+ iPlotType =
self.m_iNormalMapCurrentIndexes[self.m_normalMapTabCtrl.getActiveTab()]
+ CyMap().setAllPlotTypes(iPlotType)
+ #for i in range (CyMap().getGridWidth()):
+ #for j in range (CyMap().getGridHeight()):
+ #CyMap().plot(i,j).setPlotType(PlotTypes(iPlotType), True, True)
+ return 1
+
+ def handleUnitEditExperienceCB (self, argsList) :
+ iNewXP = int(argsList[0])
+
+ ## Sanguo Mod WB, start, added by nk 7.13.09
+ pUnit = self.m_pActivePlot.getUnit(self.m_iCurrentUnit)
+ iHeroType = pUnit.getHeroType()
+ iLegionHeroType = pUnit.getLegionHero()
+ bNakedHero = (iHeroType != -1 and iLegionHeroType == -1)
+
+ if bNakedHero:
+ CyGame().setHeroExperience(iHeroType, float(iNewXP))
+ else:
+ pUnit.setExperience(iNewXP,-1)
+
+ #self.m_pActivePlot.getUnit(self.m_iCurrentUnit).setExperience(iNewXP,-1)
+ ## Sanguo Mod end
+
+ return 1
+
+ def handleUnitEditLevelCB (self, argsList) :
+ iNewLevel = int(argsList[0])
+
+ ## Sanguo Mod WB, start, added by nk 7.13.09
+ pUnit = self.m_pActivePlot.getUnit(self.m_iCurrentUnit)
+ iHeroType = pUnit.getHeroType()
+ iLegionHeroType = pUnit.getLegionHero()
+ bNakedHero = (iHeroType != -1 and iLegionHeroType == -1)
+
+ if bNakedHero:
+ iOldLevel = CyGame().getHeroLevel(iHeroType)
+ CyGame().changeHeroLevel(iHeroType, iNewLevel - iOldLevel)
+
+ else:
+ pUnit.setLevel(iNewLevel)
+
+ #self.m_pActivePlot.getUnit(self.m_iCurrentUnit).setLevel(iNewLevel)
+ ## Sanguo Mod end
+
+ return 1
+
+ def handleUnitEditNameCB (self, argsList) :
+ if ((len(argsList[0]) < 1) or (self.m_pActivePlot == 0) or
(self.m_iCurrentUnit < 0) or (self.m_pActivePlot.getNumUnits() <=
self.m_iCurrentUnit)):
+ return 1
+ szNewName = argsList[0]
+ unit = self.m_pActivePlot.getUnit(self.m_iCurrentUnit)
+ if (unit):
+ unit.setName(szNewName)
+ return 1
+
+ ## Sanguo Mod WB, start, added by nk 7.15.09
+ def handleUnitHeroTypeEditPullDownCB (self, argsList):
+ iIndex = argsList[0]
+ iHeroType = self.m_listSupportedHeroType[iIndex]
+
+ pUnit = self.m_pActivePlot.getUnit(self.m_iCurrentUnit)
+ iOldHeroType = pUnit.getHeroType()
+
+ if iHeroType != iOldHeroType:
+ pUnit.setHeroType(iHeroType)
+ CyGame().setHeroDebutStatus(iHeroType, pUnit.getOwner())
+ CyGame().setHeroUnitID(iHeroType, pUnit.getID())
+ if iOldHeroType != -1:
+ CyGame().setHeroDebutStatus(iOldHeroType, -2)
+ CyGame().setHeroUnitID(iOldHeroType, -1)
+
+ self.setUnitEditInfo(True)
+ self.setEditUnitTabs()
+ return 1
+
+ def handleUnitEditSetHeroCombatLevelCB (self, argsList):
+ iCombatType, iLevel = argsList[1].split('_')
+ iCombatType = int(iCombatType)
+ iLevel = int(iLevel)
+
+ pUnit = self.m_pActivePlot.getUnit(self.m_iCurrentUnit)
+ iHeroType = pUnit.getHeroType()
+
+ if iHeroType == -1:
+ return 1
+
+ CyGame().setHeroUnitCombatLevel(iHeroType, iCombatType, iLevel)
+
+ return 1
+
+ def getHeroCombatLevelWidgetName (self, *nkw):
+ name = ['HeroCombatLevel']
+ name.extend(nkw)
+ return '_'.join(name)
+
+ ## Sanguo Mod end
+
+ ## Sanguo Mod WB, City Perk, start, added by nk 7.15.09
+ def handleCityPerkClassPullDownCB (self, argsList):
+ pCity = self.m_pActivePlot.getPlotCity()
+ iCityPerkClassType = argsList[0]
+
+ for i in range(gc.getNumCityPerkInfos()):
+ self.m_tabCtrlEdit.setEnabled(self.getCityPerkWidgetName('radio',
str(i+1)), gc.getCityPerkInfo(i).getCityPerkClassType() ==
iCityPerkClassType)
+
+ self.m_tabCtrlEdit.setValue(self.getCityPerkWidgetName('radio',
str(i+1)), pCity.getCityPerkForClass(iCityPerkClassType)+1)
+ return 1
+
+ def handleCityEditCityPerkTypeCB (self, argsList):
+ pCity = self.m_pActivePlot.getPlotCity()
+ iCityPerkType = int(argsList[1]) - 1
+ iCityPerkClassType =
int(self.m_tabCtrlEdit.getValue(self.getCityPerkWidgetName('dropdown')) +
0.0001)
+ assert iCityPerkClassType in [0,1]
+
+ if iCityPerkType != -1:
+ pCity.setHasCityPerk(iCityPerkType, True)
+ else:
+ iOldCityPerkType = pCity.getCityPerkForClass(iCityPerkClassType)
+ if iOldCityPerkType != -1:
+ pCity.setHasCityPerk(iCityPerkType, False)
+ return 1
+
+ def getCityPerkWidgetName (self, *nkw):
+ name = ['CityPerk']
+ name.extend(nkw)
+ return '_'.join(name)
+
+ ## Sanguo Mod WB, City Perk, end
+
+ def handleCityEditPopulationCB (self, argsList) :
+ iNewPop = int(argsList[0])
+ self.m_pActivePlot.getPlotCity().setPopulation(iNewPop)
+ return 1
+
+ def handleCityEditCultureCB (self, argsList) :
+ iNewCulture = int(argsList[0])
+
self.m_pActivePlot.getPlotCity().setCulture(self.m_pActivePlot.getPlotCity().getOwner(),
iNewCulture, True)
+ return 1
+
+ def handleCityEditGoldCB (self, argsList) :
+ iNewGold = int(argsList[0])
+ gc.getPlayer(self.m_iCurrentPlayer).setGold(iNewGold)
+ return 1
+
+ def handleCityEditNameCB (self, argsList) :
+ if ((len(argsList[0]) < 1) or (not self.m_pActivePlot.isCity())):
+ return 1
+ szNewName = argsList[0]
+ city = self.m_pActivePlot.getPlotCity()
+ if (city):
+ city.setName(szNewName, False)
+ return 1
+
+ def handleUnitEditPullDownCB ( self, argsList ) :
+ self.m_iCurrentUnit = int(argsList[0])
+ self.m_iCurrentUnitPlayer =
self.m_pActivePlot.getUnit(self.m_iCurrentUnit).getOwner()
+ self.setUnitEditInfo(True)
+ self.setEditUnitTabs()
+ return 1
+
+ def handleUnitAITypeEditPullDownCB ( self, argsList ) :
+ iNewAIType = int(argsList[0])
+ self.m_pActivePlot.getUnit(self.m_iCurrentUnit).setUnitAIType(iNewAIType)
+ return 1
+
+ def handlePlayerEditPullDownCB ( self, argsList ) :
+ self.m_iCurrentUnitPlayer = int(argsList[0])
+ return 1
+
+ def handlePlayerUnitPullDownCB ( self, argsList ) :
+ iIndex = int(argsList)
+ iCount = -1
+ for i in range( gc.getMAX_CIV_PLAYERS() ):
+ if ( gc.getPlayer(i).isEverAlive() ):
+ iCount = iCount + 1
+ if (iCount == iIndex):
+ self.m_iCurrentPlayer = i
+ self.refreshPlayerTabCtrl()
+ return 1
+
+ i = i + 1
+ self.m_iCurrentPlayer = i
+ self.refreshPlayerTabCtrl()
+ return 1
+
+ def handleWorldBuilderTechByEraPullDownCB ( self, argsList ) :
+ iIndex = int(argsList)
+ for i in range (gc.getNumTechInfos()):
+ if (gc.getTechInfo(i).getEra() == iIndex):
+
gc.getTeam(gc.getPlayer(self.m_iCurrentPlayer).getTeam()).setHasTech(i,
True, self.m_iCurrentPlayer, False, False)
+
+ self.refreshPlayerTabCtrl()
+ return 1
+
+ def handleSelectTeamPullDownCB ( self, argsList ) :
+ iIndex = int(argsList)
+ iCount = -1
+ for i in range( gc.getMAX_CIV_TEAMS() ):
+ if ( gc.getTeam(i).isEverAlive() ):
+ iCount = iCount + 1
+ if (iCount == iIndex):
+ self.m_iCurrentTeam = i
+
+ self.refreshReveal()
+ return 1
+
+ def handlePromotionCB ( self, iNewPromotion ) :
+ bOn = not
self.m_pActivePlot.getUnit(self.m_iCurrentUnit).isHasPromotion(iNewPromotion)
+
self.m_pActivePlot.getUnit(self.m_iCurrentUnit).setHasPromotion(iNewPromotion,bOn)
+ return 1
+
+ def hasPromotion(self, iPromotion):
+ ## Sanguo Mod WB, start, added by nk 7.13.09
+ pUnit = self.m_pActivePlot.getUnit(self.m_iCurrentUnit)
+ pInfo = gc.getPromotionInfo(iPromotion)
+
+ iHeroType = pUnit.getHeroType()
+ bNakedUnit = (iHeroType == -1 and pUnit.getLegionHero() == -1)
+ bNakedHero = (iHeroType != -1 and pUnit.getLegionHero() == -1)
+ bCoreTroop = (iHeroType != -1 and pUnit.getLegionHero() != -1)
+ bLegionMember = (iHeroType == -1 and pUnit.getLegionHero() != -1)
+
+ # hero promotion
+ if pInfo.isHero():
+ if bNakedUnit:
+ return False
+
+ iStatus = pInfo.getHeroPromotionStatus()
+ if iStatus == 1 or iStatus == 2:
+ if iHeroType == -1:
+ iHeroType = pUnit.getLegionHero()
+ iCurrStatus = CyGame().getHeroPromotionStatus(iHeroType, iPromotion)
+ if iCurrStatus == 1 or iCurrStatus == 2:
+ return True
+ else:
+ return False
+
+ # hero combat type promotion
+## else:
+## iUnitCombatType = pInfo.getPromotionUnitCombatType()
+## if iUnitCombatType != -1:
+## return CyGame().getHeroUnitCombatLevel(iHeroType, iUnitCombatType)
< 5
+ return False
+
+ # combat type promotion I-V
+ elif pInfo.getPromotionUnitCombatType() != -1:
+ if bNakedUnit or bNakedHero:
+ return False
+
+ iUnitCombatType = pInfo.getPromotionUnitCombatType()
+ if iUnitCombatType != -1 and iUnitCombatType ==
pUnit.getUnitCombatType():
+ return CyGame().getHeroUnitCombatLevel(pUnit.getLegionHero(),
iUnitCombatType) == pInfo.getPromotionUnitCombatLevel()
+
+ # original promotion
+ else:
+ if not bNakedHero:
+ return pUnit.isHasPromotion(iPromotion)
+ else:
+ return False
+
+ return False
+ ## Sanguo Mod end
+
+ return
self.m_pActivePlot.getUnit(self.m_iCurrentUnit).isHasPromotion(iPromotion)
+
+ def hasTech(self, iTech):
+ return
gc.getTeam(gc.getPlayer(self.m_iCurrentPlayer).getTeam()).isHasTech(iTech)
+
+ def getNumBuilding(self, iBuilding):
+ return self.m_pActivePlot.getPlotCity().getNumBuilding(iBuilding)
+
+ def hasReligion(self, iReligion):
+ return self.m_pActivePlot.getPlotCity().isHasReligion(iReligion)
+
+ def hasHolyCity(self, iReligion):
+ return self.m_pActivePlot.getPlotCity().isHolyCityByType(iReligion)
+
+ def hasCorporation(self, iCorporation):
+ return self.m_pActivePlot.getPlotCity().isHasCorporation(iCorporation)
+
+ def hasHeadquarters(self, iCorporation):
+ return
self.m_pActivePlot.getPlotCity().isHeadquartersByType(iCorporation)
+
+ def handleTechCB (self, argsList) :
+ bOn, strName = argsList
+ if ((strName.find("_") != -1) and (self.m_iCurrentPlayer >= 0)):
+ iTech = int(strName[strName.find("_")+1:])
+
gc.getTeam(gc.getPlayer(self.m_iCurrentPlayer).getTeam()).setHasTech(iTech,
bOn, self.m_iCurrentPlayer, False, False)
+ self.resetTechButtons()
+ return 1
+
+ def handleEditCityBuildingCB (self, argsList) :
+ bOn, strName = argsList
+ iNewBuilding = int(strName[strName.find("_")+1:])
+ if bOn:
+ self.m_pActivePlot.getPlotCity().setNumRealBuilding(iNewBuilding, 1)
+ else:
+ self.m_pActivePlot.getPlotCity().setNumRealBuilding(iNewBuilding, 0)
+ return 1
+
+ def handleBrushWidthCB (self, argsList):
+ if (int(argsList) == 0):
+ self.m_iBrushWidth = int(1)
+ elif (int(argsList) == 1):
+ self.m_iBrushWidth = int(2)
+ elif (int(argsList) == 2):
+ self.m_iBrushWidth = int(3)
+ return 1
+
+ def handleBrushHeightCB (self, argsList):
+ if (int(argsList) == 0):
+ self.m_iBrushHeight = int(1)
+ elif (int(argsList) == 1):
+ self.m_iBrushHeight = int(2)
+ elif (int(argsList) == 2):
+ self.m_iBrushHeight = int(3)
+ return 1
+
+ def handleLandmarkCB (self, argsList):
+ return 1
+
+ ########################################################
+ ### Advanced Start Stuff
+ ########################################################
+
+ def refreshASItemCost(self):
+
+ if (CyInterface().isInAdvancedStart()):
+
+ self.m_iCost = 0
+
+ if (self.m_pCurrentPlot != 0):
+
+# if (not
self.m_pCurrentPlot.isAdjacentNonrevealed(CyGame().getActiveTeam()) and
self.m_pCurrentPlot.isRevealed(CyGame().getActiveTeam(), false)):
+ if (self.m_pCurrentPlot.isRevealed(CyGame().getActiveTeam(), false)):
+
+ # Unit mode
+ if (self.getASActiveUnit() != -1):
+ self.m_iCost =
gc.getPlayer(self.m_iCurrentPlayer).getAdvancedStartUnitCost(self.getASActiveUnit(),
true, self.m_pCurrentPlot)
+ elif (self.getASActiveCity() != -1):
+ self.m_iCost =
gc.getPlayer(self.m_iCurrentPlayer).getAdvancedStartCityCost(true,
self.m_pCurrentPlot)
+ elif (self.getASActivePop() != -1 and self.m_pCurrentPlot.isCity()):
+ self.m_iCost =
gc.getPlayer(self.m_iCurrentPlayer).getAdvancedStartPopCost(true,
self.m_pCurrentPlot.getPlotCity())
+ elif (self.getASActiveCulture() != -1 and
self.m_pCurrentPlot.isCity()):
+ self.m_iCost =
gc.getPlayer(self.m_iCurrentPlayer).getAdvancedStartCultureCost(true,
self.m_pCurrentPlot.getPlotCity())
+ elif (self.getASActiveBuilding() != -1 and
self.m_pCurrentPlot.isCity()):
+ self.m_iCost =
gc.getPlayer(self.m_iCurrentPlayer).getAdvancedStartBuildingCost(self.getASActiveBuilding(),
true, self.m_pCurrentPlot.getPlotCity())
+ elif (self.getASActiveRoute() != -1):
+ self.m_iCost =
gc.getPlayer(self.m_iCurrentPlayer).getAdvancedStartRouteCost(self.getASActiveRoute(),
true, self.m_pCurrentPlot)
+ elif (self.getASActiveImprovement() != -1):
+ self.m_iCost =
gc.getPlayer(self.m_iCurrentPlayer).getAdvancedStartImprovementCost(self.getASActiveImprovement(),
true, self.m_pCurrentPlot)
+
+ elif
(self.m_pCurrentPlot.isAdjacentNonrevealed(CyGame().getActiveTeam())):
+ if (self.getASActiveVisibility() != -1):
+ self.m_iCost =
gc.getPlayer(self.m_iCurrentPlayer).getAdvancedStartVisibilityCost(true,
self.m_pCurrentPlot)
+
+ if (self.m_iCost < 0):
+ self.m_iCost = 0
+
+ self.refreshSideMenu()
+
+ def getASActiveUnit(self):
+ # Unit Tab
+ if (self.m_advancedStartTabCtrl.getActiveTab() == self.m_iASUnitTabID):
+ iUnitType =
getASUnit(self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()])
+ return iUnitType
+
+ return -1
+
+ def getASActiveCity(self):
+ # City Tab
+ if (self.m_advancedStartTabCtrl.getActiveTab() == self.m_iASCityTabID):
+ # City List
+ if
(self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
== self.m_iASCityListID):
+ iOptionID =
self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()]
+ # Place City
+ if (iOptionID == 0):
+ return 1
+
+ return -1
+
+ def getASActivePop(self):
+ # City Tab
+ if (self.m_advancedStartTabCtrl.getActiveTab() == self.m_iASCityTabID):
+ # City List
+ if
(self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
== self.m_iASCityListID):
+ iOptionID =
self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()]
+ # Place Pop
+ if (iOptionID == 1):
+ return 1
+
+ return -1
+
+ def getASActiveCulture(self):
+ # City Tab
+ if (self.m_advancedStartTabCtrl.getActiveTab() == self.m_iASCityTabID):
+ # City List
+ if
(self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
== self.m_iASCityListID):
+ iOptionID =
self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()]
+ # Place Culture
+ if (iOptionID == 2):
+ return 1
+
+ return -1
+
+ def getASActiveBuilding(self):
+ # Building Tab
+ if (self.m_advancedStartTabCtrl.getActiveTab() == self.m_iASCityTabID):
+ # Buildings List
+ if
(self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
== self.m_iASBuildingsListID):
+ iBuildingType =
getASBuilding(self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()])
+ return iBuildingType
+
+ return -1
+
+ def getASActiveRoute(self):
+ # Improvements Tab
+ if (self.m_advancedStartTabCtrl.getActiveTab() ==
self.m_iASImprovementsTabID):
+ # Routes List
+ if
(self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
== self.m_iASRoutesListID):
+ iRouteType =
getASRoute(self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()])
+ if -1 == iRouteType:
+
self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
= self.m_iASImprovementsListID
+ return iRouteType
+
+ return -1
+
+ def getASActiveImprovement(self):
+ # Improvements Tab
+ if (self.m_advancedStartTabCtrl.getActiveTab() ==
self.m_iASImprovementsTabID):
+ # Improvements List
+ if
(self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
== self.m_iASImprovementsListID):
+ iImprovementType =
getASImprovement(self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()])
+ if -1 == iImprovementType:
+
self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
= self.m_iASRoutesListID
+ return iImprovementType
+
+ return -1
+
+ def getASActiveVisibility(self):
+ # Visibility Tab
+ if (self.m_advancedStartTabCtrl.getActiveTab() ==
self.m_iASVisibilityTabID):
+ return 1
+
+ return -1
+
+ def getASActiveTech(self):
+ # Tech Tab
+ if (self.m_advancedStartTabCtrl.getActiveTab() == self.m_iASTechTabID):
+ return 1
+
+ return -1
+
+ def placeObject( self ) :
+
+ # Advanced Start
+ if (CyInterface().isInAdvancedStart()):
+
+ pPlayer = gc.getPlayer(self.m_iCurrentPlayer)
+ pPlot = CyMap().plot(self.m_iCurrentX, self.m_iCurrentY)
+
+ iActiveTeam = CyGame().getActiveTeam()
+ if (self.m_pCurrentPlot.isRevealed(iActiveTeam, false)):
+
+ # City Tab
+ if (self.m_advancedStartTabCtrl.getActiveTab() == self.m_iASCityTabID):
+
+ # City List
+ if
(self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
== self.m_iASCityListID):
+
+ iOptionID =
self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()]
+
+ # Place City
+ if (iOptionID == 0):
+
+ # Cost -1 means may not be placed here
+ if (pPlayer.getAdvancedStartCityCost(true, pPlot) != -1):
+
+
CyMessageControl().sendAdvancedStartAction(AdvancedStartActionTypes.ADVANCEDSTARTACTION_CITY,
self.m_iCurrentPlayer, self.m_iCurrentX, self.m_iCurrentY, -1, true)
#Action, Player, X, Y, Data, bAdd
+
+ # City Population
+ elif (iOptionID == 1):
+
+ if (pPlot.isCity()):
+ pCity = pPlot.getPlotCity()
+
+ # Cost -1 means may not be placed here
+ if (pPlayer.getAdvancedStartPopCost(true, pCity) != -1):
+
+
CyMessageControl().sendAdvancedStartAction(AdvancedStartActionTypes.ADVANCEDSTARTACTION_POP,
self.m_iCurrentPlayer, self.m_iCurrentX, self.m_iCurrentY, -1, true)
#Action, Player, X, Y, Data, bAdd
+
+ # City Culture
+ elif (iOptionID == 2):
+
+ if (pPlot.isCity()):
+ pCity = pPlot.getPlotCity()
+
+ # Cost -1 means may not be placed here
+ if (pPlayer.getAdvancedStartCultureCost(true, pCity) != -1):
+
+
CyMessageControl().sendAdvancedStartAction(AdvancedStartActionTypes.ADVANCEDSTARTACTION_CULTURE,
self.m_iCurrentPlayer, self.m_iCurrentX, self.m_iCurrentY, -1, true)
#Action, Player, X, Y, Data, bAdd
+
+ # Buildings List
+ elif
(self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
== self.m_iASBuildingsListID):
+
+ if (pPlot.isCity()):
+ pCity = pPlot.getPlotCity()
+
+ iBuildingType =
getASBuilding(self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()])
+
+ # Cost -1 means may not be placed here
+ if (iBuildingType != -1 and
pPlayer.getAdvancedStartBuildingCost(iBuildingType, true, pCity) != -1):
+
+
CyMessageControl().sendAdvancedStartAction(AdvancedStartActionTypes.ADVANCEDSTARTACTION_BUILDING,
self.m_iCurrentPlayer, self.m_iCurrentX, self.m_iCurrentY, iBuildingType,
true) #Action, Player, X, Y, Data, bAdd
+
+ # Unit Tab
+ elif (self.m_advancedStartTabCtrl.getActiveTab() ==
self.m_iASUnitTabID):
+ iUnitType =
getASUnit(self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()])
+
+ # Cost -1 means may not be placed here
+ if (iUnitType != -1 and pPlayer.getAdvancedStartUnitCost(iUnitType,
true, pPlot) != -1):
+
+
CyMessageControl().sendAdvancedStartAction(AdvancedStartActionTypes.ADVANCEDSTARTACTION_UNIT,
self.m_iCurrentPlayer, self.m_iCurrentX, self.m_iCurrentY, iUnitType, true)
#Action, Player, X, Y, Data, bAdd
+
+ # Improvements Tab
+ elif (self.m_advancedStartTabCtrl.getActiveTab() ==
self.m_iASImprovementsTabID):
+
+ # Routes List
+ if
(self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
== self.m_iASRoutesListID):
+
+ iRouteType =
getASRoute(self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()])
+
+ # Cost -1 means may not be placed here
+ if (iRouteType != -1 and
pPlayer.getAdvancedStartRouteCost(iRouteType, true, pPlot) != -1):
+
+
CyMessageControl().sendAdvancedStartAction(AdvancedStartActionTypes.ADVANCEDSTARTACTION_ROUTE,
self.m_iCurrentPlayer, self.m_iCurrentX, self.m_iCurrentY, iRouteType,
true) #Action, Player, X, Y, Data, bAdd
+
+ # Improvements List
+ elif
(self.m_iAdvancedStartCurrentList[self.m_advancedStartTabCtrl.getActiveTab()]
== self.m_iASImprovementsListID):
+
+ iImprovementType =
getASImprovement(self.m_iAdvancedStartCurrentIndexes[self.m_advancedStartTabCtrl.getActiveTab()])
+
+ # Cost -1 means may not be placed here
+ if (pPlayer.getAdvancedStartImprovementCost(iImprovementType, true,
pPlot) != -1):
+
+
CyMessageControl().sendAdvancedStartAction(AdvancedStartActionTypes.ADVANCEDSTARTACTION_IMPROVEMENT,
self.m_iCurrentPlayer, self.m_iCurrentX, self.m_iCurrentY,
iImprovementType, true) #Action, Player, X, Y, Data, bAdd
+
+ # Adjacent nonrevealed
+ else:
+
+ # Visibility Tab
+ if (self.m_advancedStartTabCtrl.getActiveTab() ==
self.m_iASVisibilityTabID):
+
+ # Cost -1 means may not be placed here
+ if (pPlayer.getAdvancedStartVisibilityCost(true, pPlot) != -1):
+
+
CyMessageControl().sendAdvancedStartAction(AdvancedStartActionTypes.ADVANCEDSTARTACTION_VISIBILITY,
self.m_iCurrentPlayer, self.m_iCurrentX, self.m_iCurrentY, -1, true)
#Action, Player, X, Y, Data, bAdd
+
+ self.m_bSideMenuDirty = true
+ self.m_bASItemCostDirty = true
+
+ return 1
+
+ if
((self.m_iNormalPlayerCurrentIndexes[self.m_normalPlayerTabCtrl.getActiveTab()]
== -1) or
(self.m_iNormalMapCurrentIndexes[self.m_normalMapTabCtrl.getActiveTab()] ==
-1) or (self.m_iCurrentX == -1) or (self.m_iCurrentY == -1) or
(self.m_iCurrentPlayer == -1)):
+ return 1
+
+ if (self.m_bEraseAll):
+ self.eraseAll()
+ elif ((self.m_bNormalPlayer) and
(self.m_normalPlayerTabCtrl.getActiveTab() == self.m_iUnitTabID)):
+ iUnitType =
self.m_iNormalPlayerCurrentIndexes[self.m_normalPlayerTabCtrl.getActiveTab()]
+ pPlayer = gc.getPlayer(self.m_iCurrentPlayer)
+ iPlotX = self.m_iCurrentX
+ iPlotY = self.m_iCurrentY
+
+ ## Sanguo Mod WB, hero init, start, added by nk 7.19.09
+ pUnit = pPlayer.initUnit(iUnitType, iPlotX, iPlotY,
UnitAITypes.NO_UNITAI, DirectionTypes.NO_DIRECTION)
+
+ if gc.getUnitInfo(iUnitType).isHero():
+ listHeroType = []
+ for i in range(gc.getNumHeroInfos()):
***The diff for this file has been truncated for email.***
=======================================
--- /trunk/319cnDifference/Assets/Python/CvUtil.py Fri May 7 07:24:35 2010
+++ /trunk/319cnDifference/Assets/Python/CvUtil.py Sat May 8 08:22:53 2010
@@ -122,10 +122,6 @@

def convertToStr(s):
"if the string is unicode, convert it to str by encoding it using 8859-1,
latin_1"
- #### Sanguo Mod codec, start, added by poyuzhe 08.28.09
- if CyGame().getCurrentLanguage() == 5:
- return s
- #### Sanguo Mod codec, end
if (isinstance(s, unicode)):
# >>> CYBERFRONT // character code: codepage
# return s.encode("latin_1")
=======================================
--- /trunk/319cnDifference/CvGameCoreDLL/CvGameCoreDLL.rc Fri May 7
07:24:35 2010
+++ /trunk/319cnDifference/CvGameCoreDLL/CvGameCoreDLL.rc Sat May 8
08:22:53 2010
@@ -69,7 +69,7 @@
BEGIN
BLOCK "040904b0"
BEGIN
- VALUE "Comments", "The History of Three Kingdoms, 319cn"
+ VALUE "Comments", "The History of Three Kingdoms, 319cn
0.10.5.8"
VALUE "CompanyName", "Firaxis Games"
VALUE "FileDescription", "Game core DLL for Sid Meier's
Civilization 4 : Beyond The Sword"
VALUE "FileVersion", "3, 1, 7, 0"
=======================================
--- /trunk/319cnDifference/CvGameCoreDLL/CvGameTextMgr.cpp Fri May 7
07:24:35 2010
+++ /trunk/319cnDifference/CvGameCoreDLL/CvGameTextMgr.cpp Sat May 8
08:22:53 2010
@@ -12253,17 +12253,15 @@

void CvGameTextMgr::getEspionageString(CvWStringBuffer& szBuffer,
PlayerTypes ePlayer, PlayerTypes eTargetPlayer)
{
- // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
- //if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
- //{
+ if (!GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ {
CvPlayer& kPlayer = GET_PLAYER(ePlayer);
TeamTypes eTeam = (TeamTypes) kPlayer.getTeam();
CvTeam& kTeam = GET_TEAM(eTeam);
CvPlayer& kTargetPlayer = GET_PLAYER(eTargetPlayer);

szBuffer.append(gDLL->getText("TXT_KEY_ESPIONAGE_AGAINST_PLAYER",
kTargetPlayer.getNameKey(),
kTeam.getEspionagePointsAgainstTeam(kTargetPlayer.getTeam()),
GET_TEAM(kTargetPlayer.getTeam()).getEspionagePointsAgainstTeam(kPlayer.getTeam())));
- //}
- // Sanguo Mod Strategist, end
+ }
}

void CvGameTextMgr::getTradeString(CvWStringBuffer& szBuffer, const
TradeData& tradeData, PlayerTypes ePlayer1, PlayerTypes ePlayer2)
@@ -13111,21 +13109,8 @@

// Slider
int iBaseCommerceRate = city.getCommerceFromPercent(eCommerceType,
city.getYieldRate(YIELD_COMMERCE) * 100);
-
- // Sanguo Mod City Loyalty, start, by poyuzhe 10.20.09
- //CvWString szRate = CvWString::format(L"%d.%02d", iBaseCommerceRate/100,
iBaseCommerceRate%100);
- //szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT",
owner.getCommercePercent(eCommerceType), city.getYieldRate(YIELD_COMMERCE),
szRate.GetCString(), info.getChar()));
- CvWString szRate = CvWString::format(L"%d.%02d", iBaseCommerceRate/100,
abs(iBaseCommerceRate)%100);
- if (eCommerceType != COMMERCE_CULTURE)
- {
- szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT",
owner.getCommercePercent(eCommerceType), city.getYieldRate(YIELD_COMMERCE)
* owner.getCommerceTaxPercent() / 100, szRate.GetCString(),
info.getChar()));
- }
- else
- {
-
szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT_CULTURE",
owner.getCommercePercent(eCommerceType), city.getYieldRate(YIELD_COMMERCE),
szRate.GetCString(), info.getChar()));
- }
- // Sanguo Mod City Loyalty, end
-
+ CvWString szRate = CvWString::format(L"%d.%02d", iBaseCommerceRate/100,
iBaseCommerceRate%100);
+ szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT",
owner.getCommercePercent(eCommerceType), city.getYieldRate(YIELD_COMMERCE),
szRate.GetCString(), info.getChar()));
szBuffer.append(NEWLINE);

int iSpecialistCommerce = city.getSpecialistCommerce(eCommerceType) +
(city.getSpecialistPopulation() + city.getNumGreatPeople()) *
owner.getSpecialistExtraCommerce(eCommerceType);
@@ -13283,8 +13268,7 @@
iModYield += iProductionToCommerce;
}

- // Sanguo Mod Strategist, start, by poyuzhe 10.19.09
- /*if (eCommerceType == COMMERCE_CULTURE &&
GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
+ if (eCommerceType == COMMERCE_CULTURE &&
GC.getGameINLINE().isOption(GAMEOPTION_NO_ESPIONAGE))
{
int iEspionageToCommerce =
city.getCommerceRateTimes100(COMMERCE_CULTURE) - iModYield;
if (0 != iEspionageToCommerce)
@@ -13302,15 +13286,11 @@
}
iModYield += iEspionageToCommerce;
}
- }*/
- // Sanguo Mod Strategist, end
+ }

FAssertMsg(iModYield ==
city.getCommerceRateTimes100(eCommerceType), "Commerce yield does not match
actual value");

- // Sanguo Mod City Loyalty, start, by poyuzhe 10.20.09
- // CvWString szYield = CvWString::format(L"%d.%02d", iModYield/100,
iModYield%100);
- CvWString szYield = CvWString::format(L"%d.%02d", iModYield/100,
abs(iModYield)%100);
- // Sanguo Mod City Loyalty, end
+ CvWString szYield = CvWString::format(L"%d.%02d", iModYield/100,
iModYield%100);

szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_COMMERCE_FINAL_YIELD_FLOAT",
info.getTextKeyWide(), szYield.GetCString(), info.getChar()));
szBuffer.append(NEWLINE);
}
@@ -13429,33 +13409,8 @@
szBuffer.append(NEWLINE);
iBaseModifier += iCivicMod;
}
-
- // Sanguo Mod City Loyalty, start, by poyuzhe 10.20.09
- // Culture Level
- if (city.getCultureLevel() != NO_CULTURELEVEL)
- {
- int iCultureLevelMod =
GC.getCultureLevelInfo(city.getCultureLevel()).getYieldModifier();
- szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_YIELD_CULTURE",
iCultureLevelMod, info.getChar()));
- szBuffer.append(NEWLINE);
- iBaseModifier += iCultureLevelMod;
- }
- // Sanguo Mod City Loyalty, end

FAssertMsg((iBaseModifier * iBaseProduction) / 100 ==
city.getYieldRate(eYieldType), "Yield Modifier in setProductionHelp does
not agree with actual value");
-
- // Sanguo Mod City Loyalty, start, by poyuzhe 10.20.09
- if (eYieldType == YIELD_COMMERCE)
- {
- szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_TAXED_COMMERCE"));
- szBuffer.append(NEWLINE);
-
- int iYieldRate = city.getYieldRate(eYieldType) *
owner.getCommerceTaxPercent();
- CvWString szRate = CvWString::format(L"%d.%02d", iYieldRate/100,
iYieldRate%100);
-
-
szBuffer.append(gDLL->getText("TXT_KEY_MISC_HELP_SLIDER_PERCENT_FLOAT_COMMERCE",
owner.getCommerceTaxPercent(), city.getYieldRate(YIELD_COMMERCE),
szRate.GetCString(), info.getChar()));
- szBuffer.append(NEWLINE);
- }
- // Sanguo Mod City Loyalty, end
}

void CvGameTextMgr::setConvertHelp(CvWStringBuffer& szBuffer, PlayerTypes
ePlayer, ReligionTypes eReligion)

--
You received this message because you are subscribed to the Google Groups "HoTK Mod Developer Group" group.
To post to this group, send email to sanguom...@googlegroups.com.
To unsubscribe from this group, send email to sanguomodforc...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sanguomodforciv?hl=en.

Reply all
Reply to author
Forward
0 new messages