RevolutionDCM for BTS

@Phungus
Yeah learning how to use TortoiseSVN would be a big plus for you. Essentially it is an explorer right click extension that allows you to right click and "checkout" any project you like and then keep that copy up to date with the "update" right click. TortoiseSVN will ask you what url you want and that was pasted by me a few posts ago. Those two commands "checkout" and "update" will be all that you need for now. The system is getting used by BUG, BULL etc etc and it's very cool for no cost.

EDIT:
@Absin.....
Thanks for pointing that out about city razing. I've noted it down but it may not get fixed or changed this coming release unless I get help.

Cheers.
 
I downloaded and installed TortoiseSVN, when I try to run it, it says it's a shell extension for the exporer... it wol't run like an executable. If I click on that link, all I get are webpages with the text for the files, it's nothing I can download and check out in notepad++ or winmerge.

I don't fully understand your instructions. Am I supposed to copy my old version of RevDCM to some spot where I want to mess with it (I want to keep the old version so I can check it with winmerge), and then right click on it, and tell it to update, then punch in the url you are linking do? Is that your instructions?
 
I'm glad to help more if i can somehow. If not else, with further testing...

But i'm really think that changing the population in cities at the same rate as culture changes in the surrounding tiles is a big issue in IDW. It's too much advantage, especially when used with Revolutions. I got more than 10 great generals and a big number of units in my last game from revolting cities of the civs i'm in war with, because only after a few turns of war in many of my enemies cities the majority of the population was from my nation.

And just to refer to the other problem: of course these cities are cannot be razed when conquering, and cannot be razed at flipping by culture at the way RevDCM is now. I only raze a few cities in my games, when they are really misplaced for my strategy or have a really poor location, but these i hate to have. And must have this way.

These are not that big issues in my opinion, so i understand that u have other priorities now, but can be really annoying in some games...
 
@Absin
Oh well thanks for the suggestions, time to turn IDW off for you in the mean time. There is no point getting annoyed in what is just a game.

@Phungus
Once you install TortoiseSVN, navigate to a folder where you would like the SVN version of RevolutionDCM to exist. Right click on the folder, select checkout and point to the url:
https://revolutiondcm.svn.sourceforge.net/svnroot/revolutiondcm/RevolutionDCM/
This will download the latest version of RevolutionDCM from sourceforge which can then be updated by right clicking on it. You can then either play the mod straight from there or export the SVN version to another location on your computer which will be free of any SVN repository references (svn folders).

Cheers.
 
I downloaded and installed TortoiseSVN, when I try to run it, it says it's a shell extension for the exporer... it wol't run like an executable. If I click on that link, all I get are webpages with the text for the files, it's nothing I can download and check out in notepad++ or winmerge.

I don't fully understand your instructions. Am I supposed to copy my old version of RevDCM to some spot where I want to mess with it (I want to keep the old version so I can check it with winmerge), and then right click on it, and tell it to update, then punch in the url you are linking do? Is that your instructions?

Yeah, don't worry. It took me a few trys at first, as I didn't understand it immediately either. Just do what glider1 said, it worked for me.
 
Hehe, no need for that :)
I'm not annoyed at all, just think that this requires a little balancing, and trying to help.
But as i said, i'm sure updating the other parts are more important, so take your time, it's not a problem at all. Just after that, don't forget this needs some revising too...
 
The build on sourceforge currently renders inquisitions dead for reasons Zappara kindly mentioned a few posts ago. There is no jCulture or hidden attitude in there yet. The Revolutions city bar and national effects code has not been brought across either. Once I do this, it would be great if Phungus could see if he is happy with it before I release officially. Will not be able to do any modding for a day or two.

Another nice command is "show log" to see what has been updated and when. SourceForge exists for BUG, BULL, and WoC to mention a few.
Cheers.
 
The build on sourceforge currently renders inquisitions dead for reasons Zappara kindly mentioned a few posts ago. There is no jCulture or hidden attitude in there yet. The Revolutions city bar and national effects code has not been brought across either. Once I do this, it would be great if Phungus could see if he is happy with it before I release officially. Will not be able to do any modding for a day or two.

