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.
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"
22 namespace Crazyhouse
{
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
;
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
>();
50 VariantInfo
* Variant::variant(const QString
& name
) {
54 Variants::iterator it
= s_registered
.find(name
);
55 return it
== s_registered
.end() ? NULL
: it
->second
;
58 const Variant::Variants
& Variant::allVariants(){