diff --git a/src/gui/newSong.cpp b/src/gui/newSong.cpp index fd7eace75..1b8e57def 100644 --- a/src/gui/newSong.cpp +++ b/src/gui/newSong.cpp @@ -113,7 +113,35 @@ void FurnaceGUI::drawNewSong() { nextDescName=i.name; accepted=true; } + if (ImGui::IsItemHovered()) { + if (ImGui::BeginTooltip()) { + std::map chipCounts; + std::vector chips; + for (FurnaceGUISysDefChip chip: i.orig) { + if (chipCounts.find(chip.sys) == chipCounts.end()) { + chipCounts[chip.sys] = 1; + chips.push_back(chip.sys); + } + else { + chipCounts[chip.sys] += 1; + } + } + int num_chips = chips.size(); + for (int chipIndex = 0; chipIndex < num_chips; chipIndex++) { + DivSystem chip = chips[chipIndex]; + const DivSysDef* sysDef = e->getSystemDef(chip); + ImGui::Text("%s (x%d): ", sysDef->name, chipCounts[chip]); + ImGui::TextWrapped("%s", sysDef->description); + if (chipIndex + 1 < num_chips) { + ImGui::Separator(); + } + } + + ImGui::EndTooltip(); + } + } } + ImGui::EndTable(); }