#ifndef LOGIN_HPP_INCLUDED #define LOGIN_HPP_INCLUDED #include "../../Core/Types/Box.hpp" #include "../../Core/Classes/World.hpp" #include #include #include namespace Login { typedef enum LOGIN_SCREEN_STATE { WELCOME_SCREEN, PVP_WORLD, ENTER_CREDENTIALS, INVALID_CREDENTIALS, AUTHENTICATOR, FORGOTTEN_PASSWORD, RUNESCAPE_UPDATED, ACCOUNT_LOCKED, MEMBERS_AREA, MEMBERS_REQUIRED, WORLD_SELECT, ACCOUNT_DISABLED, ACCOUNT_LOGGED_IN, TOTAL_SKILL_REQUIRED, DISCONNECTED, ERROR_CONNECTING, CONNECTION_TIMED_OUT, TOO_MANY_ATTEMPTS, CONNECTING, LOADING, LOBBY_SCREEN, LOGGED_IN } LOGIN_SCREEN_STATE; LOGIN_SCREEN_STATE GetLoginScreenState(); bool LoginPlayer(bool SwitchToProfileWorld = true); bool EnterCredentials(); bool IsWorldSelectOpen(); bool OpenWorldSelect(); bool CloseWorldSelect(); bool SelectWorld(); bool SelectWorld(const Internal::World& World); bool SelectWorld(std::int32_t WorldID); /** * @return X of where the login screen starts */ std::int32_t GetScreenX(); /** * @return X of where the login window starts */ std::int32_t GetWindowX(); /** * @return current state of the login caret * 0: Username line; 1: Password line; */ std::int32_t GetCaretState(); /** * @return a vector of login messages * 0: LoginMessage0; 1: LoginMessage1; 2: LoginMessage2; */ std::vector GetLoginMessages(); /** * @return a vector of button boxes on the login screen * 0: Existing User; 1: Login; 2: Cancel; 3: Try Again; 4: World Select; 5: World Select Cancel; */ std::vector GetButtonBoxes(); bool WaitLoginScreenState(std::uint32_t Duration, std::uint32_t Step, Login::LOGIN_SCREEN_STATE State, bool Result = true); } #endif // LOGIN_HPP_INCLUDED