feat: sync game
This commit is contained in:
@@ -31,6 +31,8 @@ static std::map<PacketType, PacketCreator> packets = {
|
||||
{PacketType::RemoveTower, []() -> PacketPtr {return std::make_unique<RemoveTowerPacket>(); } },
|
||||
{PacketType::SendMobs, []() -> PacketPtr {return std::make_unique<SendMobsPacket>(); } },
|
||||
{PacketType::UpgradeTower, []() -> PacketPtr {return std::make_unique<UpgradeTowerPacket>(); } },
|
||||
{PacketType::UpdateCastleLife, []() -> PacketPtr {return std::make_unique<UpdateCastleLifePacket>(); } },
|
||||
{PacketType::UpdateMobStates, []() -> PacketPtr {return std::make_unique<UpdateMobStatesPacket>(); } },
|
||||
};
|
||||
|
||||
PacketPtr createPacket(PacketType type, DataBuffer& buffer) {
|
||||
|
||||
@@ -535,6 +535,34 @@ void UpgradeTowerPacket::Deserialize(DataBuffer& data) {
|
||||
data >> m_TowerID >> m_TowerLevel;
|
||||
}
|
||||
|
||||
DataBuffer UpdateCastleLifePacket::Serialize() const {
|
||||
DataBuffer data;
|
||||
data << getID() << m_CastleLife << m_Team;
|
||||
return data;
|
||||
}
|
||||
|
||||
void UpdateCastleLifePacket::Deserialize(DataBuffer& data) {
|
||||
data >> m_CastleLife >> m_Team;
|
||||
}
|
||||
|
||||
DataBuffer UpdateMobStatesPacket::Serialize() const {
|
||||
DataBuffer data;
|
||||
data << getID() << static_cast<std::uint64_t>(m_MobStates.size());
|
||||
for (auto mobState : m_MobStates) {
|
||||
data << mobState;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
void UpdateMobStatesPacket::Deserialize(DataBuffer& data) {
|
||||
std::uint64_t mobCount;
|
||||
data >> mobCount;
|
||||
m_MobStates.resize(mobCount);
|
||||
for (std::uint64_t mobIndex = 0; mobIndex < mobCount; mobIndex++) {
|
||||
data >> m_MobStates[mobIndex];
|
||||
}
|
||||
}
|
||||
|
||||
REGISTER_DISPATCH_CLASS(PlayerLoginPacket);
|
||||
REGISTER_DISPATCH_CLASS(WorldBeginDataPacket);
|
||||
REGISTER_DISPATCH_CLASS(WorldDataPacket);
|
||||
@@ -557,6 +585,8 @@ REGISTER_DISPATCH_CLASS(WorldAddTowerPacket);
|
||||
REGISTER_DISPATCH_CLASS(RemoveTowerPacket);
|
||||
REGISTER_DISPATCH_CLASS(SendMobsPacket);
|
||||
REGISTER_DISPATCH_CLASS(UpgradeTowerPacket);
|
||||
REGISTER_DISPATCH_CLASS(UpdateCastleLifePacket);
|
||||
REGISTER_DISPATCH_CLASS(UpdateMobStatesPacket);
|
||||
|
||||
} // namespace protocol
|
||||
} // namespace td
|
||||
Reference in New Issue
Block a user