X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fhud%2Fpanel%2Fradar.qc;h=269d870718e42663a431a3445c984876ff74b4c5;hb=a491650510dce3f774cce457ebf15ddcafcf393f;hp=c06fcdbfe218e87ad282ac0fbec2093ec6d96ce7;hpb=a0feb46a5f3f7db30054e67266e1c59f712f3da7;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/hud/panel/radar.qc b/qcsrc/client/hud/panel/radar.qc index c06fcdbfe..269d87071 100644 --- a/qcsrc/client/hud/panel/radar.qc +++ b/qcsrc/client/hud/panel/radar.qc @@ -1,3 +1,11 @@ +#include "radar.qh" + +#include +#include +#include +#include +#include + // Radar (#6) float HUD_Radar_Clickable() @@ -7,6 +15,7 @@ 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; @@ -17,6 +26,13 @@ void HUD_Radar_Show_Maximized(bool doshow,float clickable) if(autocvar_hud_cursormode) setcursormode(1); hud_panel_radar_mouse = 1; + + // we must unset the player's buttons, as they aren't released elsewhere + localcmd("-fire\n"); + localcmd("-fire2\n"); + localcmd("-use\n"); + localcmd("-hook\n"); + localcmd("-jump\n"); } } else if ( hud_panel_radar_mouse ) @@ -34,8 +50,9 @@ void HUD_Radar_Hide_Maximized() } -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; @@ -68,18 +85,16 @@ float HUD_Radar_InputEvent(float bInputType, float nPrimary, float nSecondary) else { // allow console/use binds to work without hiding the map - string con_keys; - float keys; - float i; - con_keys = strcat(findkeysforcommand("toggleconsole", 0)," ",findkeysforcommand("+use", 0)) ; - keys = tokenize(con_keys); // findkeysforcommand returns data for this + string con_keys = strcat(findkeysforcommand("toggleconsole", 0), " ", findkeysforcommand("+use", 0)) ; + int keys = tokenize(con_keys); // findkeysforcommand returns data for this + int i; for (i = 0; i < keys; ++i) { if(nPrimary == stof(argv(i))) return false; } - if ( getstati(STAT_HEALTH) <= 0 ) + if ( STAT(HEALTH) <= 0 ) { // Show scoreboard if ( bInputType < 2 ) @@ -122,15 +137,11 @@ void HUD_Radar_Mouse() return; } - if(!autocvar_hud_cursormode) - { - mousepos = mousepos + getmousepos() * autocvar_menu_mouse_speed; - - mousepos_x = bound(0, mousepos_x, vid_conwidth); - mousepos_y = bound(0, mousepos_y, vid_conheight); - } + if (!autocvar_hud_cursormode) + update_mousepos(); - HUD_Panel_UpdateCvars(); + panel = HUD_PANEL(RADAR); + HUD_Panel_LoadCvars(); panel_size = autocvar_hud_panel_radar_maximized_size; @@ -156,8 +167,7 @@ void HUD_Radar_Mouse() } - 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() @@ -183,7 +193,7 @@ void HUD_Radar() if ( hud_panel_radar_temp_hidden ) return; - HUD_Panel_UpdateCvars(); + HUD_Panel_LoadCvars(); float f = 0; @@ -266,7 +276,11 @@ void HUD_Radar() pos = panel_pos; mySize = panel_size; - HUD_Panel_DrawBg(1); + if (autocvar_hud_panel_radar_dynamichud) + HUD_Scale_Enable(); + else + HUD_Scale_Disable(); + HUD_Panel_DrawBg(); if(panel_bg_padding) { pos += '1 1 0' * panel_bg_padding; @@ -274,10 +288,9 @@ void HUD_Radar() } int color2; - entity tm; float scale2d, normalsize, bigsize; - teamradar_origin2d = pos + 0.5 * mySize; + teamradar_origin2d = HUD_Shift(pos + 0.5 * mySize); teamradar_size2d = mySize; if(minimapname == "") @@ -286,7 +299,7 @@ void HUD_Radar() teamradar_loadcvars(); scale2d = vlen_maxnorm2d(mi_picmax - mi_picmin); - teamradar_size2d = mySize; + teamradar_size2d = HUD_Scale(mySize); teamradar_extraclip_mins = teamradar_extraclip_maxs = '0 0 0'; // we always center @@ -294,7 +307,7 @@ void HUD_Radar() 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 { @@ -334,38 +347,33 @@ void HUD_Radar() 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); + IL_EACH(g_radarlinks, true, draw_teamradar_link(it.origin, it.velocity, it.team)); - vector coord; - vector brightcolor; - for(tm = world; (tm = findflags(tm, teamradar_icon, 0xFFFFFF)); ) - { + IL_EACH(g_radaricons, it.teamradar_icon, { 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 || !teamplay ) { - 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")); ) - { - if (!tm.m_entcs_private) continue; - if (entcs_is_self(tm)) continue; - 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(); @@ -373,7 +381,7 @@ void HUD_Radar() { string message = "Click to select teleport destination"; - if ( getstati(STAT_HEALTH) <= 0 ) + if ( STAT(HEALTH) <= 0 ) { message = "Click to select spawn location"; }