I tried debugging, setting a breaktrap at getInfoTypeForString, triggering only when szType == "TERRAIN_GRASS". It didn't break.
well I got the debugger running (thanks once again to asaf's tutorial) but my poor excuse for a computer freezes at the breakpoint. (yes I know I need a new computer and I will get one soon I promise) I tried it with civ in fullscreen and windowed. I'm wondering if I put the breakpoint in exactly the right spot, since I don't know much about C++.
I was putting the breakpoint on the line beginning with "int" after the elapsed turns and advanced start line. If there is a better place please let me know.
If anyone could find it in their heart to degug it for six turns with a breakpoint at one of those lines I'd be forever in their debt.
No, it does not happen more than once, but it then complains about FEATURE_FALLOUT and CIVILIZATION_BARBARIAN. Then the mod crashes for no given reason.
I also got this message at the start:
Assert Failed
File: CvPlayer.cpp
Line: 5134
Expression: GC.getCivilizationInfo(getCivilizationType()).getCivilizationUnits(eUnitClass) == eUnit
Message:
----------------------------------------------------------
Yes, dll modifications. I have been nosing around, and I think the problem is in Python. I already found the grass problem and fixed it. I decided to reinstate the barbarian civ for now to make things easier. Do you have any idea where fallout might be mentioned?
I have discovered the exact conditions under which the extra religion founding takes place:
if the already founded religions have founding techs assigned to them in the xml, then any civ with any of those techs, starting with the weakest, will get a religion on turn 6. if the already founded religions have no tech prereqs in the xml, then any civ, even one with no techs, will get a religion.
since this seems to be there to help the AI I thought it might also be dependent on difficulty level but I checked "Settler" and the effect still occurred.
my solution for now is to make FUTURE_TECH the founding tech of the already founded religions, but if anyone can think of a better way I'd love to hear it.
<PromotionInfo>
<Type>PROMOTION_RANGE3</Type>
<Description>TXT_KEY_PROMOTION_RANGE3</Description>
<Sound>AS2D_IF_LEVELUP</Sound>
<LayerAnimationPath>NONE</LayerAnimationPath>
<PromotionPrereq>PROMOTION_RANGE2</PromotionPrereq>
<PromotionPrereqOr1>NONE</PromotionPrereqOr1>
<PromotionPrereqOr2>NONE</PromotionPrereqOr2>
<TechPrereq>NONE</TechPrereq>
<StateReligionPrereq>NONE</StateReligionPrereq>
<bLeader>0</bLeader>
<bBlitz>0</bBlitz>
<bAmphib>0</bAmphib>
<bRiver>0</bRiver>
<bEnemyRoute>0</bEnemyRoute>
<bAlwaysHeal>0</bAlwaysHeal>
<bHillsDoubleMove>0</bHillsDoubleMove>
<bImmuneToFirstStrikes>0</bImmuneToFirstStrikes>
<iVisibilityChange>0</iVisibilityChange>
<iMovesChange>0</iMovesChange>
<iMoveDiscountChange>0</iMoveDiscountChange>
<iAirRangeChange>1</iAirRangeChange>
<iInterceptChange>10</iInterceptChange>
<iEvasionChange>0</iEvasionChange>
<iWithdrawalChange>0</iWithdrawalChange>
<iCargoChange>0</iCargoChange>
<iCollateralDamageChange>0</iCollateralDamageChange>
<iBombardRateChange>0</iBombardRateChange>
<iFirstStrikesChange>0</iFirstStrikesChange>
<iChanceFirstStrikesChange>0</iChanceFirstStrikesChange>
<iEnemyHealChange>0</iEnemyHealChange>
<iNeutralHealChange>0</iNeutralHealChange>
<iFriendlyHealChange>0</iFriendlyHealChange>
<iSameTileHealChange>0</iSameTileHealChange>
<iAdjacentTileHealChange>0</iAdjacentTileHealChange>
<iCombatPercent>0</iCombatPercent>
<iCityAttack>0</iCityAttack>
<iCityDefense>0</iCityDefense>
<iHillsAttack>0</iHillsAttack>
<iHillsDefense>0</iHillsDefense>
<iKamikazePercent>0</iKamikazePercent>
<iRevoltProtection>0</iRevoltProtection>
<iCollateralDamageProtection>0</iCollateralDamageProtection>
<iPillageChange>0</iPillageChange>
<iUpgradeDiscount>0</iUpgradeDiscount>
<iExperiencePercent>0</iExperiencePercent>
<TerrainAttacks/>
<TerrainDefenses/>
<FeatureAttacks/>
<FeatureDefenses/>
<UnitCombatMods/>
<DomainMods/>
<TerrainDoubleMoves/>
<FeatureDoubleMoves/>
<UnitCombats>
<UnitCombat>
<UnitCombatType>UNITCOMBAT_AIR</UnitCombatType>
<bUnitCombat>1</bUnitCombat>
</UnitCombat>
</UnitCombats>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
<Button>C:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\RANGE3.dds</Button>
</PromotionInfo>