[Col] Colonization (1994) SAV files decoder and encoder

Hi Bladrov!

Sorry for not answering. I'm a bit far from this Col theme. Maybe I'll return to it in several months (years...) but now I honestly have little interest in developing the utilities. My last idea was to make a new advisor utility for realtime monitoring of the game status: it should monitor the autosave files changes and display the important actual info (colonies population, storages, supply dynamic, building state and speed etc). But now it is posponed.

I needed to run the utility yesterday after a long period where I didn't need to run it, and had to work it out. Do you think we could add a note to the readme.txt about how to run the game in Linux? Something like "open a terminal window in this directory, and enter ./smcol_sav_editor or ./enc_decode_sav" ?

Oh... You know, I think it's a good practice to remember how to do things in Linux :)

Also, I just had another idea. If you clear a forest with a non-expert pioneer, would it be possible for the utility to automatically Fortify it or something so it loses a turn after planting the forest? That would model (slightly) how non-experts take longer to perform pioneer tasks.

It could be confusing: if a pioneer gets fortified you may simply forget about him by the time of the next turn. Especially in late game when you have many units and colonies.

I was playing the ViceFix last night (it's supposed to help with the poor random number generator in combats), and just got a peace treaty with the French, but they left two dragoons still fortified next to one of my industrial colonies and I can't mine there like I should. I wonder if there could be an option to sweep the game and unfortify any units that are on your territory, if the country they belong to is at peace with you.

Yes it is possible but you must manually use the enc_decode_sav.py utility: just run it and convert the SAV file you need to fix to SAV.json, find the annoying units there (using their coordinates - i.e. find "[16, 33]" string to look for units on the (16, 33) tile), change their "orders" values to "none" and then convert the SAV.json back to SAV. Now you are free :)

I had another idea, don't know if it would be good to implement. Rather than have you input the coordinates for where you want to plant a forest, maybe the game could search for any pioneers you have on the board with 100 tools, and list them for you to pick, like it does for when you want to remove city fortifications, e.g.:
1. Pioneer in grassland (43, 23)
2. Hardy Pioneer in plains (35, 22)
3. Pioneer in desert (55, 30)

Some time ago I've added a convenient feature for this: when planting forest the utility automatically suggests you to plant in on the tile where your active unit stays (or the tile selected by the blinking while square indicator). This feature is already included in the last release. So you don't have to remember the coordinates: just place your pioneer on the tile of right click it and then save the game.
 
Thanks for replying, Pavel! No worries, I understand moving on from one project to other things. If you ever do that advisor utility, that would be amazing! As it is, your utility is and does more than I ever would have expected of it. I'm very glad to have it.

I'm always happy to test out and provide feedback for use in Linux.

That's ok, I was just brainstorming an idea. I do this with Race Into Space as well; I suggest ideas as they occur to me, and often the guys tell me why they're not practical.

I'll bear that in mind next time I'm using ViceFix. That looks a little awkward, but should work. And it would be better than the other thing I found to do about it, using the cheat utility to create Free Colonists in the affected spaces to force them to move.

I didn't know that, about the utility sort of defaulting to the last active tile! I probably missed it in the writeup; I'll have to take advantage of it next time I need to reforest a square.
 
Last edited:
Top Bottom