WoC Lite(made for merging)

I think Firaxis should of done something like this to begin with.

But anyway I am going to try when I get the chance to add to the dll as a separate download Revolution and DCM. And later I may try to bring Rapture's schisms and inquisition units as a separate download. Just was wondering if there is point to keeping it small or not. And it is a test for me to try to learn something new.

I hope it goes to some use anyway.:)
 
Slightly off topic - is there a fix for the city screen so that the box which displays the religions and corporations in the city is scrollable? The current one just puts the extra ones on top of each other in the sixth place. Not much use of having 184 of them if you can only see six :)
 
@strategyonly

Just like you would normally in WoC core.

Make a folder in modules. Put the folder's name in "MLF_CIV4ModularLoadingControls.xml".

I will show you example in the WoC via a weblink.

Here is the link to the civilizations folder in WoC.
http://forums.civfanatics.com/newreply.php?do=newreply&noquote=1&p=7976189

Here is what in under Aborigines civ.
https://worldofciv.svn.sourceforge.net/svnroot/worldofciv/Assets/Modules/Civilizations/Aborigines/

You need a similar structure for the MLF files that you see in the folders.

You need to include schemas as you see. If you need any more help ask.

I've never done anything with WoC, sorry, and i guess i am just not getting what your saying?I guess i just dont like stuff with a dll, sorry. Pls look at the other question I had also?:blush:
 
The first link I gave you was wrong.

Here is example of the folder structure as best as I can show it in text.
Code:
Assets Folder
	Modules Folder		
		MLF_CIV4ModularLoadingControls.xml
		CIV4ModularLoadingControlsSchema.xml
		Civilizations Folder
			MLF_CIV4ModularLoadingControls.xml
			CIV4ModularLoadingControlsSchema.xml
			Purple People Folder
				MLF_CIV4ModularLoadingControls.xml
				CIV4ModularLoadingControlsSchema.xml
				Buildings Folder
					Purple People Building Folder
						Art Folder
							Interface Folder
								Buttons Folder
									Structures Folder
										Purple People Building Button.dds
							Structures Folder
								Buildings Folder
									Purple People Building Folder
										Purple People Building.nif
										Purple People Building.kfm
										Purple People Building.kf
										Purple People Building Texture.dds
						CIV4ArtDefinesSchema.xml
						CIV4BuildingsSchema.xml
						CIV4CivilizationsSchema.xml
						Purple People Building_CIV4ArtDefines_Building.xml
						Purple People Building_CIV4BuildingInfos.xml
						Purple People Building_CIV4CivilizationInfos.xml
						Purple People Building_CIV4GameText.xml
				Civilizations Folder
					Art Folder
						Interface Folder
							Buttons Folder
								Civlizations Folder
									Purple People Button.dds
							Team Color Folder
								FlagDECAL_Purple People.dds
					Soundpack Folder
						Purple People.mp3
					CIV4ArtDefinesSchema.xml
					CIV4CivilizationsSchema.xml
					CIV4InterfaceSchema.xml
					Purple People_CIV4ArtDefines_Civilization.xml
					Purple People_CIV4CivilizationInfos.xml
					Purple People_CIV4ColorVals.xml
					Purple People_CIV4GameText.xml
					Purple People_CIV4PlayerColorInfos.xml
				Leaderheads Folder
					Purple People Leader Folder
						Art Folder
							Interface Folder
								Buttons Folder
									Leaderheads Folder
										Purple People Leader Button.dds
							Leaderheads Folder
								Purple People Leader Folder
									Purple People Leader.nif
									Purple People Leader.kf
									Purple People Leader Texture.dds
						CIV4ArtDefinesSchema.xml
						CIV4CivilizationsSchema.xml
						CIV4GameInfoSchema.xml
						Purple People Leader_CIV4ArtDefines_Leaderhead.xml
						Purple People Leader_CIV4CivilizationInfos.xml
						Purple People Leader_CIV4DiplomacyInfos.xml
						Purple People Leader_CIV4GameText.xml
						Purple People Leader_CIV4LeaderHeadInfos.xml
				Units Folder
					Purple People Unit Folder
						Art Folder
							Interface Folder
								Buttons Folder
									Units Folder
										Purple People Unit Button.dds
							Units Folder
								Purple People Unit Folder
									Purple People Unit.nif
									Purple People Unit.kfm
									Purple People Unit.kf
									Purple People Unit Texture.dds
						CIV4ArtDefinesSchema.xml
						CIV4CivilizationsSchema.xml
						CIV4UnitSchema.xml
						Purple People Unit_CIV4ArtDefines_Unit.xml
						Purple People Unit_CIV4CivilizationInfos.xml
						Purple People Unit_CIV4GameText.xml
						Purple People Unit_CIV4UnitInfos.xml

