diff --git a/src/CommandFormats.hh b/src/CommandFormats.hh index bd2fc509..fd454fc6 100644 --- a/src/CommandFormats.hh +++ b/src/CommandFormats.hh @@ -1160,6 +1160,26 @@ struct C_LegacyLogin_V3_90 { // 92 (S->C): Register result (non-BB) // Same format and usage as 9C (S->C) command. +// 93 (C->S): Log in (DCv1) + +struct C_Login_DCv1_93 { + le_uint32_t player_tag; + le_uint32_t guild_card_number; + le_uint32_t unknown_a1; + le_uint32_t unknown_a2; + le_uint32_t sub_version; + uint8_t unknown_a3; // Probably is_extended + uint8_t language_code; + uint8_t unused1[2]; + ptext serial_number; + ptext access_key; + // Note: The hardware_id field is likely shorter than this (only 8 bytes + // appear to actually be used). + ptext hardware_id; + ptext name; + uint8_t unused2[2]; +}; + // 93 (C->S): Log in (BB) struct C_Login_BB_93 { @@ -1241,14 +1261,14 @@ struct C_CharSaveInfo_V3_BB_96 { // 9A (C->S): Initial login (no password or client config) struct C_Login_DC_PC_V3_9A { - ptext unused1; - ptext unused2; + ptext v1_serial_number; + ptext v1_access_key; ptext serial_number; ptext access_key; le_uint32_t player_tag; le_uint32_t guild_card_number; le_uint32_t sub_version; - ptext serial_number2; + ptext serial_number2; // On DCv2, this is the hardware ID ptext access_key2; ptext email_address; }; @@ -1338,8 +1358,8 @@ struct C_Login_PC_GC_9D { uint8_t is_extended; // If 1, structure has extended format uint8_t language; // 0 = JP, 1 = EN, 2 = DE (?), 3 = FR (?), 4 = ES parray unused3; // Always zeroes? - ptext unused1; // Same as unused1/unused2 in 9A - ptext unused2; + ptext v1_serial_number; + ptext v1_access_key; ptext serial_number; // On XB, this is the XBL gamertag ptext access_key; // On XB, this is the XBL user ID ptext serial_number2; // On XB, this is the XBL gamertag