#pragma once #include "../common/eqemu_logsys.h" #include "../common/net/reliable_stream_connection.h" #include "../common/event/timer.h" #include #include #include struct WorldServer { std::string long_name; std::string address; int type; std::string lang; std::string region; int status; int players; }; class EverQuest { public: EverQuest(const std::string &host, int port, const std::string &user, const std::string &pass, const std::string &server, const std::string &character); ~EverQuest(); private: //Login void LoginOnNewConnection(std::shared_ptr connection); void LoginOnStatusChangeReconnectEnabled(std::shared_ptr conn, EQ::Net::DbProtocolStatus from, EQ::Net::DbProtocolStatus to); void LoginOnStatusChangeReconnectDisabled(std::shared_ptr conn, EQ::Net::DbProtocolStatus from, EQ::Net::DbProtocolStatus to); void LoginOnPacketRecv(std::shared_ptr conn, const EQ::Net::Packet &p); void LoginSendSessionReady(); void LoginSendLogin(); void LoginSendServerRequest(); void LoginSendPlayRequest(uint32_t id); void LoginProcessLoginResponse(const EQ::Net::Packet &p); void LoginProcessServerPacketList(const EQ::Net::Packet &p); void LoginProcessServerPlayResponse(const EQ::Net::Packet &p); void LoginDisableReconnect(); std::unique_ptr m_login_connection_manager; std::shared_ptr m_login_connection; std::map m_world_servers; //World void ConnectToWorld(); void WorldOnNewConnection(std::shared_ptr connection); void WorldOnStatusChangeReconnectEnabled(std::shared_ptr conn, EQ::Net::DbProtocolStatus from, EQ::Net::DbProtocolStatus to); void WorldOnStatusChangeReconnectDisabled(std::shared_ptr conn, EQ::Net::DbProtocolStatus from, EQ::Net::DbProtocolStatus to); void WorldOnPacketRecv(std::shared_ptr conn, const EQ::Net::Packet &p); void WorldSendClientAuth(); void WorldSendEnterWorld(const std::string &character); void WorldProcessCharacterSelect(const EQ::Net::Packet &p); std::unique_ptr m_world_connection_manager; std::shared_ptr m_world_connection; //Variables std::string m_host; int m_port; std::string m_user; std::string m_pass; std::string m_server; std::string m_character; std::string m_key; uint32_t m_dbid; };