#include <common/debug.qh>
#include <common/ent_cs.qh>
#include <common/gamemodes/_mod.qh>
+#include <common/impulses/all.qh>
#include <common/mapinfo.qh>
#include <common/mapobjects/target/music.qh>
#include <common/mapobjects/trigger/viewloc.qh>
return 0;
}
+bool waiting_CAMERA_SPECTATOR_update;
void View_EventChase(entity this)
{
+ if(spectatee_status > 0 && autocvar_chase_active > 0)
+ {
+ // if chase_active is enabled by the user, spectator camera never switches to 1st person
+ // that means CAMERA_SPECTATOR 1 behaves as 0 and is redundant, so we forcedly skip it
+ if (STAT(CAMERA_SPECTATOR) == 1)
+ {
+ if (!waiting_CAMERA_SPECTATOR_update)
+ {
+ Impulse_Send(IMP_weapon_drop); // switch to CAMERA_SPECTATOR 2
+ waiting_CAMERA_SPECTATOR_update = true;
+ }
+ }
+ else waiting_CAMERA_SPECTATOR_update = false;
+ }
+
// event chase camera
if(autocvar_chase_active <= 0) // greater than 0 means it's enabled manually, and this code is skipped
{
{
if (MUTATOR_CALLHOOK(HUD_Draw_overlay))
{
- drawfill('0 0 0', vec2(vid_conwidth, vid_conheight), M_ARGV(0, vector), autocvar_hud_colorflash_alpha * M_ARGV(1, float), DRAWFLAG_ADDITIVE);
+ vector col = M_ARGV(0, vector);
+ float alpha_multipl = M_ARGV(1, float);
+ if (alpha_multipl > 0)
+ drawfill('0 0 0', vec2(vid_conwidth, vid_conheight), col, autocvar_hud_colorflash_alpha * alpha_multipl, DRAWFLAG_ADDITIVE);
}
else if(STAT(FROZEN))
{
setproperty(VF_FOV, fov);
}
-void CSQC_UpdateView(entity this, float w, float h)
+void CSQC_UpdateView(entity this, float w, float h, bool notmenu)
{
TC(int, w); TC(int, h);