Bug Reports and Technical Issues

Hi Leoreth, I'm really trying my darndest to break your game here.

I wanted to make sure I finally get a Congolese UHV victory, and used the 3000 BC Romans as the precursor civilisation, settling the entire South Africa, making sure it is Catholic, while the Europeans were delayed in that religion (everyone up to Poland started as Orthodox, but they converted anyway once I had to spread Catholicism to Rome.).
Spoiler So here is glorious Southern Rome: :

Rome was Islamic for a long while, and built the Mezquita, and the Spiral Minaret. Then an Orthodox Cathedral in Mina Spiralis, causing all religious buildings there to be removed and Christianity to be founded in Zambia!
View attachment 590844

Next, there was opportunity for some Catholic wonders down there: Notre Dame, Santa Maria del Fiore, Sistine Chapel, Versailles. Everything built honestly as the Romans. Not enough time to finish San Marco before the flip, sadly.View attachment 590843
So yes, I went a bit overboard with the idea, but it looked so good.

Alas, the handover to Congo fails dramatically: Congo gets a start with not a single technology (they research Tannery in their first turn). I still attempted to salvage the game, but got the exceptions right upon ending the turn.
Spoiler Exception-screen :


So I can imagine multiple reasons since you probably didn't account for such a flipped situation.

My next-best precursor civ to get a Congolese victory would be the Vikings, but I think it might be best if I first learn what went wrong here.
Save-game one turn before the flip is attached.
Really making Leoreth put in effort here.
 
I am curious what the error is here. The messages you are showing in the screenshots are interface related and shouldn't really impact a civ's spawn. But maybe there is a shared root cause to both.
 
Really making Leoreth put in effort here.
Well, I put a lot of effort in this Rome-settling-Africa as well. You know the saying: if you want to fix a game, you first need to break it :p

I am curious what the error is here. The messages you are showing in the screenshots are interface related and shouldn't really impact a civ's spawn. But maybe there is a shared root cause to both.
The interface messages only appear after the botched spawn, I think they're just symptoms.
Given that Congo usually has a different start position where its settler may found a city, instead of getting two flipped cities, and given that my Rome was breaking into renaissance and so the (supposedly) medieval Congo inherits a lot of units/buildings it shouldn't really have... (legionaries, forums, caravels, 20+ cavalry units, wonders, settled great people... you name it) I believe any number of things could have caused this desaster.
 
Okay the explanation for this is:
a) When a civilisation spawns, the game tries to find a tile to spawn their starting units on. Plots get excluded as possible among other reasons for having rainforest or marshes on them
b) Rhye's code is written horribly so that when no such tile can be found, not only are no units spawned, but for some reason also no starting techs are assigned, because those things happen together for some reason. Also this situation doesn't cause any kind of error but is just quietly ignored

Theoretically the problem (b) can happen during any spawn but it's most likely during Congo's spawn because its core area is almost exclusively excluded plots because of jungles, rainforests and marshes. Normally even that is not a problem but your preparation of their core area probably excluded other tiles with your units, cities etc.

My temporary fix is to ignore rainforests etc. when it's the Congolese spawn because those features are not even a problem to them because of their UP. But that does not address the fundamental problem with the awful way the code handles this situation, and I really want to address that. But since I want to completely replace that code later on I will leave it in place as is for now.
 
Its intended that Poland doesn't collapse with most of its core dominated by other civilization? I was playing a game in 1700AC scenario and Poland, who is the first civilization to collapse in every game in this scenario, have only one city and all others dominated by Prussia/Germany and its stability was unstable the whole game. Save attached.

Civ4ScreenShot0088.JPG
 

Attachments

  • San Martin AD-1916 (Poland never collapse) Turn 405.CivBeyondSwordSave
    1.5 MB · Views: 32
I also have a Viking game where England is expelled to Ireland and survives till the end (1000~1400AD).
 
Its intended that Poland doesn't collapse with most of its core dominated by other civilization? I was playing a game in 1700AC scenario and Poland, who is the first civilization to collapse in every game in this scenario, have only one city and all others dominated by Prussia/Germany and its stability was unstable the whole game. Save attached.

View attachment 590988
I feel this is almost the norm.
 
Playing on the latest git release, I am limited to 1GB of ram (according to task manager). Has anyone else faced this recently?
 
There is a hack/patch somewhere is this forum about increasing that limit. Don't remember where though. Try a search.
 
