Bug Reports

Further testing has revealed that there is an assert failure about eTeam being out of bounds whenever an AI unit moves on screen, visible to the human player. This is not with AIautoplay on, so it's new and makes using the debug dll anoying because it seems like something that shouldn't be shut off, but fixed, and the AI often has units in view.

Edit: The above assert is being caused by python, specifically the isHasMet call. Can't track it further, as things get lost in Assembler code, since python is causing it.

Edit2: EF showed me how to get python to throw an exception, in this case using:
Code:
bool CyTeam::isHasMet(int eIndex)
{
	[B]if (eIndex == -1)
	{
		throw new exception();
	}[/B]
...do stuff
}
Allowed me to track the cause into Civ4lerts, line 950. Adding in a check to make sure eNewEnemy was >= 0 fixes the assert. Fix checked into SVN.
 
Well doing some debugging I've found that "Better Ship Scale" is causing the assert on loading about "Own Type". Thing is I've completely removed this, so the message makes no sense. LoR doesn't get this assert failure message either, and Notepad++'s search function can't find any references to it either. So where is Better Ship Scale being defined in RevDCM, and how can we remove it so this assert can go away?
 
Not a bug as such, but...

From bool CvUnit::bombardRanged(int iX, int iY, bool sAttack)
Code:
// Field bombard case. If bombarding from a city, odds of success are reduced
// For the sake of game balance by default.
int odds = 100;
if (plot()->getPlotCity() != NULL)
{
	odds = modified_accuracy;
}
// standard odds made worse if greater than one tile out
int shotDistance = plotDistance(plot()->getX_INLINE(), plot()->getY_INLINE(), pPlot->getX_INLINE(), pPlot->getY_INLINE());
[B]odds += (shotDistance - 1) * 50[/B];

Doesn't the bolded line actually INCREASE the odds, rather than decrease it? I think it should be -=, not +=?
 
hello! A friend of mine merged an ancient version of this mod some months ago. But I thought that the there were not enough revolutions. Indeed, I noticed that the revindex of the civics were note used by the game and thus there were revolutions only when an empire lost a great number of cities and thus create a rebellion.
So I tried found the missing thing but except the fact that the program don't find the revolution.ini, every other functions work correctly.

Can I have the name of the file that should activate the xml revolution tags?
 
Not a bug as such, but...

From bool CvUnit::bombardRanged(int iX, int iY, bool sAttack)
Code:
// Field bombard case. If bombarding from a city, odds of success are reduced
// For the sake of game balance by default.
int odds = 100;
if (plot()->getPlotCity() != NULL)
{
	odds = modified_accuracy;
}
// standard odds made worse if greater than one tile out
int shotDistance = plotDistance(plot()->getX_INLINE(), plot()->getY_INLINE(), pPlot->getX_INLINE(), pPlot->getY_INLINE());
[B]odds += (shotDistance - 1) * 50[/B];

Doesn't the bolded line actually INCREASE the odds, rather than decrease it? I think it should be -=, not +=?

No, that parts working correctly. The variable 'odds' is not the odds of success, but the range of random numbers to draw from. The bigger the range, the lower the chance of success.
 
I believe it is caused by the tech diffusion beakers from a low tech vassal being carried over after an alliance is made with an advanced player. To recreate it you probably need to set up a situation where there is a longstanding backwards civ with many contacts that ends up with alot of tech diffusion beackers making an alliance with an advanced civ. This is the situation I was in when this bug reared it's head. I've seen reports of it in the RoM forums as well, but I don't have details on those. Anyway the bug is not reproduceable by just setting up an alliance instantly in WB, which is why I think it must be caused by tech diffusion beackers, as that's the only difference I can see from a WBed permanent alliance created after a couple of turns, and one that occurs naturally in the late game.
 
Yeah, reading your explanation, I got a hunch and dug into the code. In CvTeam::addTeam (which is what handles forming PAs):

Code:
	for (iI = 0; iI < GC.getNumTechInfos(); iI++)
	{
		if (GET_TEAM(eTeam).getResearchProgress((TechTypes)iI) > getResearchProgress((TechTypes)iI))
		{
			setResearchProgress(((TechTypes)iI), GET_TEAM(eTeam).getResearchProgress((TechTypes)iI), getLeaderID());
		}
      }

which could do exactly what you're talking about, and have been present all along but much worse with Tech Diffusion on with backwards civs.

Basically, if Team 1 and Team 2 are merging and Team 2 is far behind. They'll be researching a tech that Team 1 already has, and with Tech Diffusion they'll have a bunch of free accumulated beakers for other techs Team 1 also has. The code doesn't check whether Team 1 already has the tech and, since they do, they're progress on the tech has been set back to 0). This means the code will add a bunch of beakers from Team 2 that get dumped into something Team 1 already has, causing the overflow to build up improperly. This perfectly fits the described behavior. Good detective work phungus!

With standard BTS this wouldn't be too noticeable since Team2 would usually have part of one old tech and the overflow wouldn't be much. However, its obviously exploitable by two human players to get a sling-shot forward, so it's not intended. If two teams join and one is researching a tech the other has, that should be wasted effort and not roll over.

Fix checked in to svn, will also add to UP.
 
This isn't a bug that is from vanilla Revolutions. I'm trying to merge RevDCM with some stuff and I'm getting an error when the game starts, the popup saying which components are on doesn't load anymore and when the game starts it says error in gamestart event handler revolutioninit.ongamestart 0x1f1f4738.

