User:Jaxad0127/State machine
From The Mana World
This article describes the internal state machines used in the client.
The core state machine is rather simple:
-> Exit <-
| |
Start -> Login <-> Game
\ v /
-> Error <--
Both Login and Game are sub machines.
The Login machine is more complicated. All states can go to Error, all but Start can go to Exit.
| State | Go To | Condition |
|---|---|---|
| Start | Server | No login data is present (default; some may be present if we've already chosen a server and just want to switch accounts, or characters) |
| Login | Login server data present, but no login information present (we want to change logins, but not servers) | |
| Character | Login data present (we just want to change characters) | |
| Server | Server | User selects a server and it's type could not be determined |
| Login | User selects a server and it's type was successfully determined | |
| Login | Server | User wants to change servers |
| Login | Login failed (bad password, unknown username, etc) | |
| Server2 | Login succeeded | |
| Register | User wants to make a new account | |
| Server2 | Update | No secondary servers to choose from or selection made |
| Login | User wants to use another account | |
| Server | User wants to use another server | |
| Update | Character | When done |
| Character | Login | User wants to use another account |
| Server | User wants to use another server | |
| Game | Character selected | |
| New | User wants to make a new character | |
| Delete | User wants to delete a character | |
| Account | User wants to view/change account information | |
| Register | Login | User cancels registration |
| Register | Registration failed | |
| Server2 | Registration succeeded | |
| Account | Character | User is done in this state |
| Password | User wants to change their password | |
| User want to change their email | ||
| Password | Account | User cancels change or change succeeded |
| Password | Change failed | |
| Account | User cancels change or change succeeded | |
| Change failed |