Allow modifying dead units in more event handlers

Namely attacker_hits, attacker_misses, defender_hits and defender_misses.
This commit is contained in:
Jyrki Vesterinen 2018-05-16 05:12:32 +03:00
parent afb13209b7
commit b0c1382693

View file

@ -1199,10 +1199,16 @@ bool attack::perform_hit(bool attacker_turn, statistics::attack_context& stats)
OOS_error_ = true;
}
if(dies) {
// Will be reset in unit_killed() later.
unit::dying_unit_loc = defender.loc_;
}
if(hits) {
try {
fire_event(attacker_turn ? "attacker_hits" : "defender_hits");
} catch(const attack_end_exception&) {
unit::dying_unit_loc = map_location::null_location();
refresh_bc();
return false;
}
@ -1210,6 +1216,7 @@ bool attack::perform_hit(bool attacker_turn, statistics::attack_context& stats)
try {
fire_event(attacker_turn ? "attacker_misses" : "defender_misses");
} catch(const attack_end_exception&) {
unit::dying_unit_loc = map_location::null_location();
refresh_bc();
return false;
}