Johnny Shelley wrote: > As of latest cvs, gaea and ruggilli are now allowed weapons and armour > respectively. This is a Bad Thing(tm), no? Yep. I've attached the diff that I came up with to fix the problem - I didn't do much of the god code, so perhaps someone else knows why the arch is checked. It appears that this bug in CVS has been around for a very long time - it is possible some other change in some code elsewhere resulted in this bug showing up, but if so, I'm not sure what that would be. -------------- next part -------------- Index: server/gods.c =================================================================== RCS file: /cvsroot/crossfire/crossfire/server/gods.c,v retrieving revision 1.28 diff -c -r1.28 gods.c *** server/gods.c 30 Oct 2001 02:30:20 -0000 1.28 --- server/gods.c 22 Apr 2002 06:02:54 -0000 *************** *** 370,375 **** --- 370,381 ---- check_special_prayers (op, new_god); } + /* op is the player. + * exp_obj is the widsom experience. + * flag is the flag to check against. + * string is the string to print out. + */ + int worship_forbids_use (object *op, object *exp_obj, uint32 flag, char *string) { if(QUERY_FLAG(&op->arch->clone,flag)) *************** *** 402,414 **** */ void update_priest_flag (object *god, object *exp_ob, uint32 flag) { - /* GROS - Corrected here the 'god flowers' bug. */ if(QUERY_FLAG(god,flag)&&!QUERY_FLAG(exp_ob,flag)) SET_FLAG(exp_ob,flag); else if(QUERY_FLAG(exp_ob,flag)&&!QUERY_FLAG(god,flag)) { ! if (!(QUERY_FLAG(&(exp_ob->arch->clone),flag))) ! CLEAR_FLAG(exp_ob,flag); }; } --- 408,428 ---- */ void update_priest_flag (object *god, object *exp_ob, uint32 flag) { if(QUERY_FLAG(god,flag)&&!QUERY_FLAG(exp_ob,flag)) SET_FLAG(exp_ob,flag); else if(QUERY_FLAG(exp_ob,flag)&&!QUERY_FLAG(god,flag)) { ! /* When this is called with the exp_ob set to the player, ! * this check is broken, because most all players arch ! * allow use of weapons. I'm not actually sure why this ! * check is here - I guess if you had a case where the ! * value in the archetype (wisdom) should over ride the restrictions ! * the god places on it, this may make sense. But I don't think ! * there is any case like that. ! */ ! ! /* if (!(QUERY_FLAG(&(exp_ob->arch->clone),flag)))*/ ! CLEAR_FLAG(exp_ob,flag); }; }