Modder's Guide to A New Dawn

If I want to add new specialists to the city screen what do I need to do to make them visible?
Haven't tried it yet but I guess that the area will not auto-adjust to make them all visible as I recall from some bug reports.
So is it controlled by some python files or is it DLL work?
Certainly python, maybe dll too, I don't remember.
 
45°38'N-13°47'E;14193492 said:
Certainly python, maybe dll too, I don't remember.

Would it be a big thing to put a slider bar next to the specialists the same way as there is for resources?
 
Would it be a big thing to put a slider bar next to the specialists the same way as there is for resources?
I don't have much experience with python, so I don't know.
 
Making them visible is purely xml.
Defining the specialist area is purely python.
Adding a slider to that area is again python. Depending on your experience with python, it can be a big or small issue. The default BTS code definitely don't have that and you have to rewrite that section.
 
Making them visible is purely xml.
Defining the specialist area is purely python.
Adding a slider to that area is again python. Depending on your experience with python, it can be a big or small issue. The default BTS code definitely don't have that and you have to rewrite that section.

Which file is responsible for specialist area? My python Xp is close to none but I'm ready to learn :)
 
While looking at the code I started to wonder if it really is the specialist area I have to edit or rather the resource area? :think:
Last night I did a quick testing making the greatprothet visible in the xml. It appeared behind the resource list.
I guess this is the part I need to edit, right?
PHP:
# Rise of Mankind 2.9 - resource bar
	def updateResourceStrings( self ):
		screen = CyGInterfaceScreen( "MainInterface", CvScreenEnums.MAIN_INTERFACE )
		xResolution = screen.getXResolution()
		yResolution = screen.getYResolution()
		pPlayer = gc.getPlayer(gc.getGame().getActivePlayer())
#		global bshowResourceBar

		if (RoMOpt.isResourceBarTypesAll()):
			for szBonus in bonusTypes:
				szName = "ResourceText" + szBonus
				screen.hide( szName )
			for szBonus in bonusTypes2:
				szName = "ResourceText" + szBonus
				screen.hide( szName )
			for szBonus in bonusTypes3:
				szName = "ResourceText" + szBonus
				screen.hide( szName )
			for szBonus in bonusTypes4:
				szName = "ResourceText" + szBonus
				screen.hide( szName )
			for szBonus in bonusAllTypes:
				szName = "ResourceText" + szBonus
				screen.hide( szName )
		elif (RoMOpt.isResourceBarTypesRush()):
			for szBonus in bonusRushTypes:
				szName = "ResourceText" + szBonus
				screen.hide( szName )
		elif (RoMOpt.isResourceBarTypesStrategic()):
			for szBonus in bonusStrategicTypes:
				szName = "ResourceText" + szBonus
				screen.hide( szName )
		elif (RoMOpt.isResourceBarTypesManufactured()):
			for szBonus in bonusManufacturedTypes:
				szName = "ResourceText" + szBonus
				screen.hide( szName )
		elif (RoMOpt.isResourceBarTypesFood()):
			for szBonus in bonusFoodTypes:
				szName = "ResourceText" + szBonus
				screen.hide( szName )
		elif (RoMOpt.isResourceBarTypesLuxury()):
			for szBonus in bonusLuxuryTypes:
				szName = "ResourceText" + szBonus
				screen.hide( szName )
				
		screen.hide( "ResourceBackground" )


		iWidth = 0
		iCount = 0
		iBtnHeight = 18
		yCoord = 85

		if (RoMOpt.isShowResourceBar()):
			if (RoMOpt.isResourceBarTypesAll()):
				if (not CyInterface().isCityScreenUp() and CyInterface().isScoresVisible() and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_HIDE_ALL and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_MINIMAP_ONLY and CyEngine().isGlobeviewUp() == False):
				
					for szBonus in bonusTypes:
						iBonus = gc.getInfoTypeForString(szBonus)
						szBuffer = u"<font=2>"
						szTempBuffer = ""
						if (pPlayer.getNumAvailableBonuses(iBonus) < 10):
							szTempBuffer += " "
						if(pPlayer.getNumAvailableBonuses(iBonus) == 0):
							szTempBuffer += u"%c: <color=255,0,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						elif(pPlayer.getNumAvailableBonuses(iBonus) == 1):
							szTempBuffer += u"%c: <color=255,255,255>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						else:
							szTempBuffer += u"%c: <color=0,255,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
