#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 { SCREEN_WELCOME_SCREEN, SCREEN_WELCOME_SCREEN_JAGEX_ACCOUNT, SCREEN_PVP_WORLD, SCREEN_ENTER_CREDENTIALS, SCREEN_INVALID_CREDENTIALS, SCREEN_AUTHENTICATOR, SCREEN_FORGOTTEN_PASSWORD, SCREEN_RUNESCAPE_UPDATED, SCREEN_ACCOUNT_LOCKED, SCREEN_MEMBERS_AREA, SCREEN_MEMBERS_REQUIRED, SCREEN_WORLD_SELECT, SCREEN_ACCOUNT_DISABLED, SCREEN_ACCOUNT_LOGGED_IN, SCREEN_TOTAL_SKILL_REQUIRED, SCREEN_DISCONNECTED, SCREEN_ERROR_CONNECTING, SCREEN_CONNECTION_TIMED_OUT, SCREEN_TOO_MANY_ATTEMPTS, SCREEN_CONNECTING, SCREEN_LOADING, SCREEN_LOBBY_SCREEN, SCREEN_LOGGED_IN } LOGIN_SCREEN_STATE; typedef enum BUTTON_BOX { BUTTON_EXISTING_USER, BUTTON_LOGIN, BUTTON_CANCEL, BUTTON_TRY_AGAIN, BUTTON_WORLD_SELECT, BUTTON_WORLD_SELECT_CANCEL, BUTTON_CONTINUE, BUTTON_WORLD_SELECT_PREV, BUTTON_WORLD_SELECT_NEXT, BUTTON_OK, BUTTON_PLAY_NOW } BUTTON_BOX; 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(); Box GetButtonBox(BUTTON_BOX Button); bool WaitLoginScreenState(std::uint32_t Duration, std::uint32_t Step, Login::LOGIN_SCREEN_STATE State, bool Result = true); } #endif // LOGIN_HPP_INCLUDED