Civ4 BTS v3.19 Patch

....no more of the dreaded "Desert River" tiles when there is a resources on the river?.

It's a fix applied when adding a river to a poor start location to sweeten it. The old code didn't add Flood Plains when that new river was placed next to desert tiles.
 
Just FYI: 3.19 + BUG 3.6 + Varietas Delectat 6.0 + Blue Marble 4.50:

370 turns today, and no problems at all (so far.) :band:
 
LoR and ROM both no longer load for me. since i only played the mods, i am uninstalling the 3.19 and going back to 3.17 until the modders adjust their craft. :mad:

UH, FAILURE.... turns out that re-running the patch uninstalls the whole BTS and everything in the folder. yeah yeah there is an option screen that lists uninstall options but i stupidly thought those were related only to the version 3.19. so re-running the patch and accepting the uninstall completely removes the whole BTS, all saves and mods...

<so that is a lot of fun>

ahhh i dont know wtf it did, my mods are still there... so the re-running of the patch uninstalls the core BTS and not the mod folder....

ah, its why i stock beer messing with patches since 1986...
 
The 'no cd' feature is my most requested patch; and the most ominous. Except for Stardock's GalCiv games I can't think of any other big PC game that is both 'no cd' and no SecuROM type.
I saw Civ:Complete was DRM-free and thought, "That's the kind of thing game creators do when their company is about to go belly-up and they want to protect their beloved fan base." I hope I'm being paranoid. :hide:

Or at least, I hope the creators and programs find a good new home.
 
Just FYI: 3.19 + BUG 3.6 + Varietas Delectat 6.0 + Blue Marble 4.50:

370 turns today, and no problems at all (so far.) :band:
Good to know. :)

Hopefully the switch from 3.17 to 3.19 will be relatively painless, then.
 
CvGame.normalizeAddRiver (CvGame.cpp)

One thing I find very odd is that there are a lot of cosmetic changes to the code - as though the team had a new coding standards nazi, albeit one who knows a little bit about C++.

If I had to make a guess...
Interesting, possibly a code clean up towards CIV5? And/Or they could have just run the code through one of the various code-formatters.
 
I was surprised to see this patch. My thanks goes to those at Firaxis who were still working on this! :)

Now, it seems there are some changes that are publicly revealed in the changelog and some that weren't like the desert-river issue. This is probably the standard procedure for patches but I'm curious to what some of the undiscovered changes are, and hoping there aren't nasty unexpected hidden changes (i.e. things that get broken). :fingerscrossed:
 
I'm curious to what some of the undiscovered changes are.

Take a look at this little gem from CvDLLButtonPopup.cpp that handles the "Keep or Raze City" popup:

Code:
else if (pPopupReturn->getButtonClicked() == 3)
{
	CvCity* pCity = GET_PLAYER(GC.getGameINLINE().getActivePlayer()).getCity(info.getData1());
	if (NULL != pCity)
	{
		[B]gDLL->getInterfaceIFace()->selectCity(pCity, false);[/B]
	}

	CvPopupInfo* pInfo = new CvPopupInfo(BUTTONPOPUP_RAZECITY, info.getData1(), info.getData2(), info.getData3());
	[B]gDLL->getInterfaceIFace()->addPopup(pInfo, GC.getGameINLINE().getActivePlayer(), false, true);[/B]
}

The first bold line selects the city and I think opens the city screen. The second line retriggers the popup. Did they just make it so you can inspect the city before deciding whether or not to keep/raze/gift it? :eek:

As for the coding standards, I think it's more a matter of pulling CvMessageControl and EventReporter out of the EXE. Instead of

Code:
[B]gDLL->[/B]doSomething(...);

we now have

Code:
[B]CvEventReporter::getInstance().[/B]doSomething(...);

All these changes should be easily merged by WinMerge. I am about to do so for BULL. I really hope WinMerge has a good patch-application process.

The real boon for modders here is that we can now add our own event functions to CvEventReporter instead of funneling our new events through the genericEvent() function. The same for CvMessageControl. Instead of

Code:
CyArgsList pyArgs;
CyUnit* pyOldUnit = new CyUnit(this);
CyUnit* pyNewUnit = new CyUnit(pUpgradeUnit);
pyArgs.add(gDLL->getPythonIFace()->makePythonObject(pyOldUnit));
pyArgs.add(gDLL->getPythonIFace()->makePythonObject(pyNewUnit));
pyArgs.add(upgradePrice(eUnit));
gDLL->getEventReporterIFace()->genericEvent("unitUpgraded", pyArgs.makeFunctionArgs());

we can use

Code:
CvEventReporter::getInstance().unitUpgraded(this, pUpgradeUnit, upgradePrice(eUnit));

