[0.5 stable] double "weapon stuck" penalty

When I do a melee attack with a cutting or stabbing weapon,
I get the “weapon stuck” penalty twice: once in player::hit_mon() or
player::hit_player(), once in player::melee_special_effects().

— a/melee.cpp
+++ b/melee.cpp
@@ -170,12 +170,6 @@

int pain = 0; // Boost to pain; required for perform_technique

-// Moves lost to getting your weapon stuck

  • int stuck_penalty = roll_stuck_penalty(z, (stab_dam >= cut_dam));
  • if (weapon.is_style())
  • stuck_penalty = 0;
  • moves -= stuck_penalty;

// Pick one or more special attacks
technique_id technique = pick_technique(g, z, NULL, critical_hit, allow_grab);

@@ -298,12 +292,6 @@

int pain = 0; // Boost to pain; required for perform_technique

-// Moves lost to getting your weapon stuck

  • int stuck_penalty = roll_stuck_penalty(NULL, (stab_dam >= cut_dam));
  • if (weapon.is_style())
  • stuck_penalty = 0;
  • moves -= stuck_penalty;

// Pick one or more special attacks
technique_id technique = pick_technique(g, NULL, &p, critical_hit, allow_grab);

This one has already been fixed in the current dev version.