Specific Bug Reports

Do you have the save from one turn before this? Hannibal's Exploring Axeman "20" to the north of Hippo is outside his borders, and yet somehow his outside border count is zero.

I would like to see the save when that expolorer was inside the border, probably the previous turn or two.

I've attached the two turns prior. Don't know what one has to do to provoke the bug. I guess it has something to do with Hannibal, so the human's actions probably don't matter.
 
Here's another one:

File: .\CvGlobals.cpp
Line: 1897
Expression: eTechNum > -1
Message:

This one happens luckily enought right off of an autosave, just load the attached and hit <enter>, then try to select a tech to research after the discovery pop-up.

Darrell

P.S. If you have any questions please PM me rather than replying in this thread, as I probably won't be reading it.
 
Do you happen to have the save from one turn prior to the one you posted?

-Iustus

I'll have a look - probably not.

update no - That was the turn before it occurred.
 
Hmm...could be I really don't know. The only mod I am using is better AI, but I am using the new handicaps. If I see it again I'll try to get a save.

Darrell

well i had this message you get, and out of index also some time later, because some XML tag was worng and so got initialized wrong by the SDK...fixing the xml solved that problem, do a TXT search for the missing TAG in your XML files...you might have some corrupted XML entry somewhere
 
Assert Failed

File: CvCityAI.cpp
Line: 10740
Expression: iHippyFactor >= 0
Message:

----------------------------------------------------------

this is an error im getting, merged the code into the VISA mod though...but might still be just an error with that code? or maybe you know what i did wrong with the merging :)
 
iHippyFactor

Now thats an amusing variable name. I'm guessing it has something to do with War Weariness? :)
 
Now thats an amusing variable name. I'm guessing it has something to do with War Weariness? :)

no, absolutely not, sorry :)

int iHippyFactor = ((GC.getFeatureInfo(pPlot->getFeatureType()).getHealthPercent() * -healthRate(false, 5)));
FAssert(iHippyFactor >= 0);

I think somewhere a bonus has a negative healthrate in the XML, multiplied with -=positive..that's causing the error..might just also be an XML error, but havent looked at it, because of something else im tracking, so maybe till i found it, Iustus already might have confirmed my assumptions or even found there is indeed a bug in the code
 
Assert Failed

File: CvCityAI.cpp
Line: 10740
Expression: iHippyFactor >= 0
Message:

----------------------------------------------------------

this is an error im getting, merged the code into the VISA mod though...but might still be just an error with that code? or maybe you know what i did wrong with the merging :)

no, absolutely not, sorry :)

int iHippyFactor = ((GC.getFeatureInfo(pPlot->getFeatureType()).getHealthPercent() * -healthRate(false, 5)));
FAssert(iHippyFactor >= 0);

I think somewhere a bonus has a negative healthrate in the XML, multiplied with -=positive..that's causing the error..might just also be an XML error, but havent looked at it, because of something else im tracking, so maybe till i found it, Iustus already might have confirmed my assumptions or even found there is indeed a bug in the code

Hmm, do jungles in ViSA give hammers like forests? Or are there some new jungle builds?

Anyway, added in some new checks, since you are somehow getting there with a jungle:
Code:
int iFeatureHealthPercent = GC.getFeatureInfo(pPlot->getFeatureType()).getHealthPercent();
if (iFeatureHealthPercent > 0)
{
	int iHippyFactor = ((iFeatureHealthPercent * -healthRate(false, 5)));
	iHippyFactor += (pPlot->isBeingWorked() ? 300 : 0);

	iValue *= (400 - iHippyFactor);
	iValue /= 400;
	iValue = max(0, iValue);
}

That change is commited, if you just want to do an update.

-Iustus
 
Build 07-01-25
Happened just as I learned Flight from the Internet, leaving only Future Tech.
The attached save is from the turn prior. I doubt that you have to do anything in particular to make the problem happen, but I haven't tried replaying.

EDIT: Went back to the game, Ingoring the Assert and got Crash to Desktop. Picked up again from this save. Gave Alex Fiber Optics and said Sorry to Hannibal. Got Assert again and CTD too. Going to run it from here with a previous build because I'm close-on to winning a Space Race. Alex could get a Domination or Diplomatic Victory first.

2nd EDIT: Took out the Better AI dll and ran until I selected Future Tech to research. Saved and put the dll back. Was able to play the game out. Alex came up 4 votes shy of a Diplo Victory just before I launched. I didn't think I had any chance to win this game, but the warring between the AIs, staying out of it, and going for the Internet are the factors that allowed my victory.


Assert Failed

File: .\CvGlobals.cpp
Line: 1897
Expression: eTechNum > -1
Message:

----------------------------------------------------------
 
Build 07-01-25
Happened just as I learned Flight from the Internet, leaving only Future Tech.
The attached save is from the turn prior. I doubt that you have to do anything in particular to make the problem happen, but I haven't tried replaying.

EDIT: Went back to the game, Ingoring the Assert and got Crash to Desktop. Picked up again from this save. Gave Alex Fiber Optics and said Sorry to Hannibal. Got Assert again and CTD too. Going to run it from here with a previous build because I'm close-on to winning a Space Race. Alex could get a Domination or Diplomatic Victory first.

2nd EDIT: Took out the Better AI dll and ran until I selected Future Tech to research. Saved and put the dll back. Was able to play the game out. Alex came up 4 votes shy of a Diplo Victory just before I launched. I didn't think I had any chance to win this game, but the warring between the AIs, staying out of it, and going for the Internet are the factors that allowed my victory.


Assert Failed

