C2C Fixed Borders is too weak

This would complicate the matter, but for an utterly realistic approach I think the borders would have to remain completely fixed, while holding on to territory that is highly foreign-cultured would cause rebelliousness in nearby cities. Perhaps before this happens you could be asked at some random interval if you want to cede the territory in question rather than deal with the rebelliousness. It would be like a minor version of the events that happen when you hold on to a foreign city and it rebels: if you don't cede the territory, it could lead to war, or at least cause a falling out of relations between states.

That approach was discussed when we changed the old fix borders, but doesn't work with REV off and was also disliked by several people, so was rejected
 
I dunno, I always kind of thought Fix borders was TOO powerful especially with forts. In early games when making large empires is difficult thanks to the unhappiness I use forts to replace enemy cities I burn to keep the territory. Or placing one spearman to grab the only silk in sight (no where close to me) to build silk road.
 
this link is still pretty accurate: http://forums.civfanatics.com/showthread.php?t=405444

With the linked version of visual studio installed opening the project file, setting the build to 'final release' and building should work.

Thanks for the link, Koshling, I finally got VC2010 to compile all the source files. Problem now is to actually get it to work, since the source code provided in the C2C folder doesn't actually work... there's some parts of code that have #ifdef tags wrapped around them, but those sections are used elsewhere whether or not they are defined. In addition, the #ifdef tags cause pieces of code to not be defined anyway for whatever reason, causing the compile to fail. For example,

Code:
1>  	"C:\Users\David\Documents\Microsoft Visual C++ Toolkit 2003\bin\cl.exe" /nologo /MD /O2 /Oy /Oi /G7 /DNDEBUG /DFINAL_RELEASE /Fp"Release\CvGameCoreDLL.pch" /GR /Gy /W3 /EHsc /Gd /Gm- /DWIN32 /D_WINDOWS /D_USRDLL /DCVGAMECOREDLL_EXPORTS /Yu"CvGameCoreDLL.h" /IBoost-1.32.0/include /IPython24/include /I"C:\Users\David\Documents\Microsoft Visual C++ Toolkit 2003/include" /I"C:\Users\David\Documents\WindowsSDK/Include" /I"C:\Users\David\Documents\WindowsSDK/Include/mfc" /I"C:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\CvGameCoreDLL\Boost-1.32.0/include" /I"C:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\CvGameCoreDLL\Python24/include" /FoRelease\CvCity.obj /c CvCity.cpp
1>  CvCity.cpp
1>CvCity.cpp(23940): error C3861: 'calculateTradeProfitTimes100': identifier not found, even with argument-dependent lookup
1>CvCity.cpp(23974): error C3861: 'calculateTradeProfitTimes100': identifier not found, even with argument-dependent lookup
1>CvCity.cpp(23984): error C3861: 'calculateTradeProfitTimes100': identifier not found, even with argument-dependent lookup
1>NMAKE : warning U4010: 'Release\CvCity.obj' : build failed; /K specified, continuing ...

This error is one of many errors that I received during compile. I did not touch the code, only splice code together between vanilla BTS and C2C; i.e., I first pasted all the BTS source code and then overwrote what needed to be overwritten with the C2C source code. Is this a known issue? The code I'm using is from V24, not using svn.
 
Ok, now that you have figured out the compile, do this:

Double-click on the C2C (VS 2008).vcproj file to open up the C2C project in visual studio. You also have to make sure you edit your makefile so it refers to the proper locations in your file structures. Otherwise, I think everything pretty much just falls into place there.
 
Thanks for the link, Koshling, I finally got VC2010 to compile all the source files. Problem now is to actually get it to work, since the source code provided in the C2C folder doesn't actually work... there's some parts of code that have #ifdef tags wrapped around them, but those sections are used elsewhere whether or not they are defined. In addition, the #ifdef tags cause pieces of code to not be defined anyway for whatever reason, causing the compile to fail. For example,