I'm not sure where to look to see what I hosed up. Any ideas?
 
Turn on python exceptions. Also read the BUG forums, specifically the thread about how to merge your mod with BUG; merging components into RevDCM is an identical process to merging with BUG, in fact the revolutions python components themselves are basically loaded as BUG modules.
 
Current save throws an assert failure because the player index is out of bounds (specifically it is less then 0, assuming it's -1 for None). Adding some code to get the Python to throw an exception when this occurs leads to:
Code:
	def onFirstContact( self, argsList, bVerbose = True ) :
...
		[B]playerX = gc.getPlayer(teamX.getLeaderID())[/B]
In BarbarianCiv.py

I normally would just add a check to make sure this value is not passed into the getPlayer function, to fix the assert. However right below the code you have a control statement error message that is commented out:
Code:
		if( playerX == None or playerY == None ) :
			#if( self.LOG_DEBUG ) : CvUtil.pyPrint("  BC - Error: didn't find any players")
			return
So I suppose something is going wrong here you might want to take a look at.

The save is for the current version of LoR on the SVN.
 
Hello jdog, following phungus420s advice, I'll repost a problem I've playing LoR:

Hi Phongus420

I know I've mentioned it before, rival cities are flipping over to my empire without getting the pop-up asking if to abandon or to install a new governor, much like capturing a city.

I've verified this game that NO Revolutions is checked, Cities flipping peacfully is unchecked.
I've checked my ini file:

GameOptions = 0000001000000000000000010001011011 just to verify

I've also disabled IDW in the file Definesalt.xml, the line reads:

<Define>
<DefineName>IDW_ENABLED</DefineName>
<iDefineIntVal>0</iDefineIntVal>
</Define>


And yet just around now while playing, a rivals city (no war with him) filled with black smoke, flipped over to me without any notice at all, the log just said:

"The city of xxxxx revolted and joined our empire", what is going on?!

As I once mentioned, playing BTS alone or with other mods never caused a city to flip without the option to abandon it, I know I've been asking a lot about that subject but it's very annoying to have an unwanted city right in the middle of a carefully planed teritory.

Is there a way to avoid it completely?

I wish there was an option to completely avoid a city to flip over without at least giving the options screen if to abandon it or to install a governor.

To replicate it, I've created a roman leader Julius Ceaser with all the traits so to accumulate as much influence and culture as possible and to cover all possible traits as a cause to the problem.

the babylonian city Dur-Kurigalzu is about to flip next turn without any popup menu as explained above.

View attachment Simko AD-1200.zip this is a save game from LoR

Many thanks.

EDIT: Forgot to mention, the save file is from LoR SVN revision 123, so loading it into the latest revision might change the look of some units, and julius ceaser not having all the traits might not cause the problem, I really hope the problem will persist.

EDIT 2: No use to try the save game with the latest SVN, the city doesn't flip, even if CIV4LeaderHeadInfos.xml from my game is copied over so to retain Julius Ceaser with all the traits. The only solution is for me to replicate the problem on a released version of the game or if you can give me some guide lines to what I should look for, or how to create some kind of a log file that describes all the importand variables during the flipping.

Many thanks
 
One small question, is it possible that the popup menu asking if to abandon or to install a new governor while a city flipps is somehow prohibited by the revolusions mod, even if revolutions is disabled on the options menu?

Many thanks.
 
Thanks Jdog5000,

to summerize my quest for the Abandon City option not popping-up, will I get the flipped city popup menu in any case, or just when Revolutions is tuned off?

I'm on my way to update svn.

Thanks a lot.

Edit: my mistake, you reffered me to Revolutions SVN, I thought it's been fixed in LoR svn.

Where do I get the file CvPlayer.cpp what steps should I take towards merging it into LoR, or can you reffer me to where in the forum are things like merging onse mod into another.

Phungus420 is quite busy nowadays so maybe I'll give it a try.

Thanks.


EDIT: Sorry for nagging, I've downloaded revolutiondcm - Revision 505: /Trunk/SourceCode/CvGameCoreDLL, inside there is a makefile and a lot of 'cpp' and 'h' files, does it contain all that is needed for making CvGameCoreDLL.dll to be placed later in LoR mod, or should I use these files and the files from the CvGameCoreDLL folder in BTS?

Many thanks in advance
 
RevDCM 2.72 doesn't seem to allow middle clicking to exit the city screen anymore. Not gamebreaking but a little inconvenient. :p

Also I noticed that in 2.72 the Revolution.ini file isn't there. I've heard that BUG is supposed to make one after the BUG options menu is edited and closed, but this isn't happening for me. I could always edit the Revolution.xml defaults, but I have no way of easily remembering exactly what each variable does except through the comments in the Revolution.ini. Is this now the intended way of configuring Revolutions or is this a bug?
 
Eh Stormlord
I do not have a middle mouse button but essentially the entire RevDCM interface is BUG, so what BUG does RevDCM does. I can click in one of the corners of the city map or hit esc to return me to the main map. As for Revolution.ini, it is still there but has been moved to the /usersettings folder which is usually under /my documents/my games/beyond the sword/RevolutionDCM/. The move of usersettings is a BUG standard.

Cheers
 
Back
Top Bottom