> merc.h:2611: warning: `struct flag_type' declared inside parameter list
> merc.h:2611: warning: its scope is only this definition or declaration,
which is
>  probably not what you want.

This is the problem - in merc.h your definition of str_flag_string is using
the errornous
definition you have made in these lines - in all other modules, it is using
another flag_type
from somewhere else, and therefore... (probably flag_type is defined in
merc.h further down
the file)

> bitsys.c:86: conflicting types for `str_flag_string'
> merc.h:2611: previous declaration of `str_flag_string'

> bitsys.c:344: warning: passing arg 5 of `do_flag_norm' makes pointer from
> integer without a cast
>
>    do_flag_norm( ch, victim, argument, type, victim->affected_by,
> affect_flags );
> .......
>
> Here's the function header for do_flag norm:
> void do_flag_norm( CHAR_DATA *ch, CHAR_DATA *victim, char *argument,
>      char type, long *flag, const struct flag_type *flag_table )
>
> relatedly, here's how victim->affected_by is laid out in merc.h:
>     FLAG              affected_by;
> and FLAG itself in merc.h is defined as:
>     typedef int  FLAG;

long *flag in one place, int affected_by in the other...

> act_wiz.c: In function `do_mstat':
> act_wiz.c:2464: warning: passing arg 1 of `STR_IS_ZERO' makes pointer from
> integer without a cast
> 2464:    if ( !STR_IS_ZERO(victim->affected_by, AFF_FLAGS) )
>
> In merc.h, STR_IS_ZERO is defined as:
> bool STR_IS_ZERO args( ( FLAG *var, int size ) );

same problem here - your function requires a pointer to a FLAG (integer),
and you call
it with an integer.

> act_wiz.c:2467: warning: passing arg 1 of `affect_str_bit_name' makes
pointer
> from integer without a cast
> 2467:   affect_str_bit_name(victim->affected_by));

and again ...

/Reg.



Reply via email to