Cache is only a short grace fallback, not a persistent targeting source.
Important: cached cursor must still match current aim.
См. определение в файле CCTLiquid.c строка 849
850 {
851 resolvedHitPosition = vector.Zero;
853
855 return false;
856
857 int now =
g_Game.GetTime();
859
862 return false;
863
866 return false;
867
869 {
871 return true;
872 }
873
874 return false;
875 }
bool m_HasLastSyntheticHitCursor
bool IsCachedSyntheticCursorRelevant(vector currentHitPosition, vector cachedHitPosition)
vector m_LastSyntheticHitCursor
int m_LastSyntheticHitCursorTime
bool TryValidateHitCursor(PlayerBase player, vector playerPos, vector hitPosition, out vector resolvedHitPosition, out int resolvedLiquidType)
static const int SYNTHETIC_CURSOR_CACHE_MAX_AGE_MS
Перекрестные ссылки g_Game, IsCachedSyntheticCursorRelevant(), LIQUID_NONE, m_HasLastSyntheticHitCursor, m_LastSyntheticHitCursor, m_LastSyntheticHitCursorTime, SYNTHETIC_CURSOR_CACHE_MAX_AGE_MS, TryValidateHitCursor() и vector::Zero.
Используется в TryResolveSyntheticCursor().