X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2FView.qc;h=a29696751b79720bf06d3e40df9057dd02aed9d6;hb=0ed32bbddf11ada7d879e9b37e3997b744a270c8;hp=c6d86520d4a86912e2bddac4a6653a8c5e353c6f;hpb=19b6e4fe0563a322e4f2295d4c535933a9834f09;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index c6d86520d..a29696751 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -338,7 +338,7 @@ void CSQC_common_hud(void); void PostInit(void); void CSQC_Demo_Camera(); -float HUD_WouldDrawScoreboard (); +float HUD_WouldDrawScoreboard(); float view_set; float camera_mode; float reticle_type; @@ -468,7 +468,6 @@ void CSQC_UpdateView(float w, float h) } } - hud_accuracy_hud = cvar_or("hud_accuracy_hud", 1); ColorTranslateMode = cvar("cl_stripcolorcodes"); activeweapon = getstati(STAT_SWITCHWEAPON); f = cvar("teamplay"); @@ -534,8 +533,6 @@ void CSQC_UpdateView(float w, float h) } // Draw the Crosshair - float scoreboard_active; - scoreboard_active = HUD_WouldDrawScoreboard(); R_SetView(VF_DRAWCROSSHAIR, 0); //Make sure engine crosshairs are always hidden // Draw the Engine Status Bar (the default Quake HUD) @@ -683,12 +680,12 @@ void CSQC_UpdateView(float w, float h) self.draw2d(); self = e; + scoreboard_active = HUD_WouldDrawScoreboard(); + float hud; hud = getstati(STAT_HUD); if(hud == HUD_SPIDERBOT) - { CSQC_SPIDER_HUD(); - } else if(hud == HUD_WAKIZASHI) CSQC_WAKIZASHI_HUD(); else if(hud == HUD_RAPTOR) @@ -823,23 +820,15 @@ void CSQC_UpdateView(float w, float h) wcross_alpha_prev = wcross_alpha; wcross_color_prev = wcross_color; - wcross_scale *= 1 - cvar("_menu_alpha"); - wcross_alpha *= 1 - cvar("_menu_alpha"); + wcross_scale *= 1 - autocvar__menu_alpha; + wcross_alpha *= 1 - autocvar__menu_alpha; ring_scale = cvar("crosshair_ring_size"); - float f, a; wcross_size = drawgetimagesize(wcross_name) * wcross_scale; - float xyspeed; - xyspeed = vlen('1 0 0' * pmove_vel_x + '0 1 0' * pmove_vel_y); - if(xyspeed > nex_speed) - nex_speed = min(xyspeed, nex_maxvelocity); - else - nex_speed = max(nex_minvelocity, nex_speed - nex_speed_falloff_rate * frametime); - - if (activeweapon == WEP_NEX && button_attack2 && nex_charge) - nex_speed = min(nex_maxvelocity, nex_speed + nex_charge_rate * frametime); + float nex_charge; + nex_charge = getstatf(STAT_NEX_CHARGE); // ring around crosshair representing bullets left in camping rifle clip if (activeweapon == WEP_CAMPINGRIFLE && cr_maxbullets) @@ -850,12 +839,10 @@ void CSQC_UpdateView(float w, float h) a = cvar("crosshair_campingrifle_bulletcounter_alpha"); DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, "gfx/crosshair_ring.tga", f, wcross_color, wcross_alpha * a, DRAWFLAG_ADDITIVE); } - else if (activeweapon == WEP_NEX) // ring around crosshair representing velocity-dependent damage for the nex + else if (activeweapon == WEP_NEX && nex_charge) // ring around crosshair representing velocity-dependent damage for the nex { - f = bound(0, (nex_speed - nex_minvelocity) / (nex_maxvelocity - nex_minvelocity), 1); - a = cvar("crosshair_nexvelocity_alpha"); - DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, "gfx/crosshair_ring.tga", f, wcross_color, wcross_alpha * a, DRAWFLAG_ADDITIVE); + DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, "gfx/crosshair_ring.tga", nex_charge, wcross_color, wcross_alpha * a, DRAWFLAG_ADDITIVE); } #define CROSSHAIR_DO_BLUR(M,sz,wcross_name,wcross_alpha) \ @@ -962,11 +949,6 @@ void CSQC_UpdateView(float w, float h) // let's reset the view back to normal for the end R_SetView(VF_MIN, '0 0 0'); R_SetView(VF_SIZE, '1 0 0' * w + '0 1 0' * h); - - // be safe against triggerbots until everyone has the fixed engine - // this call is meant to overwrite the trace globals by something - // unsuspicious - traceline('0 0 0', '0 0 0', MOVE_WORLDONLY, world); } #define spider_h "gfx/vehicles/hud_bg.tga" @@ -1092,7 +1074,7 @@ void CSQC_SPIDER_HUD() void CSQC_RAPTOR_HUD() { - float rockets, reload, heat, hp, shield, energy; + float reload, hp, shield, energy; vector picsize, hudloc; // Fetch health & ammo stats @@ -1274,9 +1256,13 @@ void CSQC_common_hud(void) case HUD_NORMAL: // do some accuracy var caching float i; + if(cvar_string("hud_panel_weapons_accuracy_color_levels") != acc_color_levels) if(!(gametype == GAME_RACE || gametype == GAME_CTS)) { - acc_levels = tokenize(cvar_string("hud_panel_weapons_accuracy_color_levels")); + if(acc_color_levels) + strunzone(acc_color_levels); + acc_color_levels = strzone(cvar_string("hud_panel_weapons_accuracy_color_levels")); + acc_levels = tokenize(acc_color_levels); if (acc_levels > MAX_ACCURACY_LEVELS) acc_levels = MAX_ACCURACY_LEVELS; @@ -1287,7 +1273,7 @@ void CSQC_common_hud(void) HUD_Main(); // always run these functions for alpha checks HUD_DrawScoreboard(); - if (scoreboard_showscores || scoreboard_showscores_force || getstati(STAT_HEALTH) <= 0 || intermission == 1) // scoreboard/accuracy + if (scoreboard_active) // scoreboard/accuracy { HUD_Reset(); // HUD_DrawScoreboard takes care of centerprint_start