CLE changes [skip ci]

This commit is contained in:
Akkadius 2019-07-09 23:58:47 -05:00
parent 839baba553
commit 6e550ecc75
2 changed files with 85 additions and 36 deletions

View File

@ -31,13 +31,23 @@ extern LoginServerList loginserverlist;
extern ClientList client_list; extern ClientList client_list;
extern volatile bool RunLoops; extern volatile bool RunLoops;
/**
* @param in_id
* @param in_loginserver_id
* @param in_loginserver_name
* @param in_login_name
* @param in_login_key
* @param in_is_world_admin
* @param ip
* @param local
*/
ClientListEntry::ClientListEntry( ClientListEntry::ClientListEntry(
uint32 in_id, uint32 in_id,
uint32 iLSID, uint32 in_loginserver_id,
const char *iLoginServerName, const char *in_loginserver_name,
const char *iLoginName, const char *in_login_name,
const char *iLoginKey, const char *in_login_key,
int16 iWorldAdmin, int16 in_is_world_admin,
uint32 ip, uint32 ip,
uint8 local uint8 local
) )
@ -45,17 +55,29 @@ ClientListEntry::ClientListEntry(
{ {
ClearVars(true); ClearVars(true);
pIP = ip; LogDebug(
pLSID = iLSID; "ClientListEntry in_id [{0}] in_loginserver_id [{1}] in_loginserver_name [{2}] in_login_name [{3}] in_login_key [{4}] "
if (iLSID > 0) { " in_is_world_admin [{5}] ip [{6}] local [{7}]",
in_id,
in_loginserver_id,
in_loginserver_name,
in_login_name,
in_login_key,
in_is_world_admin,
ip,
local
);
paccountid = database.GetAccountIDFromLSID(iLoginServerName, iLSID, paccountname, &padmin); pIP = ip;
pLSID = in_loginserver_id;
if (in_loginserver_id > 0) {
paccountid = database.GetAccountIDFromLSID(in_loginserver_name, in_loginserver_id, paccountname, &padmin);
} }
strn0cpy(loginserver_account_name, iLoginName, sizeof(loginserver_account_name)); strn0cpy(loginserver_account_name, in_login_name, sizeof(loginserver_account_name));
strn0cpy(plskey, iLoginKey, sizeof(plskey)); strn0cpy(plskey, in_login_key, sizeof(plskey));
strn0cpy(source_loginserver, iLoginServerName, sizeof(source_loginserver)); strn0cpy(source_loginserver, in_loginserver_name, sizeof(source_loginserver));
pworldadmin = iWorldAdmin; pworldadmin = in_is_world_admin;
plocal = (local == 1); plocal = (local == 1);
pinstance = 0; pinstance = 0;

View File

@ -21,8 +21,35 @@ struct ServerClientList_Struct;
class ClientListEntry { class ClientListEntry {
public: public:
ClientListEntry(uint32 id, uint32 iLSID, const char *iLoginServerName, const char* iLoginName, const char* iLoginKey, int16 iWorldAdmin = 0, uint32 ip = 0, uint8 local=0);
ClientListEntry(uint32 id, ZoneServer* iZS, ServerClientList_Struct* scl, int8 iOnline); /**
* @param id
* @param in_loginserver_id
* @param in_loginserver_name
* @param in_login_name
* @param in_login_key
* @param in_is_world_admin
* @param ip
* @param local
*/
ClientListEntry(
uint32 id,
uint32 in_loginserver_id,
const char *in_loginserver_name,
const char *in_login_name,
const char *in_login_key,
int16 in_is_world_admin = 0,
uint32 ip = 0,
uint8 local = 0
);
/**
* @param id
* @param iZS
* @param scl
* @param iOnline
*/
ClientListEntry(uint32 id, ZoneServer *iZS, ServerClientList_Struct *scl, int8 iOnline);
~ClientListEntry(); ~ClientListEntry();
bool CheckStale(); bool CheckStale();
void Update(ZoneServer* zoneserver, ServerClientList_Struct* scl, int8 iOnline = CLE_Status_InZone); void Update(ZoneServer* zoneserver, ServerClientList_Struct* scl, int8 iOnline = CLE_Status_InZone);
@ -91,42 +118,42 @@ private:
const uint32 id; const uint32 id;
uint32 pIP; uint32 pIP;
int8 pOnline; int8 pOnline{};
uint8 stale; uint8 stale{};
// Login Server stuff // Login Server stuff
char source_loginserver[64]; //Loginserver we came from. char source_loginserver[64]{}; //Loginserver we came from.
uint32 pLSID; uint32 pLSID;
char loginserver_account_name[32]; char loginserver_account_name[32]{};
char plskey[16]; char plskey[16]{};
int16 pworldadmin; // Login server's suggested admin status setting int16 pworldadmin; // Login server's suggested admin status setting
bool plocal; bool plocal;
// Account stuff // Account stuff
uint32 paccountid; uint32 paccountid;
char paccountname[32]; char paccountname[32]{};
MD5 pMD5Pass; MD5 pMD5Pass;
int16 padmin; int16 padmin{};
// Character info // Character info
ZoneServer* pzoneserver; ZoneServer* pzoneserver{};
uint32 pzone; uint32 pzone{};
uint16 pinstance; uint16 pinstance;
uint32 pcharid; uint32 pcharid{};
char pname[64]; char pname[64]{};
uint8 plevel; uint8 plevel{};
uint8 pclass_; uint8 pclass_{};
uint16 prace; uint16 prace{};
uint8 panon; uint8 panon{};
uint8 ptellsoff; uint8 ptellsoff{};
uint32 pguild_id; uint32 pguild_id{};
bool pLFG; bool pLFG{};
uint8 gm; uint8 gm{};
uint8 pClientVersion; uint8 pClientVersion{};
uint8 pLFGFromLevel; uint8 pLFGFromLevel;
uint8 pLFGToLevel; uint8 pLFGToLevel;
bool pLFGMatchFilter; bool pLFGMatchFilter;
char pLFGComments[64]; char pLFGComments[64]{};
// Tell Queue -- really a vector :D // Tell Queue -- really a vector :D
std::vector<ServerChannelMessage_Struct *> tell_queue; std::vector<ServerChannelMessage_Struct *> tell_queue;