/* core/signals.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_CORE_SIGNALS_H__ #define __INCLUDED_CORE_SIGNALS_H__ #include #include "core/player.h" namespace core { /** * @brief a signal is a confirmation request from one player to another. */ class Signal { public: /// signal types enum Signals {Trade = 1, Dock = 2, Chat = 3}; /// current state of a signal enum State {Rejected = 0, Accepted = 1, Pending = 2}; /// type definition for the signal registry typedef std::list Registry; static void send(Player *sender, Player *receiver, Signals signal); static void init(); static void done(); static void clear(); private: Signals signal_type; State signal_state; unsigned long signal_timestamp; static Registry signal_registry; }; } #endif // __INCLUDED_CORE_SIGNALS_H__