Changed my email in the copyright statements.
[tagua/yd.git] / src / hlvariant / chess / variant.h
blobccd51fbf232c393ab71cca6d059da944875b53b0
1 /*
2 Copyright (c) 2007 Paolo Capriotti <p.capriotti@gmail.com>
3 (c) 2007 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 #ifndef HLVARIANT__CHESS__VARIANT_H
12 #define HLVARIANT__CHESS__VARIANT_H
14 #include <kactioncollection.h>
16 #include "movegenerator.h"
17 #include "serializer.h"
18 #include "export.h"
19 #include "option.h"
20 #include "../animator.h"
21 #include "../movefactory.h"
22 #include "actions.h"
24 class ActionCollection;
26 namespace HLVariant {
27 namespace Chess {
29 struct TAGUA_EXPORT Variant {
30 typedef GameState<CustomBoard<8, 8, Piece>, Move> GameState;
31 typedef LegalityCheck<GameState> LegalityCheck;
32 typedef MoveGenerator<LegalityCheck> MoveGenerator;
33 typedef Serializer<MoveGenerator> Serializer;
34 typedef SimpleAnimator<Variant> Animator;
35 typedef MoveFactory<GameState> MoveFactory;
37 static const bool hasICS = true;
38 static const bool m_simple_moves = false;
39 static const char *m_name;
40 static const char *m_theme_proxy;
42 static int moveListLayout() { return 0; }
44 OptList positionOptions() const { return OptList(); }
45 void setupMove(NormalUserMove& m) const;
47 ActionCollection* actions();
48 private:
49 Actions m_actions;
52 } // namespace Chess
53 } // namespace HLVariant
55 #endif // HLVARIANT__CHESS__VARIANT_H