Implemented client-side HandleRegionContent()

This commit is contained in:
Kayne Ruse
2014-11-30 23:29:46 +11:00
parent b59cd0fe87
commit 8579d7e0d6
2 changed files with 23 additions and 0 deletions
+20
View File
@@ -212,6 +212,12 @@ void InWorld::HandlePacket(SerialPacket* const argPacket) {
HandleDisconnectForced(static_cast<ClientPacket*>(argPacket));
break;
//map management
case SerialPacketType::REGION_CONTENT:
HandleRegionContent(static_cast<RegionPacket*>(argPacket));
break;
//errors
default: {
std::ostringstream msg;
msg << "Unknown SerialPacketType encountered in InWorld: " << static_cast<int>(argPacket->type);
@@ -287,3 +293,17 @@ void InWorld::HandleDisconnectForced(ClientPacket* const argPacket) {
SetNextScene(SceneList::DISCONNECTEDSCREEN);
ConfigUtility::GetSingleton()["client.disconnectMessage"] = "You have been forcibly disconnected by the server";
}
//-------------------------
//map management
//-------------------------
void InWorld::HandleRegionContent(RegionPacket* const argPacket) {
//replace existing regions
regionPager.UnloadRegion(argPacket->x, argPacket->y);
regionPager.PushRegion(argPacket->region);
//clean up after the serial code
delete argPacket->region;
argPacket->region = nullptr;
}
+3
View File
@@ -86,6 +86,9 @@ protected:
void HandleDisconnectResponse(ClientPacket* const);
void HandleDisconnectForced(ClientPacket* const);
//map management
void HandleRegionContent(RegionPacket* const);
//indexes
int& clientIndex;
int& accountIndex;