Variants are not singletons anymore.
[tagua/yd.git] / src / usermove.h
blob7259641106a06ec188cdaa6f2644bb6bc7036a18
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 #ifndef USERMOVE_H
12 #define USERMOVE_H
14 #include <boost/shared_ptr.hpp>
15 #include "fwd.h"
16 #include "point.h"
18 struct NormalUserMove {
19 Point from;
20 Point to;
21 int promotionType;
22 bool dragged;
24 NormalUserMove()
25 : from(Point::invalid())
26 , to(Point::invalid())
27 , promotionType(0) { }
28 NormalUserMove(const Point& from, const Point& to, bool dragged = false)
29 : from(from)
30 , to(to)
31 , promotionType(0)
32 , dragged(dragged) { }
33 static NormalUserMove invalid() {
34 return NormalUserMove();
37 bool valid() const {
38 return from != Point::invalid() && to != Point::invalid();
42 struct DropUserMove {
43 int m_pool;
44 int m_piece_index;
45 Point m_to;
47 DropUserMove(int pool, int piece_index, const Point& to)
48 : m_pool(pool)
49 , m_piece_index(piece_index)
50 , m_to(to) { }
53 #endif //USERMOVE_H