diff options
author | Haru <haru@dotalux.com> | 2016-04-21 23:03:43 +0200 |
---|---|---|
committer | Haru <haru@dotalux.com> | 2016-04-23 09:52:31 +0200 |
commit | 7aa70331b7dcfb21533c3806a694819e70f936c2 (patch) | |
tree | f92b7137a7f0cf65ffbe5553b0075181b5b5891c /src/map/clif.c | |
parent | ccfd0549ce64e84e41069ec8e040ce9806b963f2 (diff) | |
download | hercules-7aa70331b7dcfb21533c3806a694819e70f936c2.tar.gz hercules-7aa70331b7dcfb21533c3806a694819e70f936c2.tar.bz2 hercules-7aa70331b7dcfb21533c3806a694819e70f936c2.tar.xz hercules-7aa70331b7dcfb21533c3806a694819e70f936c2.zip |
Removed some code duplication in chat processing functions
Moved non-clif code that handles chat delay, atcommand detection, idle
timers to pc.c
Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 77 |
1 files changed, 5 insertions, 72 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index abb08d498..2dea386be 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -8931,6 +8931,8 @@ const char *clif_process_chat_message(struct map_session_data *sd, const struct safestrncpy(out_buf, packet->message, textlen+1); // [!] packet->message is not necessarily NUL terminated message = out_buf + namelen + 3; + if (!pc->process_chat_message(sd, message)) + return NULL; return message; } @@ -8993,6 +8995,9 @@ bool clif_process_whisper_message(struct map_session_data *sd, const struct pack safestrncpy(out_name, packet->name, namelen+1); // [!] packet->name is not NUL terminated safestrncpy(out_message, packet->message, messagelen+1); // [!] packet->message is not necessarily NUL terminated + if (!pc->process_chat_message(sd, out_message)) + return false; + return true; } @@ -9767,22 +9772,8 @@ void clif_parse_GlobalMessage(int fd, struct map_session_data *sd) if (message == NULL) return; - if( atcommand->exec(fd, sd, message, true) ) - return; - - if( !pc->can_talk(sd) ) - return; - - if( battle_config.min_chat_delay ) { //[Skotlex] - if (DIFF_TICK(sd->cantalk_tick, timer->gettick()) > 0) - return; - sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay; - } - pc->check_supernovice_call(sd, message); - pc->update_idle_time(sd, BCIDLE_CHAT); - if (sd->gcbind != NULL) { channel->send(sd->gcbind, sd, message); return; @@ -10151,22 +10142,6 @@ void clif_parse_WisMessage(int fd, struct map_session_data* sd) if (!clif->process_whisper_message(sd, packet, target, message, sizeof message)) return; - if ( atcommand->exec(fd, sd, message, true) ) - return; - - // Statuses that prevent the player from whispering - if( !pc->can_talk(sd) ) - return; - - if (battle_config.min_chat_delay) { //[Skotlex] - if (DIFF_TICK(sd->cantalk_tick, timer->gettick()) > 0) { - return; - } - sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay; - } - - pc->update_idle_time(sd, BCIDLE_CHAT); - // Chat logging type 'W' / Whisper logs->chat(LOG_CHAT_WHISPER, 0, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, target, message); @@ -11985,20 +11960,6 @@ void clif_parse_PartyMessage(int fd, struct map_session_data *sd) if (clif->process_chat_message(sd, packet, message, sizeof message) == NULL) return; - if( atcommand->exec(fd, sd, message, true) ) - return; - - if( !pc->can_talk(sd) ) - return; - - if (battle_config.min_chat_delay) { - if (DIFF_TICK(sd->cantalk_tick, timer->gettick()) > 0) - return; - sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay; - } - - pc->update_idle_time(sd, BCIDLE_CHAT); - party->send_message(sd, message, (int)strlen(message)); } @@ -13097,20 +13058,6 @@ void clif_parse_GuildMessage(int fd, struct map_session_data *sd) if (clif->process_chat_message(sd, packet, message, sizeof message) == NULL) return; - if( atcommand->exec(fd, sd, message, true) ) - return; - - if( !pc->can_talk(sd) ) - return; - - if (battle_config.min_chat_delay) { - if (DIFF_TICK(sd->cantalk_tick, timer->gettick()) > 0) - return; - sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay; - } - - pc->update_idle_time(sd, BCIDLE_CHAT); - if (sd->bg_id) bg->send_message(sd, message, (int)strlen(message)); else @@ -16215,20 +16162,6 @@ void clif_parse_BattleChat(int fd, struct map_session_data *sd) if (clif->process_chat_message(sd, packet, message, sizeof message) == NULL) return; - if( atcommand->exec(fd, sd, message, true) ) - return; - - if( !pc->can_talk(sd) ) - return; - - if( battle_config.min_chat_delay ) { - if( DIFF_TICK(sd->cantalk_tick, timer->gettick()) > 0 ) - return; - sd->cantalk_tick = timer->gettick() + battle_config.min_chat_delay; - } - - pc->update_idle_time(sd, BCIDLE_CHAT); - bg->send_message(sd, message, (int)strlen(message)); } |