File indexing completed on 2024-04-14 14:31:58

0001 // Copyright (c) 2002 Rob Kaper <cap@capsi.com>
0002 //
0003 // This library is free software; you can redistribute it and/or
0004 // modify it under the terms of the GNU Lesser General Public
0005 // License version 2.1 as published by the Free Software Foundation.
0006 //
0007 // This library is distributed in the hope that it will be useful,
0008 // but WITHOUT ANY WARRANTY; without even the implied warranty of
0009 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0010 // Lesser General Public License for more details.
0011 //
0012 // You should have received a copy of the GNU Lesser General Public License
0013 // along with this library; see the file COPYING.LIB.  If not, write to
0014 // the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0015 // Boston, MA 02110-1301, USA.
0016 
0017 #ifndef LIBATLANTIC_AUCTION_H
0018 #define LIBATLANTIC_AUCTION_H
0019 
0020 #include <QObject>
0021 
0022 #include "libatlantic_export.h"
0023 
0024 class Player;
0025 class Estate;
0026 
0027 class LIBATLANTIC_EXPORT Auction : public QObject
0028 {
0029 Q_OBJECT
0030 
0031 public:
0032     Auction(int auctionId, Estate *estate);
0033     virtual ~Auction();
0034 
0035     int auctionId() const { return m_auctionId; }
0036     Estate *estate() const { return m_estate; }
0037 
0038     void setStatus(int status);
0039     int status() const { return m_status; }
0040 
0041     void newBid(Player *player, int bid);
0042 
0043     void update(bool force = false);
0044 
0045 Q_SIGNALS:
0046     void changed();
0047     void completed();
0048     void bid(Auction *auction, int amount);
0049     void updateBid(Player *player, int amount);
0050 
0051 private:
0052     bool m_changed;
0053     int m_auctionId, m_status;
0054     Estate *m_estate;
0055 };
0056 
0057 #endif