X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Fview.qc;h=65df30fd89ff5ec10f4eb3804cac9e7d3776c384;hp=63a0aef279706cdc7ec78d7c649c30734ee12856;hb=63de1215428d078d5fb2021c49edf59a7900cef9;hpb=d687a0bb2c31cbe483344f9191a6c8c06f83e3d7 diff --git a/qcsrc/client/view.qc b/qcsrc/client/view.qc index 63a0aef27..65df30fd8 100644 --- a/qcsrc/client/view.qc +++ b/qcsrc/client/view.qc @@ -326,7 +326,7 @@ void viewmodel_draw(entity this) this.viewmodel_angles = this.angles; } anim_update(this); - if (!this.animstate_override && !this.animstate_looping) + if ((!this.animstate_override && !this.animstate_looping) || time > this.animstate_endtime) anim_set(this, this.anim_idle, true, false, false); } float f = 0; // 0..1; 0: fully active @@ -522,7 +522,7 @@ vector GetCurrentFov(float fov) current_zoomfraction = (current_viewzoom - 1) / (1/zoomfactor - 1); if(zoomsensitivity < 1) - setsensitivityscale(pow(current_viewzoom, 1 - zoomsensitivity)); + setsensitivityscale(current_viewzoom ** (1 - zoomsensitivity)); else setsensitivityscale(1); @@ -666,7 +666,7 @@ float TrueAimCheck(entity wepent) mv = MOVE_NORMAL; if(zoomscript_caught) { - tracebox(view_origin, '0 0 0', '0 0 0', view_origin + view_forward * MAX_SHOT_DISTANCE, mv, ta); + tracebox(view_origin, '0 0 0', '0 0 0', view_origin + view_forward * max_shot_distance, mv, ta); return EnemyHitCheck(); } break; @@ -692,7 +692,7 @@ float TrueAimCheck(entity wepent) vecs = decompressShotOrigin(STAT(SHOTORG)); - traceline(traceorigin, traceorigin + view_forward * MAX_SHOT_DISTANCE, mv, ta); + traceline(traceorigin, traceorigin + view_forward * max_shot_distance, mv, ta); trueaimpoint = trace_endpos; if(vdist((trueaimpoint - traceorigin), <, g_trueaim_minrange)) @@ -759,7 +759,7 @@ bool WantEventchase(entity this) { if(autocvar_cl_orthoview) return false; - if(STAT(GAMEOVER) || intermission) + if(STAT(GAME_STOPPED) || intermission) return true; if(this.viewloc) return true; @@ -875,6 +875,14 @@ void HitSound() sound(NULL, CH_INFO, SND_TYPEHIT, VOL_BASE, ATTN_NONE); typehit_time_prev = typehit_time; } + + static float kill_time_prev = 0; + float kill_time = STAT(KILL_TIME); + if (COMPARE_INCREASING(kill_time, kill_time_prev) > autocvar_cl_hitsound_antispam_time) + { + sound(NULL, CH_INFO, SND_KILL, VOL_BASE, ATTN_NONE); + kill_time_prev = kill_time; + } } vector crosshair_getcolor(entity this, float health_stat) @@ -961,7 +969,7 @@ void HUD_Crosshair(entity this) { float f, i, j; vector v; - if(!scoreboard_active && !camera_active && intermission != 2 && !STAT(GAMEOVER) && + if(!scoreboard_active && !camera_active && intermission != 2 && !STAT(GAME_STOPPED) && spectatee_status != -1 && !csqcplayer.viewloc && !MUTATOR_CALLHOOK(DrawCrosshair) && !HUD_MinigameMenu_IsOpened() ) { @@ -993,7 +1001,7 @@ void HUD_Crosshair(entity this) float shottype; // wcross_origin = '0.5 0 0' * vid_conwidth + '0 0.5 0' * vid_conheight; - wcross_origin = project_3d_to_2d(view_origin + MAX_SHOT_DISTANCE * view_forward); + wcross_origin = project_3d_to_2d(view_origin + max_shot_distance * view_forward); wcross_origin.z = 0; if(autocvar_crosshair_hittest) { @@ -1735,7 +1743,7 @@ void CSQC_UpdateView(entity this, float w, float h) t = (time - blurtest_time0) / (blurtest_time1 - blurtest_time0); r = t * blurtest_radius; - f = 1 / pow(t, blurtest_power) - 1; + f = 1 / (t ** blurtest_power) - 1; cvar_set("r_glsl_postprocess", "1"); cvar_set("r_glsl_postprocess_uservec1", strcat(ftos(r), " ", ftos(f), " 0 0")); @@ -1953,7 +1961,7 @@ void CSQC_UpdateView(entity this, float w, float h) if(autocvar_cl_reticle) { - string reticle_image = ""; + string reticle_image = string_null; bool wep_zoomed = false; for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot) { @@ -1962,11 +1970,8 @@ void CSQC_UpdateView(entity this, float w, float h) if(wep != WEP_Null && wep.wr_zoom) { bool do_zoom = wep.wr_zoom(wep, NULL); - if(wep.w_reticle != "") - { + if(!reticle_image && wep.w_reticle && wep.w_reticle != "") reticle_image = wep.w_reticle; - break; // we can only draw 1 reticle - } wep_zoomed += do_zoom; } } @@ -1981,7 +1986,7 @@ void CSQC_UpdateView(entity this, float w, float h) } else if(wep_zoomed && autocvar_cl_reticle_weapon) { - if(reticle_image != "") { reticle_type = 2; } + if(reticle_image) { reticle_type = 2; } else { reticle_type = 0; } } else if(button_zoom || zoomscript_caught) @@ -2017,7 +2022,7 @@ void CSQC_UpdateView(entity this, float w, float h) switch(reticle_type) { case 1: drawpic(reticle_pos, "gfx/reticle_normal", reticle_size, '1 1 1', f * autocvar_cl_reticle_normal_alpha, DRAWFLAG_NORMAL); break; - case 2: drawpic(reticle_pos, reticle_image, reticle_size, '1 1 1', f * autocvar_cl_reticle_weapon_alpha, DRAWFLAG_NORMAL); break; + case 2: if(reticle_image) drawpic(reticle_pos, reticle_image, reticle_size, '1 1 1', f * autocvar_cl_reticle_weapon_alpha, DRAWFLAG_NORMAL); break; } } }