I mean, technically, being able to read beyond a data table's size is
bad practice, but there's so many cases of this that it's not worth
mentioning.
For most of these cases, at least, it's safe to assume the index won't
ever get high enough to surpass such a table's length, because it's
either hardcoded or decided by the game without the use of
uncontrollable data. As such, they don't expose any actual bugs.
Some of the TX_ commands didn't use the TX_ prefix for their
constants, and the label names were inconsistent. I've chosen to adopt
the `TextCommand_` prefix as opposed to `Text_`, as it has a clear
difference in namespace compared to the possibly-used `Text_` namespace
for actual dialogue text.
Some character codes were erroneously named after their text command
counterparts. This has caused a lot of confusion with naming their
functions and with other things.
I've also removed the `dict2` macro and expanded the `dict` macro. This
really isn't something we should be doing for macros but I can't deny it
looks a lot neater than repeated code.