Modular Fall from Heaven

For the text file I suspect you named it wrong. Make sure it is SOMETHING_CIV4GameText.xml, and not CIV4GameText_SOMETHING.xml.

For the art: Where are you storing it? I would advise that you store it inside the Module itself, so you just have to ensure that you are referencing it properly (Assets/Modules/SOMETHING/Art for example)
 
Xienwolf, do you have any idea what someone could do modularly that would cause the game to crash on the turn the modular content is added? I seem to be getting these with my modmod and I was wondering if there was a tag that didn't work modularly and if you knew what is it was. Thanks for helping!
 
Generally the things which don't work by module show up as placing the information on the wrong items. Can't say I am aware of a way to cause a crash by module.

I am assuming by the statement of "on the turn added" that you mean when the modular item should come into existence (Building Constructed, Unit Created, Tech Discovered or whatnot)?

Quick way to test it if is an issue with having it as a module would be to place the item in the main mod files instead of as a module, load your savegame and see if it still crashes.
 
Finally found some time for FFH and can now report that disabling UAC does not solve the Vista problem with loading modmods. It looks as though I am well and truly screwed.

If you can give me a little info on the function call that is failing, I can search around to see if this has come up anywhere else. There may be a fix out there somewhere.
 
I am not sure where precisely Vista is failing to do Modules sadly. But I can go into detail on why some things cannot be modified properly with a Module though. It is quite unlikely that they are related issues, but there is always the off chance I suppose.


It is part of the SDK that is responsible for loading the XML. Since the XML is loaded in a certain order, and some parts make references to pieces which are not yet loaded, those parts cannot be loaded yet, and are saved for the second pass through the XML (pass 2).

An example of this would be if a Promotion had a Pre-Req Promotion which came after it in the alphabet (since they are mostly listed in the XML alphabetically). When the game tries to load that pre-req, it would want to convert the string PROMOTION_BLAHBLAH into a number, based on the enumeration of PROMOTION_BLAHBLAH. But since that promotion is not yet loaded, it would give you an error.

Thus the Pre-reqs must wait until after each promotion was loaded (without the Pre-req information) before going back through and attaching that extra information to each field.

Anything which is loaded in the first pass works for Modules properly. But everything loaded in the second pass fails because it then tries to assign it by the Enumeration rather than by the Type name, and the enumeration starts over again at 0 when it loads the module in passes 2 & 3.
 
So is it possible that a fix could be made in the SDK? Or has that already been looked into?
 
Sorry if this has already been mentioned - really, if I'd remembered it would have saved me a lot of trouble :) - but I've just discovered a couple of things that don't seem to work with a modular unit.

1) PromotionSummonPerk

2) Unitcreatefromcombat (from unitinfos)
 
Lots of things don't work. But I am looking into World of Civilization now to make things REALLY modular, instead of Firaxian Modular (ie - if you just want a cheaper settler, you can actually make a file that just says "<UnitInfo><Type>Settler</Type><iCost>25</iCost></UnitInfo>", instead of including all 200 some lines which you do NOT want to change as well). They have some really sweet stuff going on over there, though the conversion to it might be a bit painful.

If I manage to switch to that I will ask Kael what he thinks of changing over all of FfH to that style (but I won't ask such a thing until I have completely converted his most recent release). Should he not want to it'll be a bit of a pain, but I will do what I can to keep an up-to-date full mod of it for people who wish to tinker with modular changes.
 
Well, the good news is that I integrated the DLLs and got it to compile properly. The bad news is that the game will crash just before loading. The good news is that the WoC team seems quite happy to have someone else jumping into their DLL, and really happy to have someone doing the work of integrating FfH for them (they like the mod, but don't have time for the conversion right now themselves), so I am getting plenty of help when I catch them online. With luck I just have to convert the XML and it'll start running, then I can release something for people to play and inform me of what subtle errors have popped up.

Super good news: There are some really nice mods in their DLL to play with :) I already have quite a few plans for some of the things in there, and am working on more in-depth plans with some of the other modders who happened to be working on similar projects to a few of my own secret dabblings :)

Should everything work out as intended.... FfH is going to get worked over almost as heavily as it worked over Civ.
 
Yes. I will ONLY be combining it with my DLL tweaks (ie - not making a version with the "pure" FfH code). The only thing I have changed so far which is fundamental though is making Auto-Raze give you money and pillage Improvements instead of destroy them though, so it won't be a bad thing, just means more options to the Module Makers (which I am all for). Also one of the included changes in the WoC is an AI take-over command, which I have left in since it requires less effort than enabling the standard cheatcodes to do it that way :p But that one is easily ignored by players not wanting to use it.

I figure every now and then I will move the DLL tweaks over to the Modular FfH setup to provide even more fields for playing with. Though all of that depends on making it work first :)
 
If you'd like some help with the code xienwolf, let me know. I'm a software dev in RL (though I admit I don't know much python).
 
I'd love it if you could take a peek at things. To make acquiring the files easy, just use the FfH 2 031 DLL base (from the Modder's Thread, stickied in the main forums), and the SVN version of WoC (from their Latest Version thread in the World of Civilization forums, here on CFC).

Currently I am just figuring out precisely what all they did to make the new XML loading work. And it doesn't seem too difficult overall. Just a bit involved, so it will take me time to figure out where my problem is.
 
Hi Xienwolf,
First let me say, if I am understanding the work you've put in, it's really amazing and the entire Heaven community should pass the hat around to at least get you a Hero unit in game at least, maybe a statue

I tried understanding modular stuff before, but then my brains bled out my ears, now that I understand a little more about things and have looked at (and got to work in game) some of the modulars out there I feel a little more confident.

Did I understand you have WOC working with Heaven (your version), or did I misread?

and with modular python, do I understand this right, that all you have to do is put the new .python file into the modular folder and it will take when you fire up the game? or am I just being sappy and it can't be that easy?
 
Well, for getting a hero unit in game it is as easy as writting it myself and posting a module ;) I can only imagine it would be a Wolf, named Xien...

I don't have WoC working quite yet. I am still playing with things to make them play well together, but I am hopeful that it WILL wind up working sometime soon.

Python doesn't do Modules at all. At least, not in the Firaxis setup. WoC has set it up so that you can select a few new screen layouts and GUIs with control enabled by XML files. In theory, you might be able to add definitions to some other files which will allow these values to be changed mid-game. It could be interesting to have your UI change to something dark and sinister at AC 90 for instance. But in practice right now, it just allows a user to toggle which UI style they will use before they start the game by changing a single value in an XML file, instead of having to swap out multiple Python files.
 
Top Bottom