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 make things cleaner for reading in 16 and 32 bit parameters
in different opcodes. Also, it solves a crash in the give/take
opcode where the third mode/value pair isn't used for all sub-modes,
so the code was previously reading beyond the end of the parameters