//previously in LoadFromDB but also needed for summoned creatures void Creature::LoadFlagRelatedData() { if (HasFlag( UNIT_NPC_FLAGS, UNIT_NPC_FLAG_TRAINER ) ) CreateTrainerSpells(); if ( HasFlag( UNIT_NPC_FLAGS, UNIT_NPC_FLAG_VENDOR ) ) _LoadGoods(); if ( HasFlag( UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER ) ) _LoadQuests(); }
void Creature::LoadFromDB(uint32 guid) { std::stringstream ss; ss << "SELECT * FROM creatures WHERE id=" << guid; QueryResult *result = sDatabase.Query( ss.str().c_str() ); ASSERT(result); Field *fields = result->Fetch(); Create(fields[8].GetUInt32(), objmgr.GetCreatureName(fields[8].GetUInt32())->Name.c_str(), fields[6].GetUInt32(), fields[1].GetFloat(), fields[2].GetFloat(), fields[3].GetFloat(), fields[4].GetFloat(), fields[8].GetUInt32()); m_zoneId = fields[5].GetUInt32(); m_moveRandom = fields[9].GetBool(); m_moveRun = fields[10].GetBool(); LoadValues(fields[7].GetString()); SetNameId(fields[8].GetUInt32()); _RealtimeSetCreatureInfo(); delete result; if ( HasFlag( UNIT_NPC_FLAGS, UNIT_NPC_FLAG_VENDOR ) ) _LoadGoods(); if ( HasFlag( UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER ) ) _LoadQuests(); SetUInt32Value( OBJECT_FIELD_GUID+1, HIGHGUID_UNIT ); AIM_Initialize(); }