Tomb-Editor icon indicating copy to clipboard operation
Tomb-Editor copied to clipboard

WT: Swap animations

Open Sezzary opened this issue 8 months ago • 0 comments

In WT, reordering animations is impossible without manually tracking all links and state dispatches. An automated swap feature would be useful to aid in keeping things organised when working on new animations. Possible placement for the tool could be in the Animations drop-down menu in the top row.

I don't know how to make the appropriate UI changes, but functionally the swap can work like this in the wad animation object:

public void SwapAnimations(ushort animNumber0, ushort animNumber1)
 {
     foreach (var animation in Animations)
     {
         // Update next animation.
         if (animation.NextAnimation == animNumber0)
         {
             animation.NextAnimation = animNumber1;
         }
         else if (animation.NextAnimation == animNumber1)
         {
             animation.NextAnimation = animNumber0;
         }

         // Update next animations in state dispatches.
         foreach (var stateChange in animation.StateChanges)
         {
             foreach (var dispatch in stateChange.Dispatches)
             {
                 if (dispatch.NextAnimation == animNumber0)
                 {
                     dispatch.NextAnimation = animNumber1;
                 }
                 else if (dispatch.NextAnimation == animNumber1)
                 {
                     dispatch.NextAnimation = animNumber0;
                 }
             }
         }
     }
 }

Sezzary avatar Jun 23 '24 16:06 Sezzary