1 #ifdef EYE_CANDY
2 
3 #ifndef __EYE_CANDY_WINDOW_H__
4 #define __EYE_CANDY_WINDOW_H__
5 
6 #ifdef __cplusplus
7  #include <vector>
8 
9  #include "../eye_candy/eye_candy.h"
10  #include "../eye_candy_wrapper.h"
11 
12 class EffectDefinition
13 {
14 public:
EffectDefinition()15   EffectDefinition()
16     : effect(0), hue(0), saturation(0), scale(0), density(0), base_height(0), angle(0)
17   {
18     position = ec::Vec3(-1.0, -1.0, 0.0);
19     reference = NULL;
20   };
21 
~EffectDefinition()22   ~EffectDefinition()
23   {
24 //    if (reference)
25 //      ec_recall_effect(reference);
26   };
27 
28   int effect;
29   float hue;
30   float saturation;
31   float scale;
32   float density;
33   float base_height;
34   ec::Vec3 position;
35   float angle;
36   ec::SmoothPolygonBoundingRange bounds;
37   ec_reference reference;
38 };
39 
40 extern EffectDefinition current_effect;
41 extern std::vector<EffectDefinition> effects;
42 extern EffectDefinition current_effect;
43 
44 extern "C"
45 {
46 #endif //__cplusplus
47 
48 extern int view_eye_candy_window;
49 extern int last_ec_index;
50 extern int eye_candy_window;
51 extern int eye_candy_confirmed;
52 extern int eye_candy_initialized;
53 extern int eye_candy_ready_to_add;
54 
55 void draw_eye_candy_obj_info();
56 void create_eye_candy_window();
57 void change_eye_candy_effect();
58 void confirm_eye_candy_effect();
59 void remove_current_eye_candy_effect();
60 int display_eye_candy_window_handler();
61 int check_eye_candy_window_interface();
62 void update_eye_candy_position(float x, float y);
63 void add_eye_candy_point();
64 void delete_eye_candy_point();
65 void eye_candy_add_effect();
66 void eye_candy_done_adding_effect();
67 void eye_candy_adjust_z(float offset);
68 int eye_candy_get_effect();
69 void draw_bounds_on_minimap();
70 void draw_eye_candy_selectors();
71 void select_eye_candy_effect(int i);
72 void kill_eye_candy_effect();
73 int get_eye_candy_count();
74 void deserialize_eye_candy_effect(particles_io* data);
75 void serialize_eye_candy_effect(int index, particles_io* data);
76 void destroy_all_eye_candy();
77 
78 #ifdef __cplusplus
79 }
80 void draw_bound(EffectDefinition& eff, bool selected);
81 void draw_eye_candy_selector(const EffectDefinition*const effect, const int i);
82 bool find_bounds_index(float x, float y);
83 ec::SmoothPolygonElement angle_to(float start_x, float start_y, float end_x, float end_y);
84 
85 #endif //__cplusplus
86 
87 #endif //__EYE_CANDY_WINDOW_H__
88 
89 #endif // EYE_CANDY
90