diff --git a/src/game_tab/left_panel/board/BoardCanvas.cpp b/src/game_tab/left_panel/board/BoardCanvas.cpp index 23a013e..f0cf1c5 100644 --- a/src/game_tab/left_panel/board/BoardCanvas.cpp +++ b/src/game_tab/left_panel/board/BoardCanvas.cpp @@ -66,15 +66,14 @@ void BoardCanvas::OnPaint(wxPaintEvent &event) { else { // Otherwise reuse buffer and animate. TEST CODE FOR NOW: dc.DrawBitmap(*adata.buffer, 0, 0, true); - double frames=adata.duration/(1000/adata.fps); - double percent=adata.frame/frames; + double percent=adata.frame/adata.frames; // Draw moving piece dc.DrawBitmap(*t->Get(adata.piece_moved), - adata.src.x + adata.frame*(adata.transVect.x/frames), - adata.src.y + adata.frame*(adata.transVect.y/frames), false); + adata.src.x + adata.frame*(adata.transVect.x/adata.frames), + adata.src.y + adata.frame*(adata.transVect.y/adata.frames), false); // end drawing adata.frame++; - if(adata.frame>=frames){ + if(adata.frame>=adata.frames){ adata.reuseBuffer=false; SetupBoard(adata.final_board, adata.final_is_black_turn, adata.final_captures); } @@ -125,7 +124,7 @@ void BoardCanvas::Animate(std::string board, bool is_black_turn, std::mapGetPiecesSizes(); std::uint32_t centrer_offset = (square_width - piece_width) / 2; if (!black_side) { @@ -153,10 +152,10 @@ void BoardCanvas::Animate(std::string board, bool is_black_turn, std::map0;i--){ + for(int i=adata.frames;i>0;i--){ Refresh(); Update(); int delay=sw.Time()-time_per_frame; diff --git a/src/game_tab/left_panel/board/BoardCanvas.hpp b/src/game_tab/left_panel/board/BoardCanvas.hpp index 36e1cf2..d4e4717 100644 --- a/src/game_tab/left_panel/board/BoardCanvas.hpp +++ b/src/game_tab/left_panel/board/BoardCanvas.hpp @@ -44,7 +44,7 @@ typedef std::tuple ClockTime; typedef struct AnimState { wxBitmap *buffer; bool reuseBuffer; - int frame,duration,fps,duration_fast; + int frame,frames,duration,fps,duration_fast; std::string final_board; bool final_is_black_turn; std::map final_captures;