On Thu, 29 Nov 2001, David Cole wrote: > Hello list, > Trying to add a few things here to the prompt, mainly what i'm working on > atm is making the tank name and condition not show when the MOB/PC being > faught is mortally wounded. But i'm getting some errors in msvc++ 6.0, can > anyone help? > > Here's what I'm doing, bit sloppy, anyone got a better meathod? > > if (FIGHTING(d->character) > && GET_POS(FIGHTING(d->character, POS_MORTALLYW))) { /* WARRNING > C4002 */ > sprintf(prompt + strlen(prompt), ""); > } else { > if (PRF_FLAGGED(d->character, PRF_TANKNAME) && FIGHTING(d->character)) { > if (CAN_SEE(d->character, FIGHTING(d->character))) { > sprintf(prompt + strlen(prompt), " T: %s ", > GET_NAME(FIGHTING(FIGHTING(d->character)))); > } else > sprintf(prompt + strlen(prompt), " T: Someone "); > } > then the condition stuff, bla bla bla > } > Try this: if (GET_POS(FIGHTING(d->character)) == POS_MORTALLYW) > And heres the error: > C:\circle30bpl17\src\prompt.c(239) : warning C4002: too many actual > parameters for macro 'FIGHTING' > This warning is because FIGHTING takes one parameter (struct char_data *), and you have two (d->character, POS_MORTALLYW). > I've tryed GET_POS(FIGHTING(d->character) = POS_MORTALLYW) and it returns > this: > > C:\circle30bpl17\src\prompt.c(240) : warning C4047: '=' : 'struct char_data > *' differs in levels of indirection from 'const int ' That warning is because of the missing ) and the = inside of the macro call. Basically making the macro do an assignment before evaluating the contents of the ()s. -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST