Alright, I have been working on a piece of code for awhile, but I have got stuck on one macro that seems to cause a whole bunch of errors. I have, IMHO defined the macro correctly. Any help rendered would be greatly appreciated. Thank you in advance. The macro is: OLC_MPROGL(d) The define is: #define OLC_MOBPRGL(d) ((d)->olc->mprogl) The struct is: struct mob_prog_data *mprogl; The errors I get are: medit.c: In function `medit_setup_new': medit.c:139: invalid lvalue in assignment medit.c: In function `medit_setup_existing': medit.c:158: invalid lvalue in assignment medit.c:159: warning: assignment makes pointer from integer without a cast medit.c:161: invalid type argument of `->' medit.c:162: invalid type argument of `->' medit.c:163: invalid type argument of `->' medit.c:165: invalid type argument of `->' medit.c:166: invalid type argument of `->' medit.c:169: invalid lvalue in assignment medit.c:170: warning: assignment makes pointer from integer without a cast medit.c: In function `medit_save_internally': medit.c:341: warning: assignment makes pointer from integer without a cast medit.c:343: invalid type argument of `->' medit.c:346: invalid lvalue in assignment medit.c: In function `medit_disp_mprog': medit.c:637: warning: initialization makes pointer from integer without a cast medit.c: In function `medit_parse': medit.c:1080: warning: assignment makes pointer from integer without a cast medit.c:1085: invalid lvalue in assignment medit.c:1091: warning: assignment makes pointer from integer without a cast medit.c:1112: warning: assignment makes pointer from integer without a cast medit.c:1115: warning: comparison between pointer and integer medit.c:1115: invalid lvalue in assignment medit.c:1115: warning: assignment makes pointer from integer without a cast What am I doing wrong? What does the above mean? Here's the corresponding lines of code: <SNIP LINES 138-141> GET_CHA(mob) = 11; OLC_MPROGL(d) = NULL; OLC_MPROG(d) = NULL; OLC_MOB(d) = mob; <LINES 155-172> CREATE(mob, struct char_data, 1); copy_mobile(mob, mob_proto + rmob_num); if (GET_MPROG(mob)) CREATE(OLC_MPROGL(d), MPROG_DATA, 1); head = OLC_MPROGL(d); for (temp = GET_MPROG(mob); temp;temp = temp->next) { OLC_MPROGL(d)->type = temp->type; OLC_MPROGL(d)->arglist = str_dup(temp->arglist); OLC_MPROGL(d)->comlist = str_dup(temp->comlist); if (temp->next) { CREATE(OLC_MPROGL(d)->next, MPROG_DATA, 1); OLC_MPROGL(d) = OLC_MPROGL(d)->next; } } OLC_MPROGL(d) = head; OLC_MPROG(d) = OLC_MPROGL(d); OLC_MOB(d) = mob; medit_disp_menu(d); <LINES 340-347> /* ADD this bit to the end of medit_save_internally for MOB_PROGS*/ GET_MPROG(OLC_MOB(d)) = OLC_MPROGL(d); if (OLC_MPROGL(d)) GET_MPROG_TYPE(OLC_MOB(d)) = OLC_MPROGL(d)->type; else GET_MPROG_TYPE(OLC_MOB(d)) = 0; OLC_MPROGL(d) = NULL; } <LINES 636-637> void medit_disp_mprog(struct descriptor_data *d) { struct mob_prog_data *mprog = OLC_MPROGL(d); <LINES 1072-1118> case MEDIT_MPROG: { i=atoi(arg); if (i == 0) medit_disp_menu(d); else if (i == d->edit_number2) { struct mob_prog_data *temp; CREATE(temp, struct mob_prog_data, 1); temp->next = OLC_MPROGL(d); temp->type = -1; temp->arglist = NULL; temp->comlist = NULL; OLC_MPROG(d) = temp; OLC_MPROGL(d) = temp; OLC_MODE(d) = MEDIT_CHANGE_MPROG; medit_change_mprog (d); } else if (i < d->edit_number2) { struct mob_prog_data *temp; int x=1; for (temp = OLC_MPROGL(d);temp && x < i;temp=temp->next) x++; OLC_MPROG(d) = temp; OLC_MODE(d) = MEDIT_CHANGE_MPROG; medit_change_mprog (d); } else if (i == d->edit_number2+1) { send_to_char ("Which mob prog do you want to purge? ", d->character); OLC_MODE(d) = MEDIT_PURGE_MPROG; } else medit_disp_menu(d); } return; case MEDIT_PURGE_MPROG: { struct mob_prog_data *temp; int x=1; i=atoi(arg); if (i <= 0 || i >= d->edit_number2) { medit_disp_mprog (d); return; } for (temp = OLC_MPROGL(d);temp && x < i;temp=temp->next) x++; OLC_MPROG(d) = temp; REMOVE_FROM_LIST(OLC_MPROG(d), OLC_MPROGL(d), next) free(OLC_MPROG(d)->arglist); free(OLC_MPROG(d)->comlist); free(OLC_MPROG(d)); </SNIP> +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST