From f86c32c9d61ca46135dd536635a3750681d1b6e5 Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Fri, 21 Feb 2020 05:26:50 +0100 Subject: Implement display options in ACMD(fakename) function --- src/map/atcommand.c | 20 ++++++++++++++++++-- src/map/pc.h | 1 + 2 files changed, 19 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 707522423..cafe3e39f 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -7856,6 +7856,7 @@ ACMD(fakename) if (sd->fakename[0]) { sd->fakename[0] = '\0'; + sd->fakename_options = FAKENAME_OPTION_NONE; clif->blname_ack(0, &sd->bl); if( sd->disguise ) clif->blname_ack(sd->fd, &sd->bl); @@ -7867,13 +7868,28 @@ ACMD(fakename) return false; } - if (strlen(message) < 2) + int options = FAKENAME_OPTION_NONE; + char buf[NAME_LENGTH] = {'\0'}; + const char *fake_name = NULL; + + if (sscanf(message, "%d %23[^\n]", &options, buf) == 2) { + fake_name = buf; + } else { + options = FAKENAME_OPTION_NONE; + fake_name = message; + } + + if (strlen(fake_name) < 2) { clif->message(sd->fd, msg_fd(fd,1309)); // Fake name must be at least two characters. return false; } - safestrncpy(sd->fakename, message, sizeof(sd->fakename)); + if (options < FAKENAME_OPTION_NONE) + options = FAKENAME_OPTION_NONE; + + safestrncpy(sd->fakename, fake_name, sizeof(sd->fakename)); + sd->fakename_options = options; clif->blname_ack(0, &sd->bl); if (sd->disguise) // Another packet should be sent so the client updates the name for sd clif->blname_ack(sd->fd, &sd->bl); diff --git a/src/map/pc.h b/src/map/pc.h index e940c3310..007c08f20 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -492,6 +492,7 @@ END_ZEROED_BLOCK; int change_level_3rd; // job level when changing from 2nd to 3rd class [jobchange_level_3rd in global_reg_value] char fakename[NAME_LENGTH]; // fake names [Valaris] + int fakename_options; // Fake name display options. int duel_group; // duel vars [LuzZza] int duel_invite; -- cgit v1.2.3-70-g09d2