New Problem...:(

Posted by Sephiroth on Wed 26 Feb 2003 07:47 AM — 3 posts, 16,690 views.

#0
Ok, here it goes...I tried adding a grant command into my MUD, here is the error I get when I do a make:

gcc -c -Wall -O -g -Dunix -DOLD_RAND -DNOCRYPT act_com
In file included from act_comm.c:38:
merc.h:1459: parse error before "GRANT_DATA"
merc.h:1459: warning: no semicolon at end of struct or u
merc.h:1485: parse error before '}' token
act_comm.c: In function `do_delete':
act_comm.c:59: dereferencing pointer to incomplete type
act_comm.c:64: dereferencing pointer to incomplete type
act_comm.c:88: dereferencing pointer to incomplete type
act_comm.c: In function `do_replay':
act_comm.c:266: dereferencing pointer to incomplete type
act_comm.c:272: dereferencing pointer to incomplete type
act_comm.c:273: dereferencing pointer to incomplete type
act_comm.c: In function `do_tell':
act_comm.c:868: dereferencing pointer to incomplete type
act_comm.c:897: dereferencing pointer to incomplete type
act_comm.c: In function `do_reply':
act_comm.c:933: dereferencing pointer to incomplete type
act_comm.c:969: dereferencing pointer to incomplete type
make: *** [act_comm.o] Error 1

And here's the code from merc.h:

struct pc_data
{
PC_DATA * next;
BUFFER * buffer;
GRANT_DATA * granted;
bool valid;
char * pwd;
char * bamfin;
char * bamfout;
char * title;
time_t last_note;
time_t last_idea;
time_t last_penalty;
time_t last_news;
time_t last_changes;
sh_int perm_hit;
sh_int perm_mana;
sh_int perm_move;
sh_int true_sex;
int last_level;
sh_int condition [4];
sh_int learned [MAX_SKILL];
bool group_known [MAX_GROUP];
sh_int points;
bool confirm_delete;
char * alias[MAX_ALIAS];
char * alias_sub[MAX_ALIAS];
bool is_granted_name args( ( CHAR_DATA *ch, char *argument ) );
bool is_granted args( ( CHAR_DATA *ch, DO_FUN *do_fun ) );
bool is_exact_name args( ( char *str, char *namelist ) );
}

Any help would be greatly appreciated...
USA #1
It acts like there an issue with the code behind the grant_data field rather than the pc_data construct in merc.h
Australia #2
Meerclar is right, and also.. assuming that's straight C, you can't define functions within a struct. "no semicolon at end of struct or u" was probably meant to be "no semicolon at end of struct or union", and looking at your pc_data struct, I see you don't have a semicolon at the end of it, so you probably missed the one on the grant_data too.