Calculating angles and distances
It looks good to me. I would change 

    if (!preyDead[i])
    {


To

    if (preyDead[i])
            continue;


Just so its less nested. Same with preyDead[j]. But everything looks fine to me.
A tip I once saw on SO is, if your list order doesn't matter you can sort the preyDead so all the dead would be at the beginning or end and that will help branch prediction. However thats assuming its not really expensive to sort it and that its a very erratic bool and it isnt true/false 90% of the time already.

Thats a uber optimize that may not help, it shouldn't be done less you really really want to