FlavourMod 2

If you're more familiar with the WoC system FF uses wold you mind including some code that would work with it?

I hope you don't run into problems with this again. I saw there were some weird new changes in the in CvInfos.cpp file concerning saving and loading stuff too, but I'm unfortunately a bit unfamiliar with the newer FF features currently. Had to focus on one thing lately and I decided it to be FlavourMod.

Awesome, will work on merging it now. :goodjob: Hopefully it will go well. :lol:

Wish you luck. :)

Wasteland was originally Desert. The D'teshi workers autoterraform terrain they stand on... Problem was that hell (Which really shouldn't bother the D'tesh) lead to a massive wall of flame in your territory. Wastelands were the answer. :lol:

I see, so Wasteland is essentially a very bad desert, but nevertheless no hell terrain? Would probably fit best left of Arid in the climate system then, e.g. MaxHumidity = -1. This leads automatically to an overlapping with Arid but we can take care of this problem by adding a MinHumidity = 0 tag to Arid. Just as a proposal.

EDIT: If you have any questions feel free to ask, but I won't be able to answer any time soon. Off to bed for the next 7 hours. ;)
 
I hope you don't run into problems with this again. I saw there were some weird new changes in the in CvInfos.cpp file concerning saving and loading stuff too, but I'm unfortunately a bit unfamiliar with the newer FF features currently. Had to focus on one thing lately and I decided it to be FlavourMod.



Wish you luck. :)



I see, so Wasteland is essentially a very bad desert, but nevertheless no hell terrain? Would probably fit best left of Arid in the climate system then, e.g. MaxHumidity = -1. This leads automatically to an overlapping with Arid but we can take care of this problem by adding a MinHumidity = 0 tag to Arid. Just as a proposal.

EDIT: If you have any questions feel free to ask, but I won't be able to answer any time soon. Off to bed for the next 7 hours. ;)

I was planning on making Wasteland be 0 for both values... But a -1 would work better. Hadn't been sure negative values would work. :lol:

And if I have any problems I'll likely be posting later. :lol:
 
Did you leave out any source files? When I try to compile I get alot of errors related to CvGlobals, but that file is not included with the new patch.

Edit: Also, the fact that all of the more complex items were moved to brand new files made the WoC part easy, if you ignore the fact that the new files won't function modularly. :lol: I don't see much call for them to be modular atm, so it should be fine, at least until this makes it to FF... Which I assume it will, at some point. :lol:
 
Did you leave out any source files? When I try to compile I get alot of errors related to CvGlobals, but that file is not included with the new patch.

Yes I did. :blush: The missing files are attached.

Edit: Also, the fact that all of the more complex items were moved to brand new files made the WoC part easy, if you ignore the fact that the new files won't function modularly.

Good to hear that at least this part went smoothly.
 

Attachments

  • FlavourMod282MissingSourceFiles.zip
    31.2 KB · Views: 49
Hmm. I got it to compile, and everything seemed fine... but it doesn't work. All tiles read as a 'temperate' climate, and perpetually say "6 turns to Boreal" when testing as the Illians. Any idea what went wrong?

Woops, after running through the code it looks like I goofed when adapting to the changed TempTerrain system you made for FF. Had already changed it from a !isHasTempTerrain() call to a getTempTerrainTimer() > 0... Of course, just from looking at that you see where I goofed. :lol: Forgot the !, so it was only running if the terrain WAS temporary.

Alright, the system itself seems to work... Think they python is a bit goofed, but that's because I'm still using the old system. Will updating to the newer setup require any DLL work, or just python?

Edit: To clarify, what I believe is from 'goofed python' was rather odd... When the climate changed, it flashed to the hellish terrain version for a turn or two. Is it from Python, or did you rewrite the hell terrain conversion?
 
The one and only thing that is done in Python is the function "onClimateChange". It doesn't change the terrain at all, only the features. So if there is hell terrain on your map without the counter hitting the threshold for it, then it has nothing to do with Python.

And "yes", you are right with your assumption, I did change the hell terrain system to make it a bit more intuitive and customizable for my taste. Check for "PlotCounterFM" to find the two changes I've made in CvPlot.cpp and GlobalDefinesAlt.xml.
 
Looks like I fixed my issue... Needed to use your hell terrain system. :lol: With some slight modifications (FF tracks the amount of hell, for one of the victories, and RifE inherited it), it works perfectly.

A few suggestions/questions.......
  1. Every forest becomes scrub? Not sure how I feel about it.
  2. 10 turns for a shift works pretty well as a base, but I think a modifier could be useful.
  3. Anything necessary for adding this to religions other than adding the tag, and then putting an extra check in CvPlot::getWantedClimate()?

Edit: I see you answered before I finished my post. :lol: My issue turned out to be this line in SetTerrainClass... if (getPlotCounter() < GC.getDefineINT("PLOT_COUNTER_HELL_THRESHOLD")). I didn't have the define. I ended up taking the whole hell terrain system, though. ;)
 
Looks like I fixed my issue... Needed to use your hell terrain system. :lol: With some slight modifications (FF tracks the amount of hell, for one of the victories, and RifE inherited it), it works perfectly.

I'm happy to hear this. :)

Every forest becomes scrub? Not sure how I feel about it.

To be honest: onClimateChange was just a quick hack that worked well enough to qualify for a release. To let every kind of forest becom scrub was the easiest thing to do, to not end up with too few forest if the climate should ever recover from being arid.

10 turns for a shift works pretty well as a base, but I think a modifier could be useful.

I agree, there is certainly some room for improvement. There are already two functions for scaling the shift threshold for Temperature and Humidity according to game speed. Wouldn't be too difficult to take some more factors into consideration in there. Whatever those factors may be.

Anything necessary for adding this to religions other than adding the tag, and then putting an extra check in CvPlot::getWantedClimate()?

That should absolutely do it. :)

I ended up taking the whole hell terrain system, though.

My changes there and the introduction of Terrain Classes essentially obsolete the original four FfH hell terrain control tags in CIV4Terrain.xml. Will have to rewrite all references to them, but then I'm probably going to remove them entirely.
 
I'm happy to hear this. :)

To be honest: onClimateChange was just a quick hack that worked well enough to qualify for a release. To let every kind of forest becom scrub was the easiest thing to do, to not end up with too few forest if the climate should ever recover from being arid.

I agree, there is certainly some room for improvement. There are already two functions for scaling the shift threshold for Temperature and Humidity according to game speed. Wouldn't be too difficult to take some more factors into consideration in there. Whatever those factors may be.

That should absolutely do it. :)

My changes there and the introduction of Terrain Classes essentially obsolete the original four FfH hell terrain control tags in CIV4Terrain.xml. Will have to rewrite all references to them, but then I'm probably going to remove them entirely.

About the Scrubs: It works for now, if just for that reason. Once Xienwolf finishes the Aspect system, that will work better... Can store whether or not there was a forest in an aspect on the plot. ;)

The most I would do is add a second tag for civs, allowing you to modify the rate of change. Probably a percentage, so that you don't run into issues with a negative rate of change.

Already working on adding it to religions. ;)

I figured they would, yes. What needs to be changed in order to obsolete them? Just python, or DLL work as well?
 
I believe this code will work... Any glaring errors you see?

Code:
if (ClimateZoneTypes)GC.getReligionInfo(GET_PLAYER(getOwnerINLINE()).getStateReligion()).getFormClimateZoneType() != NO_CLIMATEZONE
{
	eFormClimate = (ClimateZoneTypes)GC.getReligionInfo(GET_PLAYER(getOwnerINLINE()).getStateReligion()).getFormClimateZoneType();
}
 
The most I would do is add a second tag for civs, allowing you to modify the rate of change. Probably a percentage, so that you don't run into issues with a negative rate of change.

Percentages sound like a good solution to me. I had thought about something like this too when started implementing the system, but decided to keep it as simple as possible as long as I wouldn't know, if the whole stuff would actually work in the end. As it turned out, it does. :)

I figured they would, yes. What needs to be changed in order to obsolete them? Just python, or DLL work as well?

Like I said, I'll have to check all references first. doHellTerrain() in CustomFunctions.py is one of them for certain. But there is probably more ...
 
I believe this code will work... Any glaring errors you see?

Code:
if (ClimateZoneTypes)GC.getReligionInfo(GET_PLAYER(getOwnerINLINE()).getStateReligion()).getFormClimateZoneType() != NO_CLIMATEZONE
{
	eFormClimate = (ClimateZoneTypes)GC.getReligionInfo(GET_PLAYER(getOwnerINLINE()).getStateReligion()).getFormClimateZoneType();
}

Nothing that would glare at me immediately aside from a missing left and right paranthesis. :)

Keep in mind, you'll have to decide, if religion-climateforming takes precedence over civilization-climateforming or the other way around.
 
Nothing that would glare at me immediately aside from a missing left and right paranthesis. :)

Keep in mind, you'll have to decide, if religion-climateforming takes precedence over civilization-climateforming or the other way around.

Yeah, already caught the parenthesis. :lol:

As for which one takes precedence... Already decided to make religion take precedence. If the Malakim decide to worship the White Hand, they should start spawning Snow rather than desert. ;)
 
The religion tag works perfectly. ;) Need to make sure the religion takes precedence, but it should.

Edit: Yep, works just fine. ;)

Now I just need to add a 'Block Hell Terrain' tag for religions, and I'll be able to make the White Hand. ;)

Speaking of which... Any idea where the best spot to place that is?
 
The religion tag works perfectly. ;) Need to make sure the religion takes precedence, but it should.

Edit: Yep, works just fine. ;)

Congrats. :goodjob:

Now I just need to add a 'Block Hell Terrain' tag for religions, and I'll be able to make the White Hand. ;)

Speaking of which... Any idea where the best spot to place that is?

Why would you want to do this? The hell version of Snow is Snow.

However, in a way you could block hell terain from appearing by keeping the plot counter from changing. Set it to zero for all owned plots after changing your religion and then force it to stay there. Some more changes to CvPlot::changePlotCounter() should do the trick.
 
Congrats. :goodjob:



Why would you want to do this? The hell version of Snow is Snow.

However, in a way you could block hell terain from appearing by keeping the plot counter from changing. Set it to zero for all owned plots after changing your religion and then force it to stay there. Some more changes to CvPlot::changePlotCounter() should do the trick.

Mainly because RifE has the barb civs from FF, so I want to prevent demons from spawning. ;)

I've already decided the best way (imo) is to simply block the tile from converting to Hell. The counter itself is unaffected. This way, if you switch away you'll have Hellish terrain even before the snow reverts. ;)

Of course, I hadn't decided this when I made the post. :lol: Opera suggested it... And it's a method I can use easily, as I know the location I need to tweak. ;)
 
If I create a game with this mod, can it be freely exchanged between people that don't have this mod installed and those that do?
 
Can this be combined with the WildMana mod? How would I do that? Install Wild Mana, then this mod into the Wild Mana folder?

Dang, just found the post that said this was not doable without programming skills. :sad:
 
Top Bottom