I have a (stupid) question: I'm on Windows 10 and my civ4 is installed on disk D. It's a general problem that I can't modify files on disk C(e.g. can't save profile in option settings) with Civ4BeyondSword.exe or even Git (which is why I moved civ4 from C: to D: ). How do I fix it?
 
I have a (stupid) question: I'm on Windows 10 and my civ4 is installed on disk D. It's a general problem that I can't modify files on disk C(e.g. can't save profile in option settings) with Civ4BeyondSword.exe or even Git (which is why I moved civ4 from C: to D: ). How do I fix it?
You need to change security permissions of the installation folder.
 
There is a bug in the holy city selection of Protestantism. In the code below, because of the || operator and the fact that cities can only be in one region, the if-statement (highlighted with -->) always results true. As a result all cities have an equal value. The first city in the city list (usually the capital) is then selected as the holy city. I believe replacing the || operator with the && operator should fix it.

Spoiler :
Code:
void CvPlayer::foundReligion(ReligionTypes eReligion, ReligionTypes eSlotReligion, bool bAward)
{
    [...]

    iBestValue = 0;
    pBestCity = NULL;

    for (pLoopCity = firstCity(&iLoop); pLoopCity != NULL; pLoopCity = nextCity(&iLoop))
    {
        if (pLoopCity->plot()->getSpreadFactor(eReligion) >= REGION_SPREAD_HISTORICAL || eReligion == PROTESTANTISM)
        {
            [...]

            if (eReligion == (ReligionTypes)PROTESTANTISM)
            {
                int iRegion = pLoopCity->getRegionID();
     -->        if (iRegion != REGION_BRITAIN || iRegion != REGION_IBERIA || iRegion != REGION_ITALY || iRegion != REGION_BALKANS || iRegion != REGION_EUROPE || iRegion != REGION_SCANDINAVIA || iRegion != REGION_RUSSIA)
                {
                    iValue = 5;
                }

                int iCapitalRegion = getCapitalCity()->getRegionID();
                if (iRegion == iCapitalRegion)
                {
                    iValue *= 3;
                }
            }

            iValue = std::max(1, iValue);

            if (iValue > iBestValue)
            {
                iBestValue = iValue;
                pBestCity = pLoopCity;
            }
        }
    }

    [...]
}
 
Last edited:
This makes sense. I would guess that the first city in the list is the first created city? Which is your capital unless you built a palace elsewhere.
 
Yes. If you acquire a new city (conquer, settle or any other method), the city is placed at the bottom of the list. Your capital is usually the first city you acquire, so it is at the top of the list.

That means if you lose a city, it gets removed from the list. And when you reconquer it, it will be put back at the bottom of the list, regardless where it was placed before you lost the city.
 
Some python exceptions related to an resurrection have show up during the game. Save attached. Just end the turn. Also, I attached images to show the exceptions if the bug don't appear again.
Civ4ScreenShot0151.JPG Civ4ScreenShot0152.JPG Civ4ScreenShot0153.JPG Civ4ScreenShot0154.JPG Civ4ScreenShot0155.JPG
 

Attachments

  • AutoSave_AD-1595 (Resurrection bug) Turn 300.CivBeyondSwordSave
    1.2 MB · Views: 30
Hi, I'm doing a fresh install after many years of not playing DoC. Do I NEED Civ IV 3.19? The installer available on this site is corrupted and WinRar refuses to unzip it because of that.
 
Yes, the BtS patch is required. I assume you are installing from an old disk? Most modern versions of the game already include it.

I don't know anything about issues with the patch available on CFC, if necessary please ask for help in the appropriate place.
 
On commit f8ee4ba2083c4b33cfdfc74cfda2bf9980f78c0c (March 21st), I get a List index out of range error when selecting the city Babli in the Congress. Seemingly, it decided to make me pick a random city instead, since somehow I was given Napoli.

On the given save game, just ending turn should be enough to recreate the bug (I recreated it once, at least).
 

Attachments

  • QuickSave.CivBeyondSwordSave
    2 MB · Views: 29
Not really a bug, but it is somewhat annoying me. When my troops are standing in the outskirts of the Iberian capital (the third-most powerful nation of the world) and they tell me that
Spoiler I'm "too powerful for them" so they cannot surrender... :
Civ4ScreenShot0236.JPG
Civ4ScreenShot0235.JPG


Am I supposed to steamroll them, or should I capitulate before their weakness and make a peace deal where I get 10 gold and their map? They won't even give me Dublin.
 
Top Bottom