]> git.tdb.fi Git - poefilter.git/blobdiff - source/appearance.cpp
Add support for the new visual indicators
[poefilter.git] / source / appearance.cpp
index ffe47ff576600b13e4e11d1828bf91fb3c1e67cf..0500aa57fc826687a0ab9d3b8e47680a7348ee9a 100644 (file)
@@ -9,7 +9,13 @@ using namespace Msp;
 Appearance::Appearance():
        font_size(0),
        sound_type(0),
-       sound_volume(100)
+       sound_volume(100),
+       show_icon(false),
+       icon_shape(CIRCLE),
+       icon_color(WHITE),
+       icon_size(1),
+       show_beam(false),
+       beam_color(WHITE)
 { }
 
 void Appearance::merge_from(const Appearance &other)
@@ -43,8 +49,14 @@ void Appearance::add_lines(FilterStatement &st) const
        if(text_color.defined)
                st.add_line(format("SetTextColor %d %d %d %d", text_color.r, text_color.g, text_color.b, text_color.a));
 
+       if(show_icon)
+               st.add_line(format("MinimapIcon %d %s %s", icon_size, icon_color, icon_shape));
+
        if(sound_type)
                st.add_line(format("PlayAlertSound %d %d", sound_type, sound_volume));
+
+       if(show_beam)
+               st.add_line(format("PlayEffect %s", beam_color));
 }
 
 
@@ -61,6 +73,9 @@ Appearance::Loader::Loader(Appearance &a, const Theme *t):
        add("border_color", &Loader::border_color_named);
        add("font_size", &Loader::font_size);
        add("inherit", &Loader::inherit);
+       add("light_beam", &Loader::light_beam);
+       add("minimap_icon", &Loader::minimap_icon);
+       add("minimap_icon", &Loader::minimap_icon_size);
        add("text_color", &Loader::text_color);
        add("text_color", &Loader::text_color_alpha);
        add("text_color", &Loader::text_color_named);
@@ -113,6 +128,25 @@ void Appearance::Loader::inherit(const string &name)
        obj = theme->get_appearance(name);
 }
 
+void Appearance::Loader::light_beam(EffectColor color)
+{
+       obj.show_beam = true;
+       obj.beam_color = color;
+}
+
+void Appearance::Loader::minimap_icon(EffectColor color, IconShape shape)
+{
+       minimap_icon_size(color, shape, 1);
+}
+
+void Appearance::Loader::minimap_icon_size(EffectColor color, IconShape shape, unsigned size)
+{
+       obj.show_icon = true;
+       obj.icon_shape = shape;
+       obj.icon_color = color;
+       obj.icon_size = size;
+}
+
 void Appearance::Loader::text_color(unsigned r, unsigned g, unsigned b)
 {
        obj.text_color = Color(r, g, b);