Another nice command is "show log" to see what has been updated and when. SourceForge exists for BUG, BULL, and WoC to mention a few.
Cheers.

I've been running a game with your 2.6 RevDCM sources as a base, (for my custom mod. It has a few modcomps in it.) and it seems to be running smoothly. Not a single CTD. I really like all the new BULL features.

EDIT:
To be more specific, I'm actually play RoM 2.8beta, but using your sources.
 
Is the CxImage stuff in the source code needed? Never seen this before.
 
Code:
	<Define>
		<DefineName>USE_CANNOT_TRAIN_CALLBACK</DefineName>
		<iDefineIntVal>0</iDefineIntVal>
	</Define>
	<Define>
		<DefineName>USE_CAN_TRAIN_CALLBACK</DefineName>
		<iDefineIntVal>0</iDefineIntVal>
	</Define>

Nothing in the XML relating to inquisitors limiting them to civics or gameoptions. My only conclusion is that you have hardcoded the Inquisitor Civic limitation in the dll. I know it's your mod and all, but that's not acceptable, and very bad form. If you're going to take the time coding in a civic limitation for a unit, expose it to the XML. It might take a little bit longer building an array for civic options in UnitInfos, or UnitClassInfos but it'll save a lot of trouble down the road. Keep in mind this is a core mod, used in about a dozen other mods, hardcoding specific units like this is going break things.

Please expose the Inquisitor's civic limitations to the XML, or reimplement it in python. Having it hardcoded in the dll is bad form, and more importantly is going to break things and cause all sorts of long term problems.

Edit:
Line 2005: // RevDCM TODO: would be better to remove the UNIT_INQUISITOR line ...
Line 2006: if( eUnit == GC.getInfoTypeForString("UNIT_INQUISITOR", true) || GC.getUSE_CANNOT_TRAIN_CALLBACK() )
Looks like you agree. My oppinion is it would be best to set up a civics array in UnitClassInfos or UnitInfos, and a GameOptionReq tag in the same. That would be clean and concise, and allow for better modibility in the future for other mods. I've tried working on this myself, but the array thing keeps screwing me up. I'll try again, but I very well may fail.
 
