Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void CResolver::Resolve_Predict(CBaseEntity* pEntity) {
- auto record = Backtracking->arr_infos.at(pEntity->GetIndex());
- std::vector<CPredictable> m_predictable;
- float last_lby = 0.0f;
- studiohdr_t* hdr = Interfaces->ModelInfo->GetStudioModel(pEntity->GetModel());
- for (auto &r : record.TickRecords) // аутизм, запоминани анимация
- {
- if (hdr && hdr->pSeqdesc(r.m_nSequence)->activity == ACT_CSGO_IDLE_TURN_BALANCEADJUST) // ACT_CSGO_IDLE_TURN_BALANCEADJUST
- {
- std::string animation = hdr->pSeqdesc(r.m_nSequence)->pszActivityName();
- //std::cout << "Resolvable animation for index '" << pEntity->GetIndex() << "' found @ '" << animation << "'\n";
- m_predictable.push_back(CPredictable(r.m_angEyeAngles.y, r.m_flSimulationTime));
- }
- if (GetDelta(r.m_flLowerBodyYawTarget, last_lby) < 35)
- continue;
- if (GetDelta(r.m_flLowerBodyYawTarget, r.m_angEyeAngles.y) < 35)
- continue;
- last_lby = r.m_flLowerBodyYawTarget;
- }
- bool is_breaking_lby = false;
- for (auto c : m_predictable)
- {
- if (IsDifferent(c.m_flSimulationTime, pEntity->GetSimulationTime(), 0.170f) /* думаю 170 мс норм */)
- continue;
- if (GetDelta(c.m_flLowerBodyYawTarget, pEntity->GetEyeAngles().y) < 90)
- continue;
- is_breaking_lby = true;
- last_lby = c.m_flLowerBodyYawTarget;
- }
- if (is_breaking_lby)
- {
- float offset = 90.0f;
- if (GetDelta(last_lby, pEntity->GetEyeAngles().y) < 270.0f && GetDelta(last_lby, pEntity->GetEyeAngles().y) > 90.0f)
- {
- offset = 180.0f;
- }
- switch (G::ShotsFired[pEntity->GetIndex()] % 4) // retarded way
- {
- case 0: pEntity->m_angEyeAngles().y += offset; break;
- case 1: pEntity->m_angEyeAngles().y += offset + 35.0f; break;
- case 2: pEntity->m_angEyeAngles().y -= offset + 35.0f; break;
- case 3: pEntity->m_angEyeAngles().y -= offset; break;
- }
- }
- else if (IsDifferent(last_lby, pEntity->GetEyeAngles().y)) // second retarded way
- {
- switch (G::ShotsFired[pEntity->GetIndex()] % 3)
- {
- case 0: pEntity->m_angEyeAngles().y = last_lby; break;
- case 1: pEntity->m_angEyeAngles().y = last_lby + 35.0f; break;
- case 2: pEntity->m_angEyeAngles().y = last_lby - 35.0f; break;
- }
- }
- pEntity->m_angEyeAngles().NormalizeYaw();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement