223 auto debugBtnIt = std::find_if(
m_buttons.begin(),
m_buttons.end(), [](
auto &btn) { return btn->getId() ==
"Debug"; });
229 std::map<std::string, BuildMenuButton::Ptr> categories;
232 categories[btn->getId()] = btn;
239 (tileData.subCategory == tileData.category) ? (tileData.category +
"_" + tileData.subCategory) : tileData.subCategory;
241 const std::string &tooltip = !title.empty() ? title : subCategory.empty() ? category : subCategory;
244 if (category ==
"Water" || category ==
"Terrain")
249 if (!subCategory.empty())
251 auto it = categories.find(subCategory);
252 if (it == categories.end())
254 auto category_it = categories.find(category);
256 if (category_it == categories.end())
258 btn = (*debugBtnIt)->addCategoryButton(tx, tooltip, tileData);
259 categories[category] = btn;
263 btn = category_it->second;
266 auto subBtn = btn->addCategoryButton(tx, tooltip, tileData);
267 categories[subCategory] = subBtn;
269 subBtn->addTileButton(tx, tooltip, tileData);
273 it->second->addTileButton(tx, tooltip, tileData);
278 auto it = categories.find(category);
279 if (it == categories.end())
281 auto btn = (*debugBtnIt)->addTileButton(tx, tooltip, tileData);
282 categories[category] = btn;
286 it->second->addTileButton(tx, tooltip, tileData);