float_t flPlayerLastResolverAngle[MAX_PLAYERS_COUNT/*64*/];
switch(g_Globals.m_FireData.iMissedShotsByResolver[pPlayer->GetEntityIndex()])
{
case 0: // миссы равны нулю
if (!flPlayerLastResolverAngle[pPlayer->GetEntityIndex()]){ // делаем проверку на то что последний угол равен нулю, ставим вычисленную дельту в ресольв и сетаем ласт угол
m_ResolverData[pPlayer->GetEntityIndex()].flAngleForResolver = angle,
flPlayerLastResolverAngle[pPlayer->GetEntityIndex()] = angle;
else // последний угол не равен нулю, значит там есть инфа о ласт угле, ставим его в ресольв
m_ResolverData[pPlayer->GetEntityIndex()].flAngleForResolver = flPlayerLastResolverAngle[pPlayer->GetEntityIndex()]; break;
case 1: // мисс не равен нулю, нам не нужен ласт угол, просто брутим и сохраняем ласт угол
m_ResolverData[pPlayer->GetEntityIndex()].flAngleForResolver = -angle,
flPlayerLastResolverAngle[pPlayer->GetEntityIndex()] = -angle;
break;
// дальше по такому же принципу
}
// можешь сделать какую нибудь крутую логику, но если лень то просто забей, при смене карты или выходе игрока не забудь обнулить ласт угол при помощи memcpy, иначе начнутся приколы