On Sat, 8 Jun 1996, Rob Stewart wrote:
> if (IS_SET(bitvector, FIND_CHAR_ROOM)) {
> if ((*tar_ch = get_char_room_vis(ch, name))) {
> return (FIND_CHAR_ROOM);
> }
> }
You can't assign a integer to a variable cast as a char_data. What you
could d is something like:
struct char_data * get_class_room (struct char_data *ch, int class)
{
struct char_data * tch;
for (tch = world[ch->in_room].people; tch; tch = tch->next_in_room)
if (GET_CLASS(tch) == class)
return (tch);
return NULL;
}
...make FIND_CLASS_WARRIOR, FIND_CLASS_THIEF, FIND_CLASS_MAGE, etc. then
in generic_find do things like:
if (IS_SET(bitvector, FIND_CLASS_WARRIOR)) {
if ((*tar_ch = get_class_room(ch, CLASS_WARRIOR))) {
return (FIND_CLASS_WARRIOR);
}
}
Instead of those last two steps, you can keep the get_class_room()
function and then, in generic_find(), do:
if (IS_SET(bitvector, FIND_CLASS)) {
if ((*tar_ch = get_class_room(ch, atoi(name)))) {
return (FIND_CLASS);
}
}
Then pass the class number as a string (eg., "0"==CLASS_MAGIC_USER).
That's just two ways to do it. Also, the get_class_room() function
doesn't check if 'ch' can see the selected character. You can easily
modify that function or make a seperate function that does a simple little
CAN_SEE(ch, tch)... No biggy.
Good luck.
-dak
This archive was generated by hypermail 2b30 : 12/18/00 PST