Server responds to barrier queries

This commit is contained in:
2016-04-08 22:29:20 +10:00
parent 5d0f9e1bb8
commit e2e2e243d4
5 changed files with 35 additions and 4 deletions
+27
View File
@@ -302,11 +302,17 @@ void ServerApplication::HandlePacket(SerialPacket* const argPacket) {
hCharacterMovement(static_cast<CharacterPacket*>(argPacket));
break;
//TODO: (1) merge character, creature & barrier queries & updates together?
//creature management
case SerialPacketType::QUERY_CREATURE_EXISTS:
hQueryCreatureExists(static_cast<CreaturePacket*>(argPacket));
break;
//barrier management
case SerialPacketType::QUERY_BARRIER_EXISTS:
hQueryBarrierExists(static_cast<BarrierPacket*>(argPacket));
break;
//chat
case SerialPacketType::TEXT_BROADCAST:
hTextBroadcast(static_cast<TextPacket*>(argPacket));
@@ -820,6 +826,27 @@ void ServerApplication::hQueryCreatureExists(CreaturePacket* const argPacket) {
}
}
//-------------------------
//barrier management
//-------------------------
//TODO: On barrier create, etc.
void ServerApplication::hQueryBarrierExists(BarrierPacket* const argPacket) {
//respond with all barrier data
BarrierPacket newPacket;
BarrierManager* barrierMgr = roomMgr.Find(argPacket->roomIndex)->GetBarrierMgr();
//TODO: (0) move this into the room class
for (auto& it : *(barrierMgr->GetContainer()) ) {
copyBarrierToPacket(&newPacket, &(it.second), it.first);
newPacket.type = SerialPacketType::QUERY_BARRIER_EXISTS;
newPacket.roomIndex = argPacket->roomIndex;
network.SendTo(argPacket->srcAddress, static_cast<SerialPacket*>(&newPacket));
}
}
//-------------------------
//chat
//-------------------------