No, please don't open a ticket - we know what the problem is, but not why it's happening.
When a savefile is loaded, each object is read into memory using a function called rd_item_X, where X is the version number of the savefile. Object flag handling has now changed, so X was incremented to save and load the new flags properly using rd_item_3. I added code to rd_item_2 which should convert the flags of objects in old savefiles so that they stack properly with new objects, but for some reason this isn't working. The two relevant lines in rd_item_2 are
of_copy(o_ptr->flags, o_ptr->kind->base->flags);
of_union(o_ptr->flags, o_ptr->kind->flags);
We saw this bug in staging but couldn't see why it wasn't working, and assumed that it must have been an artefact of us all using savefiles we'd played in the staging branch, where things tend to get a bit muddled. I couldn't reproduce it with a "proper" old savefile.
But the assumption was wrong, and it is clearly a problem with the changes to object flags (ticket #120) and the rd_item_2 code.
All patches and suggestions welcome. In the meantime, apologies for the inconvenience w.r.t. stacking.
When a savefile is loaded, each object is read into memory using a function called rd_item_X, where X is the version number of the savefile. Object flag handling has now changed, so X was incremented to save and load the new flags properly using rd_item_3. I added code to rd_item_2 which should convert the flags of objects in old savefiles so that they stack properly with new objects, but for some reason this isn't working. The two relevant lines in rd_item_2 are
of_copy(o_ptr->flags, o_ptr->kind->base->flags);
of_union(o_ptr->flags, o_ptr->kind->flags);
We saw this bug in staging but couldn't see why it wasn't working, and assumed that it must have been an artefact of us all using savefiles we'd played in the staging branch, where things tend to get a bit muddled. I couldn't reproduce it with a "proper" old savefile.
But the assumption was wrong, and it is clearly a problem with the changes to object flags (ticket #120) and the rd_item_2 code.
All patches and suggestions welcome. In the meantime, apologies for the inconvenience w.r.t. stacking.
Comment