This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

69 lines
2.2 KiB
C

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Network data for screen shake and screen fade.
//
// $NoKeywords: $
//=============================================================================//
#ifndef SHAKE_H
#define SHAKE_H
#ifdef _WIN32
#pragma once
#endif
//
// Commands for the screen shake effect.
//
struct ScreenShake_t {
int command;
float amplitude;
float frequency;
float duration;
};
enum ShakeCommand_t {
SHAKE_START =
0, // Starts the screen shake for all players within the radius.
SHAKE_STOP, // Stops the screen shake for all players within the radius.
SHAKE_AMPLITUDE, // Modifies the amplitude of an active screen shake for
// all players within the radius.
SHAKE_FREQUENCY, // Modifies the frequency of an active screen shake for
// all players within the radius.
SHAKE_START_RUMBLEONLY, // Starts a shake effect that only rumbles the
// controller, no screen effect.
SHAKE_START_NORUMBLE, // Starts a shake that does NOT rumble the
// controller.
};
//
// Screen shake message.
//
extern int gmsgShake;
// Fade in/out
extern int gmsgFade;
#define FFADE_IN 0x0001 // Just here so we don't pass 0 into the function
#define FFADE_OUT 0x0002 // Fade out (not in)
#define FFADE_MODULATE 0x0004 // Modulate (don't blend)
#define FFADE_STAYOUT \
0x0008 // ignores the duration, stays faded out until new ScreenFade
// message received
#define FFADE_PURGE \
0x0010 // Purges all other fades, replacing them with this one
#define SCREENFADE_FRACBITS 9 // which leaves 16-this for the integer part
// This structure is sent over the net to describe a screen fade event
struct ScreenFade_t {
unsigned short duration; // FIXED 16 bit, with SCREENFADE_FRACBITS
// fractional, seconds duration
unsigned short
holdTime; // FIXED 16 bit, with SCREENFADE_FRACBITS fractional, seconds
// duration until reset (fade & hold)
short fadeFlags; // flags
byte r, g, b, a; // fade to color ( max alpha )
};
#endif // SHAKE_H