/////////////////////////////////////////////////////////// ///////////////// Have an itch? Scratch it! /////////////// ///////////////////////// SCRATCH ///////////////////////// ///////////////////// A MUD Server //////////////////// ///////////////////// By: Jared Devall //////////////////// ///////////////////// Thanks: //////////////////// ///////////////////// DIKU/Merc/ROM //////////////////// ///////////////////// Aetas/Deus Gang //////////////////// ///////////////////// Beej //////////////////// /////////////////////////////////////////////////////////// #ifndef __AVATAR_H_ #define __AVATAR_H_ #include "socket.h" #include "handler.h" #include <deque> #include <map> enum STATUS { LOGIN, CONNECTED }; class Avatar { Socket * _socket; std::string _name; std::map< std::string, std::string > _info; std::string _edit; bool _gotInput; bool _disconnected; STATUS _status; // Private Handler Stuff void PopHandler( void ); public: typedef std::deque<Handler *> handlerStack; Avatar( ); ~Avatar( ); STATUS GetStatus( void ); void SetStatus ( STATUS ); void Send( char *, ... ); void Send( const std::string & ); Socket * GetSocket( void ); void SetSocket( Socket * ); bool SetName( const std::string & ); bool VerifyPassword( const std::string & ); std::string EncryptPassword( const std::string & ); void ClearPassword( void ); std::string Get( const std::string & ); bool Set( const std::string &, const std::string & ); void SetEdit( const std::string & ); std::string GetEdit( void ); bool HasPassword( void ); void FlushOutput( void ); void SetDisconnected( bool value ); bool IsDisconnected( void ); void SetGotInput( bool value ); bool GotInput( void ); bool Load( void ); bool Save( void ); bool Create( void ); bool Delete( void ); // Public Handler Stuff void StackHandler( Handler *); void ReplaceHandler( Handler *); void ExitHandler( void ); void HandleInput( const std::string & ); handlerStack _handlers; }; #endif