+#include "radar.qh"
+
+#include <common/ent_cs.qh>
+#include <common/mapinfo.qh>
+#include <client/mapvoting.qh>
+#include <client/teamradar.qh>
+#include <common/mutators/mutator/waypoints/all.qh>
+
// Radar (#6)
float HUD_Radar_Clickable()
void HUD_Radar_Show_Maximized(bool doshow,float clickable)
{
+ TC(bool, doshow);
hud_panel_radar_maximized = doshow;
hud_panel_radar_temp_hidden = 0;
}
-float HUD_Radar_InputEvent(float bInputType, float nPrimary, float nSecondary)
+float HUD_Radar_InputEvent(int bInputType, float nPrimary, float nSecondary)
{
+ TC(int, bInputType);
if(!hud_panel_radar_maximized || !hud_panel_radar_mouse ||
autocvar__hud_configure || mv_active)
return false;
return false;
}
- if ( getstati(STAT_HEALTH) <= 0 )
+ if ( STAT(HEALTH) <= 0 )
{
// Show scoreboard
if ( bInputType < 2 )
}
- const vector cursor_size = '32 32 0';
- drawpic(mousepos-'8 4 0', strcat("gfx/menu/", autocvar_menu_skin, "/cursor.tga"), cursor_size, '1 1 1', 0.8, DRAWFLAG_NORMAL);
+ draw_cursor_normal(mousepos, '1 1 1', 0.8);
}
void HUD_Radar()
}
int color2;
- entity tm;
float scale2d, normalsize, bigsize;
teamradar_origin2d = pos + 0.5 * mySize;
if((hud_panel_radar_rotation == 0 && !hud_panel_radar_maximized) || (hud_panel_radar_maximized_rotation == 0 && hud_panel_radar_maximized))
{
// max-min distance must fit the radar in any rotation
- bigsize = vlen_minnorm2d(teamradar_size2d) * scale2d / (1.05 * vlen2d(mi_scale));
+ bigsize = vlen_minnorm2d(teamradar_size2d) * scale2d / (1.05 * vlen(vec2(mi_scale)));
}
else
{
draw_teamradar_background(hud_panel_radar_foreground_alpha);
- for(tm = world; (tm = find(tm, classname, "radarlink")); )
- draw_teamradar_link(tm.origin, tm.velocity, tm.team);
+ FOREACH_ENTITY_CLASS("radarlink", true, draw_teamradar_link(it.origin, it.velocity, it.team));
- vector coord;
- vector brightcolor;
- for(tm = world; (tm = findflags(tm, teamradar_icon, 0xFFFFFF)); )
- {
+ FOREACH_ENTITY_FLAGS(teamradar_icon, 0xFFFFFF, {
if ( hud_panel_radar_mouse )
- if ( tm.health > 0 )
- if ( tm.team == myteam+1 )
+ if ( it.health > 0 )
+ if ( it.team == myteam+1 || gametype == MAPINFO_TYPE_RACE )
{
- coord = teamradar_texcoord_to_2dcoord(teamradar_3dcoord_to_texcoord(tm.origin));
- if ( vlen(mousepos-coord) < 8 )
+ vector coord = teamradar_texcoord_to_2dcoord(teamradar_3dcoord_to_texcoord(it.origin));
+ if(vdist((mousepos - coord), <, 8))
{
- brightcolor_x = min(1,tm.teamradar_color_x*1.5);
- brightcolor_y = min(1,tm.teamradar_color_y*1.5);
- brightcolor_z = min(1,tm.teamradar_color_z*1.5);
+ vector brightcolor;
+ brightcolor_x = min(1,it.teamradar_color_x*1.5);
+ brightcolor_y = min(1,it.teamradar_color_y*1.5);
+ brightcolor_z = min(1,it.teamradar_color_z*1.5);
drawpic(coord - '8 8 0', "gfx/teamradar_icon_glow", '16 16 0', brightcolor, panel_fg_alpha, 0);
}
}
- entity icon = RadarIcons_from(tm.teamradar_icon);
- draw_teamradar_icon(tm.origin, icon, tm, spritelookupcolor(tm, icon.netname, tm.teamradar_color), panel_fg_alpha);
- }
- for(tm = world; (tm = find(tm, classname, "entcs_receiver")); )
- {
- color2 = GetPlayerColor(tm.sv_entnum);
- //if(color == NUM_SPECTATOR || color == color2)
- draw_teamradar_player(tm.origin, tm.angles, Team_ColorRGB(color2));
- }
- draw_teamradar_player(view_origin, view_angles, '1 1 1');
+ entity icon = RadarIcons_from(it.teamradar_icon);
+ draw_teamradar_icon(it.origin, icon, it, spritelookupcolor(it, icon.netname, it.teamradar_color), panel_fg_alpha);
+ });
+ AL_EACH(_entcs, e, it != NULL, {
+ if (!it.m_entcs_private) continue;
+ if (it.sv_entnum == current_player) continue;
+ color2 = entcs_GetTeam(it.sv_entnum);
+ draw_teamradar_player(it.origin, it.angles, Team_ColorRGB(color2));
+ });
+ draw_teamradar_player(entcs_receiver(current_player).origin, view_angles, '1 1 1');
drawresetcliparea();
{
string message = "Click to select teleport destination";
- if ( getstati(STAT_HEALTH) <= 0 )
+ if ( STAT(HEALTH) <= 0 )
{
message = "Click to select spawn location";
}