bool Spells::registerEvent(Event_ptr event, const pugi::xml_node&) { InstantSpell* instant = dynamic_cast<InstantSpell*>(event.get()); if (instant) { auto result = instants.emplace(instant->getWords(), std::move(*instant)); if (!result.second) { std::cout << "[Warning - Spells::registerEvent] Duplicate registered instant spell with words: " << instant->getWords() << std::endl; } return result.second; } RuneSpell* rune = dynamic_cast<RuneSpell*>(event.get()); if (rune) { auto result = runes.emplace(rune->getRuneItemId(), std::move(*rune)); if (!result.second) { std::cout << "[Warning - Spells::registerEvent] Duplicate registered rune with id: " << rune->getRuneItemId() << std::endl; } return result.second; } return false; }