Heh, it's been a while since I've been here

.
Can anyone explain why a code piece such as the following would cause the compiler to throw a tag mismatch error? For whatever reason, I keep receiving such warnings when using an enum to define a cell location in an array pointing to a Cell Array.
Code:
#include <amxmodx>
#include <cellarray>
enum MOTD_FIELDS
{
NAME = 0,
COMMAND,
PATH,
PAGES
//CATEGORY
}
new Array:messageProperties[MOTD_FIELDS]
public cmdSay(id,mode,args[])
{
new comparedString[MAX_STRING_LENGTH], cellArraySize = ArraySize(messageProperties[NAME])
replace_all(args,strlen(args)," ","")
for (new ctr = 0; ctr < cellArraySize; ctr++)
{
ArrayGetString(messageProperties[COMMAND],ctr,comparedString,MAX_STRING_LENGTH-1)
if(equali(args,comparedString))
{
menu_cancel(id)
preparePageSelectionMenu(id, ctr)
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
The lines containing ArraySize and ArrayGetString functions throw warnings. However, doing something such as the following within a function works and compiles without warning/error.
Code:
messageProperties[NAME] = ArrayCreate(MAX_STRING_LENGTH, 1)
messageProperties[COMMAND] = ArrayCreate(MAX_STRING_LENGTH, 1)
messageProperties[PATH] = ArrayCreate(MAX_STRING_LENGTH, 1)
messageProperties[PAGES] = ArrayCreate(1, 1)
Am I not understanding how enums work, does Cell Array merely not like enums, or does the compiler simply hate me.
__________________