Skip to content

Commit 47564d1

Browse files
authored
Merge pull request #5008 from MjnMixael/asteroid_sexp_error_checks
Add missing asteroid debris argument type error checking
2 parents 4572aa1 + f1f27b2 commit 47564d1

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

code/parse/sexp.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3935,6 +3935,16 @@ int check_sexp_syntax(int node, int return_type, int recursive, int *bad_node, i
39353935
break;
39363936
}
39373937

3938+
case OPF_ASTEROID_DEBRIS:
3939+
if (type2 != SEXP_ATOM_STRING) {
3940+
return SEXP_CHECK_TYPE_MISMATCH;
3941+
}
3942+
3943+
if (get_asteroid_position(CTEXT(node)) < 0) {
3944+
return SEXP_CHECK_INVALID_ASTEROID;
3945+
}
3946+
break;
3947+
39383948
case OPF_WING_FORMATION:
39393949
if (type2 != SEXP_ATOM_STRING) {
39403950
return SEXP_CHECK_TYPE_MISMATCH;
@@ -32450,6 +32460,9 @@ const char *sexp_error_message(int num)
3245032460
case SEXP_CHECK_INVALID_SPECIAL_ARG_TYPE:
3245132461
return "Invalid special argument type";
3245232462

32463+
case SEXP_CHECK_INVALID_ASTEROID:
32464+
return "Invalid asteroid debris type";
32465+
3245332466
case SEXP_CHECK_INVALID_WING_FORMATION:
3245432467
return "Invalid wing formation";
3245532468

code/parse/sexp.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1171,6 +1171,7 @@ enum sexp_error_check
11711171
SEXP_CHECK_INVALID_ANY_HUD_GAUGE,
11721172
SEXP_CHECK_INVALID_WING_FLAG,
11731173
SEXP_CHECK_INVALID_WING_FORMATION,
1174+
SEXP_CHECK_INVALID_ASTEROID,
11741175
};
11751176

11761177

fred2/sexp_tree.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3498,6 +3498,12 @@ int sexp_tree::query_default_argument_available(int op, int i)
34983498
}
34993499
return 0;
35003500

3501+
case OPF_ASTEROID_DEBRIS:
3502+
if ((Asteroid_info.size() - NUM_ASTEROID_POFS) > 0) {
3503+
return 1;
3504+
}
3505+
return 0;
3506+
35013507
default:
35023508
if (!Dynamic_enums.empty()) {
35033509
if ((type - First_available_opf_id) < (int)Dynamic_enums.size()) {

0 commit comments

Comments
 (0)