CVector vec = CVector();
int &m_nTargetBlipIndex = *reinterpret_cast<int*>(
reinterpret_cast<unsigned char*>(GAME->GetMenuManager()->GetInterface()) + 0x2C);
if (!m_nTargetBlipIndex) {
using CRadar__SetCoordBlip = auto (__cdecl*)(eMarkerType, CVector, unsigned int, eMarkerDisplay, char*) -> int;
m_nTargetBlipIndex = reinterpret_cast<CRadar__SetCoordBlip>(0x583820)
(eMarkerType::MARKER_TYPE_COORDS, vec, 0, eMarkerDisplay::MARKER_DISPLAY_BLIPONLY, nullptr);
}
auto CRadar__GetActualBlipArrayIndex = ((int(__cdecl *)(int))0x582870);
CMarker &m = *GAME->GetRadar()->GetMarker(CRadar__GetActualBlipArrayIndex(m_nTargetBlipIndex));
m.SetPosition(&vec);
m.SetSprite(eMarkerSprite::MARKER_SPRITE_WAYPOINT);