2 #ifndef _SCREENEFFECT_H
3 #define _SCREENEFFECT_H
6 // screeneffects are a simple draw overlay used w/ things such as flashes and such.
10 ScreenEffect() { enabled
= false; }
11 virtual ~ScreenEffect() { }
12 virtual void Draw() = 0;
22 // FlashScreen simply flashes the screen white several times,
23 // and is used in various places such as when Misery casts spells.
24 struct SE_FlashScreen
: public ScreenEffect
34 // Starflash is a full-screen white explosion in the shape of a '+',
35 // used when some bosses are defeated.
36 struct SE_Starflash
: public ScreenEffect
38 void Start(int x
, int y
);
46 // Fade is the fade-in/out used on every stage transistion/TRA.
47 struct SE_Fade
: public ScreenEffect
51 void Start(int fadedir
, int dir
, int spr
=SPR_FADE_DIAMOND
);
53 void set_full(int dir
);
68 // these directions correspond to the FAI/FAO parameters.
75 #define FS_NO_FADE 0 // no fade is active
76 #define FS_FADING 1 // currently fading in or out
77 #define FS_FADED_OUT 2 // completely faded out
80 namespace ScreenEffects
87 extern SE_FlashScreen flashscreen
;
88 extern SE_Starflash starflash
;