X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2FView.qc;h=eb70262eaff5f99e3f4e2512d12f310bdaf3d008;hb=57ac8ecea3270c25ecf0df433c885ecebb0f15df;hp=66d7dd31c4b1ae258043002bc381a81109d9ddfc;hpb=2242b9cc6358009eaa7068bd9e58384c4b4092e8;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index 66d7dd31c..eb70262ea 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -57,9 +57,11 @@ void Porto_Draw() if(!CheckWireframeBox(porto, p - 48 * v_right - 48 * v_up + 16 * v_forward, 96 * v_right, 96 * v_up, 96 * v_forward)) return; if(portal_number == 1) + { portal1_idx = idx; - if(portal_number >= 2) - break; + if(portal_number >= 2) + break; + } } while(idx >= 2) @@ -419,8 +421,8 @@ void CSQC_UpdateView(float w, float h) vid_width = vf_size_x; vid_height = vf_size_y; - vector reticle_pos, reticle_size; - vector splash_pos, splash_size; + vector reticle_pos = '0 0 0', reticle_size = '0 0 0'; + vector splash_pos = '0 0 0', splash_size = '0 0 0'; WaypointSprite_Load(); @@ -442,7 +444,7 @@ void CSQC_UpdateView(float w, float h) { // make special vector since we can't use view_origin (It is one frame old as of this code, it gets set later with the results this code makes.) vector current_view_origin = getpropertyvec(VF_ORIGIN); - + // We must enable chase_active to get a third person view (weapon viewmodel hidden and own player model showing). // Ideally, there should be another way to enable third person cameras, such as through setproperty() if(!autocvar_chase_active) @@ -473,9 +475,16 @@ void CSQC_UpdateView(float w, float h) eventchase_current_distance = 0; // start from 0 next time } } - + // workaround for camera stuck between player's legs when using chase_active 1 + // because the engine stops updating the chase_active camera when the game ends + else if(intermission) + { + cvar_settemp("chase_active", "-1"); + eventchase_current_distance = 0; + } + // do lockview after event chase camera so that it still applies whenever necessary. - if(autocvar_cl_lockview || (autocvar__hud_configure && spectatee_status <= 0) || intermission > 1) + if(autocvar_cl_lockview || (!autocvar_hud_cursormode && (autocvar__hud_configure && spectatee_status <= 0 || intermission > 1))) { setproperty(VF_ORIGIN, freeze_org); setproperty(VF_ANGLES, freeze_ang); @@ -539,8 +548,8 @@ void CSQC_UpdateView(float w, float h) calledhooks |= HOOK_END; } } - - Announcer(); + + Announcer(); fov = autocvar_fov; if(fov <= 59.5) @@ -955,7 +964,7 @@ void CSQC_UpdateView(float w, float h) } // edge detection postprocess handling done second (used by hud_powerup) - float sharpen_intensity, strength_finished = getstatf(STAT_STRENGTH_FINISHED), invincible_finished = getstatf(STAT_INVINCIBLE_FINISHED); + float sharpen_intensity = 0, strength_finished = getstatf(STAT_STRENGTH_FINISHED), invincible_finished = getstatf(STAT_INVINCIBLE_FINISHED); if (strength_finished - time > 0) { sharpen_intensity += (strength_finished - time); } if (invincible_finished - time > 0) { sharpen_intensity += (invincible_finished - time); } @@ -1076,8 +1085,8 @@ void CSQC_UpdateView(float w, float h) else shottype = SHOTTYPE_HITWORLD; - vector wcross_color, wcross_size; - string wcross_wep, wcross_name; + vector wcross_color = '0 0 0', wcross_size = '0 0 0'; + string wcross_wep = "", wcross_name; float wcross_scale, wcross_blur; if (autocvar_crosshair_per_weapon || autocvar_crosshair_color_per_weapon) { @@ -1183,7 +1192,8 @@ void CSQC_UpdateView(float w, float h) if(autocvar_crosshair_hitindication) { - vector hitindication_color = stov(autocvar_crosshair_hitindication_color); + vector hitindication_color = ((autocvar_crosshair_color_per_weapon) ? stov(autocvar_crosshair_hitindication_per_weapon_color) : stov(autocvar_crosshair_hitindication_color)); + if(hitindication_crosshair_time < hit_time) { if(time - hit_time < MAX_TIME_DIFF) // don't trigger the animation if it's too old @@ -1264,9 +1274,9 @@ void CSQC_UpdateView(float w, float h) if (autocvar_crosshair_ring || autocvar_crosshair_ring_reload) { // declarations and stats - float ring_value, ring_scale, ring_alpha, ring_inner_value, ring_inner_alpha; - string ring_image, ring_inner_image; - vector ring_rgb, ring_inner_rgb; + float ring_value = 0, ring_scale = 0, ring_alpha = 0, ring_inner_value = 0, ring_inner_alpha = 0; + string ring_image = string_null, ring_inner_image = string_null; + vector ring_rgb = '0 0 0', ring_inner_rgb = '0 0 0'; ring_scale = autocvar_crosshair_ring_size; @@ -1468,6 +1478,8 @@ void CSQC_UpdateView(float w, float h) CSQC_RAPTOR_HUD(); else if(hud == HUD_BUMBLEBEE) CSQC_BUMBLE_HUD(); + else if(hud == HUD_BUMBLEBEE_GUN) + CSQC_BUMBLE_GUN_HUD(); } cl_notice_run();