From f1640e9882a14d88d3b2ad0c673dacfed8fecfa0 Mon Sep 17 00:00:00 2001 From: Jakob MG Date: Wed, 23 May 2012 22:49:51 +0200 Subject: [PATCH] Simple tactical hud overlay for turrets when in a vehicle --- defaultXonotic.cfg | 1 + gfx/vehicles/vth-mover.tga | Bin 0 -> 65580 bytes gfx/vehicles/vth-stationary.tga | Bin 0 -> 65580 bytes qcsrc/client/autocvars.qh | 1 + qcsrc/client/tturrets.qc | 58 +++++++++++++++++++------------- 5 files changed, 36 insertions(+), 24 deletions(-) create mode 100644 gfx/vehicles/vth-mover.tga create mode 100644 gfx/vehicles/vth-stationary.tga diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 0c5f1819c..ae552dd16 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -1647,6 +1647,7 @@ seta cl_vehicle_spiderbot_cross_alpha 0.6 seta cl_vehicle_spiderbot_cross_size 1 seta cl_vehicles_hudscale 0.5 seta cl_vehicles_hudalpha 0.75 +seta cl_vehicles_hud_tactical 1 //cl_gunalign calculator seta menu_cl_gunalign 3 "Gun alignment; 1 = center (if allowed by g_shootfromclient) or right, 2 = center (if allowed by g_shootfromclient) or left, 3 = right only, 4 = left only" diff --git a/gfx/vehicles/vth-mover.tga b/gfx/vehicles/vth-mover.tga new file mode 100644 index 0000000000000000000000000000000000000000..d831896ff90ef41dd88b2856a6270c1491e75196 GIT binary patch literal 65580 zcmeI*L2eX55Jb@yD~`bh;1)(234sI{aU9>=h(&L#@%X2eIUUvd-dM~8RZ%Yv;BEV` z?LSZ3)As4(bJ)+`?u@^~s3Yr~argaAk>FvacB?b~4x^5&bH?5GH${SnmD;V&_&ba` zuFe@ZfBB|3^q@j7tAmJM1mLVVmhmcEPyswF4AOheWeC7oaV+Ciwx9xdSQw=Dn#&M? zv*K9Bt8769@USpQ?=_bp0B6Oqj91x$3gBU3klt%9LjcZ-V;Qfq1r@-`O9TeLUxW0%TX3 zxnFB<>Jp&a(p*%gvMbGYb@QBg0lH}=H{aSDx&$h_ z(ri~Z&zTpXn^to3t-Ya3pt38?c6IZdc>%g8>Xy~sN#;pis*bDXlg!h)thy=fo#vg^hdQpBOY=_av+Az2 zcba!vAL_VjF3mfw&#Jr9-f7-xeW>HAxg_u1@b}Nhhd-BJmml9h|NVOT_V8u<2LhMP AWB>pF literal 0 HcmV?d00001 diff --git a/gfx/vehicles/vth-stationary.tga b/gfx/vehicles/vth-stationary.tga new file mode 100644 index 0000000000000000000000000000000000000000..31703bcfeaf4fb1614d2bcfda859c29f687963d6 GIT binary patch literal 65580 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 literal 0 HcmV?d00001 diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index 344c3731c..1e938c26a 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -67,6 +67,7 @@ float autocvar_cl_reticle_stretch; float autocvar_cl_stripcolorcodes; var float autocvar_cl_vehicle_spiderbot_cross_alpha = 0.6; var float autocvar_cl_vehicle_spiderbot_cross_size = 1; +var float autocvar_cl_vehicles_hud_tactical = 1; float autocvar_cl_velocityzoom; var float autocvar_cl_velocityzoom_type = 3; float autocvar_cl_velocityzoom_speed; diff --git a/qcsrc/client/tturrets.qc b/qcsrc/client/tturrets.qc index 3ef3eb9d6..d7abeb091 100644 --- a/qcsrc/client/tturrets.qc +++ b/qcsrc/client/tturrets.qc @@ -235,36 +235,46 @@ void turret_draw2d() return; float dist = vlen(self.origin - view_origin); + float t = (GetPlayerColor(player_localnum) + 1); + vector o; - /* - // TODO: Vehicle tactical hud - o = project_3d_to_2d(self.origin + '0 0 32'); - if(o_z < 0 - || o_x < (vid_conwidth * waypointsprite_edgeoffset_left) - || o_y < (vid_conheight * waypointsprite_edgeoffset_top) - || o_x > (vid_conwidth - (vid_conwidth * waypointsprite_edgeoffset_right)) - || o_y > (vid_conheight - (vid_conheight * waypointsprite_edgeoffset_bottom))) - return; // Dont draw wp's for turrets out of view - o_z = 0; - if(hud != HUD_NORMAL) - { - switch(hud) - { - case HUD_SPIDERBOT: - case HUD_WAKIZASHI: - case HUD_RAPTOR: - vector pz = drawgetimagesize("gfx/vehicles/axh-bracket.tga") * 0.25; - drawpic(o - pz * 0.5 , "gfx/vehicles/axh-bracket.tga", pz , '1 1 1', 0.75, DRAWFLAG_NORMAL); - break; + string txt; + + if(autocvar_cl_vehicles_hud_tactical) + if(dist < 10240 && t != self.team) + { + // TODO: Vehicle tactical hud + o = project_3d_to_2d(self.origin + '0 0 32'); + if(o_z < 0 + || o_x < (vid_conwidth * waypointsprite_edgeoffset_left) + || o_y < (vid_conheight * waypointsprite_edgeoffset_top) + || o_x > (vid_conwidth - (vid_conwidth * waypointsprite_edgeoffset_right)) + || o_y > (vid_conheight - (vid_conheight * waypointsprite_edgeoffset_bottom))) + return; // Dont draw wp's for turrets out of view + o_z = 0; + if(hud != HUD_NORMAL) + { + switch(hud) + { + case HUD_SPIDERBOT: + case HUD_WAKIZASHI: + case HUD_RAPTOR: + if(self.turret_type == TID_EWHEEL || self.turret_type == TID_WALKER) + txt = "gfx/vehicles/vth-mover.tga"; + else + txt = "gfx/vehicles/vth-stationary.tga"; + + vector pz = drawgetimagesize(txt) * 0.25; + drawpic(o - pz * 0.5, txt, pz , '1 1 1', 0.75, DRAWFLAG_NORMAL); + break; + } } - } - */ + } if(dist > self.maxdistance) return; string spriteimage = self.netname; - float t = (GetPlayerColor(player_localnum) + 1); float a = self.alpha * autocvar_hud_panel_fg_alpha; vector rgb = spritelookupcolor(spriteimage, self.teamradar_color); @@ -280,7 +290,7 @@ void turret_draw2d() print(sprintf("WARNING: sprite of name %s has no color, using pink so you notice it\n", spriteimage)); } - string txt = self.netname; + txt = self.netname; if(autocvar_g_waypointsprite_spam && waypointsprite_count >= autocvar_g_waypointsprite_spam) txt = _("Spam"); else -- 2.39.2