так просто же ну не знаю например trace_to_exit юзать можно, заполняешь c_game_trace trace, от туда проверяешь просто if (trace.hit_enity == target) visible = true
но еще может быть хуйня что он будет у тя через стены простреливать, тогда попробуй поискать названия поверхностей или материалов, и делай проверку
if (name.find("wall") != std::string::npos) continue;