It seems some people are saving their game during battle, I can advice to save and load as much as possible during geoscape only, and try to be a man and don't save/load during battle :p
But anyhow, for those people that still insist to save during battle, I'm (again) (thinking of) saving the battlescape terrain in a binary way.
Because of a current battlescape savegame, that's let's say 18000 lines, there are 12000 lines for the terrain only. It's a bit crazy to have it described in plain text. It's a waste of CPU time and Harddisk space and serves no real purpose, as it's almost as difficult to manually edit as it would be a binary blob.
So I've decided on the width of the fields, they are unsigned and as follows: 32bit for the index, (8bits for the terrain ID + 16 bits for the map data id ) x 4 terrain objects, 8 bits for smoke, 8 bits for fire, 8 bits for discovered flag (room for 4 player and 4 alien discovered flags, if that ever might be of any use)
On top of that the "nodelink" concept will be thrown in the bin. The distance between nodes and whether or not they can be reached are calculated on the fly - the precalculated values are nowhere used, but they take up 1500 lines in the savegame file and a bunch of useless objects in memory.
But in the mean time, save/load as much as possible in geoscape only