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
+4
View File
@@ -130,6 +130,10 @@ int RoomData::GetRoomIndex() {
return roomIndex;
}
BarrierManager* RoomData::GetBarrierMgr() {
return &barrierMgr;
}
std::list<CharacterData*>* RoomData::GetCharacterList() {
return &characterList;
}
+1
View File
@@ -53,6 +53,7 @@ public:
int SetRoomIndex(int i);
int GetRoomIndex();
BarrierManager* GetBarrierMgr();
std::list<CharacterData*>* GetCharacterList();
CreatureManager* GetCreatureMgr();
RegionPagerLua* GetPager();
+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
//-------------------------
+3
View File
@@ -100,6 +100,9 @@ private:
//creature management
void hQueryCreatureExists(CreaturePacket* const);
//barrier management
void hQueryBarrierExists(BarrierPacket* const);
//chat
void hTextBroadcast(TextPacket* const);
void hTextSpeech(TextPacket* const);