X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2FView.qc;h=3033cfa78a7cc3b6de68a8d84ca3c73eb98ccbd5;hb=b46fdcee5c729ccdf485d908803d06bbfdac2a8c;hp=ed1f303e2fafe11c4830f5ccc787b768fbabeb81;hpb=ee4668b0170a195a08abdbbd44b09f23ddd5f3bc;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index ed1f303e2..3033cfa78 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -137,7 +137,7 @@ vector GetCurrentFov(float fov) zoomspeed = 3.5; zoomdir = button_zoom; - if(getstati(STAT_ACTIVEWEAPON) == WEP_NEX) // do NOT use switchweapon here + if(getstati(STAT_ACTIVEWEAPON) == WEP_NEX || (getstati(STAT_ACTIVEWEAPON) == WEP_CAMPINGRIFLE && campingrifle_scope)) // do NOT use switchweapon here zoomdir += button_attack2; if(spectatee_status > 0 || isdemo()) { @@ -375,7 +375,7 @@ void CSQC_UpdateView(float w, float h) input_angles = warpzone_fixview_cl_viewangles; view_angles = warpzone_fixview_angles; - if(cvar("cl_lockview") || hud_configure) + if(cvar("cl_lockview") || autocvar__hud_configure) { pmove_org = freeze_pmove_org; input_angles = view_angles = freeze_input_angles; @@ -435,7 +435,7 @@ void CSQC_UpdateView(float w, float h) if(intermission && !isdemo() && !(calledhooks & HOOK_END)) if(calledhooks & HOOK_START) { - localcmd("\ncl_hook_gameend;"); + localcmd("\ncl_hook_gameend\n"); calledhooks |= HOOK_END; } @@ -477,6 +477,12 @@ void CSQC_UpdateView(float w, float h) if(last_weapon != activeweapon) { weapontime = time; last_weapon = activeweapon; + + e = get_weaponinfo(activeweapon); + if(e.netname != "") + localcmd(strcat("\ncl_hook_activeweapon ", e.netname), "\n"); + else + localcmd("\ncl_hook_activeweapon none\n"); } // ALWAYS Clear Current Scene First @@ -560,7 +566,7 @@ void CSQC_UpdateView(float w, float h) reticle_type = 0; // prevent reticle from showing during the respawn zoom effect or for spectators else if(button_zoom) reticle_type = 1; // normal zoom - else if(activeweapon == WEP_NEX && button_attack2) + else if(activeweapon == WEP_NEX && button_attack2 || activeweapon == WEP_CAMPINGRIFLE && button_attack2) reticle_type = 2; // nex zoom if(cvar("cl_reticle_stretch")) @@ -580,15 +586,15 @@ void CSQC_UpdateView(float w, float h) if(cvar("cl_reticle_item_normal")) { - precache_pic("textures/reticle_normal"); + precache_pic("gfx/reticle_normal"); if(reticle_type == 1 && current_zoomfraction) - drawpic(reticle_pos, "textures/reticle_normal", reticle_size, '1 1 1', current_zoomfraction * cvar("cl_reticle_item_normal"), DRAWFLAG_NORMAL); + drawpic(reticle_pos, "gfx/reticle_normal", reticle_size, '1 1 1', current_zoomfraction * cvar("cl_reticle_item_normal"), DRAWFLAG_NORMAL); } if(cvar("cl_reticle_item_nex")) { - precache_pic("textures/reticle_nex"); + precache_pic("gfx/reticle_nex"); if(reticle_type == 2 && current_zoomfraction) - drawpic(reticle_pos, "textures/reticle_nex", reticle_size, '1 1 1', current_zoomfraction * cvar("cl_reticle_item_nex"), DRAWFLAG_NORMAL); + drawpic(reticle_pos, "gfx/reticle_nex", reticle_size, '1 1 1', current_zoomfraction * cvar("cl_reticle_item_nex"), DRAWFLAG_NORMAL); } // Draw the mouse cursor @@ -772,7 +778,7 @@ void CSQC_UpdateView(float w, float h) bullets = 0; #define CROSSHAIR_DRAW_RING(i,j,sz,wcross_name,wcross_alpha) \ - drawpic(wcross_origin - ('0.5 0 0' * (sz * wcross_size_x * ring_scale + i * wcross_blur) + '0 0.5 0' * (sz * wcross_size_y * ring_scale + j * wcross_blur)), strcat("gfx/hud/", cvar_string("hud_skin"), "/rifle_ring_", ftos(bullets)), sz * wcross_size * ring_scale, wcross_color, wcross_alpha, DRAWFLAG_NORMAL) + drawpic(wcross_origin - ('0.5 0 0' * (sz * wcross_size_x * ring_scale + i * wcross_blur) + '0 0.5 0' * (sz * wcross_size_y * ring_scale + j * wcross_blur)), strcat("gfx/rifle_ring_", ftos(bullets)), sz * wcross_size * ring_scale, wcross_color, wcross_alpha, DRAWFLAG_NORMAL) #define CROSSHAIR_DO_BLUR(M,sz,wcross_name,wcross_alpha) \ do \ @@ -872,7 +878,7 @@ void CSQC_UpdateView(float w, float h) cvar_set("vid_conheight", h0); } - if(hud_configure) + if(autocvar__hud_configure) HUD_Panel_Mouse(); // be safe against triggerbots until everyone has the fixed engine // this call is meant to overwrite the trace globals by something @@ -1183,6 +1189,18 @@ void CSQC_common_hud(void) switch(hud) { case HUD_NORMAL: + // do some accuracy var caching + float i; + if(!(gametype == GAME_RACE || gametype == GAME_CTS)) + { + acc_levels = tokenize(cvar_string("hud_panel_weapons_accuracy_color_levels")); + if (acc_levels > MAX_ACCURACY_LEVELS) + acc_levels = MAX_ACCURACY_LEVELS; + + for (i = 0; i < acc_levels; ++i) + acc_lev[i] = stof(argv(i)); + } + // hud first HUD_Main();