From 8cb19e528fec2548724b750615605c2739325aca Mon Sep 17 00:00:00 2001 From: fgenesis Date: Mon, 13 Jan 2025 01:12:53 +0100 Subject: [PATCH] anim editor: support horizontal flip --- Aquaria/AnimationEditor.cpp | 14 ++++++++++++++ Aquaria/AnimationEditor.h | 1 + 2 files changed, 15 insertions(+) diff --git a/Aquaria/AnimationEditor.cpp b/Aquaria/AnimationEditor.cpp index 08f78fd..ccb822c 100644 --- a/Aquaria/AnimationEditor.cpp +++ b/Aquaria/AnimationEditor.cpp @@ -514,6 +514,7 @@ void AnimationEditor::applyState() addAction(MakeFunctionEvent(AnimationEditor, incrTimelineGrid), KEY_P, 0); addAction(MakeFunctionEvent(AnimationEditor, toggleSplineMode), KEY_W, 0); + addAction(MakeFunctionEvent(AnimationEditor, flipH), KEY_F, 0); addAction(MakeFunctionEvent(AnimationEditor, selectPage0), KEY_1, 0); addAction(MakeFunctionEvent(AnimationEditor, selectPage1), KEY_2, 0); @@ -1839,6 +1840,19 @@ void AnimationEditor::reverseAnim() } } +void AnimationEditor::flipH() +{ + if (dsq->isNested()) return; + + RenderObject *ro = core->getCtrlState() ? (RenderObject*)getCurrentPageSprite() : (RenderObject*)spriteRoot; + ro->flipHorizontal(); + + const Vector red(1,0,0), white(1,1,1); + toptext->color = spriteRoot->isfh() ? red : white; + for(size_t i = 0; i < NumPages; ++i) + pages[i].timeline->label.color = pages[i].editSprite.isfhr() ? red : white; +} + void AnimationEditor::load() { if (dsq->isNested()) return; diff --git a/Aquaria/AnimationEditor.h b/Aquaria/AnimationEditor.h index 9fbdd9c..55e7a46 100644 --- a/Aquaria/AnimationEditor.h +++ b/Aquaria/AnimationEditor.h @@ -126,6 +126,7 @@ public: size_t selectedStripPoint; void reverseAnim(); + void flipH(); void toggleRenderBorders(); void updateRenderBorders();