Bug Reports

Eh Phungus
Yeah the changes 1.00 to 1.01 SDK:
CvUnit.cpp
CvEnums.h
CvPlayer.h
CvPlayerAI.cpp
CvPlayerAI.h
CvEnumsInterface.cpp
CyPlayer.cpp
CyPlayer.h
CyPlayerInterface1.cpp
CvUnitAI.cpp
CyGame.cpp
CyGame.h
CyGameInterface.cpp

It get's confusing so suggest you just download the entire 1.01 SDK and compile that. It would make it a lot simpler for you to locate files and changes with something like WinMerge. For example, if you compared RevDCM1.00 to 1.01, Winmerge would point you to the exact location of those files like CvDiplomacy.py.
Cheers.
 
Noticed small text element bug:

"The %s have decided to give up their independence and join the %s!"

text element used: TXT_KEY_REV_MESS_ASSIMILATE in RevolutionDLLText.xml
in the source: CvPlayer.cpp line 21150

Bug: civilization names are not shown correctly, looks like %s is wrong in the text element (maybe something like %s1_CivName would be correct?)

This bug occurred while playing Rise of Mankind's newest version but those particular sdk sections and text elements are the same as in RevDCM 1.00.
 

Attachments

  • Civ4ScreenShot0139.JPG
    Civ4ScreenShot0139.JPG
    209.2 KB · Views: 67
Thanks Zapp. I've noticed this and a couple of small one's as well. I've got this problem with "TXT_KEY_REV_AND" showing as text instead of "and" although for the life of me, I do not understand why and apparently it shows not on all computers. Sometimes wonder whether we are pushing the boundaries of the XML text system.
Cheers.
 
Please check the CvInfo.cpp! Is this really right?

PHP:
	stream->Write(&m_bCanBeRebel);
	stream->Write(&m_bCanRebelCapture);
	stream->Write(&m_bCannotDefect);
	stream->Write(&m_bCanQuellRebellion);
PHP:
	stream->Write(&m_iRevIdxLocal);
	stream->Write(&m_iRevIdxNational);
	stream->Write(&m_iRevIdxHolyCityGood);
	stream->Write(&m_iRevIdxHolyCityBad);
	stream->Write(&m_iRevIdxSwitchTo);
	stream->Write(&m_fRevIdxNationalityMod);
	stream->Write(&m_fRevIdxBadReligionMod);
	stream->Write(&m_fRevIdxGoodReligionMod);
	stream->Write(&m_fRevIdxDistanceMod);
	stream->Write(&m_fRevViolentMod);
	stream->Write(&m_iRevReligiousFreedom);
	stream->Write(&m_iRevLaborFreedom);
	stream->Write(&m_iRevEnvironmentalProtection);
	stream->Write(&m_iRevDemocracyLevel);

	stream->Write(&m_bIsCommunism);
	stream->Write(&m_bIsFreeSpeech);
	stream->Write(&m_bCanDoElection);

I expected it without &.
 
Thanks Zapp. I've noticed this and a couple of small one's as well. I've got this problem with "TXT_KEY_REV_AND" showing as text instead of "and" although for the life of me, I do not understand why and apparently it shows not on all computers. Sometimes wonder whether we are pushing the boundaries of the XML text system.
Cheers.
I've noticed the AND problem as well at least once, just didn't mention it as you already knew about it.
 
I recently had a problem with my computer. It had a virus that I couldn't get off. So I brought it to bestbuy and they ran a scan and the corrupted file was in Civilization IV. Now the game obviously doesn't come with a virus so the only way it could have gotten in was though downloading a mod. I'm curious whether any of you have had a problem and I think it would be helpful if anyone here could explore whether your mod has a virus in it or whether one of the downloading sites have a virus in them that caused it to be transferred to my computer.
 
Now the game obviously doesn't come with a virus so the only way it could have gotten in was though downloading a mod

Thanks. This is the first time it has been reported to my knowledge. A virus can arrive from many different sources and attach to any executable on your computer. The final destination of the virus is not necessarily the source of the virus keep that in mind. It may not have anything to do with Civfanatics or this mod. Let's wait and see if more reports come in.

Cheers.
 
Even though this only applies to mods, I'm still going to consider it a bug, and figure you guys would want to fix it anyway, since this mod is frequently used as a base mod for other mods.

I've added in some legend units (units that can only be built once), and other then the AI being ******** with them, they seemed to be fine. Was just running through another test game, watching the AI build it's empires, when a barbarian civ got some reinforcements and recieved 4 legend units of the same type. I don't think you guys want Revolutions to cause units that are set as maxglobaltype 1 to be spawned multiple times for sure. To be honest, I'm fine with them spawning for barb civs, I've run through about 2 full test games so far, and a full game I actually played, and this is the first time I've seen a barb civ get them for reinforcements, or when spawning, so if it happens that's all good. But the fact they can spawn more then once, when clearly defined in the XML there should only be 1, is a bug.

