Need help converting a mod to version 3.19

It would go a long way to getting assistance from a C++ person if someone posted a list of the changed WH C++ files and a ZIP containing

  • the source FfH C++ files from which this was built and
  • the WH C++ files
This would allow someone like myself to download that one ZIP and do a diff using WinMerge to see how much work would be involved. If there are only a few changes, I might pick it up as a nice distraction for one evening.

Left as it is, I have to do some digging around to even see if I have the time to take on such a project, and I'm hesitant to invest time in something I'm unlikely to have more time to do. If someone does the easy parts first, that increases the chances someone else will pick it up.
 
It would go a long way to getting assistance from a C++ person if someone posted a list of the changed WH C++ files

The problem is that nobody left in the WH team knows what was changed. The WH install includes a directory with the C++ files, so the first part of your request is already available. Granted it is a few hundred K buried in a 400 MB zipfile, but it is there.

I don't know if FFH keeps archives of specific revs of the FFH code, but the exact version number is known, "ffh 32h".

Anyway, it seems the WH team has decided to throw away this code and build on FF. This is not a bad idea, as long as they accept the limitation that if the FF sdk doesn't have something, they have to ask the FF team to add it or do without.
 
Yes, but my point is that a) I'm lazy, b) they are asking the community to do them a favor, and c) it will take X time to determine what changed and Y time to apply those changes to the latest FfH code base.

The WH team can take a small amount of time once and build a ZIP of the FfH 32h sources and WH sources so that each person considering to help doesn't have to repeat that process in order to figure out how much work is involved.

Now, if the original FfH 32h sources don't exist my ramblings are all moot. I'm certainly not going to take the time to track them down, but I would be willing to do a WinMerge if the sources were provided to see how much work is involved.

It's like asking someone to give you a lift somewhere, but you don't know how to get there. So you tell them to look it up on Google Maps rather than getting the directions yourself and telling them up front that it's a 15 minute drive.
 
Wow im really glad to see such an awsome response from you guys thanks :D

sorry ive been quiet but ill try answer some of the questions raised here:

1. Warhammer is based off of an older version of Fall Further (and thus FfH) well before the 3.19 patch came out

2. our previous C++ modder made a few changes listed in the quote below. there is also a link to download the files he modified. im not 100% sure if these are the ones you guys need...
Spoiler :

codebase: FFH 0.40z
base xml: Warhammer 1.5a

Changelog(Gamecore.dll only):

-added animosity

-added influence driven war

-removed somnium

-removed FFH specific gameoptions(like no Orthus, Archeron, scenarios etc.)

-added Gameoption WB_KINSTRIFE and WB_WHWORLD
(you need those to create events that only trigger in the scenario)

-added Obsolete buildings by Elgor(Jean Elcard)

-added Technology affected buildings from xednix

-added Magic Missle Explosion Effects based on damagetype(works only for spellunits like fireball) - to be expanded

-added check for workers to only build improvents with prereqciv if they actually belong to that civ

-added meteoric iron mechanic from WH 0.13

-added xienwolf tweak to prevent barbarian empirebuilding(not called for but that was on the way;))

Known issues:


DOWNLOAD:

xml/python/dll
http://forums.civfanatics.com/showpost.php?p=7993684&postcount=14


Ini file to be placed into the main mod folder
http://forums.civfanatics.com/showpost.php?p=8030579&postcount=47

Pediafix: unpack inside assets/python/screens


@EmperorFool: are those files what you were talking about or is there something else that ive missed? ill be keeping a closer eye on this thread for a few days so ill hopefully be able to reply more regularly.

Thanks so much for your help guys!!
 
What one needs to compare and find the changes in the SDK are the modified source code files (these are C++ files, you will know these because they will all be .cpp and .h files, such as CvCityAI.h) from the Warhammer mod, and also the modified source code files from the base mod, in this case FF, these need to be from the version the Warhammer mod is based on. It may be hard to hunt down old SDK stuff from FF though, it's possible Xienwolf would know where they are as he is a FF dev, but you'd need to know the version of FF the Warhammer source is based on for sure.
 
That's the second bullet point from my post. You still need the original FFH 0.40z files from which WH was built. Someone somewhere must have that version installed.
 
Emperor; I completely understand that we're asking for big help/favors, and that we should make the process as easy as possible for anyone we're asking for help from. My problem is that I know *nothing* about the technical functioning of a mod or what all these various files do. PL knows more than I do, but Ploeperengel was the only one from our mod that really understood this stuff.
So, I can do gruntwork like tracking down files and harassing people but I don't really know what I'm looking for.

-added influence driven war
-removed somnium
-removed FFH specific gameoptions(like no Orthus, Archeron, scenarios etc.)
-added Technology affected buildings from xednix
-added check for workers to only build improvents with prereqciv if they actually belong to that civ
-added meteoric iron mechanic from WH 0.13

These sound like the most important things from that list that we would still want included.

