--- deliantra/server/common/player.C 2007/04/29 21:44:34 1.23 +++ deliantra/server/common/player.C 2007/04/30 05:54:13 1.25 @@ -47,38 +47,29 @@ int is_dragon_pl (const object *op) { - if (op != NULL && op->type == PLAYER && op->arch != NULL && op->arch->clone.race != NULL && strcmp (op->arch->clone.race, "dragon") == 0) + if (op + && op->type == PLAYER + && op->arch + && op->arch->clone.race + && !strcmp (op->arch->clone.race, "dragon")) return 1; return 0; } -/* Returns TRUE if the range specified (int r) is legal - that is, - * the character has an item that is equipped for that range type. - * return 0 if there is no item of that range type that is usable. - * This function could probably be simplified, eg, everything - * should index into the ranges[] array. - */ -bool -player::legal_range (rangetype r) const +void +player::set_skill (object *skill, object *ob) { - switch (r) + if (skill->type == SKILL && IS_COMBAT_SKILL (skill->subtype)) { - case range_none: /* "Nothing" is always legal */ - return 1; - - case range_bow: - case range_misc: - case range_magic: /* cast spells */ - case range_golem: - return !!ranges [r]; - - case range_skill: - return !!ob->chosen_skill; + combat_skill = skill; + combat_ob = ob; + } + else + { + ranged_skill = skill; + ranged_ob = ob; } - - /* No match above, must not be valid */ - return 0; } /* @@ -107,7 +98,6 @@ PL_OUT (gen_sp); PL_OUT (gen_grace); PL_OUT (listening); - PL_OUT (shoottype); PL_OUT (bowtype); PL_OUT (petmode); PL_OUT (peaceful); @@ -214,7 +204,6 @@ case KW_oid: f.get (pl, f.get_sint32 ()); break; case KW_password: assign (pl->password , f.get_str ()); break; case KW_title: assign (pl->own_title, f.get_str ()); break; - case KW_shoottype: pl->shoottype = (rangetype) f.get_sint32 (); break; case KW_bowtype: pl->bowtype = (bowtype_t) f.get_sint32 (); break; case KW_petmode: pl->petmode = (petmode_t) f.get_sint32 (); break; case KW_listening: f.get (pl->listening); break;