]> git.tdb.fi Git - poefilter.git/blob - source/effectcolor.cpp
Add support for the new visual indicators
[poefilter.git] / source / effectcolor.cpp
1 #include <msp/strings/format.h>
2 #include "effectcolor.h"
3
4 using namespace std;
5 using namespace Msp;
6
7 void operator>>(const LexicalConverter &conv, EffectColor &color)
8 {
9         const string &str = conv.get();
10         if(str=="White")
11                 color = WHITE;
12         else if(str=="Red")
13                 color = RED;
14         else if(str=="Green")
15                 color = GREEN;
16         else if(str=="Blue")
17                 color = BLUE;
18         else if(str=="Brown")
19                 color = BROWN;
20         else if(str=="Yellow")
21                 color = YELLOW;
22         else
23                 throw lexical_error(format("Conversion of %s to EffectColor", str));
24 }
25
26 void operator<<(LexicalConverter &conv, EffectColor color)
27 {
28         switch(color)
29         {
30         case WHITE: conv.result("White"); return;
31         case RED: conv.result("Red"); return;
32         case GREEN: conv.result("Green"); return;
33         case BLUE: conv.result("Blue"); return;
34         case BROWN: conv.result("Brown"); return;
35         case YELLOW: conv.result("Yellow"); return;
36         default: conv.result(format("EffectColor(%d)", static_cast<int>(color))); return;
37         }
38 }