#include "monster-race/race-flags2.h"
#include "monster-race/race-flags3.h"
#include "monster/monster-status.h"
-#include "monster/smart-learn-types.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
#include "object/item-use-flags.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
#include "monster/place-monster-types.h"
-#include "monster/smart-learn-types.h"
#include "object-enchant/special-object-flags.h"
#include "object-enchant/tr-types.h"
#include "object/item-use-flags.h"
#include "autopick/autopick.h"
#include "floor/floor-object.h"
#include "monster/place-monster-types.h"
-#include "monster/smart-learn-types.h"
#include "monster/monster2.h"
#include "object-enchant/tr-types.h"
#include "object/object-broken.h"
#include "monster/monster-status.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "object-enchant/trc-types.h"
#include "pet/pet-fall-off.h"
#include "player/avatar.h"
#include "monster/monster-status.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "player/avatar.h"
// Powerful monsters can resist.
#include "monster/monster-status.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "object-enchant/special-object-flags.h"
#include "object/object-generator.h"
#include "object/object-kind-hook.h"
#include "monster-race/race-flags7.h"
#include "monster/monster-status.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "perception/object-perception.h"
#include "object-enchant/object-ego.h"
#include "object/object-hook.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
#include "monster/place-monster-types.h"
-#include "monster/smart-learn-types.h"
#include "player/player-effects.h"
#include "player/player-status.h"
#include "realm/realm-names-table.h"
#include "monster/monster-death.h"
#include "monster/monster-status.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "pet/pet-fall-off.h"
#include "player/player-class.h"
#include "monster/monster-status.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "pet/pet-util.h"
#include "spell/range-calc.h"
#include "monster/monster-update.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "pet/pet-util.h"
#include "player/player-move.h"
#include "spell/process-effect.h"
#include "monster/monster2.h"
#include "monster/place-monster-types.h"
#include "monster/quantum-effect.h"
-#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "object-enchant/trc-types.h"
#include "pet/pet-fall-off.h"
#include "monster-race/race-flags7.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "pet/pet-fall-off.h"
#include "player/player-move.h"
#include "monster/monster-status.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
/*!
}
bool is_original_ap(monster_type* m_ptr) { return m_ptr->ap_r_idx == m_ptr->r_idx; }
+
+bool is_friendly(monster_type *m_ptr) { return (m_ptr->smart & SM_FRIENDLY) != 0; }
+
+bool is_pet(monster_type *m_ptr) { return (m_ptr->smart & SM_PET) != 0; }
+
+bool is_hostile(monster_type *m_ptr) {return !is_friendly(m_ptr) && !is_pet(m_ptr); }
void choose_new_monster(player_type *player_ptr, MONSTER_IDX m_idx, bool born, MONRACE_IDX r_idx);
SPEED get_mspeed(player_type *player_ptr, monster_race *r_ptr);
void monster_drop_carried_objects(player_type *player_ptr, monster_type *m_ptr);
-
-#define is_friendly(A) (bool)(((A)->smart & SM_FRIENDLY) ? TRUE : FALSE)
-
-#define is_pet(A) (bool)(((A)->smart & SM_PET) ? TRUE : FALSE)
-
-#define is_hostile(A) (bool)((is_friendly(A) || is_pet(A)) ? FALSE : TRUE)
+bool is_friendly(monster_type *m_ptr);
+bool is_pet(monster_type *m_ptr);
+bool is_hostile(monster_type *m_ptr);
/* Determine monster race appearance index is same as race index */
bool is_original_ap(monster_type *m_ptr);
#include "monster-race/race-flags7.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster-status.h"
-#include "monster/smart-learn-types.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
#include "mspell/monster-spell.h"
#include "monster/monster-status.h"
#include "monster/monster2.h"
#include "monster/place-monster-types.h"
-#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "mspell/mspell-util.h"
#include "player/player-move.h"
#include "monster/monster-status.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "mspell/assign-monster-spell.h"
#include "mspell/monster-spell.h"
#include "pet/pet-util.h"
#include "monster-race/race-indice-types.h"
#include "monster/monster-status.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "mspell/mspell-damage-calculator.h"
#include "mspell/mspell-type.h"
#include "monster/monster-status.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "object-enchant/special-object-flags.h"
#include "object/object-flavor.h"
#include "monster/monster-status.h"
#include "monster/monster-info.h"
#include "monster/monster2.h"
-#include "monster/smart-learn-types.h"
#include "player/avatar.h"
#include "player/player-damage.h"
#include "view/display-main-window.h"
#include "monster/monster-util.h"
#include "monster/monster2.h"
#include "monster/place-monster-types.h"
-#include "monster/smart-learn-types.h"
#include "mspell/monster-spell.h"
#include "object-enchant/artifact.h"
#include "object-enchant/item-feeling.h"