Citation: 6B_880/2018 E. 6

Le recours est partiellement admis, l'arrêt attaqué annulé et la cause renvoyée à l'autorité précédente pour nouvelle décision. Pour le surplus, le recours est rejeté. Le recourant, qui n'obtient que partiellement gain de cause, supportera une partie des frais judiciaires (art. 66 al. 1 LTF). Il peut prétendre à des dépens réduits, à la charge du canton de Vaud (art. 68 al. 1 LTF). Sa demande d'assistance judiciaire est sans objet dans la mesure où le recourant a droit à des dépens; elle doit être rejetée pour le reste, dès lors que le recours était dénué de chances de succès s'agissant des aspects sur lesquels le recourant a succombé (art. 64 al. 1 LTF).