Skip to content

Commit 14ddeda

Browse files
authored
Merge pull request #327 from calband/sprite_animations
Adding sprites to Animation screen.
2 parents a2ac317 + 2cd51ec commit 14ddeda

39 files changed

+2181
-1552
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
build/*
12
build-macos/CalChart.xcodeproj/project.xcworkspace/*
23
build-macos/CalChart.xcodeproj/xcuserdata/*
34
build-win/README.txt

CMakeLists.txt

Lines changed: 99 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,105 @@ source_group(
188188

189189
add_executable (
190190
CalChart
191-
${CalChartSources}
192-
${CalChartHeaders}
191+
${CMAKE_CURRENT_SOURCE_DIR}/src/AnimationCanvas.cpp
192+
${CMAKE_CURRENT_SOURCE_DIR}/src/AnimationCanvas.h
193+
${CMAKE_CURRENT_SOURCE_DIR}/src/AnimationErrorsPanel.cpp
194+
${CMAKE_CURRENT_SOURCE_DIR}/src/AnimationErrorsPanel.h
195+
${CMAKE_CURRENT_SOURCE_DIR}/src/AnimationPanel.cpp
196+
${CMAKE_CURRENT_SOURCE_DIR}/src/AnimationPanel.h
197+
${CMAKE_CURRENT_SOURCE_DIR}/src/AnimationView.cpp
198+
${CMAKE_CURRENT_SOURCE_DIR}/src/AnimationView.h
199+
${CMAKE_CURRENT_SOURCE_DIR}/src/CCOmniviewCanvas.cpp
200+
${CMAKE_CURRENT_SOURCE_DIR}/src/CCOmniviewCanvas.h
201+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartApp.cpp
202+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartApp.h
203+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartDoc.cpp
204+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartDoc.h
205+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartDocCommand.cpp
206+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartDocCommand.h
207+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartFrame.cpp
208+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartFrame.h
209+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartPreferences.cpp
210+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartPreferences.h
211+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartSizes.cpp
212+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartSizes.h
213+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartToolBar.cpp
214+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartToolBar.h
215+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartView.cpp
216+
${CMAKE_CURRENT_SOURCE_DIR}/src/CalChartView.h
217+
${CMAKE_CURRENT_SOURCE_DIR}/src/ColorPalette.cpp
218+
${CMAKE_CURRENT_SOURCE_DIR}/src/ColorPalette.h
219+
${CMAKE_CURRENT_SOURCE_DIR}/src/ColorSetupCanvas.cpp
220+
${CMAKE_CURRENT_SOURCE_DIR}/src/ColorSetupCanvas.h
221+
${CMAKE_CURRENT_SOURCE_DIR}/src/ColorSetupDialog.cpp
222+
${CMAKE_CURRENT_SOURCE_DIR}/src/ColorSetupDialog.h
223+
${CMAKE_CURRENT_SOURCE_DIR}/src/ContinuityBrowser.cpp
224+
${CMAKE_CURRENT_SOURCE_DIR}/src/ContinuityBrowser.h
225+
${CMAKE_CURRENT_SOURCE_DIR}/src/ContinuityBrowserPanel.cpp
226+
${CMAKE_CURRENT_SOURCE_DIR}/src/ContinuityBrowserPanel.h
227+
${CMAKE_CURRENT_SOURCE_DIR}/src/ContinuityComposerDialog.cpp
228+
${CMAKE_CURRENT_SOURCE_DIR}/src/ContinuityComposerDialog.h
229+
${CMAKE_CURRENT_SOURCE_DIR}/src/ContinuityEditorPopup.cpp
230+
${CMAKE_CURRENT_SOURCE_DIR}/src/ContinuityEditorPopup.h
231+
${CMAKE_CURRENT_SOURCE_DIR}/src/CustomListViewPanel.cpp
232+
${CMAKE_CURRENT_SOURCE_DIR}/src/CustomListViewPanel.h
233+
${CMAKE_CURRENT_SOURCE_DIR}/src/FieldCanvas.cpp
234+
${CMAKE_CURRENT_SOURCE_DIR}/src/FieldCanvas.h
235+
${CMAKE_CURRENT_SOURCE_DIR}/src/FieldControlsToolBar.cpp
236+
${CMAKE_CURRENT_SOURCE_DIR}/src/FieldControlsToolBar.h
237+
${CMAKE_CURRENT_SOURCE_DIR}/src/FieldThumbnailBrowser.cpp
238+
${CMAKE_CURRENT_SOURCE_DIR}/src/FieldThumbnailBrowser.h
239+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesContCellSetup.cpp
240+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesContCellSetup.h
241+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesDrawingSetup.cpp
242+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesDrawingSetup.h
243+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesGeneralSetup.cpp
244+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesGeneralSetup.h
245+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesPSPrintingSetup.cpp
246+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesPSPrintingSetup.h
247+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesShowModeSetup.cpp
248+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesShowModeSetup.h
249+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesUtils.cpp
250+
${CMAKE_CURRENT_SOURCE_DIR}/src/PreferencesUtils.h
251+
${CMAKE_CURRENT_SOURCE_DIR}/src/PrintContinuityEditor.cpp
252+
${CMAKE_CURRENT_SOURCE_DIR}/src/PrintContinuityEditor.h
253+
${CMAKE_CURRENT_SOURCE_DIR}/src/TopFrame.cpp
254+
${CMAKE_CURRENT_SOURCE_DIR}/src/TopFrame.h
255+
${CMAKE_CURRENT_SOURCE_DIR}/src/background_image.cpp
256+
${CMAKE_CURRENT_SOURCE_DIR}/src/background_image.h
257+
${CMAKE_CURRENT_SOURCE_DIR}/src/basic_ui.cpp
258+
${CMAKE_CURRENT_SOURCE_DIR}/src/basic_ui.h
259+
${CMAKE_CURRENT_SOURCE_DIR}/src/cc_omniview_constants.h
260+
${CMAKE_CURRENT_SOURCE_DIR}/src/confgr.cpp
261+
${CMAKE_CURRENT_SOURCE_DIR}/src/confgr.h
262+
${CMAKE_CURRENT_SOURCE_DIR}/src/cont_box_draw.cpp
263+
${CMAKE_CURRENT_SOURCE_DIR}/src/cont_box_draw.h
264+
${CMAKE_CURRENT_SOURCE_DIR}/src/draw.cpp
265+
${CMAKE_CURRENT_SOURCE_DIR}/src/draw.h
266+
${CMAKE_CURRENT_SOURCE_DIR}/src/draw_utils.h
267+
${CMAKE_CURRENT_SOURCE_DIR}/src/e7_transition_solver_ui.cpp
268+
${CMAKE_CURRENT_SOURCE_DIR}/src/e7_transition_solver_ui.h
269+
${CMAKE_CURRENT_SOURCE_DIR}/src/field_canvas_shapes.cpp
270+
${CMAKE_CURRENT_SOURCE_DIR}/src/field_canvas_shapes.h
271+
${CMAKE_CURRENT_SOURCE_DIR}/src/ghost_module.cpp
272+
${CMAKE_CURRENT_SOURCE_DIR}/src/ghost_module.h
273+
${CMAKE_CURRENT_SOURCE_DIR}/src/linmath.h
274+
${CMAKE_CURRENT_SOURCE_DIR}/src/mode_dialog.cpp
275+
${CMAKE_CURRENT_SOURCE_DIR}/src/mode_dialog.h
276+
${CMAKE_CURRENT_SOURCE_DIR}/src/mode_dialog_canvas.cpp
277+
${CMAKE_CURRENT_SOURCE_DIR}/src/mode_dialog_canvas.h
278+
${CMAKE_CURRENT_SOURCE_DIR}/src/platconf.h
279+
${CMAKE_CURRENT_SOURCE_DIR}/src/precomp.cpp
280+
${CMAKE_CURRENT_SOURCE_DIR}/src/precomp.h
281+
${CMAKE_CURRENT_SOURCE_DIR}/src/print_ps_dialog.cpp
282+
${CMAKE_CURRENT_SOURCE_DIR}/src/print_ps_dialog.h
283+
${CMAKE_CURRENT_SOURCE_DIR}/src/setup_wizards.cpp
284+
${CMAKE_CURRENT_SOURCE_DIR}/src/setup_wizards.h
285+
${CMAKE_CURRENT_SOURCE_DIR}/src/show_ui.cpp
286+
${CMAKE_CURRENT_SOURCE_DIR}/src/show_ui.h
287+
${CMAKE_CURRENT_SOURCE_DIR}/src/single_instance_ipc.cpp
288+
${CMAKE_CURRENT_SOURCE_DIR}/src/single_instance_ipc.h
289+
${CMAKE_CURRENT_SOURCE_DIR}/src/ui_enums.h
193290
${CalChartDocs}
194291
${CalChartResources}
195292
"${CMAKE_CURRENT_SOURCE_DIR}/calchart.rc"

resources/default_sprite_strip.png

231 KB
Loading

shows/Dance Show final.shw

2.3 KB
Binary file not shown.

src/AnimationCanvas.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,17 @@ void AnimationCanvas::CreateControls()
5656
SetSizer(topSizer);
5757
}
5858

59+
bool AnimationCanvas::GetUseSprites() const
60+
{
61+
return CalChartConfiguration::GetGlobalConfig().Get_UseSprites();
62+
}
63+
64+
void AnimationCanvas::SetUseSprites(bool useSprites)
65+
{
66+
CalChartConfiguration::GetGlobalConfig().Set_UseSprites(useSprites);
67+
Refresh();
68+
}
69+
5970
void AnimationCanvas::SetZoomOnMarchers(bool zoomOnMarchers)
6071
{
6172
mZoomOnMarchers = zoomOnMarchers;

src/AnimationCanvas.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,15 @@ class AnimationCanvas : public wxPanel {
3535
~AnimationCanvas() override = default;
3636

3737
void OnUpdate(); // Refresh from the View
38-
void SetView(AnimationView* view) { mView = view; }
3938
auto GetView() const { return mView; }
39+
void SetView(AnimationView* view) { mView = view; }
4040

41-
void SetZoomOnMarchers(bool zoomOnMarchers);
41+
bool GetUseSprites() const;
42+
void SetUseSprites(bool useSprites);
4243
auto GetZoomOnMarchers() const { return mZoomOnMarchers; }
43-
void SetStepsOutForMarchersZoom(int steps);
44+
void SetZoomOnMarchers(bool zoomOnMarchers);
4445
auto GetStepsOutForMarchersZoom() const { return mStepsOutForMarcherZoom; }
46+
void SetStepsOutForMarchersZoom(int steps);
4547

4648
private:
4749
void Init();

src/AnimationPanel.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,14 @@ void AnimationPanel::CreateControls()
109109
AddToSizerBasic(boxsizer, mTempoCtrl);
110110
mItemsToHide.push_back(mTempoCtrl);
111111

112+
mSpritesCheckbox = new wxCheckBox(this, wxID_ANY, wxT("Sprites"));
113+
mSpritesCheckbox->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent& event) {
114+
mCanvas->SetUseSprites(event.IsChecked());
115+
});
116+
mSpritesCheckbox->SetValue(mCanvas->GetUseSprites());
117+
AddToSizerBasic(toprow, mSpritesCheckbox);
118+
mItemsToHide.push_back(mSpritesCheckbox);
119+
112120
auto sizer1 = new wxBoxSizer(wxVERTICAL);
113121
mZoomCheckbox = new wxCheckBox(this, wxID_ANY, wxT("Zoom"));
114122
mZoomCheckbox->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent& event) {
@@ -183,13 +191,15 @@ void AnimationPanel::OnCmd_ToggleAnimOmni(wxCommandEvent& event)
183191
mShowOmni = !mShowOmni;
184192
if (mShowOmni) {
185193
mCanvas->Hide();
194+
mSpritesCheckbox->Hide();
186195
mZoomCheckbox->Hide();
187196
mCollisionCheckbox->Hide();
188197
mOmniCanvas->Show();
189198
mOmniHelpButton->Show();
190199
mAnimateOmniToggle->SetLabel(wxT("Animate"));
191200
} else {
192201
mCanvas->Show();
202+
mSpritesCheckbox->Show();
193203
mZoomCheckbox->Show();
194204
mCollisionCheckbox->Show();
195205
mOmniCanvas->Hide();

src/AnimationPanel.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ class AnimationPanel : public wxPanel {
5454
void ToggleTimer();
5555
void UpdatePanel(); // specfically to update the controls
5656
bool OnBeat() const;
57+
auto TimerOn() const { return mTimerOn; }
5758

5859
auto GetInMiniMode() const { return mInMiniMode; }
5960
void SetInMiniMode(bool);
@@ -82,6 +83,7 @@ class AnimationPanel : public wxPanel {
8283
wxStaticText* mTempoLabel{};
8384
wxSpinCtrl* mTempoCtrl{};
8485
wxSlider* mBeatSlider{};
86+
wxCheckBox* mSpritesCheckbox{};
8587
wxCheckBox* mZoomCheckbox{};
8688
wxCheckBox* mCollisionCheckbox{};
8789
wxBitmapToggleButton* mPlayPauseButton{};

0 commit comments

Comments
 (0)