[9651] Correct code for quest points of interest.

Adjusting field names and type, and send data accordingly to avoid client crash not using auto-generated id.

Due to the nature of the primary keys, two tables are truncated. Be sure to make backup if you have data you do now want to loose.

In addition, speed up load times of data from quest_poi_points, thanks Hunuza for helping out.
This commit is contained in:
Blizzy 2010-03-31 20:54:32 +02:00 committed by NoFantasy
parent 6750ce9185
commit 09b873a316
8 changed files with 82 additions and 47 deletions

View file

@ -520,14 +520,13 @@ void WorldSession::HandleQuestPOIQuery(WorldPacket& recv_data)
data << uint32(questId); // quest ID
data << uint32(POI->size()); // POI count
int index = 0;
for(QuestPOIVector::const_iterator itr = POI->begin(); itr != POI->end(); ++itr)
{
data << uint32(index); // POI index
data << uint32(itr->PoiId); // POI index
data << int32(itr->ObjectiveIndex); // objective index
data << uint32(itr->MapId); // mapid
data << uint32(itr->Unk1); // unknown
data << uint32(itr->Unk2); // unknown
data << uint32(itr->MapAreaId); // world map area id
data << uint32(itr->FloorId); // floor id
data << uint32(itr->Unk3); // unknown
data << uint32(itr->Unk4); // unknown
data << uint32(itr->points.size()); // POI points count
@ -537,7 +536,6 @@ void WorldSession::HandleQuestPOIQuery(WorldPacket& recv_data)
data << int32(itr2->x); // POI point x
data << int32(itr2->y); // POI point y
}
++index;
}
}
else
@ -553,7 +551,6 @@ void WorldSession::HandleQuestPOIQuery(WorldPacket& recv_data)
}
}
data.hexlike();
SendPacket(&data);
}