bool parse_opt_n(t_parse_argv *argv) { t_sub value; int32_t player_id; if (!ft_argv_arg(&argv->args, &value) || value.length == 0) PARSE_ARGV_ERR("-n: Require a value"); else if (ft_subto_int(value, &player_id) != value.length) PARSE_ARGV_ERR("-n: Invalid value: %ts", value); else if (next_player_id(&argv->vm_loader, player_id) != player_id) PARSE_ARGV_ERR("-n: Player id already used: %d", player_id); else if (!ft_argv_arg(&argv->args, &value)) PARSE_ARGV_ERR("Missing file name for player %d", player_id); else return (push_player(argv, player_id, value)); return (false); }
player_connection::player_connection( socket_ptr socket, socket_server *server ) : _socket(socket), _player_id(next_player_id()), _server(server) { start_read(); }