Hi all,
I am running circle 3.1 with dg_scripts pl9, ascii pfiles, hedit, olc
2.01, and a few other goodies. My problem is this. I added aedit to my
base and after a few problems everything worked well. Then I noticed that
all the socials were taking presidence over the main commands. I went back
into interpreter.c to see if I had indeed make a few mistakes, but there
was no problems. This is an example:
I type l for look and I receive the laugh social. In interpreter.c I
have the sort_as column set to l to give look a higher priority but this
does nothing for me. I will include the create command list in this post
for someone to point out what i am missing. I am sure it must be a circle
3.1 change that is doing this to me. As i tested another package, and that
worked. Then I tested those changes into my code, And nothing changed for
me. Any help would be much appreciated.
void create_command_list(void)
{
char buf[MAX_INPUT_LENGTH];
int i, j, k;
struct social_messg temp;
extern struct command_info cmd_info[];
/* free up old command list */
if (complete_cmd_info) free(complete_cmd_info);
complete_cmd_info = NULL;
/* re check the sort on the socials */
for (j = 0; j < top_of_socialt; j++) {
k = j;
for (i = j + 1; i <= top_of_socialt; i++)
if (str_cmp(soc_mess_list[i].sort_as, soc_mess_list[k].sort_as) < 0)
k = i;
if (j != k) {
temp = soc_mess_list[j];
soc_mess_list[j] = soc_mess_list[k];
soc_mess_list[k] = temp;
}
}
/* count the commands in the command list */
i = 0;
while(*cmd_info[i].command != '\n') i++;
i++;
CREATE(complete_cmd_info, struct command_info, top_of_socialt + i + 2);
/* this loop sorts the socials and commands together into one big list */
i = 0;
j = 0;
k = 0;
while ((*cmd_info[i].command != '\n') || (j <= top_of_socialt)) {
if ((i < NUM_RESERVED_CMDS) || (j > top_of_socialt) ||
(str_cmp(cmd_info[i].sort_as, soc_mess_list[j].sort_as) < 1))
complete_cmd_info[k++] = cmd_info[i++];
else {
soc_mess_list[j].act_nr = k;
complete_cmd_info[k].command = soc_mess_list[j].command;
complete_cmd_info[k].sort_as = soc_mess_list[j].sort_as;
complete_cmd_info[k].minimum_position = soc_mess_list
[j].min_char_position;
complete_cmd_info[k].command_pointer = do_action;
complete_cmd_info[k].minimum_level = soc_mess_list
[j++].min_level_char;
complete_cmd_info[k++].subcmd = 0;
}
}
complete_cmd_info[k].command = strdup("\n");
complete_cmd_info[k].sort_as = strdup("zzzzzzz");
complete_cmd_info[k].minimum_position = 0;
complete_cmd_info[k].command_pointer = 0;
complete_cmd_info[k].minimum_level = 0;
complete_cmd_info[k].subcmd = 0;
sprintf(buf, "Command info rebuilt, %d total commands.", k);
log(buf);
}
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
| Newbie List: http://groups.yahoo.com/group/circle-newbies/ |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/26/03 PDT