X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2FView.qc;h=8c642415ddebede591b7cbe57ae4e86c19cb2364;hb=2bb5729ba7838aa9bcc88a10f77fabcfb3f41d8e;hp=e363e893e65a5d8fc72b2b57d1b9f62df97f6305;hpb=4b327b3de76506e7120cb175404b12717979cb2f;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index e363e893e..8c642415d 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -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,13 @@ void CSQC_UpdateView(float w, float h) if(last_weapon != activeweapon) { weapontime = time; last_weapon = activeweapon; + + entity e; + 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 @@ -552,23 +559,43 @@ void CSQC_UpdateView(float w, float h) // next R_RenderScene call drawstring('0 0 0', "", '1 1 0', '1 1 1', 0, 0); - // draw the aiming reticle for weapons that use it (eg. Nex) - // reticle_type is changed to the item we are zooming or aiming with, to decide which reticle to use - if(button_zoom) - reticle_type = 0; // normal zoom + // Draw the aiming reticle for weapons that use it + // reticle_type is changed to the item we are zooming / aiming with, to decide which reticle to use + // It must be a persisted float for fading out to work properly (you let go of the zoom button for + // the view to go back to normal, so reticle_type would become 0 as we fade out) + if(spectatee_status || getstati(STAT_HEALTH) <= 0) + 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) - reticle_type = 1; // nex zoom + reticle_type = 2; // nex zoom - reticle_size_x = max(vid_conwidth, vid_conheight); - reticle_size_y = max(vid_conwidth, vid_conheight); - reticle_pos_x = (vid_conwidth - reticle_size_x) / 2; - reticle_pos_y = (vid_conheight - reticle_size_y) / 2; + if(cvar("cl_reticle_stretch")) + { + reticle_size_x = vid_conwidth; + reticle_size_y = vid_conheight; + reticle_pos_x = 0; + reticle_pos_y = 0; + } + else + { + reticle_size_x = max(vid_conwidth, vid_conheight); + reticle_size_y = max(vid_conwidth, vid_conheight); + reticle_pos_x = (vid_conwidth - reticle_size_x) / 2; + reticle_pos_y = (vid_conheight - reticle_size_y) / 2; + } - if(cvar("cl_reticle_nex")) + if(cvar("cl_reticle_item_normal")) + { + precache_pic("gfx/reticle_normal"); + if(reticle_type == 1 && current_zoomfraction) + 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"); - if(reticle_type == 1) - drawpic(reticle_pos, "textures/reticle_nex", reticle_size, '1 1 1', current_zoomfraction * cvar("cl_reticle_nex"), DRAWFLAG_NORMAL); + precache_pic("gfx/reticle_nex"); + if(reticle_type == 2 && current_zoomfraction) + drawpic(reticle_pos, "gfx/reticle_nex", reticle_size, '1 1 1', current_zoomfraction * cvar("cl_reticle_item_nex"), DRAWFLAG_NORMAL); } // Draw the mouse cursor @@ -852,7 +879,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