Harden command zone tax counter handling and more clean up

- Initialize commandZoneGraphicsItem to nullptr so the pervasive null
    checks have defined behavior before initializeZones() runs
  - Remove unused getTaxCounterWidgets()
  - Enforce the "reset tax to 0 before deactivating" invariant server-side
    in cmdSetCounterActive, not just in the UI
  - Hide tax increment/decrement menu actions at their bounds (0 and
    MAX_COUNTER_VALUE) to avoid sending no-op commands
  - Drop redundant/inconsistent toggle labels from CommandZoneMenu::
    retranslateUi(); updateTaxCounterActionStates() owns them
  - Add default=-1 to Event_SetCounterActive.counter_id for parity with
    Command_SetCounterActive
This commit is contained in:
DawnFire42 2026-06-16 11:00:21 -04:00
parent 4a4c767cae
commit 754b31cc29
No known key found for this signature in database
GPG key ID: 24BB855EE2911B33
5 changed files with 13 additions and 25 deletions

View file

@ -591,6 +591,11 @@ Response::ResponseCode Server_Player::cmdSetCounterActive(const Command_SetCount
return Response::RespNameNotFound;
}
// Prevent disabling a counter with tax accumulated; player must reset to 0 first
if (!cmd.active() && c->getCount() != 0) {
return Response::RespContextError;
}
bool didChange = c->setActive(cmd.active());
if (didChange) {