diff --git a/code/parse/sexp.cpp b/code/parse/sexp.cpp index fd2a32b400e..903214c4cae 100644 --- a/code/parse/sexp.cpp +++ b/code/parse/sexp.cpp @@ -9542,9 +9542,6 @@ int test_argument_nodes_for_condition(int n, int condition_node, int *num_true, // only eval this argument if it's valid if (Sexp_nodes[n].flags & SNF_ARGUMENT_VALID) { - // flush conditional to avoid short-circuiting - flush_sexp_tree(condition_node); - // evaluate conditional for current argument Sexp_replacement_arguments.emplace_back(Sexp_nodes[n].text, n); val = eval_sexp(condition_node); @@ -9626,9 +9623,6 @@ int test_argument_vector_for_condition(const SCP_vector> & { // since we can't see or modify the validity, assume all are valid { - // flush conditional to avoid short-circuiting - flush_sexp_tree(condition_node); - // evaluate conditional for current argument Sexp_replacement_arguments.push_back(argument); val = eval_sexp(condition_node); @@ -9838,9 +9832,8 @@ int eval_random_of(int arg_handler_node, int condition_node, bool multiple) val = SEXP_FALSE; if (Sexp_nodes[n].flags & SNF_ARGUMENT_VALID) { - // flush stuff + // ensure special argument list is empty Sexp_applicable_argument_list.clear_nesting_level(); - flush_sexp_tree(condition_node); // evaluate conditional for current argument Sexp_replacement_arguments.emplace_back(Sexp_nodes[n].text, n); @@ -9891,9 +9884,8 @@ int eval_in_sequence(int arg_handler_node, int condition_node) // Only execute if the argument is valid (if all nodes were invalid we would still reach this point) if (Sexp_nodes[n].flags & SNF_ARGUMENT_VALID) { - // flush stuff + // ensure special argument list is empty Sexp_applicable_argument_list.clear_nesting_level(); - flush_sexp_tree(condition_node); // evaluate conditional for current argument Sexp_replacement_arguments.emplace_back(Sexp_nodes[n].text, n);