Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void clip_trace_to_players1(c_base_player* e, const vec3_t& start, const vec3_t& end, unsigned int mask, trace_filter* filter, trace_t* tr)
- {
- vec3_t mins = e->get_collideable()->mins(), maxs = e->get_collideable()->maxs();
- vec3_t dir(end - start);
- dir.normalize();
- vec3_t
- center = (maxs + mins) / 2,
- pos(center + e->get_abs_origin());
- vec3_t to = pos - start;
- float range_along = dir.dot(to);
- float range;
- if (range_along < 0.f)
- range = -to.length();
- else if (range_along > dir.length())
- range = -(pos - end).length();
- else {
- auto ray(pos - (dir * range_along + start));
- range = ray.length();
- }
- if (range <= 60.f) {
- trace_t trace;
- ray_t ray;
- ray.initialize(start, end);
- i::trace->clip_ray_to_entity(ray, mask, e, &trace);
- utils::dbg_print("[INFO] #1. enterTrace m_iTeamNum: %d | g_local m_iTeamNum: %d\n", trace.player->m_iTeamNum(), g_local->m_iTeamNum());
- utils::dbg_print("[INFO] #2. enterTrace m_iTeamNum: %d | g_local m_iTeamNum: %d\n", e->m_iTeamNum(), g_local->m_iTeamNum());
- if (tr->fraction > trace.fraction) {
- *tr = trace;
- utils::dbg_print("[INFO] #3. enterTrace m_iTeamNum: %d | g_local m_iTeamNum: %d\n", trace.player->m_iTeamNum(), g_local->m_iTeamNum());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement