Server responds to barrier queries
This commit is contained in:
@@ -130,6 +130,10 @@ int RoomData::GetRoomIndex() {
|
||||
return roomIndex;
|
||||
}
|
||||
|
||||
BarrierManager* RoomData::GetBarrierMgr() {
|
||||
return &barrierMgr;
|
||||
}
|
||||
|
||||
std::list<CharacterData*>* RoomData::GetCharacterList() {
|
||||
return &characterList;
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ public:
|
||||
int SetRoomIndex(int i);
|
||||
int GetRoomIndex();
|
||||
|
||||
BarrierManager* GetBarrierMgr();
|
||||
std::list<CharacterData*>* GetCharacterList();
|
||||
CreatureManager* GetCreatureMgr();
|
||||
RegionPagerLua* GetPager();
|
||||
|
||||
@@ -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
|
||||
//-------------------------
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user