Major rewrite of scripting support:
[supertux.git] / src / object / display_effect.hpp
1 #ifndef __OBJECT_DISPLAY_EFFECT_H__
2 #define __OBJECT_DISPLAY_EFFECT_H__
3
4 #include "scripting/display_effect.hpp"
5 #include "game_object.hpp"
6 #include "script_interface.hpp"
7
8 class DisplayEffect : public GameObject, public Scripting::DisplayEffect,
9                       public ScriptInterface
10 {
11 public:
12     DisplayEffect();
13     virtual ~DisplayEffect();
14
15     void expose(HSQUIRRELVM vm, int table_idx);
16     void unexpose(HSQUIRRELVM vm, int table_idx);
17
18     void update(float elapsed_time);
19     void draw(DrawingContext& context);
20
21     void fade_out(float fadetime);
22     void fade_in(float fadetime);
23     void set_black(bool enabled);
24     bool is_black();
25     void sixteen_to_nine(float fadetime);
26     void four_to_three(float fadetime);
27
28 private:
29     enum FadeType {
30         NO_FADE, FADE_IN, FADE_OUT
31     };
32     FadeType screen_fade;
33     float screen_fadetime;
34     float screen_fading;
35     FadeType border_fade;
36     float border_fadetime;
37     float border_fading;
38     float border_size;
39     
40     bool black;
41     bool borders;
42 };
43
44 #endif
45