Hello Nutty, thanks for responding.
Just a couple concepts:
XML or SQL is how you get stuff into the Database or change existing stuff. They're different syntaxes to accomplish the same thing (though you can do more complicated manipulation with SQL syntax)
Yeah... I did a lot of Civ IV modding so I know how to use the xml though the sql stuff is new.
Terrain is technically what you call "plot types." Features are what you're calling terrain. There are also FakeFeatures (rivers and lakes), Resources, Improvements, and Routes (roads and railroads).
Actually... no. I meant terrain types. There are the standard 4 terrain types that are also the 4 basic plot types. The PlotTypes enumeration that goes along with this is found in CvEnums.h for both Civ 4 and Civ 5.
TERRAIN_HILL
TERRAIN_MOUNTAIN
TERRAIN_COAST
TERRAIN_OCEAN
Then there are the rest of the terrain types which are overlays for hills and flat lands.
TERRAIN_GRASS
TERRAIN_PLAINS
TERRAIN_DESERT
TERRAIN_TUNDRA
TERRAIN_SNOW
I have discovered that CvEnums.h for Civ 5 has all these terrains explicitly enumerated. So are features. This is different from Civ 4 and presents a potential problem...
A plot can have both a terrain type assigned and a second terrain type IF AND ONLY IF one of the terrain types is marked with the "graphical only" tag set to true. (I am assuming that the terrain type for these is translated to a plot type by the executable)
All of these are Landmarks, and you'll find the art defines in ArtDefines_Landmarks.
The terrains are not defined in landmarks. After writing this I did discover they have a define in Art Defines located in the strategic view part of the database.
I haven't tried to add TerrainTypes, so I don't know whether it's possible or not, but, yes, FeatureTypes can be added (with new art) with the caveat that most of them can't visibly be changed during the course of a game without having to save and reload the game to update the 3D map (though the tooltips and the Strategic View update properly).
I am glad for this but do I need to make a dll change in order to handle the new feature types? I wonder because of the explicit layout of feature types in CvEnums.h. I may be able to turn some of my ideas for "terrains" into features but not all of them so I am still concerned with terrain types.
I haven't been able to find any examples but I am assuming that altering terrain types is similar to altering feature types except that there no art pieces that directly correspond to the names. Instead we have [TerrainType] folders and [TerrainType Hill] folders that contain sub folders America, Africa, Asia, and Europe. These have a bunch of dds's but I cant find where theses are referred to anywhere in the db files. If they are hard coded, then it may be impossible to create new terrains which severely hampers Civ 5's usability for my project (to implement a realistic terrain generator) and I probably wasted my money.
The problem is adding your new features to the map. AssignStartingPlots.lua is a mess, and you'll be incompatible with other mods that edit it, but I think that's the only option for Features (as opposed to e.g., Resources, which could be adjusted after the fact). Note that there are a few threads that can be found that describe attempts to edit it that you might find useful.
Hmm... well that means that I will need to combine any desired lua files that edit it. We will see about that later. I am not concerned with adding the terrains to the map because that will be hard coded by the generator.