'Just post it in the Schwimmpanzer forum...'
Well, I'll post it here first, than correct the silly mistakes and add any missing info, so it can go in its own thread.
Modifying movement types and movement costs in Panzer Corps
File structure
In the Panzer Corps\Data folder, there is a file called movement.pzdat. This has the info that the game uses to calculate movement cost. I use MS Excel to edit it, similar to the pzeqp file. And before you start mutilating these files, please make backups. I made a little ‘backup122’ folder and moved all files that I wanted to edit there, including their folder structure.
A little background on how the files are structured: the movement.pzdat file is zero-indexed, meaning movement type numbers for the units in the equipment file (pzeqp) are references to the order of the tables, with 0 as the first one, counting up from there. So if you enter movement type ‘4’ in the equipment file for a certain unit, it uses the fifth table. So far I’ve added extra types beyond the original ones, for a total of 21, I don’t know what the maximum is.
The names for the movement types are listed first, followed by their short name. The names of the movement types are usual formatted as IDS_MOVT_NAME, this IDS_MOVT_NAME references to the strings.pzdat file, so it needs an entry there for the full name as displayed in the game. You can just add these entries at the bottom of the strings.pzdat, just be careful that the IDS_ entry is unique.
Something which is separate from the names displayed in the game are the little icons that show the movement types. These are located in Panzer Corps\UI\movement, and use the same zero-based indexing as in the movement file. So icon ‘5.png’ is displayed when using movement type ‘4’.
Table entries
After the last IDS_MOVT_NAME entry in the movement file, the tables will be read and linked to these name entries in the same order as the entries are listed. From this point, any other info than the actual data for the movement costs should be preceded by the # character to prevent PzC from reading it, just like in the equipment file. To be sure you can just base everything on the existing tables, copying them if necessary, to prevent errors.
Every movement type needs a line of entries for each terrain type, and each line has three entries, one for each possible state of this terrain type (terrain state). Terrain type is for example ‘Swamp’, terrain state can be three things: Dry, Muddy and Frozen. Dry is the ‘normal’ state, Muddy and Frozen are self explanatory.
Important note: Near the end of the list of terrain types, you will come across two entries that can be confusing. It lists ‘Major River’ and ‘River’, but also ‘Major River (feature)’ and ‘River (feature)’. The ‘feature’ means that this is used when the river is used as a sort of road for units that can move on water. Terrain features like roads, railroads and rivers override the underlying terrain type, and are used to calculate cost instead of the underlying terrain type.
Movement costs
Every entry describes the cost of moving into a hex with that particular terrain type/state. There are two basic types: fixed costs and percentage costs. And it is here that I ran into strange problems, I just couldn’t figure out at first what was going on, since my predictions about how some things affected movement were wrong. This is what I found out so far:
Fixed costs are simply a number of points that get subtracted from the units’ movement points, so 1 means each hex costs a single point of movement, 4 means it costs four points of movement to enter it. This explains why some tanks with ‘tracked’ movement can’t actually enter ‘Bocage’ or ‘Swamp’, it costs them 4 but they only have 3 movement! More on this later, let’s go to the percentages first:
Percentage costs
The percentage costs are always negative, because positive numbers are read as fixed costs. The percentage costs are mostly used to ‘block’ certain terrain types. These are set to -200, and make sure the unit cannot enter this terrain normally. Another common value is -100, and this means entering this terrain costs 100% of its movement points, so it can enter the terrain but it will cost a full move.
Lower percentage values can be a bit confusing, because they result in movement rates which are not influenced by how many movement point a unit has. To put it simply: -100 simply means the unit can move a single hex in this terrain, -50 means it can move two hexes, -25 means it can move four hexes, even if the base movement stat is lower.
Example:
Let’s suppose you have a movement cost of -50. How many hexes can units travel across this terrain if they have a movement stat of 4? Answer: 2 hexes.
What if they have 2 move? Answer: 2 hexes.
What if they have 1 move? Answer: 2 hexes.
If the movement cost was -25 all the answers would have been ‘4 hexes’, regardless of the movement stat of the unit (except 0 of course). So if you are not careful in deciding what movement cost you want you can end up with some strange effects.
Fixed costs
The fixed costs are described in the file as integers, meaning you should only enter whole numbers like 1 and 5, not fractions or decimals. But I am a curious person and tried a few things. As it appears, you can actually enter decimal numbers! It seems numbers with a single decimal can be used to calculate movement cost and the result is always rounded down to the nearest integer.
Examples:
An infantry unit has move 3. I’ve changed the cost for certain terrain types to 1.5, so it can travel 3/(1.5)=2 hexes in this type of terrain.
A truck has a base movement of 8. My modified wheeled movement type has ‘0.8’ as cost to move along dry roads. The truck can move 8/(0.

=10 hexes along roads.
To show how PzC rounds the numbers if decimals are used, if I change the cost into ‘0.9’, the truck can move 8/(0.9)=8.888, which gets rounded down to 8. So when using fractions you should take into account the movement stats of the units involved to get the right effect.
User Interface graphics
To repeat, the little icons in the purchase and unit info screens that show the movement types are located in Panzer Corps\UI\movement, and use the same zero-based indexing as in the movement file. So icon ‘5.png’ is displayed when using movement type ‘4’. I haven’t changed those yet, I just made a new set to match the changes I made.
The biggest problem is trying to show what subtypes of movement a unit uses. I use the word subtypes when I mean variations on a single basic movement type. For example, I made two horse type movements, one for horse riders (cavalry) and one for draught horses (for towed transport).
To show the difference, it would be nice have to be some subtly different icons, but they are very small and whatever I think of isn’t clear enough. Making a whole new set of icons isn’t a valuable investment of my time right now, so any solution will have to wait.
One pet annoyance is the way organic transports are displayed, and for this I am actually making some placeholder graphics. The issue is that standard PzC map movement overlay and unit list icons seem only capable of displaying wheeled or half-tracked transports correctly. The icons that are displayed in the unit list are located in \Panzer Corps\UI (transport0.png & transport1.png), the map overlays in \Panzer Corps\Graphics\Overlays (movetruck.png & movehalftrack.png).
I couldn’t add any more icons or overlays. Since horse transport will be introduced in Soviet Corps, I’m curious if this will be changed.
To side-step this issue, I’ve made a placeholder overlay for all transport units, I simply replaced it by a NATO symbol for transport (logistics) units, a stylized cartwheel that is just as big as the white dot in the normal movement overlay. I still haven’t finished adding something similar to the unit list, but this is not a big job. Testing the extra movement types and their stats have priority, eye candy can wait.