The _damageTarget field is wonky. In most places, such as in
giveCharDamage, it's treated like an enum. But in the if opcode
logic (cmdIf), it's definitely treated a character index
This also refactors out the use of _mainList, which separately draws
the icons. Since the data needed is already added to the _buttons
array, I could dispense with _mainList and draw the buttons directly.