Beispiel #1
0
    Serial::Error::Error Client::readSpriteResponse(std::shared_ptr<ReadPacket> packet)
    {
        uint32_t numEntries = 0;
        serialise_int32(packet->reader, numEntries);

        std::cout << "SPRITE RESPONSE FOR " << numEntries << " SPRITES" << std::endl;

        auto renderer = FARender::Renderer::get();

        for (uint32_t i = 0; i < numEntries; i++)
        {
            uint32_t index = 0;
            uint32_t len = 0;
            serialise_int32(packet->reader, index);
            serialise_int32(packet->reader, len);

            std::string path(len, '\0');
            serialise_str(packet->reader, (uint8_t*)&path[0], len);

            renderer->fillServerSprite(index, path);

            std::cout << "SPRITE RESPONSE:" << index << " " << path << std::endl;
        }

        return Serial::Error::Success;
    }
    void NetManager::readSpriteResponse(ENetPacket* packet, size_t& position)
    {
        size_t numSprites;
        readFromPacket(packet, position, numSprites);

        auto renderer = FARender::Renderer::get();

        for(size_t i = 0; i < numSprites; i++)
        {
            size_t index;
            readFromPacket(packet, position, index);

            std::string path;

            char c = 0;

            do
            {
                readFromPacket(packet, position, c);

                if(c)
                    path += c;
            } while(c);

            renderer->fillServerSprite(index, path);

            std::cout << "response recieved " << index << " " << path << std::endl;
        }
    }