Compiling a final release core works. But compiling a debug dll leads to this error:
Spoiler :
Code:
[plain]1> "C:\Program Files\Microsoft Visual C++ Toolkit 2003/bin/link.exe" /dll /nologo  /LIBPATH:Python24/libs /LIBPATH:boost-1.32.0/libs/ /LIBPATH:"C:\Program Files\Microsoft Visual C++ Toolkit 2003/lib" /LIBPATH:"C:\Program Files\Microsoft Platform SDK/Lib" /out:Debug\CvGameCoreDLL.dll  msvcprt.lib boost_python-vc71-mt-1_32.lib winmm.lib user32.lib  Debug\CvArea.obj Debug\CvArtFileMgr.obj Debug\CvBugOptions.obj Debug\CvCity.obj Debug\CvCityAI.obj Debug\CvDeal.obj Debug\CvDiploParameters.obj Debug\CvDLLButtonPopup.obj Debug\CvDLLEntity.obj Debug\CvDLLPython.obj Debug\CvDLLPythonEvents.obj Debug\CvDLLTranslator.obj Debug\CvDLLWidgetData.obj Debug\CvEventReporter.obj Debug\CvFractal.obj Debug\CvGame.obj Debug\CvGameAI.obj Debug\CvGameCoreDLL.obj Debug\CvGameCoreUtils.obj Debug\CvGameInterface.obj Debug\CvGameTextMgr.obj Debug\CvGlobals.obj Debug\CvHallOfFameInfo.obj Debug\CvInfoWater.obj Debug\CvInfos.obj Debug\CvInitCore.obj Debug\CvMap.obj Debug\CvMapGenerator.obj Debug\CvMessageControl.obj Debug\CvMessageData.obj Debug\CvPlayer.obj Debug\CvPlayerAI.obj Debug\CvPlot.obj Debug\CvPlotGroup.obj Debug\CvPopupInfo.obj Debug\CvPopupReturn.obj Debug\CvRandom.obj Debug\CvReplayInfo.obj Debug\CvReplayMessage.obj Debug\CvSelectionGroup.obj Debug\CvSelectionGroupAI.obj Debug\CvStatistics.obj Debug\CvStructs.obj Debug\CvTalkingHeadMessage.obj Debug\CvTeam.obj Debug\CvTeamAI.obj Debug\CvUnit.obj Debug\CvUnitAI.obj Debug\CvXMLLoadUtility.obj Debug\CvXMLLoadUtilityGet.obj Debug\CvXMLLoadUtilityInit.obj Debug\CvXMLLoadUtilitySet.obj Debug\CyArea.obj Debug\CyAreaInterface.obj Debug\CyArgsList.obj Debug\CyArtFileMgr.obj Debug\CyArtFileMgrInterface.obj Debug\CyCity.obj Debug\CyCityInterface1.obj Debug\CyCityInterface2.obj Debug\CyDeal.obj Debug\CyEnumsInterface.obj Debug\CyGame.obj Debug\CyGameCoreUtils.obj Debug\CyGameCoreUtilsInterface.obj Debug\CyGameInterface.obj Debug\CyGameTextMgr.obj Debug\CyGameTextMgrInterface.obj Debug\CyGlobalContext.obj Debug\CyGlobalContextInterface1.obj Debug\CyGlobalContextInterface2.obj Debug\CyGlobalContextInterface3.obj Debug\CyGlobalContextInterface4.obj Debug\CyHallOfFameInfo.obj Debug\CyHallOfFameInterface.obj Debug\CyInfoInterface1.obj Debug\CyInfoInterface2.obj Debug\CyInfoInterface3.obj Debug\CyMap.obj Debug\CyMapGenerator.obj Debug\CyMapGeneratorInterface.obj Debug\CyMapInterface.obj Debug\CyMessageControl.obj Debug\CyMessageControlInterface.obj Debug\CyPlayer.obj Debug\CyPlayerInterface1.obj Debug\CyPlayerInterface2.obj Debug\CyPlot.obj Debug\CyPlotInterface1.obj Debug\CyRandomInterface.obj Debug\CyReplayInfo.obj Debug\CySelectionGroup.obj Debug\CySelectionGroupInterface.obj Debug\CyStructsInterface1.obj Debug\CyTeam.obj Debug\CyTeamInterface.obj Debug\CyUnit.obj Debug\CyUnitInterface1.obj Debug\CvXMLLoadUtilityModTools.obj Debug\CvXMLLoadUtilitySetMod.obj Debug\FAssert.obj Debug\FDialogTemplate.obj Debug\_precompile.obj Debug\CxImage\general\tif_xfile.obj Debug\CxImage\general\ximabmp.obj Debug\CxImage\general\ximadsp.obj Debug\CxImage\general\ximaenc.obj Debug\CxImage\general\ximaexif.obj Debug\CxImage\general\ximage.obj Debug\CxImage\general\ximagif.obj Debug\CxImage\general\ximahist.obj Debug\CxImage\general\ximaico.obj Debug\CxImage\general\ximainfo.obj Debug\CxImage\general\ximaint.obj Debug\CxImage\general\ximaj2k.obj Debug\CxImage\general\ximajas.obj Debug\CxImage\general\ximajbg.obj Debug\CxImage\general\ximajpg.obj Debug\CxImage\general\ximalpha.obj Debug\CxImage\general\ximalyr.obj Debug\CxImage\general\ximamng.obj Debug\CxImage\general\ximapal.obj Debug\CxImage\general\ximapcx.obj Debug\CxImage\general\ximapng.obj Debug\CxImage\general\ximasel.obj Debug\CxImage\general\ximatga.obj Debug\CxImage\general\ximath.obj Debug\CxImage\general\ximatif.obj Debug\CxImage\general\ximatran.obj Debug\CxImage\general\ximawbmp.obj Debug\CxImage\general\ximawmf.obj Debug\CxImage\general\ximawnd.obj Debug\CxImage\general\xmemfile.obj Debug\CxImage\jpeg\jcapimin.obj Debug\CxImage\jpeg\jcapistd.obj Debug\CxImage\jpeg\jccoefct.obj Debug\CxImage\jpeg\jccolor.obj Debug\CxImage\jpeg\jcdctmgr.obj Debug\CxImage\jpeg\jchuff.obj Debug\CxImage\jpeg\jcinit.obj Debug\CxImage\jpeg\jcmainct.obj Debug\CxImage\jpeg\jcmarker.obj Debug\CxImage\jpeg\jcmaster.obj Debug\CxImage\jpeg\jcomapi.obj Debug\CxImage\jpeg\jcparam.obj Debug\CxImage\jpeg\jcphuff.obj Debug\CxImage\jpeg\jcprepct.obj Debug\CxImage\jpeg\jcsample.obj Debug\CxImage\jpeg\jctrans.obj Debug\CxImage\jpeg\jdapimin.obj Debug\CxImage\jpeg\jdapistd.obj Debug\CxImage\jpeg\jdatadst.obj Debug\CxImage\jpeg\jdatasrc.obj Debug\CxImage\jpeg\jdcoefct.obj Debug\CxImage\jpeg\jdcolor.obj Debug\CxImage\jpeg\jddctmgr.obj Debug\CxImage\jpeg\jdhuff.obj Debug\CxImage\jpeg\jdinput.obj Debug\CxImage\jpeg\jdmainct.obj Debug\CxImage\jpeg\jdmarker.obj Debug\CxImage\jpeg\jdmaster.obj Debug\CxImage\jpeg\jdmerge.obj Debug\CxImage\jpeg\jdphuff.obj Debug\CxImage\jpeg\jdpostct.obj Debug\CxImage\jpeg\jdsample.obj Debug\CxImage\jpeg\jdtrans.obj Debug\CxImage\jpeg\jerror.obj Debug\CxImage\jpeg\jfdctflt.obj Debug\CxImage\jpeg\jfdctfst.obj Debug\CxImage\jpeg\jfdctint.obj Debug\CxImage\jpeg\jidctflt.obj Debug\CxImage\jpeg\jidctfst.obj Debug\CxImage\jpeg\jidctint.obj Debug\CxImage\jpeg\jidctred.obj Debug\CxImage\jpeg\jmemmgr.obj Debug\CxImage\jpeg\jmemnobs.obj Debug\CxImage\jpeg\jquant1.obj Debug\CxImage\jpeg\jquant2.obj Debug\CxImage\jpeg\jutils.obj   /debug /NODEFAULTLIB:msvcprtd.lib /pdb:Debug\CvGameCoreDLL.pdb /INCREMENTAL /SUBSYSTEM:WINDOWS 
1>   Creating library Debug\CvGameCoreDLL.lib and object Debug\CvGameCoreDLL.exp
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_finish_decompress referenced in function "public: bool __thiscall CxImageJPG::Decode(class CxFile *)" (?Decode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_read_scanlines referenced in function "public: bool __thiscall CxImageJPG::Decode(class CxFile *)" (?Decode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_start_decompress referenced in function "public: bool __thiscall CxImageJPG::Decode(class CxFile *)" (?Decode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_calc_output_dimensions referenced in function "public: bool __thiscall CxImageJPG::Decode(class CxFile *)" (?Decode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_read_header referenced in function "public: bool __thiscall CxImageJPG::Decode(class CxFile *)" (?Decode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_CreateDecompress referenced in function "public: bool __thiscall CxImageJPG::Decode(class CxFile *)" (?Decode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_destroy_decompress referenced in function "public: bool __thiscall CxImageJPG::Decode(class CxFile *)" (?Decode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_std_error referenced in function "public: bool __thiscall CxImageJPG::Decode(class CxFile *)" (?Decode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_resync_to_restart referenced in function "public: __thiscall CxImageJPG::CxFileJpg::CxFileJpg(class CxFile *)" (??0CxFileJpg@CxImageJPG@@QAE@PAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_finish_compress referenced in function "public: bool __thiscall CxImageJPG::Encode(class CxFile *)" (?Encode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_write_scanlines referenced in function "public: bool __thiscall CxImageJPG::Encode(class CxFile *)" (?Encode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_start_compress referenced in function "public: bool __thiscall CxImageJPG::Encode(class CxFile *)" (?Encode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_simple_progression referenced in function "public: bool __thiscall CxImageJPG::Encode(class CxFile *)" (?Encode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_set_quality referenced in function "public: bool __thiscall CxImageJPG::Encode(class CxFile *)" (?Encode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_set_colorspace referenced in function "public: bool __thiscall CxImageJPG::Encode(class CxFile *)" (?Encode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_set_defaults referenced in function "public: bool __thiscall CxImageJPG::Encode(class CxFile *)" (?Encode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_CreateCompress referenced in function "public: bool __thiscall CxImageJPG::Encode(class CxFile *)" (?Encode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>ximajpg.obj : error LNK2019: unresolved external symbol _jpeg_destroy_compress referenced in function "public: bool __thiscall CxImageJPG::Encode(class CxFile *)" (?Encode@CxImageJPG@@QAE_NPAVCxFile@@@Z)
1>Debug\CvGameCoreDLL.dll : fatal error LNK1120: 18 unresolved externals
1>NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual C++ Toolkit 2003/bin/link.exe"' : return code '0x460'
1>Stop.
1>Project : error PRJ0019: A tool returned an error code from "Performing Makefile project actions"
1>Build log was saved at "file://c:\Program Files\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\Mods\BST\src\Working\CvGameCoreDLL\Debug\BuildLog.htm"
1>CvGameCoreDLL - 21 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========[/plain]

So something must be wrong with the debug parts of the makefile.

Edit:

Also noticed none of the stuff in these specific code proposals were added, so just want to bring your attention to it again as the code is all laid out very neatly:
http://forums.civfanatics.com/showthread.php?t=328664
 
One thing I'd like to see if someone is bored...

A few RevDCM-based scenarios. Simple things like a medium-sized earth map with historic start points and stuff would be cool.
 
@Phungus
Chase up the cximage problems with EmperorFool. At the moment it looks like the free compiler tools don't have sufficient libraries for it. The issue is being chased by me as well at this forum and emperorfool has been very helpful.
http://forums.civfanatics.com/showthread.php?t=332920

@anyone
The build you see in sourceforge is an ongoing project and not the final product. No need to be disappointed with what is in the build but just keep coming with useful suggestions that are actually important and not just appear to be important. Often what you see in the SVN is not the final solution, but just interim stages to resolve but not yet solve issues as they become noticed.

Cheers.
 
With Python exceptions on you can't play RevDCM. At first I thought this was a problem with my merge updating LoR to a new test build using the latest RevDCM SVN, but it also occurs for standard RevDCM with no modifications.

RevDCMExceptions.jpg


Those exceptions just repeat, you can't play the game, it's just stuck there.
 
New update fixed that python exception, I can now play the game with Python exceptions turned on, thanks :)

Another bug to report however. Also happened last time with the last update. In the Revolution ini file there is an option:
Code:
; Place the Rev Watch fist button at the far left of the line of advisor buttons
WatchButtonInLine = True
This option makes it so the Che button is in line with the other advisor buttons. I keep it in line which looks fine.

Last update this function was broken, for some reason you guys (glider and jdog) seem to like the che button dropped, but it sticks out like a sore thumb and looks real stupid like that. With the 2.5 update I was able to get you guys to get this function to work again, and so the Che advisor button would line up with the other buttons fine. I thought I had succeded in keeping this essential aesthetic function, but alas it is broken again. Please reimplement the aligned button. Turning it on currently causes the che button to cover one of the other advisor buttons... which obviously doesn't work. :please:

Edit: here is the CvMainInterface.py file for RevDCM 2.51 that has a working align Che advisor button function. I thought this had been included in the main RevDCM 2.51 version, but I guess not. Please include it in 2.6, it doesn't harm anything, and looks much better aesthetically.
 
He is drawn in line, but with the current code, he covers up one of the other advisor buttons.
 
Back
Top Bottom