#						if (pPlayer.getBonusImport(iBonus) == 1):
#							szTempBuffer += u"%c: <color=255,255,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						szBuffer = szBuffer + szTempBuffer
						szBuffer = szBuffer + "</font>"

						
						if ( CyInterface().determineWidth( szBuffer ) > iWidth ):
							iWidth = CyInterface().determineWidth( szBuffer )
						szName = "ResourceText" + szBonus
						screen.setText( szName, "ResourceBackground", szBuffer, CvUtil.FONT_RIGHT_JUSTIFY, 40, yCoord + (iCount * iBtnHeight) + 24, -0.3, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_PEDIA_JUMP_TO_BONUS, iBonus, -1 )
						screen.show( szName )
						iCount = iCount + 1
					iCount = 0

					for szBonus in bonusTypes2:
						iBonus = gc.getInfoTypeForString(szBonus)
						szBuffer = u"<font=2>"
						szTempBuffer = ""
						if (pPlayer.getNumAvailableBonuses(iBonus) < 10):
							szTempBuffer += " "
						if(pPlayer.getNumAvailableBonuses(iBonus) == 0):
							szTempBuffer += u"%c: <color=255,0,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						elif(pPlayer.getNumAvailableBonuses(iBonus) == 1):
							szTempBuffer += u"%c: <color=255,255,255>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						else:
							szTempBuffer += u"%c: <color=0,255,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						szBuffer = szBuffer + szTempBuffer
						szBuffer = szBuffer + "</font>"
						if ( CyInterface().determineWidth( szBuffer ) > iWidth ):
							iWidth = CyInterface().determineWidth( szBuffer )
						szName = "ResourceText" + szBonus
						screen.setText( szName, "ResourceBackground", szBuffer, CvUtil.FONT_RIGHT_JUSTIFY, 80, yCoord + (iCount * iBtnHeight) + 24, -0.3, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_PEDIA_JUMP_TO_BONUS, iBonus, -1 )
						screen.show( szName )
						iCount = iCount + 1
			
					iCount = 0

					for szBonus in bonusTypes3:
						iBonus = gc.getInfoTypeForString(szBonus)
						szBuffer = u"<font=2>"
						szTempBuffer = ""
						if (pPlayer.getNumAvailableBonuses(iBonus) < 10):
							szTempBuffer += " "
						if(pPlayer.getNumAvailableBonuses(iBonus) == 0):
							szTempBuffer += u"%c: <color=255,0,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						elif(pPlayer.getNumAvailableBonuses(iBonus) == 1):
							szTempBuffer += u"%c: <color=255,255,255>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						else:
							szTempBuffer += u"%c: <color=0,255,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						szBuffer = szBuffer + szTempBuffer
						szBuffer = szBuffer + "</font>"
						if ( CyInterface().determineWidth( szBuffer ) > iWidth ):
							iWidth = CyInterface().determineWidth( szBuffer )
						szName = "ResourceText" + szBonus
						screen.setText( szName, "ResourceBackground", szBuffer, CvUtil.FONT_RIGHT_JUSTIFY, 120, yCoord + (iCount * iBtnHeight) + 24, -0.3, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_PEDIA_JUMP_TO_BONUS, iBonus, -1 )
						screen.show( szName )
						iCount = iCount + 1
			
					iCount = 0

					for szBonus in bonusTypes4:
						iBonus = gc.getInfoTypeForString(szBonus)
						szBuffer = u"<font=2>"
						szTempBuffer = ""
						if (pPlayer.getNumAvailableBonuses(iBonus) < 10):
							szTempBuffer += " "
						if(pPlayer.getNumAvailableBonuses(iBonus) == 0):
							szTempBuffer += u"%c: <color=255,0,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						elif(pPlayer.getNumAvailableBonuses(iBonus) == 1):
							szTempBuffer += u"%c: <color=255,255,255>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						else:
							szTempBuffer += u"%c: <color=0,255,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						szBuffer = szBuffer + szTempBuffer
						szBuffer = szBuffer + "</font>"
						if ( CyInterface().determineWidth( szBuffer ) > iWidth ):
							iWidth = CyInterface().determineWidth( szBuffer )
						szName = "ResourceText" + szBonus
						screen.setText( szName, "ResourceBackground", szBuffer, CvUtil.FONT_RIGHT_JUSTIFY, 160, yCoord + (iCount * iBtnHeight) + 24, -0.3, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_PEDIA_JUMP_TO_BONUS, iBonus, -1 )
						screen.show( szName )
						iCount = iCount + 1
			
					iCount = 0
				
					screen.setPanelSize( "ResourceBackground", 6, yCoord + 18, (iWidth * 4) + 22, (iBtnHeight * 19) + 12 )
					screen.show( "ResourceBackground" )
					
			elif (RoMOpt.isResourceBarTypesRush()):
				if (not CyInterface().isCityScreenUp() and CyInterface().isScoresVisible() and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_HIDE_ALL and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_MINIMAP_ONLY and CyEngine().isGlobeviewUp() == False):
					for szBonus in bonusRushTypes:
						iBonus = gc.getInfoTypeForString(szBonus)
						szBuffer = u"<font=2>"
						szTempBuffer = ""
						if (pPlayer.getNumAvailableBonuses(iBonus) < 10):
							szTempBuffer += " "
						if(pPlayer.getNumAvailableBonuses(iBonus) == 0):
							szTempBuffer += u"%c: <color=255,0,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						elif(pPlayer.getNumAvailableBonuses(iBonus) == 1):
							szTempBuffer += u"%c: <color=255,255,255>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						else:
							szTempBuffer += u"%c: <color=0,255,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						szBuffer = szBuffer + szTempBuffer
						szBuffer = szBuffer + "</font>"
						if ( CyInterface().determineWidth( szBuffer ) > iWidth ):
							iWidth = CyInterface().determineWidth( szBuffer )
						szName = "ResourceText" + szBonus
						screen.setText( szName, "ResourceBackground", szBuffer, CvUtil.FONT_RIGHT_JUSTIFY, 40, yCoord + (iCount * iBtnHeight) + 24, -0.3, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_PEDIA_JUMP_TO_BONUS, iBonus, -1 )
						screen.show( szName )
						iCount = iCount + 1
						
					screen.setPanelSize( "ResourceBackground", 6, yCoord + 18, iWidth + 12, (iBtnHeight * iCount) + 12 )
					iCount = 0
					screen.show( "ResourceBackground" )

			elif (RoMOpt.isResourceBarTypesStrategic()):
				if (not CyInterface().isCityScreenUp() and CyInterface().isScoresVisible() and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_HIDE_ALL and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_MINIMAP_ONLY and CyEngine().isGlobeviewUp() == False):
					for szBonus in bonusStrategicTypes:
						iBonus = gc.getInfoTypeForString(szBonus)
						szBuffer = u"<font=2>"
						szTempBuffer = ""
						if (pPlayer.getNumAvailableBonuses(iBonus) < 10):
							szTempBuffer += " "
						if(pPlayer.getNumAvailableBonuses(iBonus) == 0):
							szTempBuffer += u"%c: <color=255,0,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						elif(pPlayer.getNumAvailableBonuses(iBonus) == 1):
							szTempBuffer += u"%c: <color=255,255,255>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						else:
							szTempBuffer += u"%c: <color=0,255,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						szBuffer = szBuffer + szTempBuffer
						szBuffer = szBuffer + "</font>"
						if ( CyInterface().determineWidth( szBuffer ) > iWidth ):
							iWidth = CyInterface().determineWidth( szBuffer )
						szName = "ResourceText" + szBonus
						screen.setText( szName, "ResourceBackground", szBuffer, CvUtil.FONT_RIGHT_JUSTIFY, 40, yCoord + (iCount * iBtnHeight) + 24, -0.3, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_PEDIA_JUMP_TO_BONUS, iBonus, -1 )
						screen.show( szName )
						iCount = iCount + 1
						
					screen.setPanelSize( "ResourceBackground", 6, yCoord + 18, iWidth + 12, (iBtnHeight * iCount) + 12 )
					iCount = 0
					screen.show( "ResourceBackground" )
					
			elif (RoMOpt.isResourceBarTypesManufactured()):
				if (not CyInterface().isCityScreenUp() and CyInterface().isScoresVisible() and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_HIDE_ALL and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_MINIMAP_ONLY and CyEngine().isGlobeviewUp() == False):
					for szBonus in bonusManufacturedTypes:
						iBonus = gc.getInfoTypeForString(szBonus)
						szBuffer = u"<font=2>"
						szTempBuffer = ""
						if (pPlayer.getNumAvailableBonuses(iBonus) < 10):
							szTempBuffer += " "
						if(pPlayer.getNumAvailableBonuses(iBonus) == 0):
							szTempBuffer += u"%c: <color=255,0,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						elif(pPlayer.getNumAvailableBonuses(iBonus) == 1):
							szTempBuffer += u"%c: <color=255,255,255>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						else:
							szTempBuffer += u"%c: <color=0,255,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						szBuffer = szBuffer + szTempBuffer
						szBuffer = szBuffer + "</font>"
						if ( CyInterface().determineWidth( szBuffer ) > iWidth ):
							iWidth = CyInterface().determineWidth( szBuffer )
						szName = "ResourceText" + szBonus
						screen.setText( szName, "ResourceBackground", szBuffer, CvUtil.FONT_RIGHT_JUSTIFY, 40, yCoord + (iCount * iBtnHeight) + 24, -0.3, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_PEDIA_JUMP_TO_BONUS, iBonus, -1 )
						screen.show( szName )
						iCount = iCount + 1
						
					screen.setPanelSize( "ResourceBackground", 6, yCoord + 18, iWidth + 12, (iBtnHeight * iCount) + 12 )
					iCount = 0
					screen.show( "ResourceBackground" )
					
					
			elif (RoMOpt.isResourceBarTypesFood()):
				if (not CyInterface().isCityScreenUp() and CyInterface().isScoresVisible() and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_HIDE_ALL and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_MINIMAP_ONLY and CyEngine().isGlobeviewUp() == False):
					for szBonus in bonusFoodTypes:
						iBonus = gc.getInfoTypeForString(szBonus)
						szBuffer = u"<font=2>"
						szTempBuffer = ""
						if (pPlayer.getNumAvailableBonuses(iBonus) < 10):
							szTempBuffer += " "
						if(pPlayer.getNumAvailableBonuses(iBonus) == 0):
							szTempBuffer += u"%c: <color=255,0,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						elif(pPlayer.getNumAvailableBonuses(iBonus) == 1):
							szTempBuffer += u"%c: <color=255,255,255>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						else:
							szTempBuffer += u"%c: <color=0,255,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						szBuffer = szBuffer + szTempBuffer
						szBuffer = szBuffer + "</font>"
						if ( CyInterface().determineWidth( szBuffer ) > iWidth ):
							iWidth = CyInterface().determineWidth( szBuffer )
						szName = "ResourceText" + szBonus
						screen.setText( szName, "ResourceBackground", szBuffer, CvUtil.FONT_RIGHT_JUSTIFY, 40, yCoord + (iCount * iBtnHeight) + 24, -0.3, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_PEDIA_JUMP_TO_BONUS, iBonus, -1 )
						screen.show( szName )
						iCount = iCount + 1
						
					screen.setPanelSize( "ResourceBackground", 6, yCoord + 18, iWidth + 12, (iBtnHeight * iCount) + 12 )
					iCount = 0
					screen.show( "ResourceBackground" )
			elif (RoMOpt.isResourceBarTypesLuxury()):
				if (not CyInterface().isCityScreenUp() and CyInterface().isScoresVisible() and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_HIDE_ALL and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_MINIMAP_ONLY and CyEngine().isGlobeviewUp() == False):
					for szBonus in bonusLuxuryTypes:
						iBonus = gc.getInfoTypeForString(szBonus)
						szBuffer = u"<font=2>"
						szTempBuffer = ""
						if (pPlayer.getNumAvailableBonuses(iBonus) < 10):
							szTempBuffer += " "
						if(pPlayer.getNumAvailableBonuses(iBonus) == 0):
							szTempBuffer += u"%c: <color=255,0,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						elif(pPlayer.getNumAvailableBonuses(iBonus) == 1):
							szTempBuffer += u"%c: <color=255,255,255>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						else:
							szTempBuffer += u"%c: <color=0,255,0>%d</color>" %(gc.getBonusInfo(iBonus).getChar(), pPlayer.getNumAvailableBonuses(iBonus))
						szBuffer = szBuffer + szTempBuffer
						szBuffer = szBuffer + "</font>"
						if ( CyInterface().determineWidth( szBuffer ) > iWidth ):
							iWidth = CyInterface().determineWidth( szBuffer )
						szName = "ResourceText" + szBonus
						screen.setText( szName, "ResourceBackground", szBuffer, CvUtil.FONT_RIGHT_JUSTIFY, 40, yCoord + (iCount * iBtnHeight) + 24, -0.3, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_PEDIA_JUMP_TO_BONUS, iBonus, -1 )
						screen.show( szName )
						iCount = iCount + 1
						
					screen.setPanelSize( "ResourceBackground", 6, yCoord + 18, iWidth + 12, (iBtnHeight * iCount) + 12 )
					iCount = 0
					screen.show( "ResourceBackground" )
		yCoord = 85
		iCount = 0
