Index: shiphit.cpp
===================================================================
--- shiphit.cpp	(revision 9527)
+++ shiphit.cpp	(working copy)
@@ -1930,8 +1930,7 @@
 	int other_obj_is_asteroid;
 	int other_obj_is_debris;
 	int other_obj_is_ship;
-	float shp_diff_dmg_scale = 1.0f;	// Nuke: we will multiply difficulty related damage factors against this, so they can be passed to armor type GetDamage calls.
-	float sub_diff_dmg_scale = 1.0f;	// Nuke
+	float difficulty_scale_factor = 1.0f;
 
 	Assert(ship_obj);	// Goober5000
 	Assert(hitpos);		// Goober5000
@@ -1989,8 +1988,7 @@
 			// Do a little "skill" balancing for the player in single player and coop multiplayer
 			if (ship_obj->flags & OF_PLAYER_SHIP)	{
 				// Nuke - store it in a couple factor and we will apply it where needed
-				shp_diff_dmg_scale *= The_mission.ai_profile->player_damage_scale[Game_skill_level];
-				sub_diff_dmg_scale *= The_mission.ai_profile->player_damage_scale[Game_skill_level];
+				difficulty_scale_factor *= The_mission.ai_profile->player_damage_scale[Game_skill_level];
 			}		
 		}
 	}
@@ -2011,7 +2009,7 @@
 			Assert((beam_get_weapon_info_index(other_obj) >= 0) && (beam_get_weapon_info_index(other_obj) < Num_weapon_types));
 			if (((Weapon_info[beam_get_weapon_info_index(other_obj)].subtype != WP_LASER) || special_check) && (Player_obj != NULL) && (ship_obj == Player_obj))
 			{
-				ship_hit_pain(damage * shp_diff_dmg_scale);
+				ship_hit_pain(damage * difficulty_scale_factor);
 			}	
 		}
 		if (other_obj->type == OBJ_WEAPON)
@@ -2019,7 +2017,7 @@
 			Assert((Weapons[other_obj->instance].weapon_info_index > -1) && (Weapons[other_obj->instance].weapon_info_index < Num_weapon_types));
 			if (((Weapon_info[Weapons[other_obj->instance].weapon_info_index].subtype != WP_LASER) || special_check) && (Player_obj != NULL) && (ship_obj == Player_obj))
 			{
-				ship_hit_pain(damage * shp_diff_dmg_scale);
+				ship_hit_pain(damage * difficulty_scale_factor);
 			}
 		}
 	}	// read violation sanity check
@@ -2032,7 +2030,7 @@
 
 	//	if ship is already dying, shorten deathroll.
 	if (shipp->flags & SF_DYING) {
-		shiphit_hit_after_death(ship_obj, (damage * shp_diff_dmg_scale));
+		shiphit_hit_after_death(ship_obj, (damage * difficulty_scale_factor));
 		return;
 	}
 	
@@ -2079,21 +2077,21 @@
 			}
 			
 			float pre_shield = damage; // Nuke: dont use the difficulty scaling in here, since its also appled in Armor_type.GetDamage. dont want it to apply twice
-			float pre_shield_ss = (subsystem_damage * sub_diff_dmg_scale); // Nuke - same here
+			float pre_shield_ss = subsystem_damage; // Nuke - same here
 
 			if (piercing_pct > 0.0f) {
 				damage = pre_shield * (1.0f - piercing_pct);
 			}
 
 			// Nuke: apply pre_shield difficulty scaling here, since it was meant to be applied through damage
-			pre_shield *= shp_diff_dmg_scale;
+			pre_shield *= difficulty_scale_factor;
 
 			if(shipp->shield_armor_type_idx != -1)
 			{
 				// Nuke: this call will decide when to use the damage factor, but it will get used, unless the modder is dumb (like setting +Difficulty Scale Type: to 'manual' and not manually applying it in their calculations)
-				damage = Armor_types[shipp->shield_armor_type_idx].GetDamage(damage, dmg_type_idx, shp_diff_dmg_scale);
+				damage = Armor_types[shipp->shield_armor_type_idx].GetDamage(damage, dmg_type_idx, difficulty_scale_factor);
 			} else { // Nuke: if that didn't get called, difficulty would not be applied to damage so apply it here
-				damage *= shp_diff_dmg_scale;
+				damage *= difficulty_scale_factor;
 			}
 
 			damage = apply_damage_to_shield(ship_obj, quadrant, damage);
@@ -2122,7 +2120,7 @@
 	if ( (damage > 0.0f) || (subsystem_damage > 0.0f) )	{
 		int	weapon_info_index;
 		int armor_flags = 0;		
-		float pre_subsys = (subsystem_damage * sub_diff_dmg_scale); // Nuke: should be the last time we need to do this in this function
+		float pre_subsys = subsystem_damage; // Nuke: should be the last time we need to do this in this function
 		bool apply_hull_armor = true;
 		bool apply_diff_scale = true;
 
@@ -2159,13 +2157,13 @@
 			
 			if(shipp->armor_type_idx != -1)
 			{
-				damage = Armor_types[shipp->armor_type_idx].GetDamage(damage, dmg_type_idx, shp_diff_dmg_scale);
+				damage = Armor_types[shipp->armor_type_idx].GetDamage(damage, dmg_type_idx, difficulty_scale_factor);
 				apply_diff_scale = false;
 			}
 		}
 		// Nuke: this is done incase difficulty scaling is not applied into damage by getDamage() above
 		if (apply_diff_scale) {
-			damage *= shp_diff_dmg_scale; // Nuke: we can finally stop doing this now
+			damage *= difficulty_scale_factor; // Nuke: we can finally stop doing this now
 		}
 
 		// continue with damage?
