diff --git a/src/Channel.cc b/src/Channel.cc index 6ddab4d0..aad39595 100644 --- a/src/Channel.cc +++ b/src/Channel.cc @@ -149,7 +149,7 @@ void Channel::disconnect() { this->crypt_out.reset(); } -Channel::Message Channel::recv(bool print_contents) { +Channel::Message Channel::recv() { struct evbuffer* buf = bufferevent_get_input(this->bev.get()); size_t header_size = (this->version == GameVersion::BB) ? 8 : 4; @@ -204,7 +204,7 @@ Channel::Message Channel::recv(bool print_contents) { } command_data.resize(command_logical_size - header_size); - if (print_contents && (this->terminal_recv_color != TerminalFormat::END)) { + if (command_data_log.should_log(LogLevel::INFO) && (this->terminal_recv_color != TerminalFormat::END)) { if (use_terminal_colors && this->terminal_recv_color != TerminalFormat::NORMAL) { print_color_escape(stderr, this->terminal_recv_color, TerminalFormat::BOLD, TerminalFormat::END); } @@ -241,11 +241,11 @@ Channel::Message Channel::recv(bool print_contents) { }; } -void Channel::send(uint16_t cmd, uint32_t flag, bool print_contents) { - this->send(cmd, flag, nullptr, 0, print_contents); +void Channel::send(uint16_t cmd, uint32_t flag, bool silent) { + this->send(cmd, flag, nullptr, 0, silent); } -void Channel::send(uint16_t cmd, uint32_t flag, const std::vector> blocks, bool print_contents) { +void Channel::send(uint16_t cmd, uint32_t flag, const std::vector> blocks, bool silent) { if (!this->connected()) { channel_exceptions_log.warning("Attempted to send command on closed channel; dropping data"); return; @@ -331,7 +331,7 @@ void Channel::send(uint16_t cmd, uint32_t flag, const std::vectorterminal_send_color != TerminalFormat::END)) { + if (!silent && (command_data_log.should_log(LogLevel::INFO)) && (this->terminal_send_color != TerminalFormat::END)) { if (use_terminal_colors && this->terminal_send_color != TerminalFormat::NORMAL) { print_color_escape(stderr, TerminalFormat::FG_YELLOW, TerminalFormat::BOLD, TerminalFormat::END); } @@ -356,16 +356,15 @@ void Channel::send(uint16_t cmd, uint32_t flag, const std::vectorsend(cmd, flag, {make_pair(data, size)}, print_contents); +void Channel::send(uint16_t cmd, uint32_t flag, const void* data, size_t size, bool silent) { + this->send(cmd, flag, {make_pair(data, size)}, silent); } -void Channel::send(uint16_t cmd, uint32_t flag, const string& data, bool print_contents) { - this->send(cmd, flag, data.data(), data.size(), print_contents); +void Channel::send(uint16_t cmd, uint32_t flag, const string& data, bool silent) { + this->send(cmd, flag, data.data(), data.size(), silent); } -void Channel::send(const void* data, size_t size, bool print_contents) { +void Channel::send(const void* data, size_t size, bool silent) { size_t header_size = (this->version == GameVersion::BB) ? 8 : 4; const auto* header = reinterpret_cast(data); this->send( @@ -373,11 +372,11 @@ void Channel::send(const void* data, size_t size, bool print_contents) { header->flag(this->version), reinterpret_cast(data) + header_size, size - header_size, - print_contents); + silent); } -void Channel::send(const string& data, bool print_contents) { - return this->send(data.data(), data.size(), print_contents); +void Channel::send(const string& data, bool silent) { + return this->send(data.data(), data.size(), silent); } void Channel::dispatch_on_input(struct bufferevent*, void* ctx) { diff --git a/src/Channel.hh b/src/Channel.hh index a12e501d..db458ca4 100644 --- a/src/Channel.hh +++ b/src/Channel.hh @@ -75,22 +75,23 @@ struct Channel { void disconnect(); // Receives a message. Throws std::out_of_range if no messages are available. - Message recv(bool print_contents = true); + Message recv(); // Sends a message with an automatically-constructed header. - void send(uint16_t cmd, uint32_t flag = 0, bool print_contents = true); - void send(uint16_t cmd, uint32_t flag, const void* data, size_t size, bool print_contents = true); - void send(uint16_t cmd, uint32_t flag, const std::vector> blocks, bool print_contents = true); - void send(uint16_t cmd, uint32_t flag, const std::string& data, bool print_contents = true); + void send(uint16_t cmd, uint32_t flag = 0, bool silent = false); + void send(uint16_t cmd, uint32_t flag, const void* data, size_t size, bool silent = false); + void send(uint16_t cmd, uint32_t flag, const std::vector> blocks, bool silent = false); + void send(uint16_t cmd, uint32_t flag, const std::string& data, bool silent = false); template - void send(uint16_t cmd, uint32_t flag, const CmdT& data) { - this->send(cmd, flag, &data, sizeof(data)); + requires(!std::is_pointer_v) + void send(uint16_t cmd, uint32_t flag, const CmdT& data, bool silent = false) { + this->send(cmd, flag, &data, sizeof(data), silent); } // Sends a message with a pre-existing header (as the first few bytes in the // data) - void send(const void* data = nullptr, size_t size = 0, bool print_contents = true); - void send(const std::string& data, bool print_contents = true); + void send(const void* data, size_t size, bool silent = false); + void send(const std::string& data, bool silent = false); private: static void dispatch_on_input(struct bufferevent*, void* ctx); diff --git a/src/Episode3/CardSpecial.cc b/src/Episode3/CardSpecial.cc index 9505f12a..60b6ddb2 100644 --- a/src/Episode3/CardSpecial.cc +++ b/src/Episode3/CardSpecial.cc @@ -1878,7 +1878,8 @@ bool CardSpecial::execute_effect( case ConditionType::UNIT_BLOW: if (unknown_p7 & 1) { int16_t count = clamp(this->count_action_cards_with_condition_for_all_current_attacks(ConditionType::UNIT_BLOW, 0xFFFF), -99, 99); - card->action_chain.chain.ap_effect_bonus = clamp(card->action_chain.chain.ap_effect_bonus + count * positive_expr_value, -99, 99); + card->action_chain.chain.ap_effect_bonus = clamp( + card->action_chain.chain.ap_effect_bonus + count * positive_expr_value, -99, 99); } return false; diff --git a/src/ProxyCommands.cc b/src/ProxyCommands.cc index 9f4a80a7..45714871 100644 --- a/src/ProxyCommands.cc +++ b/src/ProxyCommands.cc @@ -74,7 +74,7 @@ static void forward_command(shared_ptr ses, bool to_ if (!ch.connected()) { proxy_server_log.warning("No endpoint is present; dropping command"); } else { - ch.send(command, flag, data, print_contents); + ch.send(command, flag, data, !print_contents); } }