So forgive my ignorance, but how does having the original FFH 0.40z file help? Does that let you figure out which parts of the Warhammer version are new, isolate those, and then potentially merge those with Fall Further 0.51?
Is that the idea?

If I get a version of the mod, can you tell me where within the mod the relevant C++ files are located, and what they would look like? I have the current WH installed (though I can't run it - I updated to 3.19 to work on DuneWars) and I will ask FFH people about the old version.
 
Attached is a zip of "just the source files" from Xienwolf from FFH0.40z. Is this what you meant? If not, how could I describe what I needed?

Also, if you let me know what files I would need from the Warhammer mod (where located? within the mod? then I can post those in a zip too.

http://forums.civfanatics.com/showthread.php?t=331331
 

Attachments

OK, you have made some progress on the pre-requisites mentioned by EmperorFool. You have provided exactly the right files of FFH. Now we need to find exactly the right files for WH.

It seems that the comment in the readme in the normal WH distribution is out of date since it mentioned FFH 0.32h. It is *possible* that the *.cpp files in the normal WH distribution are the right ones. These are easily available. But I am not sure exactly how we would know if these are the right ones.

PL has quoted Ploeperpengel in post 24 above. When I click on the links, I get a permission denied message from civfanatics, did you guys have a *private* forum? I cannot tell if those links contain files *cpp.

If you could look into those links and post a public zip of any directory containing files *.cpp, that would help. Otherwise they are lost, and all we can do is use the files from the WH disti. Those may be out of date and we cannot easily tell.
 
I think FFH 0.40z might not be what we need.
PL, your input here would be useful.


When I click on the links, I get a permission denied message from civfanatics, did you guys have a *private* forum?

Yes, there is a private members forum that these posts are on.

Here are the contents of those posts that PL linked to (original posts by Ploep, the C++ coder):
Ok let's do some consolidation over the weekend. Unpack inside the assets folder of WH version 1.5

playtest, report bugs as much as possible

@PL
Can you get the xml as nice and clean as possible over the weekend and get rid of pink buttons and all that? If you can tweak some pythonstuff that'll be great as well.
I'll take the ball back then starting next week. Status of dll is in first post(just tags of FFH 0.40z plus animosity are actually useable now)

+ attachment1 (Assets)

I noticed FFH has an ini file that forces gameoptions to be read from xml you might try to simply copy that into your folder and see wether that works, you need of course to adjust the mod name in it

edit:
put this into the modfolder and see if it works
+attachment2(Warhammer)

However, I think this
Originally Posted by Ploeperpengel View Post
codebase: FFH 0.40z
base xml: Warhammer 1.5a

may be misleading.

In ~April 2009 Ploep *started* doing an updated Warhammer mod dll based I think on FFH 0.40z.
These posts quoted above are from a thread where Ploep started work on this but never completed it.
This changelog is for whatever changes he was making, but I don't think he ever posted files with this changelog.

I wonder if what we really need are the files from FFH 0.32h.
It sounds like it would be much easier to work from the current Warhammer distribution and ignore the half-measures that Ploep started on in April.

My poorly-educated guess is that the main Warhammer mod we have is still based on a FFH 0.32h core, and that probably what we need are the source files from *this* version of FFH, to compare to our current Warhammer mod files.

Does that sound right? I can bother Xienwolf for FFH 0.32h files.
 
How does having the original FFH 0.40z file help? Does that let you figure out which parts of the Warhammer version are new, isolate those, and then potentially merge those with Fall Further 0.51?

This is exactly what we're talking about. Say that FFH is a basic chili recipe. You took version 0.32h of that recipe and added a few secret ingredients to it, and everyone loved it. Now there's a new 0.40z version of the basic chili recipe which everyone agrees is better than the 0.32h version, but not nearly as good as your special recipe.

If the basic 0.32h recipe were somehow lost, how would you create a new special recipe from 0.40z? You have no idea what the secret ingredients are--you only know the final special recipe. What you need is the original basic recipe so you can "subtract" it from the full special recipe to get the extra secret ingredients and add those to the new basic recipe.

Put mathematically,

  • A = 0.32h
  • B = 0.40z
  • X = Old WarHammer
  • Y = New WarHammer
Y = B + (X - A)

You have B and X, but we need A to produce Y. A and B are so different that we can't easily substitute B for A above. If we could, we'd just use X for Y and be done!
 
My poorly-educated guess is that the main Warhammer mod we have is still based on a FFH 0.32h core, and that probably what we need are the source files from *this* version of FFH, to compare to our current Warhammer mod files.

Now we are guessing. Programmers are famous for letting documentation files get out of date with respect to code. The *most likely* possibility is that the files in the WH distribution go to the FFH 0.32h version. That would be one solid starting point, ignoring work which was partly completed in April.

So, if you get the 0.32h files from xienwolf, and post separately the WH-changed-file directory from your main install file, then somebody *could* look to see how well documented the WH-changed-file changes are. Then it will still be a three way merge, to get the WH changes into a current FF or FFH core.
 
Which files should I post from the current Warhammer build to find if they are based off of FFH 0.32h or FFH 0.40z or some other version?
We can try to use the timing to work things out: I suspect that FFH 0.40z was released around December 2008; if true that post-dates our Warhammer build, so the FFH 0.40z must have just been from the (barely started) update that Ploep began in April (which we should ignore).

EmperorFool:
Your analogy is a good one.

But if I am correct, shouldn't the recipe be:

A = B + (C - D)
where
A = New warhammer (3.19 compatible)
B = Most up to date Fall Further (FF 051 code)
C = Old Warhammer (3.17 compatible, probably based off of 0.32h)
D = FFH 0.32h
 
Which files should I post from the current Warhammer build to find if they are based off of FFH 0.32h or FFH 0.40z or some other version?

As I wrote much earlier in the thread, your installation contains a directory WH-changed-files. Inside this directory are many files *.cpp and some *.h. It is perfectly possible for somebody to download your 400MB install and obtain these files, but it is "easier" I suppose if you create a separate zip with just that directory.

Note, this is what EmperorFool requested, but it will not directly *tell* us which FFH version was used. I do not think there is any easy way to know that. But EF, or some other volunteer, will start out by comparing the files in WH-changed-files against the FFH 0.32h files. If the comparison shows a few well-documented changes by the WH team, then the differences can be extracted and patched into the current FF core. If the differences are large and/or not well-documented, probably any volunteer will give up.
 
Ok, here is that directory from the Warhammer mod.

It seems like 0.32h might be long gone, Xienwolf doesn't have any of those files anymore.

I will make another effort to Ploep to see if he has them or can help out somewhat.
 

Attachments

@Ahriman - I thought FFH 0.40z was the latest given that is what Ploep started from in April. Whether you take the latest FFH or FF codebase is up to you. Either way, our equations are equivalent AFAICT.

New Special Recipe = New Basic Recipe + (Old Special Recipe - Old Basic Recipe)​
 
I think Ploep started on 0.40z in April but didn't really get anywhere, other than this file, which was meant to be the attachment 1 in the list above.

So we have the 0.40z files and the Warhammer mod files, but don't have (and may not be able to get) the 0.32h FFH code.

We'd like to work from the latest FF codebase, FF 0.51.

Is it possible for you to take a quick look at these files and see whether there is something doable?

Or is that something that is not worth doing without the 0.32h files?
 

Attachments

I looked at a couple of the .h and .cpp files, and it seems that Ploep commented his changes. Of course, that only tells us where Ploep remembered to comment his changes. Having the original files from which he started allows to find every change he made, whether or not he remembered to comment it.

Here's where trouble can arise when we don't have the originals. Here's the modified WH code:

Code:
        if (getRace() == NO_PROMOTION)
        {
[B]//WH: Ploeperpengel modify
			if (!::isWorldUnitClass(getUnitClassType()) && !isAnimal() && isAlive() && getDomainType() == DOMAIN_LAND && getUnitCombatType()!= GC.getInfoTypeForString("UNITCOMBAT_BEAST"))
//WH: end modify[/B]
			{
                setHasPromotion((PromotionTypes)GC.getCivilizationInfo(getCivilizationType()).getDefaultRace(), true);
            }
        }

Clearly Ploep modified the if() test logic from the original. We can only hope that the code at this same location hasn't changed between 0.32h and FF 0.51. If we're right and it hasn't changed, we just copy this change over FF 0.51.

However, if something was changed on this line in FF 0.51 we will lose that change when we overwrite with the WH code. You can try making all the changes and hope for the best, but if you run into trouble you will have little recourse for fixing the problems without the 0.32h files.

The other method is to look at all the WH file changes and try to discern the intent of those changes. Then implement those features however is best in the FF 0.51 codebase. You can certainly use the old WH files as a guide to the new implementation, but it will require more thought than performing a three-way-merge.
 
My poorly-educated guess is that the main Warhammer mod we have is still based on a FFH 0.32h core, and that probably what we need are the source files from *this* version of FFH, to compare to our current Warhammer mod files.

oh damn i think your right...

but... i PMed Xien and he said this:

Unfortunately while I am pretty organized and do maintain backups, I also have a small hard drive so had to clean up those backups. You can usually find all of the patches still hosted easily enough on Kael's site by changing the URL of the current patch to state the one you want instead. Main downloads are more of an issue. But I know before we released FF051 there were some people hosting FfH040 and some patch (I think n) on Rapidshare and the like for each other. I can't remember which thread they had posted them in though, I think in the download and changelog.


Hrm... except that would get you the MOD, and if this is for updating the DLL, they would want the SOURCE most likely. In that case I advise you try the same trick as with patches, copy the URL target of the current link, rename it to 040z and see what you get. Should be available still unless Kael simply hadn't released source for z because there weren't any source changes.

he also sent me the FfH 40z, but Ahri has already posted that here. so, perhaps our best bet is to go digging throught the interwebz to find the correct patch?
 
Back
Top Bottom