diff options
Diffstat (limited to 'src/core/signals.h')
-rw-r--r-- | src/core/signals.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/core/signals.h b/src/core/signals.h new file mode 100644 index 0000000..88841ea --- /dev/null +++ b/src/core/signals.h @@ -0,0 +1,51 @@ +/* + 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 <list> + +#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<Signal*> 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__ + |