Hi.
I posted this problem before, and I got one answer (w/o going back to my
saaved mail to see, Thank You whomever answered me the first time), but my
error still persists.
I added one class (brute) to stock circle3.0 patch 11 following the
guidelines in the class.doc available in the circle ftp site
(ftp.circlemud.org/pub/CircleMUD/contrib/doc). It was suggested to me
that I go back and make sure I didn't re-use bit numbers and that
everything was still defined correctly. Didn't find any errors there.
Here is the error I am getting when I compile.
make ../bin/circle
cc -c -g -cckr class.c
(0476) (((((obj)->obj_flags.extra_flags) & ((1 << 17)))) &&
(!(((((ch)->char_specials.saved.act)) & ((1 << 3)))) &&
(((ch)->player.class) == 4 ))))
******** Line 475 of "class.c": [Error #067] Improper use of
"extra_flags", only a funtion reference is valid here.
Stop.
Stop.
Okay, now here is some of the code changes I made to class.c when adding
"brute". I stoped clipping when I hit line 475-ish. If you think the
prob is in one of the other files I had to change (magic.c, constants.c,
shop.h, structs.h, utils.h, shop.c, config.c) just let me know and I'll
either post it or send it to you specicifcally. Anywho, here's the
changes:
const char *pc_class_types[] = {
"Magic User",
"Cleric",
"Thief",
"Warrior",
"Brute",
"\n"
};
/* The menu for choosing a class in interpreter.c: */
const char *class_menu =
"\r\n"
"Select a class:\r\n"
" [C]leric\r\n"
" [T]hief\r\n"
" [W]arrior\r\n"
" [M]agic-user\r\n"
" [B]rute\r\n";
/*
* The code to interpret a class letter -- used in interpreter.c when a
* new character is selecting a class and by 'set class' in act.wizard.c.
*/
int parse_class(char arg)
{
arg = LOWER(arg);
switch (arg) {
case 'm':
return CLASS_MAGIC_USER;
break;
case 'c':
return CLASS_CLERIC;
break;
case 'w':
return CLASS_WARRIOR;
break;
case 't':
return CLASS_THIEF;
break;
case 'b':
return CLASS_BRUTE;
break;
default:
return CLASS_UNDEFINED;
break;
}
}
/*
* bitvectors (i.e., powers of two) for each class, mainly for use in
* do_who and do_users. Add new classes at the end so that all classes
* use sequential powers of two (1 << 0, 1 << 1, 1 << 2, 1 << 3, 1 << 4,
* 1 << 5, etc.
*/
------------------
long find_class_bitvector(char arg)
{
arg = LOWER(arg);
switch (arg) {
case 'm':
return (1 << 0);
break;
case 'c':
return (1 << 1);
break;
case 't':
return (1 << 2);
break;
case 'w':
return (1 << 3);
break;
case 'b':
return (1 << 4);
break;
default:
return 0;
break;
}
}
____________________
case CLASS_BRUTE:
add_hp += number(11, 16);
add_mana = number(GET_LEVEL(ch), (int) (1.5 * GET_LEVEL(ch)));
add_mana = MIN(add_mana, 10);
add_move = number(1, 3);
break;
}
--------
int invalid_class(struct char_data *ch, struct obj_data *obj) {
if ((IS_OBJ_STAT(obj, ITEM_ANTI_MAGIC_USER) && IS_MAGIC_USER(ch)) ||
(IS_OBJ_STAT(obj, ITEM_ANTI_CLERIC) && IS_CLERIC(ch)) ||
(IS_OBJ_STAT(obj, ITEM_ANTI_WARRIOR) && IS_WARRIOR(ch)) ||
(IS_OBJ_STAT(obj, ITEM_ANTI_THIEF) && IS_THIEF(ch))
(IS_OBJ_STAT(obj, ITEM_ANTI_BRUTE) && IS_BRUTE(ch)))
return 1;
else
return 0;
}
Any help would be extremely appreciated.
TIA
Salvatore
of as-of-yet not up
GuardianMUD
+-----------------------------------------------------------+
| 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