On Sun, Jun 09, 2002 at 07:23:32AM -0300, Alex Mann wrote: >However, when ever I try to call GET_RACE(ch), such as in do_score using %s >call, I get the following compiler error: > >warning; format argument is not a pointer (arg 4) > >#define RACE_UNDEFINED -1 >#define RACE_HUMAN 0 >#define RACE_ELF 1 >#define RACE_TROLL 2 >#define RACE_DWARF 3 >#define RACE_HALFLING 4 > >#define NUM_RACES 5 > >So it looks like somewhere GET_RACE got set to be an integer and not a char. >But i can't seem to find it anywhere in the code, it all looks fine. No, it's an int to start with. GET_RACE() is probably defined as ((ch)->player.race) which is stored as an int. To print out the race names, you need an array like char *race_name[]={"human", "elf", "troll", "dwarf", "halfling"}; then in the sprintf you'd use race_names[GET_RACE(ch)]. Make sure to check for RACE_UNDEFINED before calling it or you'll blow the place up again. Either that or start them at 0 instead of -1, and add "Undefined" as the first element of the array. -me -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | | Newbie List: http://groups.yahoo.com/group/circle-newbies/ | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 06/25/03 PDT