RevolutionDCM for BTS

I've gotten 3 CTD (but the game reloaded fine and I continued playing) how can i find what caused it?

Assuming it's not a computer level problem, always assume DCM components as the most likely cause in this order from most to least:
1) stack attack
2) opportunity fire
3) active defense
4) all the rest.
5) Next most likely is if you are playing in the modern era where the drain on the PC can be very substantial because the number of civs may spawn upwards of thirty or more depending on map size.
6) Next in the priority is the PC and especially memory and graphics options.
7) If you still can't find it, uninstall RevDCM 0.7 and re-install RevDCM 0.6. The two are game compatible so your game should load on either. This would eliminate the chance that it has to do with Bhruic's latest patch.

Jdog's Revolutions code is very stable and IDW is only a small addition to the code and so is unlikely to be a culprit. Same applies to Inquisitions which is in Python and is unlikely to crash out to the desktop.

Cheers and hope you sort it, CTD's are not fun :sad:
 
I think I'm still using 0.6. But the crash seems to happen before diplomacy. I'll keep trying. I do have some of my mods stuff to it which complicates it more (though that mod had no DLL or Python)

Another thing that occured to me after I replied is that with Revolutions, you can't be sure how many civs are going to emerge in the mid to late stages of the game, so it can load the system memory down in certain cases. Roughly speaking 2 GIG of system memory and 256MB of video memory should be ok for huge maps and thirty or so civs.

Cheers.
 
thx glider. by the way how do i shut off Dale's battlefield effects? I didnt see it in the inis or in the gameoptions.xml

All DCM options can be controlled by going into the file:
RevolutionDCM\assets\xml\GlobalDefinesAlt.xml

Use a text editor and change 1's to 0's (on to off) or 0's to 1's (off to on). Keep a backup copy available in case you stuff up. IDW is controlled from this same file.

If you go to any of the individual forums for the various mod components, you can find out more information there. With more time, eventually all of these options will become controllable in game without having to edit by hard.

Cheers.
 
hi there,

i have a quastion, one modder to another :)

which files control the opening popup screen in the start of a game)the one that show whcich componants are on)?
iyou got both rev and dcm to show on one popup start screen in one screen,

cpuld you care to tell me which files are assosiated with it?

thanks in advance :)
 
hi there, i have a quastion, one modder to another
which files control the opening popup screen in the start of a game)
thanks in advance :)

In this mod RevolutionDCM and in Revolution proper that stuff is in:
RevolutionDCM/assets/python/Revolution/RevolutionInit.py

Scroll down to the function:
def onGameLoad( self, argsList, bForceReinit = False, bShowPopup = True ) :

From one modder to another :) do you know how to make the pop window vertically longer so that all of the components can be seen in it while the game loads? At the moment there are so many components you have to scroll through the popup!

Cheers.
 
From one modder to another :) do you know how to make the pop window vertically longer so that all of the components can be seen in it while the game loads? At the moment there are so many components you have to scroll through the popup!

Cheers.
I've been trying to figure that out too but to no avail. :crazyeye: If anyone knows how, please share.
 
Unfortunately Python API is not well documented. When I look into the available (fan created) documentation there is a class named CyPopup. In the referenced code the popup created is supposed to be of a class named PyPopup. I will guess that either this or that derive from the other or one is a mere interface. In such case you may try the following:

Code:
popup = PyPopup.PyPopup( )
[B]popup.setSize( w, h)[/B]
popup.setBodyString( bodStr )
popup.launch()

Where w, and h are integral values of your choice. If it actually works make sure h is not larger than the least height the screen may have (as in the lowest resolution setting of civ4 options), otherwise some of your users would have a hard time trying to dismiss the pop-up window.

Edit: I am back home, I tried the setSize function and it worked. I used w=400 (not good 350 to 380 may be better unless you change the position of the popup as well), h = 700 all components show-up and no scrolling was needed.

And.. I looked up the source where I got this documentation from and found this link: http://forums.civfanatics.com/downloads.php?do=file&id=6731 It is not the same I have. This is more recent (it is for BTS) though less complete. The copy I have can be found here http://civilization4.net/files/modding/PythonAPI/ You can browse it on line but there is a download link on the page for off-line browsing.
 
@Kalimakhus
Thanks! You have targeted the spot exactly. Therefore "popup" is a python object of class PyPopup. The first line popup = PyPopup.PyPopup() creates the popup object which can then be modified at will.

Thanks to for the links to the API. I had not begun that journey properly yet but looks like many others have already.......

The question remaining in my little mind is whether Pypopup is a generic Python class or is it part of the Civilization Python API? When you look at the reference you have linked to, it says this:

"CyPopup - not in SDK". Does this mean that CyPopup does not exist in the Civ API and so Pypopup is what all us civ modders use, a generic Python class?

Cheers and no need to answer if busy.
 
not in SDK, means that the class is not interfacing (representing) a C++ class that exist in the DLL = SDK. For instance CyCity is in the SDK because it is an interface for CvCity class in the SDK.

CyPopup however is Civ4 python class and not a generic one. The fact that there is a PyPopup class is puzzling me as well. I am sure however that it can't be a generic Python class and that it is civ4 specific because there is no generic GUI classes in python and any GUI library for python can't work within the environment of Civ4.
 
@Kalimakhus
Thankyou again for clarifying interfacing as interface between Python and the C++ SDK.

I've been looking for the Civ Python classes PyPopup and CyPopup myself and thank you for clarifying that of course generic Python would not have GUI classes for a civ environment (hit across head!)

So the class definition for PyPopup is here:
C:\Program Files\Firaxis Games\Sid Meier's Civilization 4\Assets\Python\pyHelper\Popup.py

Early in that file you find this:
self.popup = CyPopup(popupID, contextType, bDynamic)

However the search to find where CyPopup class definition actually exists, that is still a mystery. Whatever. :crazyeye:
Cheers.
 
Try a search across files in the Python directory. It can be hidden in some file whose name is not quite obvious.

Good suggestion and have done that across three asset directories simultaneously: Civ4 assets, BTS assets and mod assets.

Their is no definition for CyPopup.py or class CyPopup that I can see. The entire class definition for popups is in Popup.py which includes the setSize() funtion you pointed me too. Popup.py begins with the code:
class PyPopup:
def __init__
self.ID = popupID
self.popup = CyPopup(popupID, contextType, bDynamic)
etc etc
def setSize(self, iXS, iYS):
"sets the popups size"
self.popup.setSize(iXS, iYS)
etc

So it appears that CyPopup simply part of the initial class definition of class PyPopup. CyPopup could be an alias name of PyPopup perhaps?

So to wrap up. PyPopup is the class covering all popups, and CyPopup is not. Why it is called CyPopup in the API you have pointed to remains an enigma. There is no reference to CyPopup anywhere in any python code I can find. There is a class called CyPopupinfo() and that is in the API too.

Unless I am deluded I believe that the API documentation is wrong on CyPopup. It should be PyPopup and you have already given a code fragment of how it can be used.

Cheers.

PS) Now that I am enlightened on what a popup is and how to use it, I feel ready to tackle the ultimate challenge. I will rewrite a new AI engine that plays a better civ game, using nothing but the PyPopup class and some commenting. It may run slowly because the player will have a lot of popups to work through between turns :)
 
If anyone wants to trial the latest RevolutionDCM DLL it's attached here. It adds this to the official RevolutionDCM v0.7:

1) Battle effects should endure for only half the time
2) includes the fix for Jdog5000's discovery of the HolyCity defender bug in BTS as per Bhruic forum page 107

Just replace the RevolutionDCM dll in your /RevolutionDCM/assets/ directory with the one zipped up here.
Cheers.
 
Good work Glider. When do you expect the new Rev1.5 to get in here? I am not pressing you. I only want to schedule my work on the RoM add-on accordingly.

Working on it as we speak Kalimakhus. But it's requiring more coffee than usual.

Cheers.
 
hey glider, does 0.7 includes the new buic unofficial patch?
and if so does it marked in the sdk?

Thanks keldath. 0.7 does contain Bhruic's latest but in some respects unfortunately those changes are not marked. This is because of the philosophy that Bhruic's changes are not a mod but a patch. I do understand that but it can in some cases create confusion.

Anyway, I'm trying very hard as we speak, to get up a new version of RevolutionDCM with Jdog's latest Revolution 1.5 update . Unfortunately I have been set back a little because of the discovery of a difficult CTD during post compilation testing. I think another few hours from this post should see RevolutionDCM with Revolution 1.5 released and stable.

Cheers.
 
Top Bottom