sorry for the second post, but to be specific, i replaced the entire exp list switch(chclass), and used the formula defining the double's at the top of level_exp. I included the same lib files, "stdio.h", "stdlib.h", "math.h" because i thought the pow function was contained in one of them, sorry, could be totally wrong on that. but ohwell. I get these errors when compiling though, gcc -g -O2 -Wall -c -o class.o class.c class.c:813: parse error before string constant class.c:813: warning: type defaults to `int' in declaration of `basic_mud_log' class.c:813: conflicting types for `basic_mud_log' utils.h:23: previous declaration of `basic_mud_log' class.c:813: warning: data definition has no type or storage class make[1]: *** [class.o] Error 1 make[1]: Leaving directory `/home/surgeon/surgeon/circle30bpl17/src' make: *** [all] Error 2 ------ this is what i made the code look like --- *class.c* ( top of level_exp) int level_exp(int chclass, int level) { double mod, powr; int surg; -after: if (level > LVL_IMMORT) { return EXP_MAX - ((LVL_IMPL - level) * 1000); } i got the foruma switch. switch (chclass) { case CLASS_CLERIC: mod = 22.479; powr = 3.9437; break; case CLASS_MAGIC_USER: mod = 27.672; powr = 3.9055; break; case CLASS_THIEF: mod = 13.332; powr = 3.0685; break; case CLASS_WARRIOR: mod = 26.689; powr = 3.9360; break; default: abort(); } surg = (mod * pow(level, powr)); return surg; } i tried using the surg int variable thinking if it was a float, and or double, the int would accept it, and therefor pass it back to basic_mud_log as an int. wrong though, sorry... for the length. any help would be appreciated. surgeon +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT