I have nearly finished an implementation of plotscripting commands for changing hand position, however, I totally agree that this really belongs in the sprite data, not in the hero data.
However, since hand positions are already stored with the hero, moving them into the sprites will still require at least some layer of backwards compatibility conversion. The question I am asking myself right now is, how badly am I making that backcompat burden worse right now?
Also, although the current nightlies do have commands for changing hand position, please don't use them yet! Hand position is mostly broken right now, and will be reset to 0,0 for all loaded games (which is horrible and I should have backed that mess out last night after I realized it was wrong, but I was sleepy)
So I am thinking about the future now.
Suppose we want to add connection points to all sprites. You could set a point on a hero sprite and name it "hand". The upgrade process could copy the hand positions from hero data to the spirtes that they use... however, the hand position in the hero data would need to continue to exist. It would be overridden by the "hand" pos attached to whatever sprite frame was actually being used. but for old games there is no way to detect which scripted changes to hero sprite might happen, so we could not get rid of hero-data-hand-positon completely, we would have to just keep it there and deprecate it.
It isn't a perfect plan, but I guess it is okay :)
Suppose we want to add connection points to all sprites. You could set a point on a hero sprite and name it "hand". The upgrade process could copy the hand positions from hero data to the spirtes that they use... however, the hand position in the hero data would need to continue to exist. It would be overridden by the "hand" pos attached to whatever sprite frame was actually being used. but for old games there is no way to detect which scripted changes to hero sprite might happen, so we could not get rid of hero-data-hand-positon completely, we would have to just keep it there and deprecate it.
It isn't a perfect plan, but I guess it is okay :)
JSH: This feature is implemented and would be ready for testing except that the nightly build on Windows is broken at the moment. As soon as it is fixed you can try it out.
There are commands for changing a hero's hand position, and the changed hand position will be stored in the save game ONLY if it differs from the default hand position you set in custom.
There are commands for changing a hero's hand position, and the changed hand position will be stored in the save game ONLY if it differs from the default hand position you set in custom.
Ok, I can see the point about NPC location saving. But I am still standing by the claim that in most other cases, changes in custom should NOT override changes saved in the RSAV file.
New scenario:
-custom has hero learn spell A on level 0
-author has arranged so that spell A is changed to spell B by a script at some story-point of the game; assume this point has been passed in-game
-author decides that spell A should have been learned at level 1, or from an item or something
-now what should game do?
I believe that RSAV should have precedence, ESPECIALLY because if the author wants custom to have precedence, they could accomplish this with the use of a 'reset to default' command. On the other hand, if we give custom precedence, there is no way that I can think of to have a simple catch-all command for the author to 'restore' RSAV's precedence.
I am Srime
New scenario:
-custom has hero learn spell A on level 0
-author has arranged so that spell A is changed to spell B by a script at some story-point of the game; assume this point has been passed in-game
-author decides that spell A should have been learned at level 1, or from an item or something
-now what should game do?
I believe that RSAV should have precedence, ESPECIALLY because if the author wants custom to have precedence, they could accomplish this with the use of a 'reset to default' command. On the other hand, if we give custom precedence, there is no way that I can think of to have a simple catch-all command for the author to 'restore' RSAV's precedence.
I am Srime
James Paige wrote:
So I am thinking about the future now.
Suppose we want to add connection points to all sprites.
Suppose we want to add connection points to all sprites.
This is be pretty neat. Then we can give heroes hats! Also, enemy cursors could be repositioned, attacks could emanate from the correct point of a hero/enemy (eg. from a slime's mouth, a priest's hand), and effect overlays (like sunglasses for "blind") could be positioned correctly.
James Paige wrote:
You could set a point on a hero sprite and name it "hand". The upgrade process could copy the hand positions from hero data to the spirtes that they use... however, the hand position in the hero data would need to continue to exist. It would be overridden by the "hand" pos attached to whatever sprite frame was actually being used.
I think the hero data should override the sprite data. When we upgrade by pulling the hero data from the sprite data, we can delete/set to "default" the hand position in the hero data if all the heroes with that sprite agree. We could even hide the hand position option from the hero editor if it's set to default so that you can never edit it again (since we shouldn't keep around useless options).
I'm in total agreement on everything else you said.
I thought the idea was that the saved game would always have precedence over the game data by default, except in the case of NPC positions?



