|
|
|
@ -162,24 +162,22 @@ static void OnMessageReceived(const Network::ChatEntry& msg) { |
|
|
|
} |
|
|
|
|
|
|
|
static void OnStatusMessageReceived(const Network::StatusMessageEntry& msg) { |
|
|
|
std::string message; |
|
|
|
switch (msg.type) { |
|
|
|
case Network::IdMemberJoin: |
|
|
|
message = fmt::format("{} has joined", msg.nickname); |
|
|
|
break; |
|
|
|
case Network::IdMemberLeave: |
|
|
|
message = fmt::format("{} has left", msg.nickname); |
|
|
|
break; |
|
|
|
case Network::IdMemberKicked: |
|
|
|
message = fmt::format("{} has been kicked", msg.nickname); |
|
|
|
break; |
|
|
|
case Network::IdMemberBanned: |
|
|
|
message = fmt::format("{} has been banned", msg.nickname); |
|
|
|
break; |
|
|
|
case Network::IdAddressUnbanned: |
|
|
|
message = fmt::format("{} has been unbanned", msg.nickname); |
|
|
|
break; |
|
|
|
} |
|
|
|
std::string message = [&]() { |
|
|
|
switch (msg.type) { |
|
|
|
case Network::IdMemberJoin: |
|
|
|
return fmt::format("{} has joined", msg.nickname); |
|
|
|
case Network::IdMemberLeave: |
|
|
|
return fmt::format("{} has left", msg.nickname); |
|
|
|
case Network::IdMemberKicked: |
|
|
|
return fmt::format("{} has been kicked", msg.nickname); |
|
|
|
case Network::IdMemberBanned: |
|
|
|
return fmt::format("{} has been banned", msg.nickname); |
|
|
|
case Network::IdAddressUnbanned: |
|
|
|
return fmt::format("{} has been unbanned", msg.nickname); |
|
|
|
default: |
|
|
|
return std::string{}; |
|
|
|
} |
|
|
|
}(); |
|
|
|
if (!message.empty()) |
|
|
|
std::cout << std::endl << "* " << message << std::endl << std::endl; |
|
|
|
} |
|
|
|
@ -209,10 +207,10 @@ int main(int argc, char** argv) { |
|
|
|
} |
|
|
|
#endif
|
|
|
|
std::string filepath; |
|
|
|
std::optional<std::string> config_path; |
|
|
|
std::optional<std::string> config_path{}; |
|
|
|
std::string program_args; |
|
|
|
std::optional<int> selected_user; |
|
|
|
|
|
|
|
std::optional<int> selected_user{}; |
|
|
|
std::optional<int> override_gdb_port{}; |
|
|
|
bool use_multiplayer = false; |
|
|
|
bool fullscreen = false; |
|
|
|
std::string nickname{}; |
|
|
|
@ -222,6 +220,7 @@ int main(int argc, char** argv) { |
|
|
|
|
|
|
|
static struct option long_options[] = { |
|
|
|
// clang-format off
|
|
|
|
{"debug", no_argument, 0, 'd'}, |
|
|
|
{"config", required_argument, 0, 'c'}, |
|
|
|
{"fullscreen", no_argument, 0, 'f'}, |
|
|
|
{"help", no_argument, 0, 'h'}, |
|
|
|
@ -238,6 +237,9 @@ int main(int argc, char** argv) { |
|
|
|
int arg = getopt_long(argc, argv, "g:fhvp::c:u:", long_options, &option_index); |
|
|
|
if (arg != -1) { |
|
|
|
switch (static_cast<char>(arg)) { |
|
|
|
case 'd': |
|
|
|
override_gdb_port = atoi(optarg); |
|
|
|
break; |
|
|
|
case 'c': |
|
|
|
config_path = optarg; |
|
|
|
break; |
|
|
|
@ -323,6 +325,11 @@ int main(int argc, char** argv) { |
|
|
|
Settings::values.current_user = std::clamp(*selected_user, 0, 7); |
|
|
|
} |
|
|
|
|
|
|
|
if (override_gdb_port.has_value()) { |
|
|
|
Settings::values.use_gdbstub = true; |
|
|
|
Settings::values.gdbstub_port = *override_gdb_port; |
|
|
|
} |
|
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
|
LocalFree(argv_w); |
|
|
|
#endif
|
|
|
|
|