On Fri, 21 Jun 1996, Mike Donais. wrote:
> Hi, I am trying to add a choice to my oasis olc, I am usually fairly
> competent at c, but I can't work this one out:
>
> COMPILE WARNING:
> IN: db.c IN FUNCTION: reset_zone:
> db.c:1669: warning: passing arg 1 of `get_char_room' makes pointer from
> integer without a cast
> if ((mob = get_char_room((mob_index[ZCMD.arg2].virtual), ZCMD.arg1)) != NULL) {
> char_from_room(mob);
> extract_char(mob);
That meassage is kind of deceptive. It seems to me that when I get it,
it's usually because I'm using an integer instead of a pointer. If you'd
examine the get_char_room function you'd realize that it's first argument
is prototyped as: 'struct char_data *ch' and you're passing an integer in
it's place (namely, the virtual number). get_char_room just gets a
CHARACTER in a room. If you want to check for a mobile in room X, write
some function like:
struct char_data *find_mob_room(int vnum, int room)
{ struct char_data *tmp;
for (tmp = world[real_room(room)].people; tmp; tmp = tmp->next_in_room)
if (IS_NPC(tmp) && real_mobile(vnum) == tmp->nr)
break;
return (tmp);
}
That *should* work, but no guarantees.
This archive was generated by hypermail 2b30 : 12/18/00 PST