Code:
1>  	"C:\Users\David\Documents\Microsoft Visual C++ Toolkit 2003\bin\cl.exe" /nologo /MD /O2 /Oy /Oi /G7 /DNDEBUG /DFINAL_RELEASE /Fp"Release\CvGameCoreDLL.pch" /GR /Gy /W3 /EHsc /Gd /Gm- /DWIN32 /D_WINDOWS /D_USRDLL /DCVGAMECOREDLL_EXPORTS /Yu"CvGameCoreDLL.h" /IBoost-1.32.0/include /IPython24/include /I"C:\Users\David\Documents\Microsoft Visual C++ Toolkit 2003/include" /I"C:\Users\David\Documents\WindowsSDK/Include" /I"C:\Users\David\Documents\WindowsSDK/Include/mfc" /I"C:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\CvGameCoreDLL\Boost-1.32.0/include" /I"C:\Program Files (x86)\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\CvGameCoreDLL\Python24/include" /FoRelease\CvCity.obj /c CvCity.cpp
1>  CvCity.cpp
1>CvCity.cpp(23940): error C3861: 'calculateTradeProfitTimes100': identifier not found, even with argument-dependent lookup
1>CvCity.cpp(23974): error C3861: 'calculateTradeProfitTimes100': identifier not found, even with argument-dependent lookup
1>CvCity.cpp(23984): error C3861: 'calculateTradeProfitTimes100': identifier not found, even with argument-dependent lookup
1>NMAKE : warning U4010: 'Release\CvCity.obj' : build failed; /K specified, continuing ...

This error is one of many errors that I received during compile. I did not touch the code, only splice code together between vanilla BTS and C2C; i.e., I first pasted all the BTS source code and then overwrote what needed to be overwritten with the C2C source code. Is this a known issue? The code I'm using is from V24, not using svn.

You can't mix the bts base code with the c2c code. They are way different. You need to take ALL the c2c code and forget the bts base entirely.
 
Ooh, it does work a lot better, thanks! It got stuck on finding "version.h". Does that file exist in the mod directory or the BTS source files? I can't seem to find it.
 
Ooh, it does work a lot better, thanks! It got stuck on finding "version.h". Does that file exist in the mod directory or the BTS source files? I can't seem to find it.
It is automatically created in the Makefile from the SVN revision number.
 
It is automatically created in the Makefile from the SVN revision number.

Yeh, so it will only work (with that makefile at least) if you are building using the SVN. However you could fake it up. It contains this:

Code:
#define SVN_PREV_REV	3151				//	Current SVN rev at build time
#define SVN_REV			(SVN_PREV_REV+1)	//	Assumed will be the rev after the rev it was built from

wheer the '3151' is generated by the SVN tools at build time so it always gets the latest, but for you purposes just stick 9999 in there or something
 
Ooooohhhh... I see. So that's why the makefile paths portion was separated from the makefile itself, so the makefile could be updated while the paths remained fixed on your own system. Clever, clever...
 
I successfully compiled the dll such that fixed borders are truly powerful fixed borders, and I've never been happier with a mod! Thank you.

If anyone wants a copy, let me know, and I'll try to upload it somewhere.
 
You should post it in the C2C modmods forum. I'm sure some people would be very interested in testing it out. :)
 
You should post it in the C2C modmods forum. I'm sure some people would be very interested in testing it out. :)

Its not a mod mod strictly, since replacing the DLL makes it impossible to upgrade the underlying C2C. Hence it's really a mod on its own that takes a snapshot of C2C as its start point.
 
Yeah, Koshling's right; I'd been wondering about the svn version for a while, and eventually I figured that I'd wait for a major release before updating the .cpp file that contains my "mod mod" information. Since it is indeed impossible to make it modular due to its modification of the dll, it can only be stand-alone. I'll see if I can't upload the dll onto mediafire or something for players using C2C V24, and maybe I'll upgrade it if/once V25 is released.

It's been a very interesting addition so far. Being that I tend to play as culturally massive empires, culture usually makes it easy for me to dominate and push borders around, and with the hard fixed borders mod, it makes it impossible for me to bully around culturally weak nations. However, the culture is still there; a plot retains all of its cultural information, but simply maintains the ownership of the original owner. Thus, while the cultural information states who should own the tile, past politics determines who actually owns the tile.

