private void updatePlayers(int packetSize, Stream stream) {
        localEntityCount = 0;
        entityUpdateCount = 0;
        updateLocalPlayerMovement(stream);
        updatePlayerMovement(stream);
        updatePlayerList(stream, packetSize); // method91
        parsePlayerUpdateFlags(stream);
        for (int id = 0; id < localEntityCount; id++) {
            int localPlayerId = localPlayerIndices[id];
            if (localPlayers[localPlayerId].lastUpdate != Client.loopCycle) {
                localPlayers[localPlayerId] = null;
            }
        }
        if (stream.offset != packetSize) {
            Signlink.reporterror("Error packet size mismatch in getplayer pos:" + stream.offset + " psize:" + packetSize);
            throw new RuntimeException("eek");
        }
        for (int id = 0; id < localPlayerCount; id++) {
            if (localPlayers[playerIndices[id]] == null) {
                Signlink.reporterror(myUsername + " null entry in pl list - pos:" + id + " size:" + localPlayerCount);
                throw new RuntimeException("eek");
            }
        }
    }