6 #include "TransferInfo.h" 8 #include <Atlas/Objects/ObjectsFwd.h> 10 #include <sigc++/signal.h> 26 typedef std::map<std::string, Atlas::Objects::Entity::RootEntity>
CharacterMap;
28 typedef std::map<std::string, Avatar*> ActiveCharacterMap;
44 class Account :
virtual public sigc::trackable
67 Result login(
const std::string &uname,
const std::string &pwd);
81 const std::string &fullName,
82 const std::string &pwd);
170 const std::string&
getId()
const;
247 void sightCharacter(
const Atlas::Objects::Operation::RootOperation& op);
249 void loginComplete(
const Atlas::Objects::Entity::Account &p);
250 void loginError(
const Atlas::Objects::Operation::Error& err);
252 Result internalLogin(
const std::string &unm,
const std::string &pwd);
253 void internalLogout(
bool clean);
260 void netFailure(
const std::string& msg);
262 void loginResponse(
const Atlas::Objects::Operation::RootOperation& op);
263 void logoutResponse(
const Atlas::Objects::Operation::RootOperation& op);
264 void possessResponse(
const Atlas::Objects::Operation::RootOperation& op);
265 void avatarCreateResponse(
const Atlas::Objects::Operation::RootOperation& op);
266 void avatarLogoutResponse(
const Atlas::Objects::Operation::RootOperation& op);
278 void handleLogoutTimeout();
281 void handleLoginTimeout();
294 void internalDeactivateCharacter(
Avatar* av);
295 virtual void updateFromObject(
const Atlas::Objects::Entity::Account &p);
305 std::string m_parent;
306 std::vector< std::string > m_characterTypes;
308 StringSet m_characterIds;
311 ActiveCharacterMap m_activeCharacters;
312 std::unique_ptr<TimedEvent> m_timeout;
328 return m_activeCharacters;
Result takeCharacter(const std::string &id)
Enter the game using an existing character.
Definition: Account.cpp:328
Result createCharacter(const Atlas::Objects::Entity::RootEntity &character)
enter the game using a new character
Definition: Account.cpp:248
void avatarLogoutRequested(Avatar *avatar)
Called when a logout of the avatar has been requested by the server.
Definition: Account.cpp:465
const std::vector< std::string > & getCharacterTypes() const
Returns a container of character types that the client is allowed to create.
Definition: Account.cpp:201
Default state, no server account active.
Definition: Account.h:285
sigc::signal< void, const std::string & > ErrorMessage
Emitted when an error message is received.
Definition: Account.h:241
Result refreshCharacterInfo()
Update the character list (based on changes to play).
Definition: Account.cpp:214
Login sent, waiting for initial INFO response.
Definition: Account.h:286
Result deactivateCharacter(Avatar *av)
Request de-activation of a character.
Definition: Account.cpp:361
Connection * m_con
underlying connection instance
Definition: Account.h:297
sigc::signal< void, const std::string & > AvatarFailure
Emitted when creating or taking a character fails for some reason.
Definition: Account.h:229
bool isLoggedIn() const
Check if the account is logged in.
Definition: Account.cpp:367
send a character CREATE op, awaiting INFO response
Definition: Account.h:291
sent a LOOK op for a character, awaiting INFO response
Definition: Account.h:290
Account(Connection *con)
Create a new Account associated with a Connection object.
Definition: Account.cpp:91
const ActiveCharacterMap & getActiveCharacters() const
Gets a list of active characters, i.e.
Definition: Account.h:326
sigc::signal< void > GotAllCharacters
emitted when the entire character list had been updated
Definition: Account.h:200
void destroyAvatar(const std::string &avatarId)
Destroys the avatar with the specified id, if available.
Definition: Account.cpp:471
sigc::signal< void, Avatar * > AvatarSuccess
Emitted when creating a character or taking an existing one succeeds.
Definition: Account.h:223
const std::string & getParent() const
Gets the parent type of the account.
Definition: Account.h:341
sigc::signal< void > LoginSuccess
Emitted when login or character creation is successful.
Definition: Account.h:210
SpawnPointMap m_spawnPoints
A map of available spawn points.
Definition: Account.h:318
Result login(const std::string &uname, const std::string &pwd)
Login to the server using user-supplied account information.
Definition: Account.cpp:119
Definition: Account.cpp:36
Connection * getConnection() const
Access the underlying Connection for this account.
Definition: Account.h:347
Represents a possible spawn point as described by the server. When a new character is created on the ...
Definition: SpawnPoint.h:30
CharacterMap _characters
characters belonging to this player
Definition: Account.h:307
Status m_status
what the Player is currently doing
Definition: Account.h:298
bool canCreateCharacter()
pop up the game's character creation dialog, if present
Definition: Account.h:321
Every Eris class and type lives inside the Eris namespace; certain utility functions live in the Util...
Definition: Account.cpp:34
Sent a logout op, waiting for the INFO response.
Definition: Account.h:288
Underlying Atlas connection, providing a send interface, and receive (dispatch) system.
Definition: Connection.h:36
Fully logged into a server-side account.
Definition: Account.h:287
sigc::signal< void, Avatar * > AvatarDeactivated
Emitted when an active avatar is deactivated.
Definition: Account.h:236
Status
Definition: Account.h:283
Result createAccount(const std::string &uname, const std::string &fullName, const std::string &pwd)
Attempt to create a new account on the server and log into it.
Definition: Account.cpp:134
bool m_doingCharacterRefresh
set if we're refreshing character data
Definition: Account.h:309
Encapsulates all the state of an Atlas Account, and methods that operation on that state...
Definition: Account.h:44
std::map< std::string, SpawnPoint > SpawnPointMap
A store of spawn points.
Definition: Account.h:33
std::string m_username
The player's username ( != account object's ID)
Definition: Account.h:302
std::string m_accountId
the account ID
Definition: Account.h:301
Result
Result codes returned from various methods.
Definition: Types.h:34
const std::string & getUsername() const
Return the username of this account.
Definition: Account.h:336
const SpawnPointMap & getSpawnPoints() const
Gets the available spawn points from where the client can create new characters.
Definition: Account.h:352
std::map< std::string, Atlas::Objects::Entity::RootEntity > CharacterMap
Type used to return available characters.
Definition: Account.h:23
sigc::signal< void, const std::string & > LoginFailure
Emitted when a server-side error occurs during account creation / login.
Definition: Account.h:207
const std::string & getId() const
returns the account ID if logged in
Definition: Account.h:331
Result logout()
Request logout from the server.
Definition: Account.cpp:170
Result takeTransferredCharacter(const std::string &id, const std::string &key)
Transfer all characters to this account and then do all steps in takeCharacter()
Definition: Account.cpp:298
void netConnected()
Callback for network re-establishment.
Definition: Account.cpp:720
const CharacterMap & getCharacters()
Get the characters owned by this account.
Definition: Account.cpp:206
sigc::signal< void, bool > LogoutComplete
Emitted when a logout completes.
Definition: Account.h:217
The player's avatar representation.
Definition: Avatar.h:34
bool netDisconnecting()
help! the plug is being pulled!
Definition: Account.cpp:729
sigc::signal< void, const Atlas::Objects::Entity::RootEntity & > GotCharacterInfo
emitted when a character has been retrieved from the server
Definition: Account.h:197