HM3: Major Save/Load code change now LIVE

I have just uploaded a fairly major change to the way HeroMachine 3 handles saving and loading characters, and how it masks and layers items. Details after the jump, but the take-away is that going forward you should have a lot fewer problems loading and saving. And hopefully the "stuck item" bug will go away too.

All of your previously saved characters should still be there, so you won't lose anything. It all ought to just work better.

I also want to give a special shout-out to everyone who contributed in the last thread on this subject, you all helped a lot. Particular thanks go to Violet, who sent me her saved-character .sol file, and Panner, who gave some exceptionally helpful, detailed, and specific bug reports that were incredibly helpful for tracking down all this. Thanks a ton!

Here's a list of what all is included in this update:

  • Usability tweaks to the save/load screen itself:
    • Larger save/load screen so you can see more of your characters at once.
    • Save/load scroll bar now works more like every other one on the planet (i.e. clicking the down arrow makes the list scroll up and vice versa).
    • List of saved characters now stops scrolling in the appropriate direction once you hit the top or bottom of the list.
  • Updated code for layering items when you add them to the character.
  • Updated code for masking items.
  • Updated code for how patterns are applied to loaded characters.
  • Major code changes to how saved characters are loaded, how their items are layered, and how their items are masked.
  • Changed how the program tracks which set of items is active, to fix the bug where you'd click on an item from one set and a totally different set would appear.
  • "Multiples" vs. "Singles" setting now works for loaded characters -- if you have more than one item loaded for a particular slot, that slot will now by default be set to "multiples" so you won't accidentally wipe out all your existing selections by adding a new one.
  • Clicking on an item directly now resets the "current set and slot" menus correctly.

Previously, saved characters would often load with their layering all messed up (so the head would be behind the background, for instance). Or the masking would be broken. Or there would be items on the stage you couldn't move any more once the character loaded. Or you'd click to add an item from one set, and suddenly a completely different set would be active.

Hopefully all that is fixed now, and the characters you load will look just like the one you saved.

Here's an example. This is how a quick test character I created is supposed to look, and how he appears when loaded from the save file with the new HM3 version:

And here's the same character from the same save file, loaded under the previous HM3 version:

Note how the leopard-skin pattern is missing from the leggings, and how the chain is masked to the legs instead of the hand? That's fixed now.

Hopefully some of your previously saved characters that were hosed up will now load correctly. But, if you loaded them up and they were hosed, and then you RE-saved the character, then it's going to have saved the incorrect data and you're still hosed.

I also am hopeful that the "stuck item" bug will mostly be resolved as a side-effect of the rewrite.

Please let me know ASAP if you encounter any problems with the new version.

I'm not 100% sure what part of the code I am going to tackle next, so if you have a request in that regard, please speak up in comments.