Of course, we'll need to add the unitUpgraded() function to CvEventReporter which will delegate to a similarly-named function in CvDllPythonEvents which will look pretty similar to the above:

Code:
void CvDllPythonEvents::upgradeUnit(CvUnit* pUnit, CvUnit* pNewUnit, int iCost)
{
	if (preEvent())
	{
		CyArgsList eventData;
		eventData.add("upgradeUnit");				// add key to lookup python handler fxn

		CyUnit* pyUnit = new CyUnit(pUnit);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pyUnit));

		CyUnit* pyNewUnit = new CyUnit(pNewUnit);
		eventData.add(gDLL->getPythonIFace()->makePythonObject(pyNewUnit));

		eventData.add(iCost);

		postEvent(eventData);
		delete pyUnit;
		delete pyNewUnit;
	}
}

Hrm, it would be more of a win if the events I've added were fired from more than one place in the DLL. :lol: I just noticed though that I forgot to delete my CyUnits after firing the event. D'oh!
 
If everything works fine with this patch, it would be the best firaxis patch ever. TY.
 
Did they just make it so you can inspect the city before deciding whether or not to keep/raze/gift it? :eek:

Yes, they did. Now I know why I couldn't figure out how to merge in the changes and keep the examine city on conquest modcomp... it had already been done!

And glad to know that all the coding changes have a reason (rather than, "this is a patch so we will make sure to break the DLL mods").

I wonder what else we will find not in the changelog...
 
i cannot revert back to patch 3.17 to get my mods to work... duh :sad:

because gamespy stops me with a notice pop-up saying "required to patch to version 3.19".

so basically all the reasons i play CIV just ended until i can get Rise of Mankind and LoR running with the new version...

frankly folks, the new patch doesn't do a single thing to interest me. not a single mentioned change out trumps this inconvenience. :eek:

taking away my ability to play the mods, or waiting for whoever knows how long to play them is simply not worth this intrusion.

:mad:
 
Does anyone know of how this patch will impact PBEM games? I load up a v3.17 game this evening and it didn't complain about the assets changing. This could be a serious problem with some people playing under v3.17 and some under v3.19.
 
Nothing better than a patch that must be installed for multi player online, oh yeah btw it kills all cool mods.
 
Yep, we'll need to wait for Steam and (in my case) Direct2Drive to release their "versions" of the patch. :D
steam is crap sorry to say everyone absolutely hates it
 
Removing the DRM alone is worth patching it, and people are complaining.


Sure it kills some mods (notably HiTM, LoR, RoM), but they will be updated.
 
Does anyone know of how this patch will impact PBEM games?

It doesn't look like the saved game format has changed due to the patch. However, people playing the same game using different patch levels will experience different results. I have no idea how the game will react.

For example, you can no longer trade for obsolete resources. Is this done by blocking the deal only or is every deal checked every turn for obsolescence? If the former, player 1 using 3.17 could create a deal for an obsolete resource while player 2 using 3.19 could not. If the deals are checked each turn, player 1 would be able to set up the deal, but it would be canceled by the time player 1 had their next turn.

Player 1 would be allowed to use Barrage Tanks but not player 2.

Etc.

This assumes that you're right that PBEM games don't check the assets to ensure everyone is using the same ones.
 
I have waited so long for no CD! I was debating buying the Complete Edition just so I could play without it but now there is no need.
Me too. I'm glad there is now no need. And finally I can remove the monopoloy BtS has on my CD drive. Every day I have a pbem save to play, so BtS gets CD-drive-time every day, much to the detriment of other games, moves etc. that need DVDs or CDs!

:D


Does anyone know of how this patch will impact PBEM games? I load up a v3.17 game this evening and it didn't complain about the assets changing. This could be a serious problem with some people playing under v3.17 and some under v3.19.

That's rather concerning. I'm in two PBEM games at the moment and I'm about to patch to 3.19. I've backed up the entire game folder in case I need to revert, or to load 3.17 games. I just hope the patched doesn't somehow mess with the backup.
 
This assumes that you're right that PBEM games don't check the assets to ensure everyone is using the same ones.

That's rather concerning. I'm in two PBEM games at the moment and I'm about to patch to 3.19. I've backed up the entire game folder in case I need to revert, or to load 3.17 games. I just hope the patched doesn't somehow mess with the backup.
Yeah - I now have 2 'prog file' civ4 directories - 1 is 3.17 and the other is 3.19. I checked another PBEM game and it loaded with no problem. Flipping back to the main menu and checking the version showed that it was 3.19. Every other patch has been a major head ache for PBEM players as it always checked the assets and complained if they were changed.

I wonder if that was part of DRM. Does this mean I can mod my game and give myself 2 hammer tanks from Turn 1 while you are building warriors. Does someone want to play a small PBEM game under 3.19 so that we can check that?
 
Top Bottom