add DC NTE format for 6x06 command
This commit is contained in:
@@ -3848,6 +3848,12 @@ struct G_SwitchStateChanged_6x05 {
|
|||||||
|
|
||||||
// 6x06: Send guild card
|
// 6x06: Send guild card
|
||||||
|
|
||||||
|
struct G_SendGuildCard_DCNTE_6x06 {
|
||||||
|
G_UnusedHeader header;
|
||||||
|
GuildCardDCNTE guild_card;
|
||||||
|
uint8_t unused;
|
||||||
|
} __packed__;
|
||||||
|
|
||||||
struct G_SendGuildCard_DC_6x06 {
|
struct G_SendGuildCard_DC_6x06 {
|
||||||
G_UnusedHeader header;
|
G_UnusedHeader header;
|
||||||
GuildCardDC guild_card;
|
GuildCardDC guild_card;
|
||||||
|
|||||||
@@ -194,6 +194,19 @@ struct PlayerDispDataBB {
|
|||||||
void apply_dressing_room(const PlayerDispDataBBPreview&);
|
void apply_dressing_room(const PlayerDispDataBBPreview&);
|
||||||
} __attribute__((packed));
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
struct GuildCardDCNTE {
|
||||||
|
/* 00 */ le_uint32_t player_tag = 0;
|
||||||
|
/* 04 */ le_uint32_t guild_card_number = 0;
|
||||||
|
/* 08 */ pstring<TextEncoding::ASCII, 0x18> name;
|
||||||
|
/* 20 */ pstring<TextEncoding::MARKED, 0x48> description;
|
||||||
|
/* 68 */ parray<uint8_t, 0x0F> unused2;
|
||||||
|
/* 77 */ uint8_t present = 0;
|
||||||
|
/* 78 */ uint8_t language = 0;
|
||||||
|
/* 79 */ uint8_t section_id = 0;
|
||||||
|
/* 7A */ uint8_t char_class = 0;
|
||||||
|
/* 7B */
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
struct GuildCardDC {
|
struct GuildCardDC {
|
||||||
/* 00 */ le_uint32_t player_tag = 0;
|
/* 00 */ le_uint32_t player_tag = 0;
|
||||||
/* 04 */ le_uint32_t guild_card_number = 0;
|
/* 04 */ le_uint32_t guild_card_number = 0;
|
||||||
|
|||||||
@@ -984,7 +984,11 @@ static void on_send_guild_card(shared_ptr<Client> c, uint8_t command, uint8_t fl
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (c->version()) {
|
switch (c->version()) {
|
||||||
case Version::DC_NTE:
|
case Version::DC_NTE: {
|
||||||
|
const auto& cmd = check_size_t<G_SendGuildCard_DCNTE_6x06>(data, size);
|
||||||
|
c->character(true, false)->guild_card.description.encode(cmd.guild_card.description.decode(c->language()), c->language());
|
||||||
|
break;
|
||||||
|
}
|
||||||
case Version::DC_V1_11_2000_PROTOTYPE:
|
case Version::DC_V1_11_2000_PROTOTYPE:
|
||||||
case Version::DC_V1:
|
case Version::DC_V1:
|
||||||
case Version::DC_V2: {
|
case Version::DC_V2: {
|
||||||
|
|||||||
+3
-1
@@ -1177,10 +1177,12 @@ void send_guild_card(
|
|||||||
uint8_t char_class) {
|
uint8_t char_class) {
|
||||||
switch (ch.version) {
|
switch (ch.version) {
|
||||||
case Version::DC_NTE:
|
case Version::DC_NTE:
|
||||||
|
send_guild_card_dc_pc_gc_t<G_SendGuildCard_DCNTE_6x06>(
|
||||||
|
ch, guild_card_number, name, description, language, section_id, char_class);
|
||||||
|
break;
|
||||||
case Version::DC_V1_11_2000_PROTOTYPE:
|
case Version::DC_V1_11_2000_PROTOTYPE:
|
||||||
case Version::DC_V1:
|
case Version::DC_V1:
|
||||||
case Version::DC_V2:
|
case Version::DC_V2:
|
||||||
// TODO: Is this the right format and subcommand for NTE and the prototype?
|
|
||||||
send_guild_card_dc_pc_gc_t<G_SendGuildCard_DC_6x06>(
|
send_guild_card_dc_pc_gc_t<G_SendGuildCard_DC_6x06>(
|
||||||
ch, guild_card_number, name, description, language, section_id, char_class);
|
ch, guild_card_number, name, description, language, section_id, char_class);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user