static MessageEnumBase SearchMessageDown(Message p, string[] name)
{
if (name.Length == 1) {
foreach (MessageEnum me in p.Enums) {
if (me.ProtoName == name [0])
return me;
}
}
foreach (Message sub in p.Messages) {
if (sub.ProtoName == name [0]) {
if (name.Length == 1)
return sub;
string[] subName = new string[name.Length - 1];
Array.Copy (name, 1, subName, 0, subName.Length);
return SearchMessageDown (sub, subName);
}
}
return null;
}