#include "hack.h"
Functions | |
STATIC_DCL void | FDECL (polyman,(const char *, const char *)) |
STATIC_DCL void | NDECL (break_armor) |
STATIC_DCL void | FDECL (drop_weapon,(int)) |
STATIC_DCL void | NDECL (uunstick) |
STATIC_DCL int | FDECL (armor_to_dragon,(int)) |
STATIC_DCL void | NDECL (newman) |
void | init_uasmon () |
void | set_uasmon () |
boolean | is_playermon_genocided () |
STATIC_OVL void | polyman (char *fmt, char *arg) const |
void | change_sex () |
STATIC_OVL void | newman () |
void | polyself (boolean forcecontrol) |
int | polymon (int mntmp) |
STATIC_OVL void | break_armor () |
STATIC_OVL void | drop_weapon (int alone) |
void | rehumanize () |
int | dobreathe () |
int | dospit () |
int | doremove () |
int | dospinweb () |
int | dosummon () |
int | dogaze () |
int | dohide () |
int | domindblast () |
STATIC_OVL void | uunstick () |
void | skinback (boolean silently) |
const char * | mbodypart (struct monst *mon, int part) |
const char * | body_part (int part) |
int | poly_gender () |
void | ugolemeffects (int damtype, int dam) |
STATIC_OVL int | armor_to_dragon (int atyp) |
STATIC_OVL int armor_to_dragon | ( | int | atyp ) |
References BLACK_DRAGON_SCALE_MAIL, BLACK_DRAGON_SCALES, BLUE_DRAGON_SCALE_MAIL, BLUE_DRAGON_SCALES, GOLD_DRAGON_SCALE_MAIL, GOLD_DRAGON_SCALES, GRAY_DRAGON_SCALE_MAIL, GRAY_DRAGON_SCALES, GREEN_DRAGON_SCALE_MAIL, GREEN_DRAGON_SCALES, ORANGE_DRAGON_SCALE_MAIL, ORANGE_DRAGON_SCALES, PM_BLACK_DRAGON, PM_BLUE_DRAGON, PM_GOLD_DRAGON, PM_GRAY_DRAGON, PM_GREEN_DRAGON, PM_ORANGE_DRAGON, PM_RED_DRAGON, PM_SILVER_DRAGON, PM_WHITE_DRAGON, PM_YELLOW_DRAGON, RED_DRAGON_SCALE_MAIL, RED_DRAGON_SCALES, SILVER_DRAGON_SCALE_MAIL, SILVER_DRAGON_SCALES, WHITE_DRAGON_SCALE_MAIL, WHITE_DRAGON_SCALES, YELLOW_DRAGON_SCALE_MAIL, and YELLOW_DRAGON_SCALES.
Referenced by polymon(), and polyself().
const char* body_part | ( | int | part ) |
References mbodypart(), and youmonst.
Referenced by able_to_loot(), artifact_hit(), at_your_feet(), attack(), bagotricks(), ballfall(), breakobj(), buzz(), can_twoweapon(), canletgo(), canwearobj(), cast_cleric_spell(), cast_wizard_spell(), chest_trap(), choke_dialogue(), chwepon(), corpse_chance(), cursed_book(), deadbook(), dip(), dipfountain(), do_break_wand(), do_oname(), do_takeoff(), doeat(), dokick(), domagictrap(), domonnoise(), domove(), doname_base(), doprwep(), doputon(), dosacrifice(), dosit(), dosounds(), dotrap(), dountrap(), dowipe(), dowrite(), drop_ball(), drop_boulder_on_monster(), drop_uswapwep(), eatcorpse(), engrave(), enlightenment(), feel_cockatrice(), fix_worst_trouble(), float_up(), food_detect(), fprefx(), glibr(), Gloves_off(), gold_detect(), gulpum(), heal_legs(), help_monster_out(), hitmu(), inside_gas_cloud(), intemple(), invocation_message(), jump(), kick_object(), lift_object(), m_throw(), make_blinded(), make_hallucinated(), nohandglow(), observe_quantum_cat(), on_msg(), opentin(), peffects(), potionbreathe(), potionhit(), readobjnam(), ready_weapon(), rottenfood(), seffects(), select_off(), slip_or_trip(), spelleffects(), start_tin(), stealgold(), throw_gold(), throw_obj(), throwit(), toss_up(), trap_detect(), use_container(), use_cream_pie(), use_grease(), use_mirror(), use_misc(), use_stethoscope(), use_towel(), use_whip(), ustatusline(), wary_dog(), weldmsg(), wield_tool(), wipeoff(), zap_dig(), and zap_updown().
STATIC_OVL void break_armor | ( | ) |
References A_STR, Armor_gone(), Boots_off(), breakarm(), BUFSZ, cancel_don(), Cloak_off(), cloak_simple_name(), monst::data, donning(), drop_weapon(), dropx(), exercise(), FALSE, Gloves_off(), has_horns, Helmet_off(), is_flimsy, is_whirly, permonst::mlet, nohands, num_horns(), obj::oartifact, otmp, obj::owornmask, plur, racial_exception(), S_CENTAUR, setworn(), Shield_off(), shk_your(), sliparm(), slithy, Sprintf, surface(), u, uarm, uarmc, uarmf, uarmg, uarmh, uarms, useup(), uwep, you::ux, you::uy, verysmall, vtense(), xname(), and youmonst.
Referenced by polymon().
void change_sex | ( | ) |
References monst::data, RoleName::f, flag::female, Role::femalenum, flags, if(), is_female, is_male, is_neuter, RoleName::m, Role::malenum, max_rank_sz(), Role::name, NON_PM, pl_character, PM_INCUBUS, PM_SUCCUBUS, set_uasmon(), Strcpy, u, you::umonnum, you::umonster, Upolyd, urole, and youmonst.
Referenced by Amulet_on(), eataccessory(), and newman().
int dobreathe | ( | ) |
References AD_ANY, attack::adtyp, AT_BREA, attacktype_fordmg(), flag::botl, buzz(), attack::damn, monst::data, you::dx, you::dy, flags, getdir(), Strangled, u, you::uen, you::ux, you::uy, and youmonst.
Referenced by domonability().
int dogaze | ( | ) |
References attack::aatyp, AD_CONF, AD_FIRE, attack::adtyp, AT_GAZE, Blind, flag::botl, canseemon, flag::confirm, Confusion, couldsee, d(), attack::damd, monst::data, DEADMONSTER, destroy_mitem(), done(), flags, fmon, Free_action, Hallucination, haseyes, if(), Invis, killed(), KILLED_BY, killer, killer_format, l_monnam(), M_AP_FURNITURE, M_AP_OBJECT, monst::m_ap_type, monst::m_lev, permonst::mattk, monst::mhp, mon_nam(), Monnam(), mons, monst::mtame, monst::mx, monst::my, NATTK, monst::nmon, nomul(), perceives, pline(), PM_FLOATING_EYE, PM_MEDUSA, POTION_CLASS, QBUFSZ, resists_fire, rn2(), s_suffix(), flag::safe_dog, SCROLL_CLASS, See_invisible, setmangry(), SPBOOK_CLASS, Sprintf, STONING, u, you::uen, you::ulevel, y_monnam(), yn, and youmonst.
Referenced by domonability().
int dohide | ( | ) |
References monst::data, M_AP_NOTHING, M_AP_OBJECT, monst::m_ap_type, monst::mappearance, permonst::mlet, newsym(), S_MIMIC, STRANGE_OBJECT, u, you::ux, you::uy, and youmonst.
Referenced by domonability().
int domindblast | ( | ) |
References BOLT_LIM, flag::botl, monst::data, DEADMONSTER, distu, flags, fmon, killed(), monst::mhp, mon_nam(), monst::mx, monst::my, monst::nmon, obj::otyp, pline(), rn2(), rnd(), s_suffix(), telepathic, TINFOIL_HAT, u, uarmh, you::uen, W_ARMH, which_armor(), and yname().
Referenced by domonability().
int doremove | ( | ) |
References Punished, and unpunish().
Referenced by domonability().
int dospinweb | ( | ) |
References A_DEX, attack::aatyp, AD_COLD, AD_ELEC, AD_FIRE, attack::adtyp, ANTI_MAGIC, ARROW_TRAP, AT_ENGL, BEAR_TRAP, bury_objs(), DART_TRAP, monst::data, deltrap(), dotrap(), exercise(), expels(), FIRE_TRAP, HOLE, Is_airlevel, is_animal, Is_waterlevel, is_whirly, LANDMINE, LEVEL_TELEP, Levitation, levl, MAGIC_PORTAL, MAGIC_TRAP, maketrap(), permonst::mattk, mon_nam(), NATTK, newsym(), On_stairs(), PIT, POLY_TRAP, ROCKTRAP, ROLLING_BOULDER_TRAP, RUST_TRAP, SLP_GAS_TRAP, SPIKED_PIT, SQKY_BOARD, STAIRS, Strcpy, t_at(), TELEP_TRAP, TRAPDOOR, TRUE, u, Underwater, you::ustuck, you::utrap, you::ux, you::uy, you::uz, and WEB.
Referenced by domonability().
int dospit | ( | ) |
References ACID_VENOM, BLINDING_VENOM, FALSE, getdir(), mksobj(), otmp, PM_COBRA, obj::spe, throwit(), TRUE, u, and you::umonnum.
Referenced by domonability().
int dosummon | ( | ) |
References A_WIS, flag::botl, monst::data, exercise(), flags, pline(), TRUE, u, you::uen, were_summon(), and youmonst.
Referenced by domonability().
STATIC_OVL void drop_weapon | ( | int | alone ) |
References cantwield, could_twoweap, monst::data, dropx(), LOADSTONE, otmp, obj::otyp, you::twoweap, u, untwoweapon(), uswapwep, uswapwepgone(), uwep, uwepgone(), and youmonst.
Referenced by break_armor(), and polymon().
STATIC_DCL void FDECL | ( | polyman | , |
(const char *, const char *) | |||
) |
STATIC_DCL int FDECL | ( | armor_to_dragon | , |
(int) | |||
) |
STATIC_DCL void FDECL | ( | drop_weapon | , |
(int) | |||
) |
void init_uasmon | ( | ) |
References Race::malenum, permonst::mattk, permonst::mflags1, permonst::mflags2, permonst::mflags3, mons, NATTK, PM_HUMAN, PM_VAMPIRE, Race_if, set_uasmon(), u, you::umonster, upermonst, and urace.
Referenced by restgamestate(), and u_init().
boolean is_playermon_genocided | ( | ) |
Returns true if the player monster is genocided.
References Race::femalenum, Role::femalenum, G_GENOD, Race::malenum, Role::malenum, mvitals::mvflags, NON_PM, urace, and urole.
Referenced by done(), and polyman().
const char* mbodypart | ( | struct monst * | mon, |
int | part | ||
) |
References ARM, AT_CLAW, attacktype(), EYE, FINGER, FINGERTIP, FOOT, HAIR, HAND, HANDED, humanoid, index, permonst::mlet, mons, NEARDATA, NOSE, PM_FLOATING_EYE, PM_INCUBUS, PM_JELLYFISH, PM_MASTODON, PM_MUMAK, PM_RAVEN, PM_ROTHE, PM_SHARK, PM_STONE_GOLEM, PM_SUCCUBUS, S_ANGEL, S_BLOB, S_CENTAUR, S_DOG, S_DRAGON, S_EEL, S_ELEMENTAL, S_EYE, S_FELINE, S_FUNGUS, S_GIANT, S_HUMAN, S_JELLY, S_LEPRECHAUN, S_LIGHT, S_MUMMY, S_NYMPH, S_ORC, S_PUDDING, S_QUANTMECH, S_UNICORN, S_VAMPIRE, S_VORTEX, S_YETI, S_ZOMBIE, slithy, and TOE.
Referenced by artifact_hit(), at_your_feet(), body_part(), cast_protection(), damageum(), dotrap(), drop(), drop_boulder_on_monster(), hmon_hitmon(), litroom(), look_here(), mdamagem(), mintrap(), mon_wield_item(), setmnotwielded(), use_mirror(), use_whip(), and zap_dig().
STATIC_DCL void NDECL | ( | uunstick | ) |
STATIC_DCL void NDECL | ( | break_armor | ) |
STATIC_DCL void NDECL | ( | newman | ) |
STATIC_OVL void newman | ( | ) |
References adjabil(), flag::botl, change_sex(), delayed_killer, DIED, done(), encumber_msg(), RoleName::f, FALSE, flag::female, flags, Race::individual, KILLED_BY_AN, killer, killer_format, RoleName::m, make_sick(), MAXULEV, newuhs(), NON_PM, Race::noun, polyman(), Polymorph_control, redist_attr(), reset_rndmonst(), rn1, rn2(), rndexp(), see_monsters(), Sick, SICK_ALL, Slimed, Stoned, u, you::uen, you::uenmax, you::uexp, you::uhp, you::uhpmax, you::uhunger, you::ulevel, you::ulevelmax, and urace.
Referenced by polyself().
int poly_gender | ( | ) |
References monst::data, flag::female, flags, humanoid, is_neuter, and youmonst.
Referenced by Amulet_on(), beautiful(), could_seduce(), dokick(), domonnoise(), and use_crystal_ball().
STATIC_OVL void polyman | ( | char * | fmt, |
char * | arg | ||
) | const |
References Blind, Blinded, could_twoweap, monst::data, delayed_killer, done(), FALSE, flag::female, find_ac(), flags, GENOCIDED, is_lava(), is_playermon_genocided(), is_pool(), KILLED_BY, killer, killer_format, Levitation, M_AP_NOTHING, M_AP_OBJECT, monst::m_ap_type, make_blinded(), you::mamax, you::mh, you::mhmax, you::mtimedone, multi, newsym(), Passes_walls, rn1, see_monsters(), set_uasmon(), skinback(), spoteffects(), sticks(), strstri(), TRUE, TT_PIT, you::twoweap, u, you::umonnum, you::umonster, unmul(), untwoweapon(), Upolyd, you::ustuck, you::utrap, you::utraptype, uunstick(), you::ux, you::uy, and youmonst.
Referenced by newman(), and rehumanize().
int polymon | ( | int | mntmp ) |
References A_CON, A_STR, A_WIS, ABASE, AMAX, amorphous, an(), armor_to_dragon(), AT_GAZE, AT_SPIT, attacktype(), Blind, Blinded, flag::botl, break_armor(), BUFSZ, can_breathe, d(), monst::data, delayed_killer, drop_weapon(), egg_type_from_parent(), encumber_msg(), exercise(), FALSE, flag::female, find_ac(), flags, flaming, Flying, G_GENOD, Glib, golemhp(), hides_under, In_endgame, is_female, is_golem, is_hider, is_home_elemental(), is_lava(), is_male, is_mind_flayer, is_neuter, is_pool(), is_unicorn, is_were, is_whirly, lays_eggs, learn_egg_type(), Levitation, likes_lava, M_AP_NOTHING, monst::m_ap_type, make_blinded(), make_sick(), you::mamax, you::mh, you::mhmax, permonst::mlet, permonst::mname, mon_nam(), mons, MS_SHRIEK, permonst::msize, permonst::msound, you::mtimedone, multi, MZ_SMALL, newsym(), nohands, OBJ_AT, obj::otyp, Passes_walls, pline(), PM_GRAY_DRAGON, PM_GREEN_SLIME, PM_GREMLIN, PM_STONE_GOLEM, poly_when_stoned(), u_conduct::polyselfs, Punished, rn1, rn2(), rnd(), rnl(), S_DRAGON, S_EEL, S_MIMIC, S_NYMPH, see_monsters(), set_uasmon(), Sick, SICK_ALL, Sick_resistance, skinback(), Slimed, spoteffects(), Sprintf, sticks(), Stone_resistance, Stoned, STR18, strongmonst, Swimming, touch_petrifies, TRUE, TT_BEARTRAP, TT_INFLOOR, TT_LAVA, TT_PIT, TT_WEB, u, you::uconduct, you::ulevel, you::ulycn, you::umonnum, Underwater, unmul(), unpunish(), unsolid, Upolyd, uskin, you::ustuck, you::utrap, you::utraptype, uunstick(), you::ux, you::uy, you::uz, flag::verbose, vision_full_recalc, webmaker, and youmonst.
Referenced by cprefx(), fpostfx(), gazemu(), help_monster_out(), hitmu(), in_container(), kick_object(), m_throw(), out_container(), passive(), peffects(), pickup_object(), polyself(), toss_up(), use_whip(), you_were(), and zapyourself().
void polyself | ( | boolean | forcecontrol ) |
References A_CON, ACURR, amphibious, armor_to_dragon(), breathless, BUFSZ, monst::data, del_light_source(), drown(), emits_light, exercise(), FALSE, Flying, G_GENOD, getlin, GRAY_DRAGON_SCALE_MAIL, I_SPECIAL, is_placeholder, is_pool(), is_vampire, is_were, KILLED_BY_AN, Levitation, losehp(), LOW_PM, LS_MONSTER, mons, name_to_mon(), new_light_source(), newman(), NON_PM, obj::otyp, obj::owornmask, pline(), PM_HUMAN, PM_VAMPIRE_BAT, polymon(), Polymorph_control, polyok, rn1, rn2(), rnd(), selftouch(), shudder_for_moment, SPECIAL_PM, Swimming, thats_enough_tries, u, uarm, uarmg, you::ulycn, you::umonnum, Upolyd, uskin, you::ux, you::uy, YELLOW_DRAGON_SCALES, youmonst, and your_race.
Referenced by cpostfx(), dotrap(), moveloop(), peffects(), potionhit(), and zapyourself().
void rehumanize | ( | ) |
References Race::adj, flag::botl, monst::data, del_light_source(), DIED, done(), emits_light, encumber_msg(), flags, KILLED_BY, killer, killer_format, LS_MONSTER, you::mh, NO_KILLER_PREFIX, nomul(), polyman(), selftouch(), Sprintf, u, uarmg, you::uhp, Unchanging, urace, vision_full_recalc, and youmonst.
Referenced by cancel_monst(), do_class_genocide(), do_genocide(), domove(), drown(), eataccessory(), explode(), fix_worst_trouble(), fpostfx(), hitmu(), hmonas(), losehp_how(), mdamageu(), moveloop(), nh_timeout(), passiveum(), prayer_done(), and you_unwere().
void set_uasmon | ( | ) |
References mons, set_mon_data(), u, you::umonnum, you::umonster, upermonst, and youmonst.
Referenced by change_sex(), display_minventory(), init_uasmon(), polyman(), and polymon().
void skinback | ( | boolean | silently ) |
References I_SPECIAL, obj::owornmask, uarm, and uskin.
Referenced by polyman(), polymon(), and remove_worn_item().
void ugolemeffects | ( | int | damtype, |
int | dam | ||
) |
References A_STR, AD_ELEC, AD_FIRE, flag::botl, exercise(), flags, you::mh, you::mhmax, pline(), PM_FLESH_GOLEM, PM_IRON_GOLEM, TRUE, u, and you::umonnum.
Referenced by explmu(), explode(), gulpmu(), passive(), zapyourself(), and zhitu().