File: .\CvGlobals.cpp
Line: 1897
Expression: eTechNum > -1
Message:

----------------------------------------------------------

This one (CvGlobals.cpp 1897), is also fixed. This one often causes a crash, I am sorry to say. It only occurs when trying to suggest a tech when the only choice is future tech (including when it can only give 1 suggestion, instead of the two suggestions it prefers).

This is one case where you can avoid the crash by running the version without asserts, the bug is actually in some code that is only done in the assert version. (It tries to get the string of the tech it picked, when it picks nothing, the code fails).

-Iustus
 
I'll have a look - probably not.

update no - That was the turn before it occurred.

Do you happen to recall what actions you took on your turn? I would like to duplicate what you did, more or less exactly.

If you take that save, and repeat your actions, does it occur for you again?

-Iustus
 
As far as I recall, I was just going through building motions. I'd had a war that had just ended, and made peace with France and its vassals. Korea was at war with France and rightly or wrongly I got the impression that the announcement was triggered by events bewtween Korea / France and France's vassals.


edit: here s a 1766save. f you press shift-retrun you get the error.
 

Attachments

  • col AD-1766.CivWarlordsSave
    274 KB · Views: 203
Code:
Assert Failed

File:  .\CvPlayer.cpp
Line:  11483
Expression:  isHuman() || isBarbarian() || ((getGold() + iGoldChange) >= 0)
Message:  

----------------------------------------------------------

This is the second time I got this. I didn;t have frequent enough auto-saves last time, so I'm just posting this one.

It always appears between turns (while the AI is presumably moving). It's non-recreatable unfortunately.

Here is a save before the assert failure.

I made my moves the first time and hit enter and it froze between turns. (I had to minimize the window to see the assert.)

The second time (trying to recreate it) I just loaded the save and hit enter. It didn't get the assert.

The third time, I loaded the save, duplicated my original moves, and hit enter. Again I didn't get the assert.

The moves I made were:
-Promote all cannons outside istanbul to CR2
-Launch all the non-critically-injured cannons into Istanbul
-Then attack with all the Infantry on the same tile.
-Using the bombers in Alexandria, attack Edrine, then the unused ones into the Mehmed's other city (can't remember name.)
-Set all infantry in Alexandria to heal (for one turn).
-Then move all the other bombers into Alexandria
-Then hit enter.

It should be noted that both repeat attempts, on the new turn, Frederick offered me 830 gold for Democracy. That didn't happen the original time I got the assert. I don't know if that's significant or not.
 
Hi Iustus,

i merged the betterAI code into ViSa, and i pretty much checked everything so many times now, i doubt i made a mergign error, but i get random CTD, sometimes turn 1, sometimes turn 300...

the game just quiets without Asserts Failure report, I enabled the Debug option in Civilization4.ini, but that debug screen that normally comes up, doesn't even spawn, the game completely stops...all in a sudden...

Iustus, i know this is not your problem, but do you have ANY, really, just ANY idea where the game might corrupt? because without error messages, im searching in a black dark area.
 
ssert Failed

File: .\CvGlobals.cpp
Line: 1897
Expression: eTechNum > -1
Message:


Occurs at the end of this turn when I finish researching Biology
 

Attachments

  • AutoSave_AD-1848.CivWarlordsSave
    287.1 KB · Views: 145
bool CvPlayer::isUnitClassMaxedOut(UnitClassTypes eIndex, int iExtra)
{
FAssertMsg(eIndex >= 0, "eIndex is expected to be non-negative (invalid Index)");
FAssertMsg(eIndex < GC.getNumUnitClassInfos(), "eIndex is expected to be within maximum bounds (invalid Index)");

if (!isNationalUnitClass(eIndex))
{
return false;
}

FAssertMsg(getUnitClassCount(eIndex) <= GC.getUnitClassInfo(eIndex).getMaxPlayerInstances(), "getUnitClassCount is expected to be less than maximum bound of MaxPlayerInstances (invalid index)");

return ((getUnitClassCount(eIndex) + iExtra) >= GC.getUnitClassInfo(eIndex).getMaxPlayerInstances());
}


got this one:
FAssertMsg(getUnitClassCount(eIndex) <= GC.getUnitClassInfo(eIndex).getMaxPlayerInstances(), "getUnitClassCount is expected to be less than maximum bound of MaxPlayerInstances (invalid index)");

in the CvPLayer.cpp Iustus, might also be just because i disabled alot of XML to test if the XML is causing the CTD
 
Assert Failed

File: CvCity.cpp
Line: 7831
Expression: getSpecialistCommerce(eIndex) >= 0
Message:

----------------------------------------------------------
Assert Failed

File: CvCity.cpp
Line: 7643
Expression: m_aiCommerceRate[eIndex] >= 0
Message:

----------------------------------------------------------

got these at late ages, finally passed the CTD point! :) the linenumbers are not correct because of ViSa merges...but you can search the Fassert messages
 
Assert Failed

File: CvPlayer.cpp
Line: 11997
Expression: isHuman() || isBarbarian() || ((getGold() + iGoldChange) >= 0)
Message:

----------------------------------------------------------


could it be, once i got 1 error, the errors are cumulative?
 
Assert Failed

File: CvTeam.cpp
Line: 1745
Expression: !(AI_isSneakAttackPreparing((TeamTypes)iI))
Message:

----------------------------------------------------------

next one, very late in game

---------------------------------------------------------
-------------- ADD --------------
---------------------------------------------------------
btw, im not playing, i let the AI play for me...this might cause some different codes to be executed than regular human control, but at least im getting through the turns at mega speed to catch the bugs :)
 
Top Bottom