Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Resolver::AnimationFix(CUserCmd* pCmd)
- {
- const auto p_local = Interfaces::EntityList->m_pGetClientEntity(Interfaces::Engine->GetLocalPlayer());
- if (!p_local)
- return;
- if (p_local->m_iHealth() <= 0)
- {
- p_local->UpdateClientSideAnimations();
- return;
- }
- static CAnimationLayer backup_layers[15];
- if (!backup_layers)
- std::memcpy(backup_layers, p_local->m_pAnimOverlay(), (sizeof(CAnimationLayer) * 15));
- static auto fl_proper_abs = p_local->m_pAnimState()->m_flGoalFeetYaw;
- static auto sent_pose_params = p_local->m_flPoseParameter();
- static auto i_old_tick_count = 0;
- if (p_local->m_pAnimState()->m_iLastClientSideAnimationUpdateFramecount == Interfaces::GlobalVars->framecount)
- p_local->m_pAnimState()->m_iLastClientSideAnimationUpdateFramecount -= 1;
- if (pCmd->tick_count != i_old_tick_count)
- {
- i_old_tick_count = pCmd->tick_count;
- std::memcpy(backup_layers, p_local->m_pAnimOverlay(), (sizeof(CAnimationLayer) * 15));
- p_local->m_bClientSideAnimation() = true;
- p_local->UpdateState(p_local->m_pAnimState(), pCmd->viewangles);
- if (Globals::bSendPacket)
- {
- fl_proper_abs = p_local->m_pAnimState()->m_flGoalFeetYaw;
- sent_pose_params = p_local->m_flPoseParameter();
- }
- }
- p_local->m_bClientSideAnimation() = false;
- p_local->m_pAnimState()->m_flFeetYawRate = 0.f;
- p_local->SetAbsAngles(Vec3D(0, fl_proper_abs, 0));
- p_local->m_pAnimState()->m_flMagicFraction = 0.f;
- std::memcpy(p_local->GetAnimOverlays4(), backup_layers, (sizeof(CAnimationLayer) * 15));
- p_local->m_flPoseParameter() = sent_pose_params;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement