65 lines
1.8 KiB
C++
65 lines
1.8 KiB
C++
#pragma once
|
|
#include "gta/enums.hpp"
|
|
#include "natives.hpp"
|
|
#include "script.hpp"
|
|
#include "pointers.hpp"
|
|
#include "ui/blip_t.hpp"
|
|
#include "ui/CBlipList.hpp"
|
|
|
|
namespace big::blip
|
|
{
|
|
inline bool get_blip_location(Vector3& location, int sprite, int color = -1)
|
|
{
|
|
Blip blip;
|
|
for (blip = HUD::GET_FIRST_BLIP_INFO_ID(sprite); HUD::DOES_BLIP_EXIST(blip) && color != -1 && HUD::GET_BLIP_COLOUR(blip) != color; blip = HUD::GET_NEXT_BLIP_INFO_ID(sprite))
|
|
;
|
|
|
|
if (!HUD::DOES_BLIP_EXIST(blip) || (color != -1 && HUD::GET_BLIP_COLOUR(blip) != color))
|
|
return false;
|
|
|
|
location = HUD::GET_BLIP_COORDS(blip);
|
|
|
|
return true;
|
|
}
|
|
|
|
inline bool get_objective_location(Vector3& location)
|
|
{
|
|
if (get_blip_location(location, (int)BlipIcons::Circle, (int)BlipColors::YellowMission))
|
|
return true;
|
|
if (get_blip_location(location, (int)BlipIcons::Circle, (int)BlipColors::YellowMission2))
|
|
return true;
|
|
if (get_blip_location(location, (int)BlipIcons::Circle, (int)BlipColors::Mission))
|
|
return true;
|
|
if (get_blip_location(location, (int)BlipIcons::RaceFinish, (int)BlipColors::None))
|
|
return true;
|
|
if (get_blip_location(location, (int)BlipIcons::Circle, (int)BlipColors::Green))
|
|
return true;
|
|
if (get_blip_location(location, (int)BlipIcons::Circle, (int)BlipColors::Blue))
|
|
return true;
|
|
if (get_blip_location(location, (int)BlipIcons::CrateDrop))
|
|
return true;
|
|
|
|
static const int blips[] = {1, 57, 128, 129, 130, 143, 144, 145, 146, 271, 286, 287, 288};
|
|
for (const auto& blip : blips)
|
|
{
|
|
if (get_blip_location(location, blip, 5))
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
inline rage::Blip_t* get_selected_blip()
|
|
{
|
|
for (int i = 0; i < 1500; i++)
|
|
{
|
|
|
|
auto blip = g_pointers->m_gta.m_blip_list->m_Blips[i].m_pBlip;
|
|
if (blip && (blip->m_display_bits & BlipDisplayBits::BlipIsSelected))
|
|
{
|
|
return blip;
|
|
}
|
|
}
|
|
return nullptr;
|
|
}
|
|
} |