* Do proper checks at startup for creature_formations table. Also remove useless lastLeaderGUID variable.
--HG-- branch : trunk
This commit is contained in:
@@ -87,7 +87,7 @@ void CreatureGroupManager::LoadCreatureFormations()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32 total_records = result->GetRowCount(), lastLeaderGUID = 0;
|
uint32 total_records = result->GetRowCount();
|
||||||
barGoLink bar( total_records);
|
barGoLink bar( total_records);
|
||||||
Field *fields;
|
Field *fields;
|
||||||
|
|
||||||
@@ -110,10 +110,24 @@ void CreatureGroupManager::LoadCreatureFormations()
|
|||||||
group_member->follow_angle = fields[3].GetUInt32();
|
group_member->follow_angle = fields[3].GetUInt32();
|
||||||
}
|
}
|
||||||
|
|
||||||
CreatureGroupMap[group_member->memberGUID] = group_member;
|
// check data correctness
|
||||||
|
{
|
||||||
|
QueryResult* result = WorldDatabase.PQuery("SELECT guid FROM creature WHERE guid = %u", group_member->leaderGUID);
|
||||||
|
if(!result)
|
||||||
|
{
|
||||||
|
sLog.outErrorDb("creature_formations table leader guid %u incorrect (not exist)", group_member->leaderGUID);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if(lastLeaderGUID != group_member->leaderGUID)
|
result = WorldDatabase.PQuery("SELECT guid FROM creature WHERE guid = %u", group_member->memberGUID);
|
||||||
lastLeaderGUID = group_member->leaderGUID;
|
if(!result)
|
||||||
|
{
|
||||||
|
sLog.outErrorDb("creature_formations table member guid %u incorrect (not exist)", group_member->memberGUID);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CreatureGroupMap[group_member->memberGUID] = group_member;
|
||||||
}
|
}
|
||||||
while(result->NextRow()) ;
|
while(result->NextRow()) ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user