An example of the CIV4ArtDefines_Leaderhead.xml
Code:
<?xml version="1.0"?>
<!-- Sid Meier's Civilization 4 Beyond the Sword -->
<!-- Modified by the World of Civilization Team -->
<!-- Art Define Leaderhead -->
<!-- -->
<Civ4ArtDefines xmlns="x-schema:CIV4ArtDefinesSchema.xml">
	<LeaderheadArtInfos>
		<LeaderheadArtInfo>
			<Type>ART_DEF_LEADER_PURPLEPEOPLELEADER</Type>
			<Button>Art/Interface/Buttons/Leaderheads/PurplePeopleLeader.dds</Button>
			<NIF>Art/Leaderheads/PurplePeopleLeader/Gandhi.nif</NIF>
			<KFM>Art/Leaderheads/PurplePeopleLeader/Gandhi.kfm</KFM>
			<NoShaderNIF>Art/Leaderheads/PurplePeopleLeader/Gandhi_noshader.nif</NoShaderNIF>
			<BackgroundKFM>Art/Leaderheads/PurplePeopleLeader/Gandhi_BG.kfm</BackgroundKFM>
		</LeaderheadArtInfo>
	</LeaderheadArtInfos>
</Civ4ArtDefines>

But don't forget!!!!
You do not have to use the modular format you can just put your files in the XML and Art folder!!!!
 
You do not have to follow that example, you can simply keep whatever dir structure you use now. The important thing is that you might need to add the MLF_ModularLoadingControls.xm files to influence load order.

Chances are that if you do not follow the modular format (i.e. do not adopt your xml to the WoC way at all) you do not need those either. They are mostly of interest when you need a specific load order due to dependencies (which in regular civ are handled by one definition being first in the same xml file whil with WoC each definition could be a separate file and the MLF determines in which order the different files are loaded).

Your unchanged xml should work right out of the box, but then you would of course not make use of the modularity inherent to WoC, just of features like the scrollable screens.

To me the best thing about the WoC is that modularity, but different people have different needs, so you might simply ignore it :)
 
Are the MLF files only required to control loading order, or are they absolutely mandatory?

In other words, if I slip this into my mod code, will everyone who has already written a modular mod have to add something to what they have written, or are they safely able to keep using the old modular style, even though new and fancier toys do exist now to make life easier? (Mostly I want the WoC modular style so that readpass2 and readpass3 fields will be able to be used by modules).


And yes, thanks for stripping this down for us :) I've been wanting WoC modular style for a while now, but don't have the time to dredge through all of the changes and be aboslutely CERTAIN that I am supposed to be skipping each one that I skip :)
 
Are the MLF files only required to control loading order, or are they absolutely mandatory?

They only control load order (of directories), if load order does not matter (as there are no dependencies), you do not need to include them.

Generally speaking they never are needed for regular (i.e. BtS style) modular xml. The WoC modular xml at times spreads a definition across multiple files, e.g. the UUs, UBs and leaders of a civ are not defined in the civ xml (i.e. where the city list etc. is defined) to make those parts pluggable. As they (UU, UB, LH) all contain parts of the civ-definition, but cannot stand on their own (but need the main civ definition), you add a dependency that only loads them if the civ is already loaded and control load order so the civ is loaded first.

Spoiler :
Code:
Example :

<Civ4CivilizationInfos xmlns="x-schema:CIV4CivilizationsSchema.xml">
	<CivilizationInfos>
		<CivilizationInfo>
			<Type>CIVILIZATION_HUNGARY</Type>
			<bTypeDependency>1</bTypeDependency>
			<Leaders>
				<Leader>
					<LeaderName>LEADER_HUNGARY_STEPHEN</LeaderName>
					<bLeaderAvailability>1</bLeaderAvailability>
				</Leader>
			</Leaders>
		</CivilizationInfo>
	</CivilizationInfos>

Obviously this is not a complete civ definition, it only adds one LH to the civ. This is the subset that belongs with the LH, not with the main civ definition. The <bTypeDependency>1</bTypeDependency> line makes sure that CIVILIZATION_HUNGARY already exists, otherwise this file is not being loaded.
</Civ4CivilizationInfos>

So, if you use WoC modular (which is far more advanced than BtS modular), you frequently would need MLF files, if you stick to BtS modular, you never need them.

Note: MLFs only influence the load order of directories, CIV has an inherent load order of files based on their type (e.g. *_CIV4CivilizationInfos.xml or _CIV4LeaderHeadInfos.xml). All files of one type are loaded ahead of all files of another type (which type is loaded first is defined by CIV). You cannot influence the CIV load order via MLFs, you can only tell the mod which dir to load first.

In other words, if I slip this into my mod code, will everyone who has already written a modular mod have to add something to what they have written, or are they safely able to keep using the old modular style, even though new and fancier toys do exist now to make life easier? (Mostly I want the WoC modular style so that readpass2 and readpass3 fields will be able to be used by modules).