How could I correct this on my end, and will the be fixed in the official version for mod compatibility?
 
I don't know anything about coding, but my guess is that the legend unit was the best defender at the time, and the python spawn code for barbciv looks for best defender without checking for max global instances.
 
In the latest versions, it seems like all barbs are warriors. I thought that perhaps it was a bug in WolfRevolution, but Phungus says he's noticed the problem in the base RevDCM. I'm surprised nobody's noticed it but I play with significantly increased barbs so it's noticeable (Note: I deleted most of the restrictions for barbarian unit creation in the xml, so it's not the case that I'm accidentally blocking their creation via xml).
 
I play straight RevDCM. Current game on version 101 barbs emerged as warriors and later axemen and swordsmen. Then around 1600-1700AD they stopped coming altogether however they may still come. Not sure how to help on your observed problem other than the barbs have always been pretty weak.
Cheers.
 
There's certainly nothing in RevDCM that changed this directly that I'm aware of ... the code which chooses how to spawn barb units in the SDK is unchanged. It depends on what tech the barb player knows though, and the barb player's tech rate depends on what fraction of living civs know the techs it doesn't have already. If you've got a lot of civs spawning earlier in you particular setup and you've tweaked some settings so they're particularly backward, then the barb players tech rate could be impacted.

Another thing to try would be going into the world builder, deleting a lot of barb warriors, and then watching what they get replaced with. It's possible that with your amped up barb spawning, the barb player fills up its quota of units with warriors and then the rate at which they die off is proportional to the rate of claiming the wilderness by the main players, so that no new barb units are actually being spawned. Just a thought.
 
Another thing to try would be going into the world builder, deleting a lot of barb warriors, and then watching what they get replaced with. It's possible that with your amped up barb spawning, the barb player fills up its quota of units with warriors and then the rate at which they die off is proportional to the rate of claiming the wilderness by the main players, so that no new barb units are actually being spawned. Just a thought.

Well, I've set the iBarbarianDefenders to 15, so they'll start with 15 units when a city spawns. I've seen a city spawn near my borders, and when I move to get LOS, it's 15 Warriors (but this is in the Medieval Era, so they should be longbows at least). As I said, I'm using BST (mod with RevDCM at the base) but Phungus told me that the issue was present in straight RevDCM - apparently it really is something he's done.
 
Exceptions2.jpg


My CvGameUtils is modded to include Leonardo's workshop, so here is the segment of code it's pointing to:
Code:
	def getRevTrend(self, pCity):
		[B]divisor = RevInstances.RevolutionInst.revInstigatorThreshold[/B]
		revIndex = pCity.getRevolutionIndex()
		deltaTrend = revIndex - pCity.getRevIndexAverage()
		revIndex = min([revIndex, divisor])
		if deltaTrend != 0:
			deltaTrend = (deltaTrend*max([abs(deltaTrend),divisor/100+1]))/abs(2*deltaTrend)
		return deltaTrend
Line 709 bolded
 
Revolutions were on.
 
Someone brought up the fact that gifting a city seems to trip the loosing a city rev penalty here:
http://forums.civfanatics.com/showthread.php?t=320510

Basically he gifted his conquered vassal's capital back and his RevIdx shot up in the empire for a couple turns as though he had lost a city in war. I'm pretty sure this is unintended behavior.
 
Pretty sure this is related to betterAI 0.70f but It's from a Revolution DCM based mod. Anyway the top unit in a stack is stuck in an infinite loop, at least that's what the assert says:

Save is here:
http://forums.civfanatics.com/attachment.php?attachmentid=214247&d=1242296932

The mod this is using can be found here:
http://www.moddb.com/mods/legends-of-revolution/downloads/legends-of-revolution

You can cycle through the civs and the crash ocurrs after switching from Hannibal to Isabella. So We can be reasonably sure this is some issue with Hannibal. Built and selected all units and everything from Hannibal, so it's not an art bug, or otherwise related to the mod. I'm 99% sure this is related to better AI and some conflict with Revolutions.

Edit: I've tried a few things. I once got the assert not to trip, and the game continued. But I haven't been able to replicate that :mad: I turned off inquistions, moved the galleon with bombard in it, used the spy, killed the enemy knight, fortified a couple units and killed the inquistors. But if I try to isolate any of these things, it still just hangs.... I'm not sure what exactly I did to avoid the assert now... So frustrating...

Edit2: Well if I delete all the spys for Carthage and try to switch to Isabella, it apears Hannibal's turn completes, but then a revolution pops up prior to Spain's turn, and I get the same failed assert and hang.
 
Here are the logs:
 
Back
Top Bottom