Thanks. Applying fix now. Should have checked this part first. But then, this should also cause reloading content files saved with OpenCS to break on Windows. I guess no one ever tried that.
Shouldn't the same line in ESMWriter::startSubRecord also be changed?
Also, can someone explain what was actually going on here? The size is overwritten later anyway in endRecord, so why do these lines cause problems?
Last edited by scrawl on 20 Feb 2014, 12:51, edited 1 time in total.
Done. Thanks. This esm reader/writer stuff is starting to give me a headache.
Anyway, all fixed have been applied and the changelog has also been updated. Please start creating the RC builds.
Notes for the release: Load/Save is still missing a few parts. Most of it is less important, but the following should be mentioned:
- Some creature state (also used for NPCs) is missing, including magic and AI
- Moving objects (other than the player) between cells is not handled properly
In the release message it should also be explicitly stated that the saved game format is not final yet. Until 1.0 it can be changed at any time, which may break compatibility with older saves.
I think we should wait for confirmation from anyone with windows.
scrawl: I don't really know. It just seemed wrong, so I changed it, and it worked. But I guess the memory allocation is done with this. Later, only the value is changed. Dunno why it worked without changing the subrecord thing.
I can give this a try, but at the moment I can't get past avcodec-54.dll crashing playing the initial movie to try saving/loading. I'll have one more go (with the 2 line changes in ESM) and report back.
Actually, that line shouldn't make a difference, because sizeof(int)==sizeof(uint32_t) on all our target platforms.
But then the other changes shouldn't make a difference either, because the value written is indeed overwritten later and also for the value 0 it doesn't matter if we are dealing with signed or unsigned integers.
Okay, let's hold the RCs a bit longer until we have confirmation from cc9cii.
I think in the long run we are looking at a total rewrite of both ESMReader and ESMWriter. These two classes have to many problems and too much cruft has accumulated.