bool CreatureEvents::registerEvent(Event* event, const pugi::xml_node&) { CreatureEvent* creatureEvent = reinterpret_cast<CreatureEvent*>(event); if (creatureEvent->getEventType() == CREATURE_EVENT_NONE) { std::cout << "Error: [CreatureEvents::registerEvent] Trying to register event without type!" << std::endl; return false; } CreatureEvent* oldEvent = getEventByName(creatureEvent->getName(), false); if (oldEvent) { //if there was an event with the same that is not loaded //(happens when realoading), it is reused if (!oldEvent->isLoaded() && oldEvent->getEventType() == creatureEvent->getEventType()) { oldEvent->copyEvent(creatureEvent); } return false; } else { //if not, register it normally m_creatureEvents[creatureEvent->getName()] = creatureEvent; return true; } }
bool CreatureEvents::registerEvent(Event* event, xmlNodePtr p) { CreatureEvent* creatureEvent = dynamic_cast<CreatureEvent*>(event); if(!creatureEvent) return false; switch(creatureEvent->getEventType()) { case CREATURE_EVENT_NONE: std::cout << "Error: [CreatureEvents::registerEvent] Trying to register event without type!." << std::endl; return false; break; //events are stored in a std::map default: { m_creatureEvents[creatureEvent->getName()] = creatureEvent; return true; } } }