Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void c_visuals::chams(IMatRenderContext* ctx, const draw_model_state_t& state, const model_render_info_t& info, matrix_t* bone_to_world) noexcept {
- if (!config_system.item.vis_chams_vis && !config_system.item.vis_chams_invis)
- return;
- auto model_name = interfaces::model_info->get_model_name((model_t*)info.model);
- auto local_player = reinterpret_cast<player_t*>(interfaces::entity_list->get_client_entity(interfaces::engine->get_local_player()));
- auto entity = reinterpret_cast<player_t*>(interfaces::entity_list->get_client_entity(info.entity_index));
- if (!local_player || !local_player->is_alive() || !entity)
- return;
- static auto draw_model_execute_fn = reinterpret_cast<hooks::draw_model_execute_fn>(hooks::modelrender_hook->get_original(21));
- static i_material* mat = nullptr;
- auto def = interfaces::material_system->find_material("mat_default", TEXTURE_GROUP_MODEL, true, nullptr);
- mat = def;
- if (strstr(model_name, "models/player")) {
- if (entity && entity->is_alive() && !entity->dormant()) {
- int i = entity->index();
- if (local_player && local_player->is_alive() && entity->team() != local_player->team()) {
- interfaces::model_render->override_material(mat);
- interfaces::render_view->modulate_color(config_system.item.clr_chams_vis);
- interfaces::render_view->set_blend(config_system.item.clr_chams_vis[3]);
- draw_model_execute_fn(interfaces::model_render, ctx, state, info, bone_to_world);
- interfaces::model_render->override_material(nullptr);
- return;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement