On Fri, 8 Jan 1999, Julian Buckley wrote: >struct char_data *get_mob_in_list_num(int num, struct char_data * list) >{ > struct char_data *i; > > for (i = character_list; i; i = i->next) > if (GET_MOB_RNUM(i) == num) > return i; > > return NULL; >} That is _exactly_ the same as handler.c:get_char_num(), minus unused 'list' parameter. Perhaps you meant to use it for something? :) >/* Extract an mobile from the world */ >void extract_mob(struct char_data * mob) >{ > struct char_data *temp; >// char_from_room(mob); > REMOVE_FROM_LIST(mob, character_list, next); > if (GET_MOB_RNUM(mob) >= 0) > (mob_index[GET_MOB_RNUM(mob)].number)--; > if (SCRIPT(mob)) > extract_script(SCRIPT(mob)); > free_char(mob); >} You should use extract_char(), that's what it is there for. Make sure your 'R' isn't removing the mob from the room itself. >What I need to know is, does this look ok and should it (is it?) working >as intended? On the mud side, it's doing it's job, but I think I've >overlooked something...anyone? I also tried using the get_char_num >function, but I don't know if I can change this: > if ((mob = get_mob_in_list_num(ZCMD.arg2, world[ZCMD.arg1].contents)) >!= NULL) { >to this: > if ((mob = get_char_num(ZCMD.arg2)) != NULL) { #define get_char_num(x) get_mob_in_list_num((x), character_list) Then use your function (when you fix it to use the 2nd parameter). -- George Greer greerga@circlemud.org http://mouse.van.ml.org/ +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST