Valgrind passes. Fixed a bug in combat.

This commit is contained in:
Zed A. Shaw 2026-04-04 16:54:28 -04:00
parent 55af06821c
commit 568171c4a2
6 changed files with 18 additions and 21 deletions

View file

@ -181,22 +181,10 @@ namespace gui {
}
void FSM::ATTACKING(Event ev, std::any data) {
using enum Event;
switch(ev) {
case TICK: {
dbc::log("!!!!!! FIX System::combat(0) doesn't use any weapons, only first");
$systems.runCombat(0);
run_systems();
state(State::IDLE);
} break;
case ATTACK: {
int attack_id = std::any_cast<int>(data);
$systems.runCombat(attack_id);
run_systems();
} break;
default:
dbc::log($F("In ATTACKING state, unhandled event {}", (int)ev));
state(State::IDLE);
if(!$main_ui.hands_playing()) {
// run combat one more time
$systems.runCombat(0);
state(State::IDLE);
}
}
@ -254,13 +242,15 @@ namespace gui {
$main_ui.plan_rotate(1, DEFAULT_ROTATE);
state(State::ROTATING);
break;
case ATTACK:
case ATTACK: {
$main_ui.play_hands();
$main_ui.dirty();
sound::play("Sword_Hit_1");
$systems.runCombat(0);
run_systems();
$status_ui.update();
state(State::ATTACKING);
break;
} break;
case CLOSE:
dbc::log("Nothing to close.");
break;