Merging BUG with other Mods

Another thing, when I DLed it I got this message concerning "arm.dds" so I figured I'd skip that and see what else happened and I got a bunch of these pop ups before I decided to abort. :sad:

So does this mean I can't even download it or something?

I'm such a mess.
 
I decided just to take the time to DL everything from the SourceForge site, it took a while and was boring, but I did it. Then I went through and looked at all of the conflicting files (i.e. the ones my mod and BUG both have). This is mostly for my own purposes, but it might be helpful for others who may have similar issues, these are the files that are shared by both my mod and BUG:

PYTHON FILES

...Assets/Python/EntryPoints/
  • CvRandomEventInterface.py
  • CvScreensInterface.py

...Assets/Python/Screens/
  • CvMainInterface.py
  • CvReligionScreen.py
In this same folder, for BUG there was also a CvMainInterface-PLE.py file. I should also point out that my mod has a CvDawnofMan.py file and a CvNextWarScreen.py file.


XML FILES

...Assets/XML/Art/
  • CIV4RouteModeInfos.xml

...Assets/XML/BasicInfos/
  • CIV4NewConceptInfos.xml

...Assets/XML/Events/
  • CIV4EventInfos.xml


Those are all of the files that appear to be the same. Otherwise there are no conflicts. Does this mean that these files have to be merged and the rest of the BUG files can simply be added to my mod? Also, is downloading from the Sourceforge/SVN site or whatever just as good as DLing the installation program or did I miss something by doing this?
 
It's SdToolkit in Python/Contrib of BUG. Python/Contrib/ReminderEventManager mod uses it to store a single object in CvGame's script data: the queue of reminders.
 
It's SdToolkit in Python/Contrib of BUG. Python/Contrib/ReminderEventManager mod uses it to store a single object in CvGame's script data: the queue of reminders.

Alright, well what am I supposed to do with that file exactly?

And as far as everything else goes; I just have to merge the conflicting files, correct?
 
Hmm, didn't see your list of files before posting mine. Those error messages during installation look like UAC stuff for Vista. Try running the installer as Admin. (right-click and select something like Run As Administrator).

What exactly do you mean by "download from SVN"? Did you use TortoiseSVN to get the files? The advantage is that SVN will store local tags that say which version you have locally. When I commit a new file to the SVN repo, you can do an "update" that will get only the changes and apply them to your local files.

The event-related files are straight from the Unofficial Patch. BUG doesn't modify them any further. CvScreensInterface is very important to BUG; you'll need to merge in both changes. It might be easiest to use WinMerge to compare your version to the one from BTS and add those same changes to BUG's version. This is probably the best way to go in all cases.

CvMainInterface has a ton of BUG changes. I don't know what your version adds. Use WinMerge as above.

