Upon some consideration of this, some ideas on solving this:
1. Two traceline check is too expensive and imprecise.
2. engineside walkmove stuffs IIRC can cause issues going over mesh / hole filled floors. (as in, they will refuse to go over them)
Lower expense options:
1. Avoidance Markers and triplines.
Avoidance marker: Basically a marker / lighthouse entity that the frikbot looks for and stays the heck away from. Perhaps definable avoidance radius? IIRC, frikbots are already programmed to avoid certain entities like grenades, so this is in theory easy to impliment... Entity load could be significant though.
Tripline: Basically an entity that has an angle set along a course (following a ledge) or perhaps a special waypoint chain. Frikbot would check it's surroundings for these, then perform a dual vlen distance check, if the bot is too close, then instruct the combat AI to veer away from vectors in this direction.
Dual vlen distance check:
1. If danger entity / entity chain is found, go distance of frikbot from entity along the defined angle direction, then perform a second vlen distance check from that point. If bot is too close, combat AI is instructed to move away from this point.
I don't have time at the moment to make the code for this, so I'm just submitting it as some ideas / proposals for you or somebody who wants to help with it. If I have time later, I'll try to see what I can come up with.
