CreatureObject* CreatureManagerImplementation::createCreature(uint32 templateCRC, bool persistent, uint32 mobileTemplateCRC) { ManagedReference<SceneObject*> object = zoneServer->createObject(templateCRC, persistent); if (object == NULL) { StringBuffer errMsg; errMsg << "could not spawn creature... wrong template? 0x" << hex << templateCRC; error(errMsg.toString()); return NULL; } if (!object->isCreatureObject()) { StringBuffer errMsg; errMsg << "server did not create a creature object wrong template? 0x" << hex << templateCRC; error(errMsg.toString()); return NULL; } CreatureObject* creature = cast<CreatureObject*>( object.get()); if (!createCreatureChildrenObjects(creature, templateCRC, creature->isPersistent(), mobileTemplateCRC)) { StringBuffer errMsg; errMsg << "could not create children objects for creature... 0x" << templateCRC; error(errMsg.toString()); return NULL; } return creature; }