Added Crazyhouse stub.
[tagua.git] / src / variants / variants.cpp
blobbec52292b9278881f9aff042a2e9a5830c6b650b
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 "variants/chess.h"
14 #include "variants/crazyhouse.h"
15 #include "variants/shogi.h"
16 #include "hlvariant/chess/variant.h"
17 #include "hlvariant/crazyhouse/variant.h"
19 // remove me
20 namespace HLVariant {
21 namespace Crazyhouse {
22 class Variant;
26 #if 0
27 #include "variants/atomic.h"
28 #include "variants/king4pawns.h"
29 #include "variants/progressive.h"
30 #include "variants/reversi.h"
31 #include "variants/connect4.h"
32 #include "variants/chainreaction.h"
33 #include "variants/dummy.h"
34 #include "variants/xiangqi.h"
35 #endif
37 bool Variant::s_initialized = false;
39 Variant::Variants Variant::s_registered;
41 void Variant::register_variant(VariantInfo* v) {
42 s_registered[v->name()] = v;
45 template<typename T>
46 void Variant::register_variant() {
47 register_variant(T::info());
50 void Variant::initialize() {
51 register_variant<ChessVariant>();
52 register_variant<CrazyhouseVariant>();
53 // register_variant<AtomicVariant>();
54 // register_variant<King4PawnsVariant>();
55 // register_variant<ProgressiveVariant>();
56 // register_variant<ReversiVariant>();
57 // register_variant<Connect4Variant>();
58 // register_variant<ChainReactionVariant>();
59 // register_variant<DummyVariant>();
60 register_variant<ShogiVariant>();
61 // register_variant<XiangQiVariant>();
62 register_variant<HLVariant::Chess::Variant>();
63 register_variant<HLVariant::Crazyhouse::Variant>();
64 s_initialized = true;
67 VariantInfo* Variant::variant(const QString& name) {
68 if(!s_initialized)
69 initialize();
71 Variants::iterator it = s_registered.find(name);
72 return it == s_registered.end() ? NULL : it->second;
75 const Variant::Variants& Variant::allVariants(){
76 if(!s_initialized)
77 initialize();
79 return s_registered;