# Rise of Mankind 2.9 - resource bar

Maybe decreasing
iBtnHeight = 18
or
yCoord = 85
would help?
 
Because the default BTS code didn't expect modders to add new specialists. New specialists added are simply extended upwards, into the resource area.

If you only intend to add 1 or 2 specialists, the simplest way is to reduce the resource area to make space.

To solve it permanently for the future, the entire specialist section has to be redesigned to have a slider to accommodate any number of specialists without any modifications to python.
 
I tried to spice the game loading by creating a lot of load screens. Did edit CIV4MainMenus.xml:

Code:
		<MainMenu>
			<Type>MAIN_MENU_VANILLA</Type>
			<Description>Civilization IV</Description>
			<Scene>MAINMENU_SCENE_VANILLA</Scene>
			<SceneNoShader>MAINMENU_SCENE_VANILLA</SceneNoShader>
			<Soundtrack>AS2D_OPENING_MENU_VANILLA</Soundtrack>
			<Loading>MAINMENU_LOAD</Loading>
<!--            <Loading1>MAINMENU_LOAD</Loading1>
            <Loading2>MAINMENU_LOAD</Loading2>
            <Loading3>MAINMENU_LOAD</Loading3>
            <Loading4>MAINMENU_LOAD</Loading4>-->
            <Loading1>CHRONICLES_LOAD_01</Loading1>
            <Loading2>CHRONICLES_LOAD_02</Loading2>
            <Loading3>CHRONICLES_LOAD_03</Loading3>
            <Loading4>CHRONICLES_LOAD_04</Loading4>
            <Loading5>CHRONICLES_LOAD_05</Loading5>
            <Loading6>CHRONICLES_LOAD_06</Loading6>
            <Loading7>CHRONICLES_LOAD_07</Loading7>
            <Loading8>CHRONICLES_LOAD_08</Loading8>
            <Loading9>CHRONICLES_LOAD_09</Loading9>
            <Loading10>CHRONICLES_LOAD_10</Loading10>
            <Loading11>CHRONICLES_LOAD_11</Loading11>
            <Loading12>CHRONICLES_LOAD_12</Loading12>
            <Loading13>CHRONICLES_LOAD_13</Loading13>
            <Loading14>CHRONICLES_LOAD_14</Loading14>
            <Loading15>CHRONICLES_LOAD_15</Loading15>
            <Loading16>CHRONICLES_LOAD_16</Loading16>
            <Loading17>CHRONICLES_LOAD_17</Loading17>
            <Loading18>CHRONICLES_LOAD_18</Loading18>
            <Loading19>CHRONICLES_LOAD_19</Loading19>
            <Loading20>CHRONICLES_LOAD_20</Loading20>
            <Loading21>CHRONICLES_LOAD_21</Loading21>
            <Loading22>CHRONICLES_LOAD_22</Loading22>
            <Loading23>CHRONICLES_LOAD_23</Loading23>
            <Loading24>CHRONICLES_LOAD_24</Loading24>
            <Loading25>CHRONICLES_LOAD_25</Loading25>
            <Loading26>CHRONICLES_LOAD_26</Loading26>
            <Loading27>CHRONICLES_LOAD_27</Loading27>
			<LoadingSlideshow>MAINMENU_SLIDESHOW_LOAD</LoadingSlideshow>
		</MainMenu>
