Ok, so I still seem to have some problems with my spoken language code. Any time you try to pass an invalid language type, it chokes is_abbrev and core dumps. ACMD(do_languages) { int i, found = FALSE; char arg[MAX_INPUT_LENGTH]; one_argument(argument, arg); if (!*arg) { list_languages(ch); return; } else { for (i = MIN_LANGUAGES; i < MAX_SKILLS; i++) { if (is_abbrev(arg, languages[i-MIN_LANGUAGES]) && GET_SKILL(ch,i) > 60) { SPEAKING(ch) = i; send_to_char(ch, "You now speak %s.\r\n", languages[i- MIN_LANGUAGES]); found = TRUE; break; } } } if (!found) { send_to_char(ch, "You do not know of any such language.\r\n"); return; } } From gdb: #0 is_abbrev (arg1=0xbffff01c "pizza", arg2=0x67 <Address 0x67 out of bounds>) at interpreter.c:1159 #1 0x08049b1e in do_languages (ch=0x8176658, argument=0xbffff311 " pizza", cmd=262, subcmd=0) at act.comm.c:94 #2 0x0808af98 in command_interpreter (ch=0x8176658, argument=0xbffff30c "speak pizza") at interpreter.c:756 Obviously, pizza is not a valid spoken language. Am I miss using is_abbrev, or should I be trying to use something else like search_block? Any guideance here would be most appreaciated! -- +---------------------------------------------------------------+ | 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/25/03 PDT