@@ -4426,6 +4426,32 @@ void preload_change_ship_class(const char *text)
44264426 model_page_in_textures(sip->model_num, idx);
44274427}
44284428
4429+ // MjnMixael
4430+ void preload_asteroid_class(const char* text)
4431+ {
4432+ const auto& list = get_list_valid_asteroid_subtypes();
4433+
4434+ bool valid = std::any_of(list.begin(), list.end(), [&](const SCP_string& item) { return !stricmp(text, item.c_str()); });
4435+
4436+ if (!valid)
4437+ return;
4438+
4439+ asteroid_load(ASTEROID_TYPE_SMALL, get_asteroid_subtype_index_by_name(text, ASTEROID_TYPE_SMALL));
4440+ asteroid_load(ASTEROID_TYPE_MEDIUM, get_asteroid_subtype_index_by_name(text, ASTEROID_TYPE_MEDIUM));
4441+ asteroid_load(ASTEROID_TYPE_LARGE, get_asteroid_subtype_index_by_name(text, ASTEROID_TYPE_LARGE));
4442+
4443+ }
4444+
4445+ // MjnMixael
4446+ void preload_debris_class(const char* text)
4447+ {
4448+ auto idx = get_asteroid_index(text);
4449+ if (idx < 0)
4450+ return;
4451+
4452+ asteroid_load(idx, 0);
4453+ }
4454+
44294455// Goober5000
44304456void preload_turret_change_weapon(const char *text)
44314457{
@@ -4846,6 +4872,30 @@ int get_sexp()
48464872 do_preload_for_arguments(sexp_set_skybox_model_preload, n, arg_handler);
48474873 break;
48484874
4875+ case OP_CONFIG_ASTEROID_FIELD:
4876+ // asteroid types start at argument #17
4877+ n = CDDDDDR(start);
4878+ n = CDDDDDR(n);
4879+ n = CDDDDDR(n);
4880+ n = CDDR(n);
4881+
4882+ // loop through all remaining arguments
4883+ for (int arg = n; arg >= 0; arg = CDR(arg)) {
4884+ do_preload_for_arguments(preload_asteroid_class, arg, arg_handler);
4885+ }
4886+ break;
4887+
4888+ case OP_CONFIG_DEBRIS_FIELD:
4889+ // debris types start at argument #10
4890+ n = CDDDDDR(start);
4891+ n = CDDDDDR(n);
4892+
4893+ // loop through all remaining arguments
4894+ for (int arg = n; arg >= 0; arg = CDR(arg)) {
4895+ do_preload_for_arguments(preload_debris_class, arg, arg_handler);
4896+ }
4897+ break;
4898+
48494899 case OP_TURRET_CHANGE_WEAPON:
48504900 // weapon to change to is arg #3
48514901 n = CDDDR(start);
0 commit comments