@@ -4224,58 +4224,77 @@ bool CStaticFunctionDefinitions::GetSFXStatus(eAudioLookupIndex containerIndex,
42244224CClientRadarMarker* CStaticFunctionDefinitions::CreateBlip (CResource& Resource, const CVector& vecPosition, unsigned char ucIcon, unsigned char ucSize,
42254225 const SColor color, short sOrdering , unsigned short usVisibleDistance)
42264226{
4227- CClientRadarMarker* pBlip = new CClientRadarMarker (m_pManager, INVALID_ELEMENT_ID, sOrdering , usVisibleDistance);
4228- if (pBlip )
4227+ // Valid icon and size?
4228+ if (CClientRadarMarkerManager::IsValidIcon (ucIcon) && ucSize <= 25 )
42294229 {
4230- pBlip->SetParent (Resource.GetResourceDynamicEntity ());
4231- pBlip->SetPosition (vecPosition);
4232- pBlip->SetSprite (ucIcon);
4233- pBlip->SetScale (ucSize);
4234- pBlip->SetColor (color);
4230+ CClientRadarMarker* pBlip = new CClientRadarMarker (m_pManager, INVALID_ELEMENT_ID, sOrdering , usVisibleDistance);
4231+ if (pBlip)
4232+ {
4233+ pBlip->SetParent (Resource.GetResourceDynamicEntity ());
4234+ pBlip->SetPosition (vecPosition);
4235+ pBlip->SetSprite (ucIcon);
4236+ pBlip->SetScale (ucSize);
4237+ pBlip->SetColor (color);
4238+ }
4239+ return pBlip;
42354240 }
4236- return pBlip;
4241+
4242+ return nullptr ;
42374243}
42384244
42394245CClientRadarMarker* CStaticFunctionDefinitions::CreateBlipAttachedTo (CResource& Resource, CClientEntity& Entity, unsigned char ucIcon, unsigned char ucSize,
42404246 const SColor color, short sOrdering , unsigned short usVisibleDistance)
42414247{
4242- CClientRadarMarker* pBlip = new CClientRadarMarker (m_pManager, INVALID_ELEMENT_ID, sOrdering , usVisibleDistance);
4243- if (pBlip)
4248+ assert (&Entity);
4249+ // Valid icon and size?
4250+ if (CClientRadarMarkerManager::IsValidIcon (ucIcon) && ucSize <= 25 )
42444251 {
4245- pBlip->SetParent (Resource.GetResourceDynamicEntity ());
4246- pBlip->AttachTo (&Entity);
4247- pBlip->SetSprite (ucIcon);
4248- pBlip->SetScale (ucSize);
4249- pBlip->SetColor (color);
4252+ CClientRadarMarker* pBlip = new CClientRadarMarker (m_pManager, INVALID_ELEMENT_ID, sOrdering , usVisibleDistance);
4253+ if (pBlip)
4254+ {
4255+ pBlip->SetParent (Resource.GetResourceDynamicEntity ());
4256+ pBlip->AttachTo (&Entity);
4257+ pBlip->SetSprite (ucIcon);
4258+ pBlip->SetScale (ucSize);
4259+ pBlip->SetColor (color);
4260+ }
4261+ return pBlip;
42504262 }
4251- return pBlip;
4263+
4264+ return nullptr ;
42524265}
42534266
42544267bool CStaticFunctionDefinitions::SetBlipIcon (CClientEntity& Entity, unsigned char ucIcon)
42554268{
4256- RUN_CHILDREN (SetBlipIcon (**iter, ucIcon))
4257-
4258- if (IS_RADARMARKER (&Entity))
4269+ if (CClientRadarMarkerManager::IsValidIcon (ucIcon))
42594270 {
4260- CClientRadarMarker& Marker = static_cast <CClientRadarMarker&>(Entity);
4271+ RUN_CHILDREN ( SetBlipIcon (**iter, ucIcon))
42614272
4262- Marker.SetSprite (ucIcon);
4263- return true ;
4273+ if (IS_RADARMARKER (&Entity))
4274+ {
4275+ CClientRadarMarker& Marker = static_cast <CClientRadarMarker&>(Entity);
4276+
4277+ Marker.SetSprite (ucIcon);
4278+ return true ;
4279+ }
42644280 }
42654281
42664282 return false ;
42674283}
42684284
42694285bool CStaticFunctionDefinitions::SetBlipSize (CClientEntity& Entity, unsigned char ucSize)
42704286{
4271- RUN_CHILDREN (SetBlipSize (**iter, ucSize))
4272-
4273- if (IS_RADARMARKER (&Entity))
4287+ if (ucSize <= 25 )
42744288 {
4275- CClientRadarMarker& Marker = static_cast <CClientRadarMarker&>(Entity);
4289+ RUN_CHILDREN ( SetBlipSize (**iter, ucSize))
42764290
4277- Marker.SetScale (ucSize);
4278- return true ;
4291+ if (IS_RADARMARKER (&Entity))
4292+ {
4293+ CClientRadarMarker& Marker = static_cast <CClientRadarMarker&>(Entity);
4294+
4295+ Marker.SetScale (ucSize);
4296+ return true ;
4297+ }
42794298 }
42804299
42814300 return false ;
0 commit comments