@@ -8878,8 +8878,13 @@ void weapon_render(object* obj, model_draw_list *scene)
88788878 float offset_z_mult = wip->weapon_curves .get_output (weapon_info::WeaponCurveOutputs::LASER_OFFSET_Z_MULT , *wp, &wp->modular_curves_instance );
88798879 float switch_ang_mult = wip->weapon_curves .get_output (weapon_info::WeaponCurveOutputs::LASER_HEADON_SWITCH_ANG_MULT , *wp, &wp->modular_curves_instance );
88808880 float switch_rate_mult = wip->weapon_curves .get_output (weapon_info::WeaponCurveOutputs::LASER_HEADON_SWITCH_RATE_MULT , *wp, &wp->modular_curves_instance );
8881- bool anim_has_curve = wip->weapon_curves .has_curve (weapon_info::WeaponCurveOutputs::LASER_ANIM_STATE );
8882- float anim_state = wip->weapon_curves .get_output (weapon_info::WeaponCurveOutputs::LASER_ANIM_STATE , *wp, &wp->modular_curves_instance );
8881+ bool anim_has_curve = wip->weapon_curves .has_curve (weapon_info::WeaponCurveOutputs::LASER_ANIM_STATE ) || wip->weapon_curves .has_curve (weapon_info::WeaponCurveOutputs::LASER_ANIM_STATE_ADD );
8882+ // We'll be using both anim_state and anim_state_add if either one has a curve defined, even if the other doesn't,
8883+ // so we need to make sure they've got sensible defaults, which in this case means 0.
8884+ float anim_state = 0 .f ;
8885+ if (wip->weapon_curves .has_curve (weapon_info::WeaponCurveOutputs::LASER_ANIM_STATE )) {
8886+ anim_state = wip->weapon_curves .get_output (weapon_info::WeaponCurveOutputs::LASER_ANIM_STATE , *wp, &wp->modular_curves_instance );
8887+ }
88838888 float anim_state_add = 0 .f ;
88848889 if (wip->weapon_curves .has_curve (weapon_info::WeaponCurveOutputs::LASER_ANIM_STATE_ADD )) {
88858890 anim_state_add = wip->weapon_curves .get_output (weapon_info::WeaponCurveOutputs::LASER_ANIM_STATE_ADD , *wp, &wp->modular_curves_instance );
0 commit comments