]> git.tdb.fi Git - poefilter.git/blob - source/rarity.cpp
Initial version from when I last played
[poefilter.git] / source / rarity.cpp
1 #include <msp/strings/format.h>
2 #include "rarity.h"
3
4 using namespace std;
5 using namespace Msp;
6
7 void operator>>(const LexicalConverter &conv, Rarity &rarity)
8 {
9         const string &str = conv.get();
10         if(str=="Normal")
11                 rarity = NORMAL;
12         else if(str=="Magic")
13                 rarity = MAGIC;
14         else if(str=="Rare")
15                 rarity = RARE;
16         else if(str=="Unique")
17                 rarity = UNIQUE;
18         else
19                 throw lexical_error(format("Conversion of %s to Rarity", str));
20 }
21
22 void operator<<(LexicalConverter &conv, Rarity rarity)
23 {
24         switch(rarity)
25         {
26         case NORMAL: conv.result("Normal"); return;
27         case MAGIC: conv.result("Magic"); return;
28         case RARE: conv.result("Rare"); return;
29         case UNIQUE: conv.result("Unique"); return;
30         default: conv.result(format("Rarity(%d)", static_cast<int>(rarity))); return;
31         }
32 }