aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorXTZGZoReX <none@none>2009-04-07 18:10:47 +0200
committerXTZGZoReX <none@none>2009-04-07 18:10:47 +0200
commitcea63f6fc68ecbbdf21b5f8e59464c5db4aa10c6 (patch)
tree7489a13cbcfa064e87015d6ab9f2f5c9154da20d /src
parent65200e103984ba76b6c3fc13ad1c2776f19a7ab7 (diff)
* Re-implement creature_formations startup checks after formations update.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/CreatureGroups.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/game/CreatureGroups.cpp b/src/game/CreatureGroups.cpp
index 63a252a9e20..ed0fde19eb0 100644
--- a/src/game/CreatureGroups.cpp
+++ b/src/game/CreatureGroups.cpp
@@ -106,7 +106,7 @@ void CreatureGroupManager::LoadCreatureFormations()
return;
}
- uint32 total_records = result->GetRowCount(), lastLeaderGUID = 0;
+ uint32 total_records = result->GetRowCount();
barGoLink bar( total_records);
Field *fields;
@@ -129,10 +129,24 @@ void CreatureGroupManager::LoadCreatureFormations()
group_member->follow_angle = fields[3].GetUInt32();
}
- CreatureGroupMap[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)
- lastLeaderGUID = group_member->leaderGUID;
+ result = WorldDatabase.PQuery("SELECT guid FROM creature WHERE guid = %u", memberGUID);
+ if(!result)
+ {
+ sLog.outErrorDb("creature_formations table member guid %u incorrect (not exist)", memberGUID);
+ continue;
+ }
+ }
+
+ CreatureGroupMap[memberGUID] = group_member;
}
while(result->NextRow()) ;