but it seems to be limited to 4 :( Is there a way to trick that?


p.s.:
I asked this first in the Quick Modding Questions Thread and learned that random loadscreens aren't part of Civ4.
 
Hey guys :D
I understand AND2 have a feature that allows savegames to be compatible even after new units/buildings/promotions etc have been added.
Anyone would like to point me to where in the code this have been enabled, so I can steal gracefully borrow it for VIP?
 
Hey guys :D
I understand AND2 have a feature that allows savegames to be compatible even after new units/buildings/promotions etc have been added.
Anyone would like to point me to where in the code this have been enabled, so I can steal gracefully borrow it for VIP?

I'm not sure when it's been added but I think Afforess did it a long time ago. I'm not even sure if we imported that feature from C2C or the opposite. I also think it's been improved through a long time, adding more content that was allowed through different revisions. Probably that part of the code is in the load/save functions but I can't check where it's located because I'm away from my modding pc until the end of the month.
 
How would I modify ROS-AND to allow for great people to discover more than 1 technology in the same turn? Currently, the first great person would discover 1 tech, then the second great person would discover the SAME tech. I want it to move to the next technology to be discovered. Thanks.
 
I tried to spice the game loading by creating a lot of load screens. Did edit CIV4MainMenus.xml:but it seems to be limited to 4 :( Is there a way to trick that?
I have added this feature by adding new line to this file AND to the DLL. Unfortunately, it has to be edited.
It was a basic check on 4 first lines but I'm sure it can be edited easily to get the number of loading screen.
 
I have added this feature by adding new line to this file AND to the DLL. Unfortunately, it has to be edited.
It was a basic check on 4 first lines but I'm sure it can be edited easily to get the number of loading screen.
Good to know, I can take care of that I think. :)
 
How would I modify ROS-AND to allow for great people to discover more than 1 technology in the same turn? Currently, the first great person would discover 1 tech, then the second great person would discover the SAME tech. I want it to move to the next technology to be discovered. Thanks.
You have to wait for the next turn, I'm not sure how it works in BTS. I think it's an exploit using many of them in the same turn.
 
45°38'N-13°47'E;14346607 said:
Good to know, I can take care of that I think. :)
The easiest way to achieve that is to add a new xml tag where you define the number of loading screen to check, then in the DLL, you load this value and loop through the loading screen tags based on the value defined.
The drawback of this is that it can lead the game to crash if you define a higher value than the number of lines defined, but that's an easy fix, so no problem :)
 
The easiest way to achieve that is to add a new xml tag where you define the number of loading screen to check, then in the DLL, you load this value and loop through the loading screen tags based on the value defined.
The drawback of this is that it can lead the game to crash if you define a higher value than the number of lines defined, but that's an easy fix, so no problem :)
OK, thanks for the advice! :)
 
I have created a mini-mod for Civ5 whereby I am leaning on the Civ4 tech tree design. Being a long time player of AND, I was wondering if I could use / borrow some ideas from AND's tech tree / buildings. I would of course fully credit this mod as the source of a lot of my ideas should you be up for it.
 
Top Bottom