diff w /v208-061031(original)/Assets/Python/Screens/CvMainInterface.py /Not Just Another Game Clock(TheLopez)-v033w/extracted/Not Just Another Game Clock Mod/Assets/Python/Screens/CvMainInterface.py
337a468
> for j in range(gc.getDefineINT("MAX_PLOT_LIST_ROWS")):
339,340c470,473
< szString = "PlotListButton" + str(i)
< screen.addCheckBoxGFC( szString, ArtFileMgr.getInterfaceArtInfo("INTERFACE_BUTTONS_GOVERNOR").getPath(), ArtFileMgr.getInterfaceArtInfo("BUTTON_HILITE_SQUARE").getPath(), 315 + (i * 34), yResolution - 169, 32, 32, WidgetTypes.WIDGET_PLOT_LIST, i, -1, ButtonStyles.BUTTON_STYLE_LABEL )
---
> k = j*self.numPlotListButtons()+i
> yRow = (j - gc.getDefineINT("MAX_PLOT_LIST_ROWS") + 1) * 34
> szString = "PlotListButton" + str(k)
> screen.addCheckBoxGFC( szString, ArtFileMgr.getInterfaceArtInfo("INTERFACE_BUTTONS_GOVERNOR").getPath(), ArtFileMgr.getInterfaceArtInfo("BUTTON_HILITE_SQUARE").getPath(), 315 + (i * 34), yResolution - 169 + yRow, 32, 32, WidgetTypes.WIDGET_PLOT_LIST, k, -1, ButtonStyles.BUTTON_STYLE_LABEL )
344c477
< screen.addStackedBarGFC( szStringHealth, 315 + (i * 34), yResolution - 146, 32, 11, InfoBarTypes.NUM_INFOBAR_TYPES, WidgetTypes.WIDGET_GENERAL, i, -1 )
---
> screen.addStackedBarGFC( szStringHealth, 315 + (i * 34), yResolution - 146 + yRow, 32, 11, InfoBarTypes.NUM_INFOBAR_TYPES, WidgetTypes.WIDGET_GENERAL, k, -1 )
983a1140
> for j in range(gc.getDefineINT("MAX_PLOT_LIST_ROWS")):
985c1142
< szString = "PlotListButton" + str(i)
---
> szString = "PlotListButton" + str(j*self.numPlotListButtons()+i)
999a1157
>
1002a1161,1169
> if (CyInterface().isCityScreenUp()):
> iMaxRows = 1
> iSkipped = (gc.getDefineINT("MAX_PLOT_LIST_ROWS") - 1) * self.numPlotListButtons()
> iCount += iSkipped
> else:
> iMaxRows = gc.getDefineINT("MAX_PLOT_LIST_ROWS")
> iCount += CyInterface().getPlotListOffset()
> iSkipped = 0
>
1009c1176
< elif ((iCount == (self.numPlotListButtons() - 1)) and ((iVisibleUnits - iCount - CyInterface().getPlotListColumn()) > 1)):
---
> elif ((iCount == (gc.getDefineINT("MAX_PLOT_LIST_ROWS") * self.numPlotListButtons() - 1)) and ((iVisibleUnits - iCount - CyInterface().getPlotListColumn() + iSkipped) > 1)):
1012c1179
< if ((iCount >= 0) and (iCount < self.numPlotListButtons())):
---
> if ((iCount >= 0) and (iCount < self.numPlotListButtons() * gc.getDefineINT("MAX_PLOT_LIST_ROWS"))):
1061c1228
< screen.addDDSGFC( szStringIcon, szFileName, 312 + (iCount * 34), yResolution - 172, 12, 12, WidgetTypes.WIDGET_PLOT_LIST, iCount, -1 )
---
> screen.addDDSGFC( szStringIcon, szFileName, 312 + ((iCount % self.numPlotListButtons()) * 34), yResolution - 172 + (iCount / self.numPlotListButtons() - gc.getDefineINT("MAX_PLOT_LIST_ROWS") + 1) * 34, 12, 12, WidgetTypes.WIDGET_PLOT_LIST, iCount, -1 )
1066c1233
< if (iVisibleUnits > self.numPlotListButtons()):
---
> if (iVisibleUnits > self.numPlotListButtons() * iMaxRows):
1487a1655,1658
> iFreeSpecialistCount = 0
> for i in range(gc.getNumSpecialistInfos()):
> iFreeSpecialistCount += pHeadSelectedCity.getFreeSpecialistCount(i)
>
1490a1662,1673
>
> if (iFreeSpecialistCount > MAX_CITIZEN_BUTTONS):
> for i in range(gc.getNumSpecialistInfos()):
> if (pHeadSelectedCity.getFreeSpecialistCount(i) > 0):
> if (iCount < MAX_CITIZEN_BUTTONS):
> szName = "FreeSpecialist" + str(iCount)
> screen.setImageButton( szName, gc.getSpecialistInfo(i).getTexture(), (xResolution - 74 - (34 * iCount)), yResolution - 216, 32, 32, WidgetTypes.WIDGET_FREE_CITIZEN, i, 1 )
> screen.show( szName )
> bHandled = true
> iCount += 1
>
> else:
1495c1678
< screen.setImageButton( szName, gc.getSpecialistInfo(i).getTexture(), (xResolution - 74 - (34 * iCount)), yResolution - 216, 32, 32, WidgetTypes.WIDGET_CITIZEN, i, -1 )
---
> screen.setImageButton( szName, gc.getSpecialistInfo(i).getTexture(), (xResolution - 74 - (34 * iCount)), yResolution - 216, 32, 32, WidgetTypes.WIDGET_FREE_CITIZEN, i, -1 )
1512c1695
< if (pHeadSelectedCity.isSpecialistValid(i, 1) and iSpecialistCount < (pHeadSelectedCity.getPopulation() + pHeadSelectedCity.totalFreeSpecialists())):
---
> if (pHeadSelectedCity.isSpecialistValid(i, 1) and (pHeadSelectedCity.isCitizensAutomated() or iSpecialistCount < (pHeadSelectedCity.getPopulation() + pHeadSelectedCity.totalFreeSpecialists()))):
>
1873c2123
< szBuffer = u"%d%c" %(pHeadSelectedCity.getBaseYieldRate(YieldTypes.YIELD_PRODUCTION), gc.getYieldInfo(YieldTypes.YIELD_PRODUCTION).getChar())
---
> szBuffer = u"%d%c" %(pHeadSelectedCity.getYieldRate(YieldTypes.YIELD_PRODUCTION), gc.getYieldInfo(YieldTypes.YIELD_PRODUCTION).getChar())
1917c2167
< szBuffer = u"%d%c" %(pHeadSelectedCity.getCommerceRate(eCommerce), gc.getCommerceInfo(eCommerce).getChar())
---
> szBuffer = u"%d.%02d %c" %(pHeadSelectedCity.getCommerceRate(eCommerce), pHeadSelectedCity.getCommerceRateTimes100(eCommerce)%100, gc.getCommerceInfo(eCommerce).getChar())
2144c2394
< iMaintenance = pHeadSelectedCity.getMaintenance()
---
> iMaintenance = pHeadSelectedCity.getMaintenanceTimes100()
2151c2401
< szBuffer = u"%d%c" %(-(pHeadSelectedCity.getMaintenance()), gc.getCommerceInfo(CommerceTypes.COMMERCE_GOLD).getChar())
---
> szBuffer = u"-%d.%02d %c" %(iMaintenance/100, iMaintenance%100, gc.getCommerceInfo(CommerceTypes.COMMERCE_GOLD).getChar())
2215c2465
< for h in range( gc.getMAX_CIV_PLAYERS() ):
---
> for h in range( gc.getMAX_PLAYERS() ):
2218d2467
< fPercent = fPercent / 100.0
2219a2469
> fPercent = fPercent / 100.0
2244c2494,2499
< szBuffer = localText.getText("INTERFACE_CITY_COMMERCE_RATE", (gc.getCommerceInfo(CommerceTypes.COMMERCE_CULTURE).getChar(), gc.getCultureLevelInfo(pHeadSelectedCity.getCultureLevel()).getTextKey(), pHeadSelectedCity.getCommerceRate(CommerceTypes.COMMERCE_CULTURE)))
---
> iRate = pHeadSelectedCity.getCommerceRateTimes100(CommerceTypes.COMMERCE_CULTURE)
> if (iRate%100 == 0):
> szBuffer = localText.getText("INTERFACE_CITY_COMMERCE_RATE", (gc.getCommerceInfo(CommerceTypes.COMMERCE_CULTURE).getChar(), gc.getCultureLevelInfo(pHeadSelectedCity.getCultureLevel()).getTextKey(), iRate/100))
> else:
> szRate = u"+%d.%02d" % (iRate/100, iRate%100)
> szBuffer = localText.getText("INTERFACE_CITY_COMMERCE_RATE_FLOAT", (gc.getCommerceInfo(CommerceTypes.COMMERCE_CULTURE).getChar(), gc.getCultureLevelInfo(pHeadSelectedCity.getCultureLevel()).getTextKey(), szRate))
2256c2511
< iFirst = float(pHeadSelectedCity.getGreatPeopleProgress()) / float( gc.getPlayer( pHeadSelectedCity.getOwner() ).greatPeopleThreshold() )
---
> iFirst = float(pHeadSelectedCity.getGreatPeopleProgress()) / float( gc.getPlayer( pHeadSelectedCity.getOwner() ).greatPeopleThreshold(false) )
2259c2514
< screen.setBarPercentage( "GreatPeopleBar", InfoBarTypes.INFOBAR_RATE, ( float(pHeadSelectedCity.getGreatPeopleRate()) / float( gc.getPlayer( pHeadSelectedCity.getOwner() ).greatPeopleThreshold() ) ) )
---
> screen.setBarPercentage( "GreatPeopleBar", InfoBarTypes.INFOBAR_RATE, ( float(pHeadSelectedCity.getGreatPeopleRate()) / float( gc.getPlayer( pHeadSelectedCity.getOwner() ).greatPeopleThreshold(false) ) ) )
2261c2516
< screen.setBarPercentage( "GreatPeopleBar", InfoBarTypes.INFOBAR_RATE, ( ( float(pHeadSelectedCity.getGreatPeopleRate()) / float( gc.getPlayer( pHeadSelectedCity.getOwner() ).greatPeopleThreshold() ) ) ) / ( 1 - iFirst ) )
---
> screen.setBarPercentage( "GreatPeopleBar", InfoBarTypes.INFOBAR_RATE, ( ( float(pHeadSelectedCity.getGreatPeopleRate()) / float( gc.getPlayer( pHeadSelectedCity.getOwner() ).greatPeopleThreshold(false) ) ) ) / ( 1 - iFirst ) )
2264c2519
< iFirst = float(pHeadSelectedCity.getCulture(pHeadSelectedCity.getOwner())) / float(pHeadSelectedCity.getCultureThreshold())
---
> iFirst = float(pHeadSelectedCity.getCultureTimes100(pHeadSelectedCity.getOwner())) / float(100 * pHeadSelectedCity.getCultureThreshold())
2410a2666,2667
> if (len(szBuffer) > 60):
> szBuffer = "<font=2>" + szBuffer + "</font>"
2604c2861
< if (((gc.getPlayer(ePlayer).getTeam() == gc.getGame().getActiveTeam()) and (gc.getTeam(gc.getGame().getActiveTeam()).getNumMembers() > 1)) or gc.getGame().isDebugMode()):
---
> if (((gc.getPlayer(ePlayer).getTeam() == gc.getGame().getActiveTeam()) and (gc.getTeam(gc.getGame().getActiveTeam()).getNumMembers() > 1)) or (gc.getTeam(gc.getPlayer(ePlayer).getTeam()).isVassal(gc.getGame().getActiveTeam())) or gc.getGame().isDebugMode()):