/* client/action.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_CLIENT_ACTION_H__ #define __INCLUDED_CLIENT_ACTION_H__ #include namespace client { /** * @brief a client action key slot. * actions are interpreted directly by the client and do not go throught the * command line systems. */ class Action { public: /// actions enum Identifier {None = 0, Console, Left, Right, Up, Down, RollLeft, RollRight, StrafeUp, StrafeDown, StrafeLeft, StrafeRight, ThrustUp, ThrustDown, Afterburner, Reverse, Control, CamLeft, CamRight, CamUp, CamDown, ZoomIn, ZoomOut, Fire }; /// define a new action Action(const char *name, Identifier action, const char *info = 0); ~Action(); /// name inline std::string const & name() const { return action_name; } /// identifier inline Identifier id() const { return action_id; } /// text description inline std::string const & info() const { return action_info; } /// set info void set_info(const char *info); private: std::string action_name; std::string action_info; Identifier action_id; }; } // namespace client #endif // __INCLUDED_CLIENT_ACTION_H__