mirror of
https://github.com/GTAmodding/re3.git
synced 2025-07-14 00:04:08 +00:00
Triangular radar blips
This commit is contained in:
parent
a47f78758c
commit
365f9e9caf
5 changed files with 100 additions and 1 deletions
|
@ -335,7 +335,18 @@ void CRadar::DrawBlips()
|
|||
if (ms_RadarTrace[blipId].m_IconID != RADAR_SPRITE_NONE) {
|
||||
DrawRadarSprite(ms_RadarTrace[blipId].m_IconID, out.x, out.y, CalculateBlipAlpha(dist));
|
||||
} else {
|
||||
#ifdef TRIANGULAR_BLIPS
|
||||
CVector &pos = FindPlayerCentreOfWorld_NoSniperShift();
|
||||
CVector &blipPos = blipEntity->GetPosition();
|
||||
uint8 mode = BLIP_MODE_TRIANGULAR_UP;
|
||||
if (blipPos.z - pos.z <= 2.0f) {
|
||||
if (blipPos.z - pos.z < -4.0f) mode = BLIP_MODE_TRIANGULAR_DOWN;
|
||||
else mode = BLIP_MODE_SQUARE;
|
||||
}
|
||||
ShowRadarTraceWithHeight(out.x, out.y, ms_RadarTrace[blipId].m_wScale, (uint8)(color >> 24), (uint8)(color >> 16), (uint8)(color >> 8), 255, mode);
|
||||
#else
|
||||
ShowRadarTrace(out.x, out.y, ms_RadarTrace[blipId].m_wScale, (uint8)(color >> 24), (uint8)(color >> 16), (uint8)(color >> 8), 255);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -363,7 +374,18 @@ void CRadar::DrawBlips()
|
|||
if (ms_RadarTrace[blipId].m_IconID != RADAR_SPRITE_NONE) {
|
||||
DrawRadarSprite(ms_RadarTrace[blipId].m_IconID, out.x, out.y, CalculateBlipAlpha(dist));
|
||||
} else {
|
||||
#ifdef TRIANGULAR_BLIPS
|
||||
CVector &pos = FindPlayerCentreOfWorld_NoSniperShift();
|
||||
CVector &blipPos = ms_RadarTrace[blipId].m_vecPos;
|
||||
uint8 mode = BLIP_MODE_TRIANGULAR_UP;
|
||||
if (blipPos.z - pos.z <= 2.0f) {
|
||||
if (blipPos.z - pos.z < -4.0f) mode = BLIP_MODE_TRIANGULAR_DOWN;
|
||||
else mode = BLIP_MODE_SQUARE;
|
||||
}
|
||||
ShowRadarTraceWithHeight(out.x, out.y, ms_RadarTrace[blipId].m_wScale, (uint8)(color >> 24), (uint8)(color >> 16), (uint8)(color >> 8), 255, mode);
|
||||
#else
|
||||
ShowRadarTrace(out.x, out.y, ms_RadarTrace[blipId].m_wScale, (uint8)(color >> 24), (uint8)(color >> 16), (uint8)(color >> 8), 255);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -417,7 +439,20 @@ void CRadar::DrawBlips()
|
|||
if (ms_RadarTrace[blipId].m_IconID != RADAR_SPRITE_NONE)
|
||||
DrawRadarSprite(ms_RadarTrace[blipId].m_IconID, out.x, out.y, CalculateBlipAlpha(dist));
|
||||
else
|
||||
#ifdef TRIANGULAR_BLIPS
|
||||
{
|
||||
CVector &pos = FindPlayerCentreOfWorld_NoSniperShift();
|
||||
CVector &blipPos = blipEntity->GetPosition();
|
||||
uint8 mode = BLIP_MODE_TRIANGULAR_UP;
|
||||
if (blipPos.z - pos.z <= 2.0f) {
|
||||
if (blipPos.z - pos.z < -4.0f) mode = BLIP_MODE_TRIANGULAR_DOWN;
|
||||
else mode = BLIP_MODE_SQUARE;
|
||||
}
|
||||
ShowRadarTraceWithHeight(out.x, out.y, ms_RadarTrace[blipId].m_wScale, (uint8)(color >> 24), (uint8)(color >> 16), (uint8)(color >> 8), 255, mode);
|
||||
}
|
||||
#else
|
||||
ShowRadarTrace(out.x, out.y, ms_RadarTrace[blipId].m_wScale, (uint8)(color >> 24), (uint8)(color >> 16), (uint8)(color >> 8), 255);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -453,7 +488,20 @@ void CRadar::DrawBlips()
|
|||
if (ms_RadarTrace[blipId].m_IconID != RADAR_SPRITE_NONE)
|
||||
DrawRadarSprite(ms_RadarTrace[blipId].m_IconID, out.x, out.y, CalculateBlipAlpha(dist));
|
||||
else
|
||||
#ifdef TRIANGULAR_BLIPS
|
||||
{
|
||||
CVector &pos = FindPlayerCentreOfWorld_NoSniperShift();
|
||||
CVector &blipPos = ms_RadarTrace[blipId].m_vecPos;
|
||||
uint8 mode = BLIP_MODE_TRIANGULAR_UP;
|
||||
if (blipPos.z - pos.z <= 2.0f) {
|
||||
if (blipPos.z - pos.z < -4.0f) mode = BLIP_MODE_TRIANGULAR_DOWN;
|
||||
else mode = BLIP_MODE_SQUARE;
|
||||
}
|
||||
ShowRadarTraceWithHeight(out.x, out.y, ms_RadarTrace[blipId].m_wScale, (uint8)(color >> 24), (uint8)(color >> 16), (uint8)(color >> 8), 255, mode);
|
||||
}
|
||||
#else
|
||||
ShowRadarTrace(out.x, out.y, ms_RadarTrace[blipId].m_wScale, (uint8)(color >> 24), (uint8)(color >> 16), (uint8)(color >> 8), 255);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -949,6 +997,30 @@ void CRadar::ShowRadarTrace(float x, float y, uint32 size, uint8 red, uint8 gree
|
|||
}
|
||||
#endif
|
||||
|
||||
void CRadar::ShowRadarTraceWithHeight(float x, float y, uint32 size, uint8 red, uint8 green, uint8 blue, uint8 alpha, uint8 mode)
|
||||
{
|
||||
if (!CHud::m_Wants_To_Draw_Hud || TheCamera.m_WideScreenOn)
|
||||
return;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case BLIP_MODE_TRIANGULAR_UP:
|
||||
// size++; // VC does size + 1 for triangles
|
||||
CSprite2d::Draw2DPolygon(x + SCREEN_SCALE_X(size + 3.0f), y + SCREEN_SCALE_Y(size + 2.0f), x - (SCREEN_SCALE_X(size + 3.0f)), y + SCREEN_SCALE_Y(size + 2.0f), x, y - (SCREEN_SCALE_Y(size + 3.0f)), x, y - (SCREEN_SCALE_Y(size + 3.0f)), CRGBA(0, 0, 0, alpha));
|
||||
CSprite2d::Draw2DPolygon(x + SCREEN_SCALE_X(size + 1.0f), y + SCREEN_SCALE_Y(size + 1.0f), x - (SCREEN_SCALE_X(size + 1.0f)), y + SCREEN_SCALE_Y(size + 1.0f), x, y - (SCREEN_SCALE_Y(size + 1.0f)), x, y - (SCREEN_SCALE_Y(size + 1.0f)), CRGBA(red, green, blue, alpha));
|
||||
break;
|
||||
case BLIP_MODE_TRIANGULAR_DOWN:
|
||||
// size++; // VC does size + 1 for triangles
|
||||
CSprite2d::Draw2DPolygon(x, y + SCREEN_SCALE_Y(size + 2.0f), x, y + SCREEN_SCALE_Y(size + 3.0f), x + SCREEN_SCALE_X(size + 3.0f), y - (SCREEN_SCALE_Y(size + 2.0f)), x - (SCREEN_SCALE_X(size + 3.0f)), y - (SCREEN_SCALE_Y(size + 2.0f)), CRGBA(0, 0, 0, alpha));
|
||||
CSprite2d::Draw2DPolygon(x, y + SCREEN_SCALE_Y(size + 1.0f), x, y + SCREEN_SCALE_Y(size + 1.0f), x + SCREEN_SCALE_X(size + 1.0f), y - (SCREEN_SCALE_Y(size + 1.0f)), x - (SCREEN_SCALE_X(size + 1.0f)), y - (SCREEN_SCALE_Y(size + 1.0f)), CRGBA(red, green, blue, alpha));
|
||||
break;
|
||||
case BLIP_MODE_SQUARE:
|
||||
CSprite2d::DrawRect(CRect(x - SCREEN_SCALE_X(size + 1.0f), y - SCREEN_SCALE_Y(size + 1.0f), SCREEN_SCALE_X(size + 1.0f) + x, SCREEN_SCALE_Y(size + 1.0f) + y), CRGBA(0, 0, 0, alpha));
|
||||
CSprite2d::DrawRect(CRect(x - SCREEN_SCALE_X(size), y - SCREEN_SCALE_Y(size), SCREEN_SCALE_X(size) + x, SCREEN_SCALE_Y(size) + y), CRGBA(red, green, blue, alpha));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#if 1
|
||||
WRAPPER void CRadar::Shutdown() { EAXJMP(0x4A3F60); }
|
||||
#else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue