// // Created by koncord on 15.11.17. // #include #include "PacketGUIWindow.hpp" using namespace mwmp; PacketGUIWindow::PacketGUIWindow(RakNet::RakPeerInterface *peer) : PlayerPacket(peer) { packetID = ID_GUI_WINDOW; orderChannel = CHANNEL_SYSTEM; } void PacketGUIWindow::Packet(RakNet::BitStream *bs, bool send) { BasePacket::Packet(bs, send); RW(player->guiWindow.id, send); RW(player->guiWindow.height, send); RW(player->guiWindow.width, send); int32_t size; if (send) size = static_cast(player->guiWindow.widgets.size()); RW(size, send); if (!send) player->guiWindow.widgets.resize(size); for (auto &&widget : player->guiWindow.widgets) { RW(widget.type, send); RW(widget.name, send); RW(widget.posX, send); RW(widget.posY, send); if (widget.type != BasePlayer::GUIWindow::WidgetType::Label) { RW(widget.disabled, send); if (widget.type != BasePlayer::GUIWindow::WidgetType::Button) { RW(widget.width, send); RW(widget.height, send); size = widget.data.size(); RW(size, send); if (!send) widget.data.resize(size); for (auto &&str : widget.data) RW(str, send); } } } }