Although, on my current gigantic 5 preset earth game, it's progressing incredibly slowly as expected due to the Eternity Prehistoric settings and the 24 other civilisations I spawned meticulously by creating barbarian civilisations on a tiny island in the middle of the ocean. Luckily for me, as China, I have most of my neighbours in the game; Tibet, Mongolia, Japan, Khmer, Siam, and India are all in the game at the moment, with an honourable mention of Tupi serving as the Indian civil war participant (South America had spawned a Brazil so I opted to use them). Culture is washing back and forth in the Yunnan area, with constant wars between India, me, and Siam knocking the borders around. I lost around three cities there on different occasions due to the Indian tendency to make utterly enormous stacks of wardogs and javelineers, which unfortunately overpower my 4-5 archer garrisons. Eventually, our relations stabilised and unstable borders appeared, which culture constantly shifted. I was irritated by an Indian city in the location where Kunming would be (on the mango resource there) so I razed it in a later war and established my own city, which I aptly named Kunming.

Unfortunately for me, they kept building forts around it, and since we had all gained fixed borders at some point in the interim, Kunming was starved of culture and it could not push India back. Just like in real life, I had to wage a war to seize some of the land that I had large amounts of culture in, and after doing so, I offered them some gold in exchange for peace, and we're at a shaky peace once more. I don't think the AI knows how to claim or anything, but I'll look into that. Either way, it's made the game much, much more enjoyable for me.

One very nice benefit to the dll edit is that I can now paint the terrain using the worldbuilder territory tool, meaning that massive empires with large desolate areas is now possible. Normally, places like Kazakhstan (which is just an enormous, useless salt flat) and Siberia (endless coniferous forest atop useless marsh) are simply ignored, but now I can paint them over with the nation/civ of my choice. At the moment, since Russia is still basically just Muscovy and shows no intentions of changing any time soon, the Mongols occupy much of Siberia and also much of Kazakhstan, the Gobi, Turkestan (there's no Chagatai Khanate so they'll have to do), and Manchuria (no Jurchens). Egypt claims basically all of North Africa save for what Carthage claims, and I used Russia to block the Sumerians from settling in Finland (which they kept doing).

Again, I realise that my style of play differs from those of many; those who play to win would find my fixed borders mod mod to be irritating since it prevents border flips due to culture, and other civilisations that like to spam forts would make it impossible to settle cities without going to war. However, I have a more roleplay-oriented style, e.g. try to fit history, so I'm very pleased with the result.

Thank you, Koshling, Thunderbrd, and the others for making it possible for me to make C2C perfect (for me)!
 
Tell you what, after the next update (or when I catch a modding breather rather), I'll have you send me the cpp file you're talking about and I'll turn it into a game option. I think some other players would agree with you and it would HAVE to be frustrating to keep updating it just for yourself. Stay tuned to the forums and I'll eventually send a request for the cpp. It wouldn't be a straight merge of course, but I could certainly get your coding in there under a gameoption mod.
 
On one hand, I'm reluctant to impose something on the devs since I'm not actually sure that there are many people who would like the modification, but on the other hand I would be very happy to see it added. The modification I made is really, really simple after a number of edits and tests, and I was basically able to reduce a bunch of former logic for calculating fixed border and culture into a simple return statement. I'll be here if you still want me to send you the cpp!
 
I've found this thread now, after many time spent reasearching exactly this solution. C2c is an incredible mod but, just like Stoklomolvi, i prefer the old version with "hard" fixed borders. I think it is one of best modifications a modder could create for civ. I think culture could be used in other ways, not handling borders. Waiting for the introduction of a properly option, could I use your modification? What I've to change? Should I download something? Where? I've changed many aspects but only in XML files. I don't want modify the source or the dll code. I'm not so skilled. Could you help me? I've the C2c v27.

Really...thanks! :D
 
I've found this thread now, after many time spent reasearching exactly this solution. C2c is an incredible mod but, just like Stoklomolvi, i prefer the old version with "hard" fixed borders. I think it is one of best modifications a modder could create for civ. I think culture could be used in other ways, not handling borders. Waiting for the introduction of a properly option, could I use your modification? What I've to change? Should I download something? Where? I've changed many aspects but only in XML files. I don't want modify the source or the dll code. I'm not so skilled. Could you help me? I've the C2c v27.

Really...thanks! :D

Use V17? :mischief: This specifically will not be changed anytime soon, for good or ill, as most of us think that we have a happy medium for Fixed Borders now.
 
Back
Top Bottom