This is much appreciated. I had the prior group version working just fine, but a few errors im still tracking down while doing this.
act.other.c:362: error: expected identifier or '(' before 'if'
act.other.c:369: error: expected identifier or '(' before 'else'
act.other.c:372: error: expected identifier or '(' before '}' token
Code:
static void display_group_list(struct char_data * ch)
{
  struct group_data * group;
  int count = 0;
  if (group_list->iSize) {
    send_to_char(ch, "#   Group Leader     # of Members    In Zone\r\n"
                     "---------------------------------------------------\r\n");
    while ((group = (struct group_data *) simple_list(group_list)) != NULL)
       if (IS_SET(GROUP_FLAGS(group), GROUP_NPC))
         continue;
       if (GROUP_LEADER(group) && !IS_SET(GROUP_FLAGS(group), GROUP_ANON))
         send_to_char(ch, "%-2d) %s%-12s     %-2d              %s%s\r\n",
           ++count,
           IS_SET(GROUP_FLAGS(group), GROUP_OPEN) ? CCGRN(ch, C_NRM) : CCRED(ch, C_NRM),
           GET_NAME(GROUP_LEADER(group)), group->members->iSize, zone_table[world[IN_ROOM(G$
           CCNRM(ch, C_NRM));
       else
        send_to_char(ch, "%-2d) Hidden\r\n", ++count);
            }
        }
        if (count)
    send_to_char(ch, "\r\n"
                     "%sSeeking Members%s\r\n"
                     "%sClosed%s\r\n",
                     CCGRN(ch, C_NRM), CCNRM(ch, C_NRM),
                     CCRED(ch, C_NRM), CCNRM(ch, C_NRM));
    else
      send_to_char(ch, "\r\n"
               "Currently no groups formed.\r\n");
}
 
Also, weird thing is , the snip you have for spells.c , I don't seem to have
load_mtrigger(undead);
add_follower(undead, ch);
or
for (tobj = obj->contains; tobj; tobj = next_obj) {
next_obj = tobj->next_content;
obj_from_obj(tobj);
I don't recall deleting any portion of that code. My spells.c is only 451 lines..
Is this something maybe you have added to the source you are working on?