18 _serverSocket = std::move(serverSocket);
27 _entities.push_back(std::move(entity));
45 _services.push_back(std::move(service));
90 std::cout <<
"Sending game state to client " << clientID << std::endl;
91 std::shared_ptr<Packet> packet = std::make_shared<Packet>();
92 NewComponent newComponent{};
94 for (
auto &entity : _entities) {
95 for (
auto &component : entity->getComponents()) {
96 auto drawable = std::dynamic_pointer_cast<Drawable>(component);
98 newComponent.id = drawable->_textureId;
99 std::memset(&newComponent.attribute, 0, 16);
100 std::memcpy(&newComponent.attribute, entity->getAttribute().c_str(), 16);
101 std::memcpy(&newComponent.attribute2, entity->getAttribute().c_str() + 8, 8);
102 newComponent.type = ComponentTypeSocket ::SPRITESOCKET;
103 packet->code = NEW_COMPONENT;
104 packet->data_size =
sizeof(NewComponent);
105 packet->data = malloc(packet->data_size);
106 std::memcpy(packet->data, &newComponent, packet->data_size);
109 _serverSocket->send(packet.get(), _serverSocket->getClientAddress(clientID));
121 std::shared_ptr<Packet> packet = std::make_shared<Packet>();
122 NewComponent newComponent{};
124 for (
auto &entity : _entities) {
125 for (
auto &component : entity->getComponents()) {
126 auto drawable = std::dynamic_pointer_cast<Drawable>(component);
128 newComponent.id = drawable->_textureId;
129 std::memset(&newComponent.attribute, 0, 16);
130 std::memcpy(&newComponent.attribute, drawable->getAttribute(), std::strlen(drawable->getAttribute()));
131 newComponent.type = ComponentTypeSocket ::SPRITESOCKET;
132 newComponent.x = std::get<0>(drawable->getPosition());
133 newComponent.y = std::get<1>(drawable->getPosition());
134 newComponent.sizeHorizontal = std::get<0>(drawable->getSize());
135 newComponent.sizeVertical = std::get<1>(drawable->getSize());
136 newComponent.rectLeft = std::get<0>(drawable->getRect());
137 newComponent.rectTop = std::get<1>(drawable->getRect());
138 newComponent.rectWidth = std::get<2>(drawable->getRect());
139 newComponent.rectHeight = std::get<3>(drawable->getRect());
140 packet->code = NEW_COMPONENT;
141 packet->data_size =
sizeof(NewComponent);
142 packet->data = malloc(packet->data_size);
143 std::memcpy(packet->data, &newComponent, packet->data_size);
146 _serverSocket->broadcast(packet.get());