mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 16:51:29 +00:00
74 lines
2.5 KiB
C++
74 lines
2.5 KiB
C++
#pragma once
|
|
|
|
#include "../common/eqemu_logsys.h"
|
|
#include "../common/net/daybreak_connection.h"
|
|
#include "../common/event/timer.h"
|
|
#include <openssl/des.h>
|
|
#include <string>
|
|
#include <map>
|
|
|
|
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<EQ::Net::DaybreakConnection> connection);
|
|
void LoginOnStatusChangeReconnectEnabled(std::shared_ptr<EQ::Net::DaybreakConnection> conn, EQ::Net::DbProtocolStatus from, EQ::Net::DbProtocolStatus to);
|
|
void LoginOnStatusChangeReconnectDisabled(std::shared_ptr<EQ::Net::DaybreakConnection> conn, EQ::Net::DbProtocolStatus from, EQ::Net::DbProtocolStatus to);
|
|
void LoginOnPacketRecv(std::shared_ptr<EQ::Net::DaybreakConnection> 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<EQ::Net::DaybreakConnectionManager> m_login_connection_manager;
|
|
std::shared_ptr<EQ::Net::DaybreakConnection> m_login_connection;
|
|
std::map<uint32_t, WorldServer> m_world_servers;
|
|
|
|
//World
|
|
void ConnectToWorld();
|
|
|
|
void WorldOnNewConnection(std::shared_ptr<EQ::Net::DaybreakConnection> connection);
|
|
void WorldOnStatusChangeReconnectEnabled(std::shared_ptr<EQ::Net::DaybreakConnection> conn, EQ::Net::DbProtocolStatus from, EQ::Net::DbProtocolStatus to);
|
|
void WorldOnStatusChangeReconnectDisabled(std::shared_ptr<EQ::Net::DaybreakConnection> conn, EQ::Net::DbProtocolStatus from, EQ::Net::DbProtocolStatus to);
|
|
void WorldOnPacketRecv(std::shared_ptr<EQ::Net::DaybreakConnection> conn, const EQ::Net::Packet &p);
|
|
|
|
void WorldSendClientAuth();
|
|
void WorldSendEnterWorld(const std::string &character);
|
|
|
|
void WorldProcessCharacterSelect(const EQ::Net::Packet &p);
|
|
|
|
std::unique_ptr<EQ::Net::DaybreakConnectionManager> m_world_connection_manager;
|
|
std::shared_ptr<EQ::Net::DaybreakConnection> 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;
|
|
}; |