On 10/1/97 6:27 PM, John Evans (evansj@HI-LINE.NET) stated: >int hands_full(struct char_data *ch) >{ > if ((GET_EQ(ch, WEAR_WIELD_1) && GET_EQ(ch, WEAR_HOLD_1 )) || > (GET_EQ(ch, WEAR_WIELD_1) && GET_EQ(ch, WEAR_HOLD_2 )) || > (GET_EQ(ch, WEAR_WIELD_1) && GET_EQ(ch, WEAR_SHIELD )) || > (GET_EQ(ch, WEAR_WIELD_1) && GET_EQ(ch, WEAR_WIELD_2)) || > (GET_EQ(ch, WEAR_HOLD_1 ) && GET_EQ(ch, WEAR_HOLD_2 )) || > (GET_EQ(ch, WEAR_HOLD_1 ) && GET_EQ(ch, WEAR_SHIELD )) || > (GET_EQ(ch, WEAR_HOLD_1 ) && GET_EQ(ch, WEAR_WIELD_2)) || > (GET_EQ(ch, WEAR_HOLD_2 ) && GET_EQ(ch, WEAR_SHIELD )) || > (GET_EQ(ch, WEAR_HOLD_2 ) && GET_EQ(ch, WEAR_WIELD_2)) || > (GET_EQ(ch, WEAR_SHIELD ) && GET_EQ(ch, WEAR_WIELD_2))) { > return TRUE; > } > else if (GET_EQ(ch, WEAR_WIELD_1)) { > if (TWO_HANDED(GET_EQ(ch, WEAR_WIELD_1))) { > return TRUE; > } > } > else if (GET_EQ(ch, WEAR_WIELD_2)) { > if (TWO_HANDED(GET_EQ(ch, WEAR_WIELD_2))) { > return TRUE; > } > } > return FALSE; >} Mailer code follows: faster? method #define NUM_HAND_POSITIONS (5) int hand_position[NUM_HAND_POSITIONS] = { WEAR_SHIELD, WEAR_WIELD_1, WEAR_WIELD_2, WEAR_HOLD_1, WEAR_HOLD_2 } int hands_full(struct char_data *ch) { int counter, worn_count; struct obj_data * weapon; worn_count = 0; for (counter = 0; counter < NUM_HAND_POSITIONS; counter ++) if (GET_EQ(ch, hand_position[counter])) worn_count++; if (worn_count >= 2) return TRUE; if ((weapon = GET_EQ(ch, WEAR_WIELD_1)) || (weapon = GET_EQ(ch, WEAR_WIELD_2))) if (TWO_HANDED(weapon)) return TRUE; return FALSE; } - Chris Jacobson +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST