Modmodding Q&A Thread

Search in the C++ source: "Polish UP", "Chinese UP", "Holy Roman UP" (both), "French UP", "Indian UP" (finds both old UPs), "Harappan UP", "Mongol UP".

Search in UniquePowers.py: "def indonesianUP", "def onChangeWar" (also Mongol UP).

I did not remember the location of any of these by the way and had to make use of the search function. Did you look at all? My commentary is actually quite consistent and extensive.
 
Search in the C++ source: "Polish UP", "Chinese UP", "Holy Roman UP" (both), "French UP", "Indian UP" (finds both old UPs), "Harappan UP", "Mongol UP".

Search in UniquePowers.py: "def indonesianUP", "def onChangeWar" (also Mongol UP).

I did not remember the location of any of these by the way and had to make use of the search function. Did you look at all? My commentary is actually quite consistent and extensive.

Lol I don't know why I didn't think of that. Your documentation is plenty thorough. Thanks!
 
I know nothing about C++. I want the code to play only if the terrain is not the hill terrain but currently the emboldened text does nothing.
Code:
	if (!terrain.isFound())
	{
[B]		if (eTerrain != GC.getInfoTypeForString("TERRAIN_HILL"));[/B]
		{
			szBuffer.append(gDLL->getText("TXT_KEY_TERRAIN_NO_CITIES"));
			bool bFirst = true;
			if (terrain.isFoundCoast())
			{
				szBuffer.append(gDLL->getText("TXT_KEY_TERRAIN_COASTAL_CITIES"));
				bFirst = false;
			}
			if (terrain.isFoundFreshWater())
			{
				szBuffer.append(gDLL->getText("TXT_KEY_TERRAIN_FRESH_WATER_CITIES"));
				bFirst = false;
			}
		}
	}
}
Can you explain how this code works? (and how I could manually enter -1 food and +1 production, if you feel inspired)
Code:
	{
		szBuffer.append(terrain.getDescription());

		for (int iI = 0; iI < NUM_YIELD_TYPES; ++iI)
		{
			aiYields[iI] = terrain.getYield(iI);
		}
		setYieldChangeHelp(szBuffer, L"", L"", L"", aiYields);
	}
Thanks
 
I think I told you before, this is because hill is not a terrain type and TERRAIN_HILL is not defined.
 
I don't know C++ but doesn't this mean there is a 'terrain" hill and "plot type" hill? The terrain hill doesn't do anything (as fair as I know) but I'm using it as a dummy terrain to represent the hill "plot type" in the civilopedia (That's why I want to assign text to the hill and mountain terrain).
Code:
enum TerrainTypes						// Exposed to Python
{
	NO_TERRAIN = -1,

	TERRAIN_GRASS,
	TERRAIN_PLAINS,
	TERRAIN_DESERT,
	TERRAIN_TUNDRA,
	TERRAIN_SNOW,
	TERRAIN_COAST,
	TERRAIN_OCEAN,
	TERRAIN_PEAK,
	TERRAIN_HILL,
	TERRAIN_MARSH,
};

enum PlotTypes							// Exposed to Python
{
	NO_PLOT = -1,

	PLOT_PEAK,
	PLOT_HILLS,
	PLOT_LAND,
	PLOT_OCEAN,

#ifdef _USRDLL
	NUM_PLOT_TYPES
#endif
};
Spoiler :
Code:
		<TerrainInfo>
			<Type>TERRAIN_PEAK</Type>
			<Description>TXT_KEY_TERRAIN_PEAK</Description>
			<Civilopedia>TXT_KEY_TERRAIN_PEAK_PEDIA</Civilopedia>
			<ArtDefineTag>ART_DEF_TERRAIN_PEAK</ArtDefineTag>
			<Yields/>
			<RiverYieldChange/>
			<HillsYieldChange/>
			<bWater>1</bWater>
			<bImpassable>0</bImpassable>
			<bFound>0</bFound>
			<bFoundCoast>0</bFoundCoast>
			<bFoundFreshWater>0</bFoundFreshWater>
			<iMovement>1</iMovement>
			<iSeeFrom>0</iSeeFrom>
			<iSeeThrough>0</iSeeThrough>
			<iBuildModifier>0</iBuildModifier>
			<iDefense>0</iDefense>
			<Button>Art/Interface\Buttons\WorldBuilder\Terrain_Peak.dds</Button>
			<FootstepSounds>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_HUMAN</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_HUMAN_LOW</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_ANIMAL</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_ANIMAL_LOW</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_HORSE</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_WHEELS</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_WHEELS</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_WHEELS_2</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_WHEELS_2</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_TANK</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_TANK</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_MOD_ARMOUR</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_MOD_ARMOUR</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_OCEAN1</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_OCEAN1</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_OCEAN2</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_OCEAN2</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_DESTOYER</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_DESTROYER</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_IRONCLAD</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_IRONCLAD</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_TRANSPORT</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_TRANSPORT</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_SUBMARINE</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_SUBMARINE</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_GUNSHIP</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_GUNSHIP</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_ARTILLERY</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_ARTILLERY</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_WHEELS_3</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_WHEELS_3</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
			</FootstepSounds>
			<bGraphicalOnly>1</bGraphicalOnly>
		</TerrainInfo>
		<TerrainInfo>
			<Type>TERRAIN_HILL</Type>
			<Description>TXT_KEY_TERRAIN_HILL</Description>
			<Civilopedia>TXT_KEY_TERRAIN_HILL_PEDIA</Civilopedia>
			<ArtDefineTag>ART_DEF_TERRAIN_HILL</ArtDefineTag>
			<Yields/>
			<RiverYieldChange/>
			<HillsYieldChange/>
			<bWater>1</bWater>
			<bImpassable>0</bImpassable>
			<bFound>0</bFound>
			<bFoundCoast>0</bFoundCoast>
			<bFoundFreshWater>0</bFoundFreshWater>
			<iMovement>1</iMovement>
			<iSeeFrom>0</iSeeFrom>
			<iSeeThrough>0</iSeeThrough>
			<iBuildModifier>0</iBuildModifier>
			<iDefense>0</iDefense>
			<Button>Art/Interface\Buttons\WorldBuilder\Terrain_Hill.dds</Button>
			<FootstepSounds>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_HUMAN</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_HUMAN_LOW</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_ANIMAL</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_ANIMAL_LOW</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_HORSE</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_WHEELS</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_WHEELS</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_WHEELS_2</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_WHEELS_2</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_TANK</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_TANK</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_MOD_ARMOUR</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_MOD_ARMOUR</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_OCEAN1</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_OCEAN1</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_OCEAN2</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_OCEAN2</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_DESTOYER</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_DESTROYER</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_IRONCLAD</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_IRONCLAD</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_TRANSPORT</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_TRANSPORT</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_SUBMARINE</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_SUBMARINE</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_GUNSHIP</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_GUNSHIP</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_ARTILLERY</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_ARTILLERY</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_WHEELS_3</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_WHEELS_3</FootstepAudioType>
					<FootstepAudioScript/>
				</FootstepSound>
			</FootstepSounds>
			<bGraphicalOnly>1</bGraphicalOnly>
		</TerrainInfo>
		<TerrainInfo>
			<Type>TERRAIN_MARSH</Type>
			<Description>TXT_KEY_TERRAIN_WETLAND</Description>
			<Civilopedia>TXT_KEY_TERRAIN_WETLAND_PEDIA</Civilopedia>
			<ArtDefineTag>ART_DEF_TERRAIN_MARSH</ArtDefineTag>
			<Yields>
				<iYield>0</iYield>
				<iYield>0</iYield>
				<iYield>0</iYield>
			</Yields>
			<RiverYieldChange/>
			<HillsYieldChange/>
			<bWater>0</bWater>
			<bImpassable>0</bImpassable>
			<bFound>0</bFound>
			<bFoundCoast>0</bFoundCoast>
			<bFoundFreshWater>0</bFoundFreshWater>
			<iMovement>2</iMovement>
			<iSeeFrom>0</iSeeFrom>
			<iSeeThrough>0</iSeeThrough>
			<iBuildModifier>0</iBuildModifier>
			<iDefense>0</iDefense>
			<iCultureCost>5</iCultureCost>
			<Button>Art/Interface/Buttons/BaseTerrain/Marsh.dds</Button>
			<FootstepSounds>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_HUMAN</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_FOOT_UNIT_MUD</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_HUMAN_LOW</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_FOOT_UNIT_LOW_MUD</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_ANIMAL</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_ANIMAL_FOOT_LARGE_MUD</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_ANIMAL_LOW</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_ANIMAL_FOOT_LARGE_LOW_MUD</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>FOOTSTEP_AUDIO_HORSE</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_HORSE_RUN</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_WHEELS</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_CHARIOT_LOOP</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_WHEELS</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_CHARIOT_END</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_WHEELS_2</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_WAR_CHARIOT_LOOP</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_WHEELS_2</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_WAR_CHARIOT_END</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_TANK</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_TANK_LOOP</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_TANK</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_TANK_END</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_MOD_ARMOUR</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_MOD_ARMOUR_LOOP</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_MOD_ARMOUR</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_MOD_ARMOUR_END</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_OCEAN1</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_OCEAN_LOOP1</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_OCEAN1</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_OCEAN_END1</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_OCEAN2</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_OCEAN_LOOP1</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_OCEAN2</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_OCEAN_END2</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_DESTOYER</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_DESTROYER_RUN_LOOP</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_DESTROYER</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_DESTROYER_RUN_END</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_IRONCLAD</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_IRONCLAD_RUN_LOOP</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_IRONCLAD</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_IRONCLAD_RUN_END</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_TRANSPORT</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_TRANSPORT_RUN_LOOP</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_TRANSPORT</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_TRANSPORT_RUN_END</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_SUBMARINE</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_SUBMARINE_RUN_LOOP</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_SUBMARINE</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_SUBMARINE_RUN_END</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_GUNSHIP</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_GUNSHIP_RUN_LOOP</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_GUNSHIP</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_GUNSHIP_RUN_END</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_ARTILLERY</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_ARTILLERY_RUN_LOOP</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_ARTILLERY</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_ARTILLERY_RUN_END</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>LOOPSTEP_WHEELS_3</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_TREBUCHET_RUN</FootstepAudioScript>
				</FootstepSound>
				<FootstepSound>
					<FootstepAudioType>ENDSTEP_WHEELS_3</FootstepAudioType>
					<FootstepAudioScript>AS3D_UN_TREBUCHET_STOP</FootstepAudioScript>
				</FootstepSound>
			</FootstepSounds>
			<WorldSoundscapeAudioScript>ASSS_OCEAN_SELECT_AMB</WorldSoundscapeAudioScript>
			<bGraphicalOnly>0</bGraphicalOnly>
		</TerrainInfo>
 

Attachments

  • 2015-05-07_00001.jpg
    2015-05-07_00001.jpg
    199.1 KB · Views: 48
Oh right. Not sure why this exists (maybe something to do with textures?), but in any case no tile in the game actually has the terrain type hill.
 
Oh right. Not sure why this exists (maybe something to do with textures?), but in any case no tile in the game actually has the terrain type hill.

Yes, but the hill and mountain tiles in game already have the correct stat displays and I don't need to change them. So, I am using the dummy terrain that doesn't do anything to show what the hill plot type does in the terrain civilopedia page. (see last post image). So what I wanted to know is why doesn't this the emboldened code do anything (not because the terrain doesn't exist because I have already added some text to the terrain using C++ so it must exist in the C++).
Code:
	if (!terrain.isFound())
	{
		if (eTerrain != GC.getInfoTypeForString("TERRAIN_HILL"));
		{
			szBuffer.append(gDLL->getText("TXT_KEY_TERRAIN_NO_CITIES"));
			bool bFirst = true;
			if (terrain.isFoundCoast())
			{
				szBuffer.append(gDLL->getText("TXT_KEY_TERRAIN_COASTAL_CITIES"));
				bFirst = false;
			}
			if (terrain.isFoundFreshWater())
			{
				szBuffer.append(gDLL->getText("TXT_KEY_TERRAIN_FRESH_WATER_CITIES"));
				bFirst = false;
			}
		}
	}
}
 
Without proper context of the method, I'm unable to tell you. This is really just a debugging problem in my opinion, so not really what this thread is for.
 
Where is the amount of experience required for a promotion stored? I'm trying to reduce the experience required (like the Charismatic trait).
 
Where is the amount of experience required for a promotion stored? I'm trying to reduce the experience required (like the Charismatic trait).
Follow CvUnit::experienceNeeded().
 
Where are espionage yields for a city calculated? When I tried searching CvCity for the espionage yield, I only found espionage damage.
 
CvCity::getCommerceRate() and then by type.
 
Is it possible to call on a specific civ's name in a non-RFC mod? If not, how would one program it in (if it is possible without the scenario work that Rhye did)? Couldn't one hypothetically put a id number in each civ in the XML and have the DLL fetch that?
 
Is it possible to call on a specific civ's name in a non-RFC mod? If not, how would one program it in (if it is possible without the scenario work that Rhye did)? Couldn't one hypothetically put a id number in each civ in the XML and have the DLL fetch that?

You could just get the infotype from string, for example:

Code:
if (getCivilizationType() == (CivilizationTypes)GC.getInfoTypeForString("CIVILIZATION_VILLAGE"))

or whatever your specific civilization is called in the XML.
 
How would I add Varietas Delectat to a mod? I'm able to get into the archives of the installer for the graphics pack.
 
Is it possible to call on a specific civ's name in a non-RFC mod? If not, how would one program it in (if it is possible without the scenario work that Rhye did)? Couldn't one hypothetically put a id number in each civ in the XML and have the DLL fetch that?
You could just get the infotype from string, for example:

Code:
if (getCivilizationType() == (CivilizationTypes)GC.getInfoTypeForString("CIVILIZATION_VILLAGE"))

or whatever your specific civilization is called in the XML.
Yes, the actual ID of a civilization is its CIVILIZATION_X tag. You can either use getInfoTypeForString to get the numeric ID of the civilization, or define it as a constant somewhere first. It corresponds to CvPlayer::getCivilizationType().

How would I add Varietas Delectat to a mod? I'm able to get into the archives of the installer for the graphics pack.
I suggest you make use of the VD module for DoC. Most of it is modular and therefore compatible with any mod. It also overwrites a few XML files in the actual mod, if you do a diff of these changes it should be easy to see what else is needed to run VD.
 
It determines the free number of settlers (plus ships if necessary) AI civ receive.
 
Back
Top Bottom