Thanks for doing further testing. I had kind of forgotten about this, so thanks for bringing it back up. I'll dig into it as soon as I'm done with the thing I'm currently working on.
The type not having a numeric value is fine. The way enums work in C and C++ is that if they have a number assigned, that's their number, but if they don't then it increments by 1 for each item.
There are holes in the sequence (no 1, 6, 9, 10, 12, 13) so the early items have to have the numbers specified in order to skip the holes, but after that, they increment normally without specifying anything. So MT_Debug is 16, MT_Info is 17, etc.
Code:
enum MessageType
{
MT_Guild = 0,
MT_Group = 2,
MT_Shout = 3,
MT_Auction = 4,
MT_OOC = 5,
MT_Tell = 7,
MT_Say = 8,
MT_GMSay = 11,
MT_GMTell = 14,
MT_Raid = 15,
MT_Debug,
MT_Info,
MT_Warning,
MT_General,
MT_Motd,
MT_System,
...