BtS modular is a valid subset of WoC modular and does not need MLF. However there are some things you simply cannot do modular in BtS modular xml, e.g. techs always have to be in one large file and in the right order at that so all interdependencies are met.

In WoC xml you can do them modular (i.e. one file per tech), but then you would need MLF to control load order, just like order of appearance influenced load order for regular xml.

If you do mix and match BtS and WoC modular and your WoC xml in turn depends on stuff defined in BtS modular you still will have to make sure the BtS definition is loaded first, so the definitions are available when needed by the WoC xml (using MLFs to do so).

As long as everything is BtS modular only, MLFs are not needed at all however (with the restriction of some things simply not being possible in a modular way).
 
Thanks for the praise but like said just was a lot cutting really for me.

Anyway I made another update. Few thing I noticed I missed like Solver patches.

Added the python screens in now. CvMainInterface.py was updated to 3.17 version versus my old one was on 3.13. Religion and corporation scrolling screens in. Stupid Great Spy button problem in pedia fixed.

So nothing major anyway. I am about through merging Better BTS AI, Revolution, and the DCM stuff now. I will send that up as a separate download when I get it done. I want to keep this file as small as possible.

P.S.

Like Mamba said the MLF does not have to follow exactly like the WoC structure. I found myself at the ending just cutting the paths to art short instead all of those folders included. There are real benefits I see in it anyway. But not really the first thing I would recommend converting if you already made a gigantic nonmodular mod.
 
Ok one more update to this file this should be last.

I went ahead and added Better BTS AI and the AIAutoPlay.

The python is included from Jeckel's Autoplay Manager.
 
Don't know for absolutely for sure, but looks like you have a bad CvTechChooser.py.

The screen file for the tech screen.

I don't get the error so I am not sure.

First the do make sure you have nothing in the Assets/Python/Screens folder besides CvMaininterface.py, CvReligionScreen.py, CvCorporationScreen.py, CvCivicsScreen.py and CvScreenEnums.py.

Anything tech related take it out of there.
If still give problems let me know please.
 
Don't know for absolutely for sure, but looks like you have a bad CvTechChooser.py.

The screen file for the tech screen.

I don't get the error so I am not sure.

First the do make sure you have nothing in the Assets/Python/Screens folder besides CvMaininterface.py, CvReligionScreen.py, CvCorporationScreen.py, CvCivicsScreen.py and CvScreenEnums.py.

Anything tech related take it out of there.
If still give problems let me know please.


There was an extra file there: horsehockyCvMainInterface.py

Just tried it out without it and the errors stop, thx.

I also tried to merge with my mod with just the autoplay and i had all kinds of errors?? It has Ignore Error, Ignore all, abort and something else on the bottom of the error??
 
Sorry about the horsehockyCvMainInterface.py :lol:

I left in there should not effect anything though.

Autoplay shows an assert on the WoC Lite only I think. Should be able to play ok. I am going to fix that on the next update.

Sorry about that.
 
BtS modular is a valid subset of WoC modular and does not need MLF. However there are some things you simply cannot do modular in BtS modular xml, e.g. techs always have to be in one large file and in the right order at that so all interdependencies are met.

Ok, the tech example is a perfect illustration for what I am asking.

Let's say I keep my mod designed in an absolutely non-modular method, but I incorporate WoC Lite to get the new Modular controls.

Someone else comes along and decides that they want to make Crafting (no Tech Prereqs) require Horseback Riding. Can they create a module that simply says:

Spoiler :
Code:
<Civ4TechInfos xmlns="x-schema:CIV4TechnologiesSchema.xml">
	<TechInfos>
		<TechInfo>
			<Type>TECH_CRAFTING</Type>
			<OrPreReqs>
					<PrereqTech>TECH_HORSEBACK_RIDING</PrereqTech>
			</OrPreReqs>
		</TechInfo>
	</TechInfos>
</Civ4TechInfos>

So, this being the ONLY modular file used (other than the schema of course), and no MLF being stated, would it work?
 
Yes you can apparently. I never tried till you just asked.

I added the "tools" tech to main technologies xml with no prereq. Then later added a prereq horsebackriding to "tools" in the modules folder.

Only thing is you get a warning for not having the one MLF in the modules folder. You need to make one folder under that to load to not get the warning.

So for example make a "tech" folder under modules and add it to the 1st MLF. Then place as many files as you want in the "tech" folder. You can name whatever you want but of course you need the schema.
 
Ok, so if whatever the folder is immediately inside of "Assets/Modules" doesn't show up in any MLF, you get a warning, which is ignorable. Splendid news :) (Means I can wait a till questions pop up to explain the full intricate new details, and till then just say "You can use modules for everything now!") ;)
 
Top Bottom