CvReligionAdvisor has the scrolling religion top part plus a better list of cities (it's a table with columns for easier viewing).

CIV4RouteModeInfos.xml is for the I Love Asphalt (modern roads) mod.

CIV4NewConceptInfos.xml contains some new BUG entries; I forget which (maybe traits). WinMerge should work for you here.
 
What exactly do you mean by "download from SVN"? Did you use TortoiseSVN to get the files? The advantage is that SVN will store local tags that say which version you have locally. When I commit a new file to the SVN repo, you can do an "update" that will get only the changes and apply them to your local files.

I don't know, I clicked on some link and it had the folders and files and I just saved every single one. I don't know what the thing is called but it just had everything listed out by folder and file. So I saved every one of them to my computer. When I said I was a lowly graphics modder what I meant was "I don't know :):):):) about computers."

The event-related files are straight from the Unofficial Patch. BUG doesn't modify them any further. CvScreensInterface is very important to BUG; you'll need to merge in both changes. It might be easiest to use WinMerge to compare your version to the one from BTS and add those same changes to BUG's version. This is probably the best way to go in all cases.

CvMainInterface has a ton of BUG changes. I don't know what your version adds. Use WinMerge as above.

CvReligionAdvisor has the scrolling religion top part plus a better list of cities (it's a table with columns for easier viewing).

CIV4RouteModeInfos.xml is for the I Love Asphalt (modern roads) mod.

CIV4NewConceptInfos.xml contains some new BUG entries; I forget which (maybe traits). WinMerge should work for you here.

Alright, so according to this CvScreensInterface.py, CvMainInterface.py and CIV4NewConceptInfos.xml are all necessary. CIV4RouteModeInfos.xml and the CvReligionAdvisor.py is optional, but suggested?

But there are a few other files I listed that were not mentioned like CvRandomEventInterface.py, and CvReligionScreen.py (is that the same as CvReligionAdvisor.py?).

Sorry to be annoying, but I'd like to get this in ASAP. I have a lot of work to do and I have deadlines. :lol:
 
CvReligionScreen.py is what I meant. It is the Religion Advisor screen.

CvRandomEventInterface.py is included in the "event-related files" I mentioned. This one is from the UP. You may want to compare it to yours to see if it has anything you do not. Same for CIV4EventInfos.xml. Did you add your own events? Are you using the UP?

Yes, CvMainInterface.py is a huge part of BUG. If you have your own changes to it, you should merge them in. If not, take BUG's. This applies to every file, really. Do a diff using WinMerge to see what's different.

CvScreensInterface.py is also mandatory, but Next War adds some stuff to it that must be included. This file you definitely have to merge.

Ouch, you could have downloaded all of the BUG files with a couple clicks. :( Google TortoiseSVN to get the Windows program and read our docs on accessing the SVN. Follow the instructions for the Mod install.

My time is also limited. All the time I devote to helping modders takes away time from BUG. I'm happy to help you learn, but I just can't be in the "let me do it for you" business anymore. I suggest posting some more general merging questions to the SDK/Python forum. To learn some Python read How to Think Like a Computer Scientist. This is a great free online book on computer programming using Python.
 
CvReligionScreen.py is what I meant. It is the Religion Advisor screen.

CvRandomEventInterface.py is included in the "event-related files" I mentioned. This one is from the UP. You may want to compare it to yours to see if it has anything you do not. Same for CIV4EventInfos.xml. Did you add your own events? Are you using the UP?

Yes, CvMainInterface.py is a huge part of BUG. If you have your own changes to it, you should merge them in. If not, take BUG's. This applies to every file, really. Do a diff using WinMerge to see what's different.

CvScreensInterface.py is also mandatory, but Next War adds some stuff to it that must be included. This file you definitely have to merge.

Ouch, you could have downloaded all of the BUG files with a couple clicks. :( Google TortoiseSVN to get the Windows program and read our docs on accessing the SVN. Follow the instructions for the Mod install.

My time is also limited. All the time I devote to helping modders takes away time from BUG. I'm happy to help you learn, but I just can't be in the "let me do it for you" business anymore. I suggest posting some more general merging questions to the SDK/Python forum. To learn some Python read How to Think Like a Computer Scientist. This is a great free online book on computer programming using Python.

I don't want or expect you to do this for me, and I haven't added any events or anything like that. The only thing I'm really doing is merging BUG with Next War. I appreciate the time you have taken with me thus far, and I understand that you have a lot on your plate right now.

Just a couple of final questions and (I hope) I'll be out of your hair:

What is the UP? I don't know what that is, so I'm not sure if I am using it or not.

The way I downloaded it (each file individually) is fine right? Or do I have to download it the way you suggested?

I'm okay with merging, I have done it before (with my old mod), its just that I don't do it all the time so I am not entirely comfortable with it. But as long as I use winmerge I should be fine right?
 
Sorry for the DP:

It's SdToolkit in Python/Contrib of BUG. Python/Contrib/ReminderEventManager mod uses it to store a single object in CvGame's script data: the queue of reminders.

What is the significance of this? Do I have to edit it or merge it? And if I do have to merge it what do I merge it into or merge into it?
 
It looks like Next War has its own Events, so you will need to merge in the two event files from Next War into the ones from BUG using WinMerge.

The UP is the Unofficial Patch for 3.19. It sounds like you're not using it, but BUG is so you'll get it for free.

All of the files can be WinMerged except for what I noted at the start: Next War places a list into CvGame's script data, and BUG will break if you leave it that way. This is all done in NW's CvEventManager IIRC. The details are in that MW + BUG thread you read. This is the one place where a bit of Python ability will be required.

Yes, downloading all the files individually gives you the same set of files; it just takes a lot longer and means you'll have to do all the same merging work to upgrade to a new version of BUG.
 
You have to change the code from MW's CvEventManager to use SdToolkit instead of calling setScriptData(). This is not merging--it's rewriting Python code to work in a different way. You should be able to extract the code from Cammagno's files to follow how he changed it.
 
My wife and I have just merged Bat 2.1 (with bugg included) and Next war. All looks good except...

We had to rename the Dreadnought to Behemoth and change files accordingly. The problem is that the original tank outline appears pink in the Sevopedia and in game. It acts like the skin is not being applied. ANy thoughts?
 
Perhaps the unit art files in BAT conflict with those in Next War. The former uses modular loading while NW does not I believe. Did you account for that?

BTW, BAT 2.1 has crashing issues with a lot of units. I recommend downgrading it to VD 7.5 using Lemon Merchant's instructions in the BAT Graphics Errors thread.
 
Perhaps the unit art files in BAT conflict with those in Next War. The former uses modular loading while NW does not I believe. Did you account for that?

BTW, BAT 2.1 has crashing issues with a lot of units. I recommend downgrading it to VD 7.5 using Lemon Merchant's instructions in the BAT Graphics Errors thread.

Thanks for the reply.

I did check the module loading. It does not seem to be causing a problem. The latest version has not demonstrated any unit graphic problems YET. They look awesome, which is why we incorporated them in the first place.

I'm thinking it has to do with one of the nif files in the Behemoth(previously Dreanought) art folder. The outline of the tank appears fine in all respects...it's just pink! LOL. That is the only problem that we have left. Granted we have not played to the end of the game though...

If it is any help to others, my wife (the programmer) came up with steps using Excell and other things (way above my limited knowledge) that merges files together. We were able to merge what needed merging and discard what was necessary in one day. Most of that time was spent fine tuning the combination program, but it still beats going through 30000+ lines of code! I'm sure she could explain it to someone who has more programming knowledge then myself. Drop a line if interested.

Anyone else ever have pink units?
 
Congratulations on the wonderful wife, a woman who programs and plays cIV so awesome

RoM-AND Delegations speaks up saying we got pink dudes too
 
Pink is the color that Civ4 uses to point out where textures (skins) are missing. Thie .nif should point to some texture (DDS?) files but must be using the wrong name.
 
I merged BULL into Better AI (which was easier than I thought because the code didn't clash) and included BUG.
Updated today but that was before the german translation update to BULL and BUG.
If anyone wants: Better BUG AI
 
Code:
[COLOR="Green"]// BUG - Other Relations in Scoreboard - start[/COLOR]
				GAMETEXT.getOtherRelationsString(szBuffer, ((PlayerTypes)widgetDataStruct.m_iData1), GC.getGameINLINE().getActivePlayer());
[COLOR="Green"]// BUG - Other Relations in Scoreboard - end

// BUG - Deals in Scoreboard - start[/COLOR]
				if (gDLL->ctrlKey())
				{
					GAMETEXT.getActiveDealsString(szBuffer, ((PlayerTypes)widgetDataStruct.m_iData1), GC.getGameINLINE().getActivePlayer());
				}
[COLOR="Green"]// BUG - Deals in Scoreboard - end[/COLOR]
What text exactly are you adding to the scoreboard there, is that "Other Relations" just War & Worst Enemy? (I'm getting those texts twice now on the scoreboard in my merged mod so I'm thinking you just added it in a different way than jdog, which is why I didn't notice..)

And what "Deals" are included in the other part?

The way it looks to me I'll just have to remove it again.
Spoiler :
current code in my version:
Code:
		if (!(kPlayer.isHuman()))
		{
			if (!(kPlayer.AI_isWillingToTalk(eActivePlayer)))
			{
				szBuffer.append(NEWLINE);
				szBuffer.append(gDLL->getText("TXT_KEY_MISC_REFUSES_TO_TALK"));
			}

			if ( !((gDLL->altKey() || gDLL->ctrlKey()) && gDLL->getChtLvl() > 0) )
			{
				szBuffer.append(NEWLINE);
				GAMETEXT.getAttitudeString(szBuffer, ePlayer, eActivePlayer);

				szBuffer.append(NEWLINE);
				GAMETEXT.getEspionageString(szBuffer, ((PlayerTypes)widgetDataStruct.m_iData1), eActivePlayer);

// BUG - Other Relations in Scoreboard - start
//Fuyu: removing this again
/*
				GAMETEXT.getOtherRelationsString(szBuffer, ((PlayerTypes)widgetDataStruct.m_iData1), GC.getGameINLINE().getActivePlayer());
*/
// BUG - Other Relations in Scoreboard - end

// BUG - Deals in Scoreboard - start
				if (gDLL->ctrlKey())
				{
					GAMETEXT.getActiveDealsString(szBuffer, ((PlayerTypes)widgetDataStruct.m_iData1), GC.getGameINLINE().getActivePlayer());
				}
// BUG - Deals in Scoreboard - end

				szBuffer.append(NEWLINE);
				szBuffer.append(gDLL->getText("TXT_KEY_MISC_CTRL_TRADE"));
			}
		}
 
Other Relations are the War and Worst Enemy. Did jdog add those to getAttitudeString()?

Also, rereading that code I see that my addition for trade deals (any deals you have with the rival) is pointless because if the control key is held down that whole block is skipped. :( I also show the deals in the Trade Network icon hover so this isn't such a big deal.
 
Back
Top Bottom