diff options
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rwxr-xr-x | src/server/game/Globals/ObjectMgr.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 00e67dc3507..020fcc2531e 100755 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -5217,7 +5217,7 @@ void ObjectMgr::LoadInstanceEncounters() { if (itr != dungeonLastBosses.end()) { - sLog->outErrorDb("Table `instance_encounters` specified encounter %u (%s) as last encounter but %u (%s) is already marked as one, skipped!", entry, dungeonEncounter->encounterName, itr->second->id, itr->second->encounterName[0]); + sLog->outErrorDb("Table `instance_encounters` specified encounter %u (%s) as last encounter but %u (%s) is already marked as one, skipped!", entry, dungeonEncounter->encounterName, itr->second->id, itr->second->encounterName); continue; } @@ -6795,9 +6795,15 @@ void ObjectMgr::LoadCorpses() { Field* fields = result->Fetch(); uint32 guid = fields[16].GetUInt32(); + CorpseType type = CorpseType(fields[13].GetUInt8()); + if (type >= MAX_CORPSE_TYPE) + { + sLog->outError("Corpse (guid: %u) have wrong corpse type (%u), not loading.", guid, type); + continue; + } - Corpse* corpse = new Corpse(); - if (!corpse->LoadFromDB(guid, fields)) + Corpse* corpse = new Corpse(type); + if (!corpse->LoadCorpseFromDB(guid, fields)) { delete corpse; continue; |