diff --git a/src/gui/main_window.cpp b/src/gui/main_window.cpp index 7dddab6..f473e83 100644 --- a/src/gui/main_window.cpp +++ b/src/gui/main_window.cpp @@ -56,8 +56,10 @@ void MainWindow::open_file_from_dialog() { auto& mc = m_memcards.back(); auto& grid = m_grids.back(); for (int z = 0; z < 15; ++z) { - if (mc[z].has_magic()) - grid.emplace_back(duck::make_nana_animation(mc[z], m_icon_size, m_icon_size, m_icon_fps)); + auto block = mc[z]; + for (std::size_t n = 0; block.has_magic() and n < block.block_count(); ++n) { + grid.emplace_back(duck::make_nana_animation(block, m_icon_size, m_icon_size, m_icon_fps)); + } } (*this)["slots"] << m_grids.back(); } diff --git a/subprojects/memcard/include/memcard/block.hpp b/subprojects/memcard/include/memcard/block.hpp index 8e5e17f..4f7e47e 100644 --- a/subprojects/memcard/include/memcard/block.hpp +++ b/subprojects/memcard/include/memcard/block.hpp @@ -72,7 +72,7 @@ public: std::vector icon_palette() const; bool has_magic() const; IconDisplayFlag icon_display_flag() const; - int block_count() const; + std::size_t block_count() const; std::size_t index() const { return m_index; } std::string title() const; std::size_t available_blocks() const; diff --git a/subprojects/memcard/src/block.cpp b/subprojects/memcard/src/block.cpp index 18c27cf..99f9eb7 100644 --- a/subprojects/memcard/src/block.cpp +++ b/subprojects/memcard/src/block.cpp @@ -163,7 +163,7 @@ IconDisplayFlag BasicBlock::icon_display_flag() const { } template -int BasicBlock::block_count() const { +std::size_t BasicBlock::block_count() const { return frame(0)[3]; }