@@ -1227,6 +1227,11 @@ ADE_FUNC(renderTechModel,
12271227
12281228 // Draw the ship!!
12291229 model_clear_instance (sip->model_num );
1230+
1231+ // Create an instance that can be used to clear out destroyed subobjects from rendering
1232+ int model_instance = model_create_instance (-1 , sip->model_num );
1233+ model_set_up_techroom_instance (sip, model_instance);
1234+
12301235 render_info.set_detail_level_lock (0 );
12311236
12321237 uint render_flags = MR_AUTOCENTER | MR_NO_FOGGING;
@@ -1236,7 +1241,7 @@ ADE_FUNC(renderTechModel,
12361241
12371242 render_info.set_flags (render_flags);
12381243
1239- model_render_immediate (&render_info, sip->model_num , &orient, &vmd_zero_vector);
1244+ model_render_immediate (&render_info, sip->model_num , model_instance, &orient, &vmd_zero_vector);
12401245
12411246 // OK we're done
12421247 gr_end_view_matrix ();
@@ -1246,6 +1251,9 @@ ADE_FUNC(renderTechModel,
12461251 g3_end_frame ();
12471252 gr_reset_clip ();
12481253
1254+ // Now that we've rendered the frame we can remove the instance
1255+ model_delete_instance (model_instance);
1256+
12491257 return ade_set_args (L, " b" , true );
12501258}
12511259
@@ -1296,6 +1304,11 @@ ADE_FUNC(renderTechModel2, l_Shipclass, "number X1, number Y1, number X2, number
12961304
12971305 // Draw the ship!!
12981306 model_clear_instance (sip->model_num );
1307+
1308+ // Create an instance that can be used to clear out destroyed subobjects from rendering
1309+ int model_instance = model_create_instance (-1 , sip->model_num );
1310+ model_set_up_techroom_instance (sip, model_instance);
1311+
12991312 render_info.set_detail_level_lock (0 );
13001313
13011314 uint render_flags = MR_AUTOCENTER | MR_NO_FOGGING;
@@ -1305,7 +1318,7 @@ ADE_FUNC(renderTechModel2, l_Shipclass, "number X1, number Y1, number X2, number
13051318
13061319 render_info.set_flags (render_flags);
13071320
1308- model_render_immediate (&render_info, sip->model_num , orient, &vmd_zero_vector);
1321+ model_render_immediate (&render_info, sip->model_num , model_instance, orient, &vmd_zero_vector);
13091322
13101323 // OK we're done
13111324 gr_end_view_matrix ();
@@ -1315,6 +1328,9 @@ ADE_FUNC(renderTechModel2, l_Shipclass, "number X1, number Y1, number X2, number
13151328 g3_end_frame ();
13161329 gr_reset_clip ();
13171330
1331+ // Now that we've rendered the frame we can remove the instance
1332+ model_delete_instance (model_instance);
1333+
13181334 return ade_set_args (L, " b" , true );
13191335}
13201336
0 commit comments