There's a third option: indexing, which would be a faster (and cleaner IMHO) approach.
You can store a string in an entity's EntityName and use this to either (a) index an object for the child entity which contains a pointer to the parent object (i.e. enemy) or (b) index the parent object directly.
The string can work as an index either by being a Handle() to the object or - if you keep all your objects in global arrays like Frank Taylor - the array index to find the object (aka its "ID".)
I think the simplest solution is to set the EntityName of all the entities belonging to an enemy to the Handle() of that enemy object; you only need to call Object() on the EntityName of the picked entity to get the correct enemy.
You can store a string in an entity's EntityName and use this to either (a) index an object for the child entity which contains a pointer to the parent object (i.e. enemy) or (b) index the parent object directly.
The string can work as an index either by being a Handle() to the object or - if you keep all your objects in global arrays like Frank Taylor - the array index to find the object (aka its "ID".)
I think the simplest solution is to set the EntityName of all the entities belonging to an enemy to the Handle() of that enemy object; you only need to call Object() on the EntityName of the picked entity to get the correct enemy.