Removed all promotion stuff from the menu.
[tagua/yd.git] / src / variants.cpp
blobecbf0a9e8ba3d4c0c84cc85fc56247895bb4c15a
1 /*
2 Copyright (c) 2006 Paolo Capriotti <p.capriotti@sns.it>
3 (c) 2006 Maurizio Monge <maurizio.monge@kdemail.net>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9 */
11 #include "variants.h"
12 #include "tagua.h"
13 #include "hlvariant/chess/variant.h"
14 #include "hlvariant/crazyhouse/variant.h"
15 #include "hlvariant/dummy/variant.h"
16 #include "hlvariant/minichess5/variant.h"
17 #include "hlvariant/shogi/variant.h"
18 #include "hlvariant/minishogi/variant.h"
20 // remove me
21 namespace HLVariant {
22 namespace Crazyhouse {
23 class Variant;
27 bool Variant::s_initialized = false;
29 Variant::Variants Variant::s_registered;
31 void Variant::register_variant(VariantInfo* v) {
32 s_registered[v->name()] = v;
35 template<typename T>
36 void Variant::register_variant() {
37 register_variant(T::info());
40 void Variant::initialize() {
41 register_variant<HLVariant::Chess::Variant>();
42 register_variant<HLVariant::Crazyhouse::Variant>();
43 register_variant<HLVariant::Dummy::Variant>();
44 register_variant<HLVariant::Minichess5::Variant>();
45 register_variant<HLVariant::Shogi::Variant>();
46 register_variant<HLVariant::MiniShogi::Variant>();
47 s_initialized = true;
50 VariantInfo* Variant::variant(const QString& name) {
51 if(!s_initialized)
52 initialize();
54 Variants::iterator it = s_registered.find(name);
55 return it == s_registered.end() ? NULL : it->second;
58 const Variant::Variants& Variant::allVariants(){
59 if(!s_initialized)
60 initialize();
62 return s_registered;