summaryrefslogtreecommitdiff
path: root/src/player.pkg
diff options
context:
space:
mode:
Diffstat (limited to 'src/player.pkg')
-rw-r--r--src/player.pkg3519
1 files changed, 0 insertions, 3519 deletions
diff --git a/src/player.pkg b/src/player.pkg
deleted file mode 100644
index dfdced26..00000000
--- a/src/player.pkg
+++ /dev/null
@@ -1,3519 +0,0 @@
-/* File: player.pkg */
-
-/*
- * Purpose: Lua interface defitions for the player.
- * To be processed by tolua to generate C source code.
- */
-
-$#include "angband.h"
-
-/** @typedef cptr
- * @note String
- */
-typedef char* cptr;
-/** @typedef errr
- * @note Number
- */
-typedef int errr;
-/** @typedef bool
- * @note Boolean
- */
-typedef unsigned char bool;
-/** @typedef byte
- * @note Number
- */
-typedef unsigned char byte;
-/** @typedef s16b
- * @note Number
- */
-typedef signed short s16b;
-/** @typedef u16b
- * @note Number
- */
-typedef unsigned short u16b;
-/** @typedef s32b
- * @note Number
- */
-typedef signed int s32b;
-/** @typedef u32b
- * @note Number
- */
-typedef unsigned int u32b;
-
-/** @def PY_MAX_LEVEL
- * @note Maximum level
- */
-#define PY_MAX_LEVEL 50
-
-/** @var player_exp[PY_MAX_LEVEL]
- * @brief Number
- * @note Array of experience points per level.
- */
-extern s32b player_exp[PY_MAX_LEVEL];
-
-/** @name Attributes
- * @brief Indexes of the various "stats" (hard-coded by savefiles, etc).
- * @{ */
-/** @def A_STR
- * @note Strength */
-#define A_STR 0
-
-/** @def A_INT
- * @note Intelligence */
-#define A_INT 1
-
-/** @def A_WIS
- * @note Wisdom */
-#define A_WIS 2
-
-/** @def A_DEX
- * @note Dexterity */
-#define A_DEX 3
-
-/** @def A_CON
- * @note Constitution */
-#define A_CON 4
-
-/** @def A_CHR
- * @note Charisma */
-#define A_CHR 5
-/** @} */
-
-/* Ugly hack, should be in foo-info, the subrace saved to the savefile */
-/** @def SUBRACE_SAVE */
-#define SUBRACE_SAVE 9
-
-
-/** @name Sex
- * @brief Player sex constants (hard-coded by save-files, arrays, etc)
- * @{ */
-/** @def SEX_FEMALE */
-#define SEX_FEMALE 0
-
-/** @def SEX_MALE */
-#define SEX_MALE 1
-
-/** @def SEX_NEUTER */
-#define SEX_NEUTER 2
-
-
-/** @def MAX_SEXES */
-#define MAX_SEXES 3
-/** @} */
-
-/** @name Race flags
- * @{ */
-/** @def PR1_EXPERIMENTAL
- * @note Is still under developemnt
- */
-#define PR1_EXPERIMENTAL 0x00000001L
-/* XXX */
-/** @def PR1_RESIST_BLACK_BREATH
- * @note Resist black breath
- */
-#define PR1_RESIST_BLACK_BREATH 0x00000004L
-/** @def PR1_NO_STUN
- * @note Never stunned
- */
-#define PR1_NO_STUN 0x00000008L
-/** @def PR1_XTRA_MIGHT_BOW
- * @note Xtra might with bows
- */
-#define PR1_XTRA_MIGHT_BOW 0x00000010L
-/** @def PR1_XTRA_MIGHT_XBOW
- * @note Xtra might with xbows
- */
-#define PR1_XTRA_MIGHT_XBOW 0x00000020L
-/** @def PR1_XTRA_MIGHT_SLING
- * @note Xtra might with slings
- */
-#define PR1_XTRA_MIGHT_SLING 0x00000040L
-/** @def PR1_AC_LEVEL
- * @note More AC with levels
- */
-#define PR1_AC_LEVEL 0x00000080L
-/** @def PR1_HURT_LITE
- * @note Hurt by light
- */
-#define PR1_HURT_LITE 0x00000100L
-/** @def PR1_VAMPIRE
- * @note Vampire
- */
-#define PR1_VAMPIRE 0x00000200L
-/** @def PR1_UNDEAD
- * @note Undead
- */
-#define PR1_UNDEAD 0x00000400L
-/** @def PR1_NO_CUT
- * @note no cuts
- */
-#define PR1_NO_CUT 0x00000800L
-/** @def PR1_CORRUPT
- * @note hack-- corrupted
- */
-#define PR1_CORRUPT 0x00001000L
-/** @def PR1_NO_FOOD
- * @note little gain from food
- */
-#define PR1_NO_FOOD 0x00002000L
-/** @def PR1_NO_GOD
- * @note cannot worship
- */
-#define PR1_NO_GOD 0x00004000L
-/* XXX */
-/** @def PR1_ELF
- * @note Is an elf
- */
-#define PR1_ELF 0x00010000L
-/** @def PR1_SEMI_WRAITH
- * @note Takes damage when going in walls
- */
-#define PR1_SEMI_WRAITH 0x00020000L
-/** @def PR1_NO_SUBRACE_CHANGE
- * @note Impossible to change subrace
- */
-#define PR1_NO_SUBRACE_CHANGE 0x00040000L
-/* XXX */
-/** @def PR1_ANTIMAGIC
- * @note antimagic ... hack
- */
-#define PR1_ANTIMAGIC 0x00100000L
-/** @def PR1_MOLD_FRIEND
- * @note Not attacked by molds wielded
- */
-#define PR1_MOLD_FRIEND 0x00200000L
-/** @def PR1_GOD_FRIEND
- * @note Better grace
- */
-#define PR1_GOD_FRIEND 0x00400000L
-/* XXX */
-/** @def PR1_INNATE_SPELLS
- * @note KNown all spells, only need books
- */
-#define PR1_INNATE_SPELLS 0x01000000L
-/* XXX */
-/* XXX */
-/** @def PR1_EASE_STEAL
- * @note Gain xp by stealing
- */
-#define PR1_EASE_STEAL 0x08000000L
-/* XXX */
-/* XXX */
-/* XXX */
-/* XXX */
-
-/* XXX */
-/** @def PR2_ASTRAL
- * @note Is it an astral being coming from th halls of mandos ?
- */
-#define PR2_ASTRAL 0x00000002L
-/* XXX */
-/** @} */
-
-/** @name Notice flags
- * @brief Bit flags for the "p_ptr->notice" variable
- * @{ */
-/** @def PN_COMBINE
- * @note Combine the pack
- */
-#define PN_COMBINE 0x00000001L
-/** @def PN_REORDER
- * @note Reorder the pack
- */
-#define PN_REORDER 0x00000002L
-/* xxx (many) */
-/** @} */
-
-
-/** @name Update flags
- * @brief Bit flags for the "p_ptr->update" variable
- * @{ */
-/** @def PU_BONUS
- * @note Calculate bonuses
- */
-#define PU_BONUS 0x00000001L
-/** @def PU_TORCH
- * @note Calculate torch radius
- */
-#define PU_TORCH 0x00000002L
-/** @def PU_BODY
- * @note Calculate body parts
- */
-#define PU_BODY 0x00000004L
-/** @def PU_SANITY
- * @note Calculate csan and msan
- */
-#define PU_SANITY 0x00000008L
-/** @def PU_HP
- * @note Calculate chp and mhp
- */
-#define PU_HP 0x00000010L
-/** @def PU_MANA
- * @note Calculate csp and msp
- */
-#define PU_MANA 0x00000020L
-/** @def PU_SPELLS
- * @note Calculate spells
- */
-#define PU_SPELLS 0x00000040L
-/** @def PU_POWERS
- * @note Calculate powers
- */
-#define PU_POWERS 0x00000080L
-/* xxx (many) */
-/** @def PU_UN_VIEW
- * @note Forget view
- */
-#define PU_UN_VIEW 0x00010000L
-/* xxx (many) */
-/** @def PU_VIEW
- * @note Update view
- */
-#define PU_VIEW 0x00100000L
-/** @def PU_MON_LITE
- * @note Update monster light
- */
-#define PU_MON_LITE 0x00200000L
-/* xxx */
-/** @def PU_MONSTERS
- * @note Update monsters
- */
-#define PU_MONSTERS 0x01000000L
-/** @def PU_DISTANCE
- * @note Update distances
- */
-#define PU_DISTANCE 0x02000000L
-/* xxx */
-/** @def PU_FLOW
- * @note Update flow
- */
-#define PU_FLOW 0x10000000L
-/* xxx (many) */
-/** @} */
-
-
-/** @name Redraw flags
- * @brief Bit flags for the "p_ptr->redraw" variable
- * @{ */
-/** @def PR_MISC
- * @note Display Race/Class
- */
-#define PR_MISC 0x00000001L
-/** @def PR_TITLE
- * @note Display Title
- */
-#define PR_TITLE 0x00000002L
-/** @def PR_LEV
- * @note Display Level
- */
-#define PR_LEV 0x00000004L
-/** @def PR_EXP
- * @note Display Experience
- */
-#define PR_EXP 0x00000008L
-/** @def PR_STATS
- * @note Display Stats
- */
-#define PR_STATS 0x00000010L
-/** @def PR_ARMOR
- * @note Display Armor
- */
-#define PR_ARMOR 0x00000020L
-/** @def PR_HP
- * @note Display Hitpoints
- */
-#define PR_HP 0x00000040L
-/** @def PR_MANA
- * @note Display Mana
- */
-#define PR_MANA 0x00000080L
-/** @def PR_GOLD
- * @note Display Gold
- */
-#define PR_GOLD 0x00000100L
-/** @def PR_DEPTH
- * @note Display Depth
- */
-#define PR_DEPTH 0x00000200L
-/****/
-/** @def PR_HEALTH
- * @note Display Health Bar
- */
-#define PR_HEALTH 0x00000800L
-/** @def PR_CUT
- * @note Display Extra (Cut)
- */
-#define PR_CUT 0x00001000L
-/** @def PR_STUN
- * @note Display Extra (Stun)
- */
-#define PR_STUN 0x00002000L
-/** @def PR_HUNGER
- * @note Display Extra (Hunger)
- */
-#define PR_HUNGER 0x00004000L
-/** @def PR_PIETY
- * @note Display Piety
- */
-#define PR_PIETY 0x00008000L
-/** @def PR_BLIND
- * @note Display Extra (Blind)
- */
-#define PR_BLIND 0x00010000L
-/** @def PR_CONFUSED
- * @note Display Extra (Confused)
- */
-#define PR_CONFUSED 0x00020000L
-/** @def PR_AFRAID
- * @note Display Extra (Afraid)
- */
-#define PR_AFRAID 0x00040000L
-/** @def PR_POISONED
- * @note Display Extra (Poisoned)
- */
-#define PR_POISONED 0x00080000L
-/** @def PR_STATE
- * @note Display Extra (State)
- */
-#define PR_STATE 0x00100000L
-/** @def PR_SPEED
- * @note Display Extra (Speed)
- */
-#define PR_SPEED 0x00200000L
-/** @def PR_STUDY
- * @note Display Extra (Study)
- */
-#define PR_STUDY 0x00400000L
-/** @def PR_SANITY
- * @note Display Sanity
- */
-#define PR_SANITY 0x00800000L
-/** @def PR_EXTRA
- * @note Display Extra Info
- */
-#define PR_EXTRA 0x01000000L
-/** @def PR_BASIC
- * @note Display Basic Info
- */
-#define PR_BASIC 0x02000000L
-/** @def PR_MAP
- * @note Display Map
- */
-#define PR_MAP 0x04000000L
-/** @def PR_WIPE
- * @note Hack -- Total Redraw
- */
-#define PR_WIPE 0x08000000L
-/** @def PR_MH
- * @note Display Monster hitpoints
- */
-#define PR_MH 0x10000000L
-/** @def PR_MH
- * @note Display Monster hitpoints
- */
-#define PR_MH 0x10000000L
-/** @def PR_DTRAP
- * @note Display Extra (DTrap)
- */
-#define PR_DTRAP 0x20000000L
-/* xxx */
-/* xxx */
-/** @} */
-
-
-/** @name Window flags
- * @brief Bit flags for the "p_ptr->window" variable (etc)
- * @{ */
-/** @def PW_INVEN
- * @note Display inven/equip
- */
-#define PW_INVEN 0x00000001L
-/** @def PW_EQUIP
- * @note Display equip/inven
- */
-#define PW_EQUIP 0x00000002L
-/* xxx */
-/** @def PW_PLAYER
- * @note Display character
- */
-#define PW_PLAYER 0x00000008L
-/** @def PW_M_LIST
- * @note Show monster list
- */
-#define PW_M_LIST 0x00000010L
-/* xxx */
-/** @def PW_MESSAGE
- * @note Display messages
- */
-#define PW_MESSAGE 0x00000040L
-/** @def PW_OVERHEAD
- * @note Display overhead view
- */
-#define PW_OVERHEAD 0x00000080L
-/** @def PW_MONSTER
- * @note Display monster recall
- */
-#define PW_MONSTER 0x00000100L
-/** @def PW_OBJECT
- * @note Display object recall
- */
-#define PW_OBJECT 0x00000200L
-/* xxx */
-/** @def PW_SNAPSHOT
- * @note Display snap-shot
- */
-#define PW_SNAPSHOT 0x00000800L
-/* xxx */
-/* xxx */
-/** @def PW_BORG_1
- * @note Display borg messages
- */
-#define PW_BORG_1 0x00004000L
-/** @def PW_BORG_2
- * @note Display borg status
- */
-#define PW_BORG_2 0x00008000L
-/** @} */
-
-/** @struct deity_type
- */
-struct deity_type
-{
- /** @structvar name
- * @brief String
- */
- cptr name;
-};
-/** @var deity_info[max_gods]
- * @brief deity_type
- * @note Array of gods.
- */
-extern deity_type deity_info[max_gods];
-
-/** @name Body parts
- * @{ */
-/** @def BODY_WEAPON */
-#define BODY_WEAPON 0
-
-/** @def BODY_TORSO */
-#define BODY_TORSO 1
-
-/** @def BODY_ARMS */
-#define BODY_ARMS 2
-
-/** @def BODY_FINGER */
-#define BODY_FINGER 3
-
-/** @def BODY_HEAD */
-#define BODY_HEAD 4
-
-/** @def BODY_LEGS */
-#define BODY_LEGS 5
-
-/** @def BODY_MAX */
-#define BODY_MAX 6
-/** @} */
-
-
-/** @struct player_type
- */
-struct player_type
-{
- /** @structvar lives
- * @brief Number
- * @note How many times we resurected
- */
- s32b lives;
-
- /** @structvar oldpy
- * @brief Number
- * @note Previous player location -KMW-
- */
- s16b oldpy;
- /** @structvar oldpx
- * @brief Number
- * @note Previous player location -KMW-
- */
- s16b oldpx;
-
- /** @structvar py
- * @brief Number
- * @note Player location
- */
- s16b py;
- /** @structvar px
- * @brief Number
- * @note Player location
- */
- s16b px;
-
- /** @structvar psex
- * @brief Number
- * @note Sex index
- */
- byte psex;
- /** @structvar prace
- * @brief Number
- * @note Race index
- */
- byte prace;
- /** @structvar pracem
- * @brief Number
- * @note Race Mod index
- */
- byte pracem;
- /** @structvar pclass
- * @brief Number
- * @note Class index
- */
- byte pclass;
- /** @structvar mimic_form
- * @brief Number
- * @note Actualy transformation
- */
- byte mimic_form;
- /** @structvar mimic_level
- * @brief Number
- * @note Level of the mimic effect
- */
- s16b mimic_level;
- /** @structvar oops
- * @brief Number
- * @note Unused
- */
- byte oops;
-
- object_type inventory[INVEN_TOTAL] @inventory_real;
-
- /** @structvar hitdie
- * @brief Number
- * @note Hit dice (sides)
- */
- byte hitdie;
- /** @structvar expfact
- * @brief Number
- * @note Experience factor
- */
- u16b expfact;
-
- /** @structvar allow_one_death
- * @brief Number
- * @note Blood of life
- */
- byte allow_one_death;
-
- /** @structvar age
- * @brief Number
- * @note Characters age
- */
- s16b age;
- /** @structvar ht
- * @brief Number
- * @note Height
- */
- s16b ht;
- /** @structvar wt
- * @brief Number
- * @note Weight
- */
- s16b wt;
- /** @structvar sc
- * @brief Number
- * @note Social Class
- */
- s16b sc;
-
-
- /** @structvar au
- * @brief Number
- * @note Current Gold
- */
- s32b au;
-
- /** @structvar max_exp
- * @brief Number
- * @note Max experience
- */
- s32b max_exp;
- /** @structvar exp
- * @brief Number
- * @note Cur experience
- */
- s32b exp;
- /** @structvar exp_frac
- * @brief Number
- * @note Cur exp frac (times 2^16)
- */
- u16b exp_frac;
-
- /** @structvar lev
- * @brief Number
- * @note Level
- */
- s16b lev;
-
- /** @structvar town_num
- * @brief Number
- * @note Current town number
- */
- s16b town_num;
- /** @structvar inside_quest
- * @brief Number
- * @note Inside quest level
- */
- s16b inside_quest;
- /** @structvar exit_bldg
- * @brief Boolean
- * @note Goal obtained in arena? -KMW-
- */
- bool exit_bldg;
-
- /** @structvar wilderness_x
- * @brief Number
- * @note Coordinates in the wilderness
- */
- s32b wilderness_x;
- /** @structvar wilderness_y
- * @brief Number
- */
- s32b wilderness_y;
- /** @structvar wild_mode
- * @brief Boolean
- * @note TRUE = Small map, FLASE = Big map
- */
- bool wild_mode;
- /** @structvar old_wild_mode
- * @brief Boolean
- * @note TRUE = Small map, FLASE = Big map
- */
- bool old_wild_mode;
-
- /** @structvar mhp
- * @brief Number
- * @note Max hit pts
- */
- s16b mhp;
- /** @structvar chp
- * @brief Number
- * @note Cur hit pts
- */
- s16b chp;
- /** @structvar chp_frac
- * @brief Number
- * @note Cur hit frac (times 2^16)
- */
- u16b chp_frac;
- /** @structvar hp_mod
- * @brief Number
- * @note A modificator(permanent)
- */
- s16b hp_mod;
-
- /** @structvar msp
- * @brief Number
- * @note Max mana pts
- */
- s16b msp;
- /** @structvar csp
- * @brief Number
- * @note Cur mana pts
- */
- s16b csp;
- /** @structvar csp_frac
- * @brief Number
- * @note Cur mana frac (times 2^16)
- */
- u16b csp_frac;
-
- /** @structvar msane
- * @brief Number
- * @note Max sanity
- */
- s16b msane;
- /** @structvar csane
- * @brief Number
- * @note Cur sanity
- */
- s16b csane;
- /** @structvar csane_frac
- * @brief Number
- * @note Cur sanity frac
- */
- u16b csane_frac;
-
- /** @structvar grace
- * @brief Number
- * @note Your God's appreciation factor.
- */
- s32b grace;
- /** @structvar pgod
- * @brief Number
- * @note Your God.
- */
- byte pgod;
- /** @structvar praying
- * @brief Boolean
- * @note Praying to your god.
- */
- bool praying;
-
- /** @structvar max_plv
- * @brief Number
- * @note Max Player Level
- */
- s16b max_plv;
-
- /** @structvar stat_max[6]
- * @brief Number
- * @note Current "maximal" stat values
- */
- s16b stat_max[6];
- /** @structvar stat_cur[6]
- * @brief Number
- * @note Current "natural" stat values
- */
- s16b stat_cur[6];
-
- /** @structvar luck_cur
- * @brief Number
- * @note Current "natural" luck value (range -30 <> 30)
- */
- s16b luck_cur;
- /** @structvar luck_max
- * @brief Number
- * @note Current "maximal base" luck value (range -30 <> 30)
- */
- s16b luck_max;
- /** @structvar luck_base
- * @brief Number
- * @note Current "base" luck value (range -30 <> 30)
- */
- s16b luck_base;
-
- /** @structvar fast
- * @brief Number
- * @note Timed -- Fast
- */
- s16b fast;
- /** @structvar lightspeed
- * @brief Number
- * @note Timed -- Light Speed
- */
- s16b lightspeed;
- /** @structvar slow
- * @brief Number
- * @note Timed -- Slow
- */
- s16b slow;
- /** @structvar blind
- * @brief Number
- * @note Timed -- Blindness
- */
- s16b blind;
- /** @structvar paralyzed
- * @brief Number
- * @note Timed -- Paralysis
- */
- s16b paralyzed;
- /** @structvar confused
- * @brief Number
- * @note Timed -- Confusion
- */
- s16b confused;
- /** @structvar afraid
- * @brief Number
- * @note Timed -- Fear
- */
- s16b afraid;
- /** @structvar image
- * @brief Number
- * @note Timed -- Hallucination
- */
- s16b image;
- /** @structvar poisoned
- * @brief Number
- * @note Timed -- Poisoned
- */
- s16b poisoned;
- /** @structvar cut
- * @brief Number
- * @note Timed -- Cut
- */
- s16b cut;
- /** @structvar stun
- * @brief Number
- * @note Timed -- Stun
- */
- s16b stun;
-
- /** @structvar protevil
- * @brief Number
- * @note Timed -- Protection from Evil
- */
- s16b protevil;
- /** @structvar protgood
- * @brief Number
- * @note Timed -- Protection from Good
- */
- s16b protgood;
- /** @structvar protundead
- * @brief Number
- * @note Timed -- Protection from Undead
- */
- s16b protundead;
- /** @structvar invuln
- * @brief Number
- * @note Timed -- Invulnerable
- */
- s16b invuln;
- /** @structvar hero
- * @brief Number
- * @note Timed -- Heroism
- */
- s16b hero;
- /** @structvar shero
- * @brief Number
- * @note Timed -- Super Heroism
- */
- s16b shero;
- /** @structvar shield
- * @brief Number
- * @note Timed -- Shield Spell
- */
- s16b shield;
- /** @structvar shield_power
- * @brief Number
- * @note Timed -- Shield Spell Power
- */
- s16b shield_power;
- /** @structvar shield_opt
- * @brief Number
- * @note Timed -- Shield Spell options
- */
- s16b shield_opt;
- /** @structvar blessed
- * @brief Number
- * @note Timed -- Blessed
- */
- s16b blessed;
- /** @structvar tim_invis
- * @brief Number
- * @note Timed -- See Invisible
- */
- s16b tim_invis;
- /** @structvar tim_infra
- * @brief Number
- * @note Timed -- Infra Vision
- */
- s16b tim_infra;
-
- /** @structvar oppose_acid
- * @brief Number
- * @note Timed -- oppose acid
- */
- s16b oppose_acid;
- /** @structvar oppose_elec
- * @brief Number
- * @note Timed -- oppose lightning
- */
- s16b oppose_elec;
- /** @structvar oppose_fire
- * @brief Number
- * @note Timed -- oppose heat
- */
- s16b oppose_fire;
- /** @structvar oppose_cold
- * @brief Number
- * @note Timed -- oppose cold
- */
- s16b oppose_cold;
- /** @structvar oppose_pois
- * @brief Number
- * @note Timed -- oppose poison
- */
- s16b oppose_pois;
- /** @structvar oppose_ld
- * @brief Number
- * @note Timed -- oppose light & dark
- */
- s16b oppose_ld;
- /** @structvar oppose_cc
- * @brief Number
- * @note Timed -- oppose chaos & confusion
- */
- s16b oppose_cc;
- /** @structvar oppose_ss
- * @brief Number
- * @note Timed -- oppose sound & shards
- */
- s16b oppose_ss;
- /** @structvar oppose_nex
- * @brief Number
- * @note Timed -- oppose nexus
- */
- s16b oppose_nex;
-
-
- /** @structvar tim_esp
- * @brief Number
- * @note Timed ESP
- */
- s16b tim_esp;
- /** @structvar tim_wraith
- * @brief Number
- * @note Timed wraithform
- */
- s16b tim_wraith;
- /** @structvar tim_ffall
- * @brief Number
- * @note Timed Levitation
- */
- s16b tim_ffall;
- /** @structvar tim_fly
- * @brief Number
- * @note Timed Levitation
- */
- s16b tim_fly;
- /** @structvar tim_fire_aura
- * @brief Number
- * @note Timed Fire Aura
- */
- s16b tim_fire_aura;
- /** @structvar tim_regen
- * @brief Number
- * @note Timed regen
- */
- s16b tim_regen;
- /** @structvar tim_regen_pow
- * @brief Number
- * @note Timed regen
- */
- s16b tim_regen_pow;
- /** @structvar tim_poison
- * @brief Number
- * @note Timed poison hands
- */
- s16b tim_poison;
- /** @structvar tim_thunder
- * @brief Number
- * @note Timed thunderstorm
- */
- s16b tim_thunder;
- /** @structvar tim_thunder_p1
- * @brief Number
- * @note Timed thunderstorm
- */
- s16b tim_thunder_p1;
- /** @structvar tim_thunder_p2
- * @brief Number
- * @note Timed thunderstorm
- */
- s16b tim_thunder_p2;
-
- /** @structvar resist_magic
- * @brief Number
- * @note Timed Resist Magic (later)
- */
- s16b resist_magic;
- /** @structvar tim_invisible
- * @brief Number
- * @note Timed Invisibility
- */
- s16b tim_invisible;
- /** @structvar tim_inv_pow
- * @brief Number
- * @note Power of timed invisibility
- */
- s16b tim_inv_pow;
- /** @structvar tim_mimic
- * @brief Number
- * @note Timed Mimic
- */
- s16b tim_mimic;
- /** @structvar tim_lite
- * @brief Number
- * @note Timed Lite
- */
- s16b tim_lite;
- /** @structvar holy
- * @brief Number
- * @note Holy Aura
- */
- s16b holy;
- /** @structvar walk_water
- * @brief Number
- * @note Walk over water as a god
- */
- s16b walk_water;
- /** @structvar tim_mental_barrier
- * @brief Number
- * @note Sustain Int&Wis
- */
- s16b tim_mental_barrier;
- /** @structvar strike
- * @brief Number
- * @note True Strike(+25 hit)
- */
- s16b strike;
- /** @structvar meditation
- * @brief Number
- * @note Meditation(+50 mana -25 to hit/to dam)
- */
- s16b meditation;
- /** @structvar tim_reflect
- * @brief Number
- * @note Timed Reflection
- */
- s16b tim_reflect;
- /** @structvar tim_res_time
- * @brief Number
- * @note Timed Resistance to Time
- */
- s16b tim_res_time;
- /** @structvar tim_deadly
- * @brief Number
- * @note Timed deadly blow
- */
- s16b tim_deadly;
- /** @structvar prob_travel
- * @brief Number
- * @note Timed probability travel
- */
- s16b prob_travel;
- /** @structvar disrupt_shield
- * @brief Number
- * @note Timed disruption shield
- */
- s16b disrupt_shield;
- /** @structvar parasite
- * @brief Number
- * @note Timed parasite
- */
- s16b parasite;
- /** @structvar parasite_r_idx
- * @brief Number
- * @note Timed parasite monster
- */
- s16b parasite_r_idx;
- /** @structvar loan
- * @brief Number
- */
- u32b loan;
- /** @structvar loan_time
- * @brief Number
- * @note Timer -- loan
- */
- u32b loan_time;
- /** @structvar tim_magic_breath
- * @brief Number
- * @note Magical breathing -- can breath anywhere
- */
- s16b tim_magic_breath;
- /** @structvar tim_water_breath
- * @brief Number
- * @note Water breathing -- can breath underwater
- */
- s16b tim_water_breath;
-
- /** @structvar immov_cntr
- * @brief Number
- * @note Timed -- Last ``immovable'' command.
- */
- s16b immov_cntr;
-
- /** @structvar music_extra
- * @brief Number
- * @note Music songs
- */
- u32b music_extra;
- /** @structvar music_extra2
- * @brief Number
- * @note Music songs
- */
- u32b music_extra2;
-
- /** @structvar chaos_patron
- * @brief Number
- */
- s16b chaos_patron;
-
- /** @structvar recall_dungeon
- * @brief Number
- * @note Recall in which dungeon
- */
- s16b recall_dungeon;
- /** @structvar word_recall
- * @brief Number
- * @note Word of recall counter
- */
- s16b word_recall;
-
- /** @structvar energy
- * @brief Number
- * @note Current energy
- */
- s32b energy;
-
- /** @structvar food
- * @brief Number
- * @note Current nutrition
- */
- s16b food;
-
- /** @structvar confusing
- * @brief Number
- * @note Glowing hands
- */
- byte confusing;
- /** @structvar searching
- * @brief Number
- * @note Currently searching
- */
- byte searching;
-
- /** @structvar new_spells
- * @brief Number
- * @note Number of spells available
- */
- s16b new_spells;
-
- /** @structvar old_spells
- * @brief Number
- */
- s16b old_spells;
-
- /** @structvar xtra_spells
- * @brief Number
- * @note Number of xtra spell learned(via potion)
- */
- s16b xtra_spells;
-
- /** @structvar cur_lite
- * @brief Number
- * @note Radius of lite (if any)
- */
- s16b cur_lite;
-
- /*** Extra flags -- used for lua and easying stuff ***/
- /** @structvar xtra_f1
- * @brief Number
- */
- u32b xtra_f1;
- /** @structvar xtra_f2
- * @brief Number
- */
- u32b xtra_f2;
- /** @structvar xtra_f3
- * @brief Number
- */
- u32b xtra_f3;
- /** @structvar xtra_f4
- * @brief Number
- */
- u32b xtra_f4;
- /** @structvar xtra_f5
- * @brief Number
- */
- u32b xtra_f5;
- /** @structvar xtra_esp
- * @brief Number
- */
- u32b xtra_esp;
-
- /** @structvar pspeed
- * @brief Number
- * @note Current speed
- */
- s16b pspeed;
-
- /** @structvar notice
- * @brief Number
- * @note Special Updates (bit flags)
- */
- u32b notice;
- /** @structvar update
- * @brief Number
- * @note Pending Updates (bit flags)
- */
- u32b update;
- /** @structvar redraw
- * @brief Number
- * @note Normal Redraws (bit flags)
- */
- u32b redraw;
- /** @structvar window
- * @brief Number
- * @note Window Redraws (bit flags)
- */
- u32b window;
-
- /** @structvar stat_use[6]
- * @brief Number
- * @note Current modified stats
- */
- s16b stat_use[6];
- /** @structvar stat_top[6]
- * @brief Number
- * @note Maximal modified stats
- */
- s16b stat_top[6];
-
- /** @structvar stat_add[6]
- * @brief Number
- * @note Modifiers to stat values
- */
- s16b stat_add[6];
- /** @structvar stat_ind[6]
- * @brief Number
- * @note Indexes into stat tables
- */
- s16b stat_ind[6];
- /** @structvar stat_cnt[6]
- * @brief Number
- * @note Counter for temporary drains
- */
- s16b stat_cnt[6];
- /** @structvar stat_los[6]
- * @brief Number
- * @note Amount of temporary drains
- */
- s16b stat_los[6];
-
- /** @structvar immune_acid
- * @brief Boolean
- * @note Immunity to acid
- */
- bool immune_acid;
- /** @structvar immune_elec
- * @brief Boolean
- * @note Immunity to lightning
- */
- bool immune_elec;
- /** @structvar immune_fire
- * @brief Boolean
- * @note Immunity to fire
- */
- bool immune_fire;
- /** @structvar immune_cold
- * @brief Boolean
- * @note Immunity to cold
- */
- bool immune_cold;
- /** @structvar immune_neth
- * @brief Boolean
- * @note Immunity to nether
- */
- bool immune_neth;
-
- /** @structvar resist_acid
- * @brief Boolean
- * @note Resist acid
- */
- bool resist_acid;
- /** @structvar resist_elec
- * @brief Boolean
- * @note Resist lightning
- */
- bool resist_elec;
- /** @structvar resist_fire
- * @brief Boolean
- * @note Resist fire
- */
- bool resist_fire;
- /** @structvar resist_cold
- * @brief Boolean
- * @note Resist cold
- */
- bool resist_cold;
- /** @structvar resist_pois
- * @brief Boolean
- * @note Resist poison
- */
- bool resist_pois;
-
- /** @structvar resist_conf
- * @brief Boolean
- * @note Resist confusion
- */
- bool resist_conf;
- /** @structvar resist_sound
- * @brief Boolean
- * @note Resist sound
- */
- bool resist_sound;
- /** @structvar resist_lite
- * @brief Boolean
- * @note Resist light
- */
- bool resist_lite;
- /** @structvar resist_dark
- * @brief Boolean
- * @note Resist darkness
- */
- bool resist_dark;
- /** @structvar resist_chaos
- * @brief Boolean
- * @note Resist chaos
- */
- bool resist_chaos;
- /** @structvar resist_disen
- * @brief Boolean
- * @note Resist disenchant
- */
- bool resist_disen;
- /** @structvar resist_shard
- * @brief Boolean
- * @note Resist shards
- */
- bool resist_shard;
- /** @structvar resist_nexus
- * @brief Boolean
- * @note Resist nexus
- */
- bool resist_nexus;
- /** @structvar resist_blind
- * @brief Boolean
- * @note Resist blindness
- */
- bool resist_blind;
- /** @structvar resist_neth
- * @brief Boolean
- * @note Resist nether
- */
- bool resist_neth;
- /** @structvar resist_fear
- * @brief Boolean
- * @note Resist fear
- */
- bool resist_fear;
- /** @structvar resist_continuum
- * @brief Boolean
- * @note Resist space-time continuum disruption
- */
- bool resist_continuum;
-
- /** @structvar sensible_fire
- * @brief Boolean
- * @note Fire does more damage on the player
- */
- bool sensible_fire;
- /** @structvar sensible_lite
- * @brief Boolean
- * @note Lite does more damage on the player and blinds her/him
- */
- bool sensible_lite;
-
- /** @structvar reflect
- * @brief Boolean
- * @note Reflect 'bolt' attacks
- */
- bool reflect;
- /** @structvar sh_fire
- * @brief Boolean
- * @note Fiery 'immolation' effect
- */
- bool sh_fire;
- /** @structvar sh_elec
- * @brief Boolean
- * @note Electric 'immolation' effect
- */
- bool sh_elec;
- /** @structvar wraith_form
- * @brief Boolean
- * @note wraithform
- */
- bool wraith_form;
-
- /** @structvar anti_magic
- * @brief Boolean
- * @note Anti-magic
- */
- bool anti_magic;
- /** @structvar anti_tele
- * @brief Boolean
- * @note Prevent teleportation
- */
- bool anti_tele;
-
- /** @structvar sustain_str
- * @brief Boolean
- * @note Keep strength
- */
- bool sustain_str;
- /** @structvar sustain_int
- * @brief Boolean
- * @note Keep intelligence
- */
- bool sustain_int;
- /** @structvar sustain_wis
- * @brief Boolean
- * @note Keep wisdom
- */
- bool sustain_wis;
- /** @structvar sustain_dex
- * @brief Boolean
- * @note Keep dexterity
- */
- bool sustain_dex;
- /** @structvar sustain_con
- * @brief Boolean
- * @note Keep constitution
- */
- bool sustain_con;
- /** @structvar sustain_chr
- * @brief Boolean
- * @note Keep charisma
- */
- bool sustain_chr;
-
- /** @structvar aggravate
- * @brief Boolean
- * @note Aggravate monsters
- */
- bool aggravate;
- /** @structvar teleport
- * @brief Boolean
- * @note Random teleporting
- */
- bool teleport;
-
- /** @structvar exp_drain
- * @brief Boolean
- * @note Experience draining
- */
- bool exp_drain;
- /** @structvar drain_mana
- * @brief Number
- * @note mana draining
- */
- byte drain_mana;
- /** @structvar drain_life
- * @brief Number
- * @note hp draining
- */
- byte drain_life;
-
- /** @structvar magical_breath
- * @brief Boolean
- * @note Magical breathing -- can breath anywhere
- */
- bool magical_breath;
- /** @structvar water_breath
- * @brief Boolean
- * @note Water breathing -- can breath underwater
- */
- bool water_breath;
- /** @structvar climb
- * @brief Boolean
- * @note Can climb mountains
- */
- bool climb;
- /** @structvar fly
- * @brief Boolean
- * @note Can fly over some features
- */
- bool fly;
- /** @structvar ffall
- * @brief Boolean
- * @note No damage falling
- */
- bool ffall;
- /** @structvar lite
- * @brief Boolean
- * @note Permanent light
- */
- bool lite;
- /** @structvar free_act
- * @brief Boolean
- * @note Never paralyzed
- */
- bool free_act;
- /** @structvar see_inv
- * @brief Boolean
- * @note Can see invisible
- */
- bool see_inv;
- /** @structvar regenerate
- * @brief Boolean
- * @note Regenerate hit pts
- */
- bool regenerate;
- /** @structvar hold_life
- * @brief Boolean
- * @note Resist life draining
- */
- bool hold_life;
- /** @structvar telepathy
- * @brief Number
- * @note Telepathy
- */
- u32b telepathy;
- /** @structvar slow_digest
- * @brief Boolean
- * @note Slower digestion
- */
- bool slow_digest;
- /** @structvar bless_blade
- * @brief Boolean
- * @note Blessed blade
- */
- bool bless_blade;
- /** @structvar xtra_might
- * @brief Number
- * @note Extra might bow
- */
- byte xtra_might;
- /** @structvar impact
- * @brief Boolean
- * @note Earthquake blows
- */
- bool impact;
- /** @structvar auto_id
- * @brief Boolean
- * @note Auto id items
- */
- bool auto_id;
-
- /** @structvar dis_to_h
- * @brief Number
- * @note Known bonus to hit
- */
- s16b dis_to_h;
- /** @structvar dis_to_d
- * @brief Number
- * @note Known bonus to dam
- */
- s16b dis_to_d;
- /** @structvar dis_to_a
- * @brief Number
- * @note Known bonus to ac
- */
- s16b dis_to_a;
-
- /** @structvar dis_ac
- * @brief Number
- * @note Known base ac
- */
- s16b dis_ac;
-
- /** @structvar to_m
- * @brief Number
- * @note Bonus to mana
- */
- s16b to_m;
- /** @structvar to_s
- * @brief Number
- * @note Bonus to spell
- */
- s16b to_s;
- /** @structvar to_h
- * @brief Number
- * @note Bonus to hit
- */
- s16b to_h;
- /** @structvar to_d
- * @brief Number
- * @note Bonus to dam
- */
- s16b to_d;
- /** @structvar to_a
- * @brief Number
- * @note Bonus to ac
- */
- s16b to_a;
-
- /** @structvar to_h_melee
- * @brief Number
- * @note Bonus to hit
- */
- s16b to_h_melee;
- /** @structvar to_d_melee
- * @brief Number
- * @note Bonus to dam
- */
- s16b to_d_melee;
-
- /** @structvar to_h_ranged
- * @brief Number
- * @note Bonus to hit
- */
- s16b to_h_ranged;
- /** @structvar to_d_ranged
- * @brief Number
- * @note Bonus to dam
- */
- s16b to_d_ranged;
-
- /** @structvar num_blow
- * @brief Number
- * @note Number of blows
- */
- s16b num_blow;
- /** @structvar num_fire
- * @brief Number
- * @note Number of shots
- */
- s16b num_fire;
-
- /** @structvar ac
- * @brief Number
- * @note Base ac
- */
- s16b ac;
-
- /** @structvar antimagic
- * @brief Number
- * @note Power of the anti magic field
- */
- byte antimagic;
- /** @structvar antimagic_dis
- * @brief Number
- * @note Radius of the anti magic field
- */
- byte antimagic_dis;
-
- /** @structvar see_infra
- * @brief Number
- * @note Infravision range
- */
- s16b see_infra;
-
- /** @structvar skill_dis
- * @brief Number
- * @note Skill: Disarming
- */
- s16b skill_dis;
- /** @structvar skill_dev
- * @brief Number
- * @note Skill: Magic Devices
- */
- s16b skill_dev;
- /** @structvar skill_sav
- * @brief Number
- * @note Skill: Saving throw
- */
- s16b skill_sav;
- /** @structvar skill_stl
- * @brief Number
- * @note Skill: Stealth factor
- */
- s16b skill_stl;
- /** @structvar skill_srh
- * @brief Number
- * @note Skill: Searching ability
- */
- s16b skill_srh;
- /** @structvar skill_fos
- * @brief Number
- * @note Skill: Searching frequency
- */
- s16b skill_fos;
- /** @structvar skill_thn
- * @brief Number
- * @note Skill: To hit (normal)
- */
- s16b skill_thn;
- /** @structvar skill_thb
- * @brief Number
- * @note Skill: To hit (shooting)
- */
- s16b skill_thb;
- /** @structvar skill_tht
- * @brief Number
- * @note Skill: To hit (throwing)
- */
- s16b skill_tht;
- /** @structvar skill_dig
- * @brief Number
- * @note Skill: Digging
- */
- s16b skill_dig;
-
- /** @structvar skill_points
- * @brief Number
- */
- s16b skill_points;
-
- /** @structvar control
- * @brief Number
- * @note Controlled monster
- */
- s16b control;
- /** @structvar control_dir
- * @brief Number
- * @note Controlled monster
- */
- byte control_dir;
- /** @structvar companion_killed
- * @brief Number
- * @note Number of companion death
- */
- s16b companion_killed;
- /** @structvar black_breath
- * @brief Boolean
- * @note The Tolkien's Black Breath
- */
- bool black_breath;
- /** @structvar body_monster
- * @brief Number
- * @note In which body is the player
- */
- u16b body_monster;
-
- /** @structvar body_parts[28]
- * @brief Number
- * @note Various body modifiers
- */
- byte body_parts[28];
-
- /** @structvar powers_mod[POWER_MAX_INIT]
- * @brief Boolean
- * @note Intrinsinc powers
- */
- bool powers_mod[POWER_MAX_INIT];
- /** @structvar powers[power_max]
- * @brief Boolean
- */
- bool powers[power_max];
-
- /** @structvar spellbinder_num
- * @brief Number
- * @note Number of spells bound
- */
- byte spellbinder_num;
- /** @structvar spellbinder[4]
- * @brief Number
- * @note Spell bounds
- */
- u32b spellbinder[4];
- /** @structvar spellbinder_trigger
- * @brief Number
- * @note Spellbinder trigger condition
- */
- byte spellbinder_trigger;
-
- /* Corruptions */
- /** @structvar corruptions_aux;
- * @brief Boolean
- */
- bool corruptions[max_corruptions] @ corruptions_aux;
-
- /* Astral */
- /** @structvar astral
- * @brief Boolean
- * @note We started at the bottom ?
- */
- bool astral;
-
- /*** Temporary fields ***/
-
- /** @structvar leaving
- * @brief Boolean
- * @note True if player is leaving
- */
- bool leaving;
-};
-
-/** @name Spellbinder triggers
- * @{ */
-/** @def SPELLBINDER_HP75
- * @note Trigger spellbinder at 75% maximum hit points */
-#define SPELLBINDER_HP75 1
-
-/** @def SPELLBINDER_HP50
- * @note Trigger spellbinder at 50% maximum hit points */
-#define SPELLBINDER_HP50 2
-
-/** @def SPELLBINDER_HP25
- * @note Trigger spellbinder at 25% maximum hit points */
-#define SPELLBINDER_HP25 3
-/** @} */
-
-
-/** @struct player_race
- */
-struct player_race
-{
- /** @structvar title
- * @brief Number
- * @note Type of race
- */
- s32b title;
- /** @structvar desc
- * @brief Number
- */
- s32b desc;
-
- /** @structvar infra
- * @brief Number
- * @note Infra-vision range
- */
- byte infra;
-};
-
-/** @struct player_race_mod
- */
-struct player_race_mod
-{
- /** @structvar title
- * @brief Number
- * @note Type of race mod
- */
- s32b title;
- /** @structvar desc
- * @brief Number
- * @note Desc
- */
- s32b desc;
- /** @structvar place
- * @brief Boolean
- * @note TRUE = race race modifier, FALSE = Race modifier race
- */
- bool place;
-
- /** @structvar r_adj[6]
- * @brief Number
- * @note (+) Racial stat bonuses
- */
- s16b r_adj[6];
-
- /** @structvar luck
- * @brief String
- * @note Luck
- */
- char luck;
- /** @structvar mana
- * @brief Number
- * @note Mana %
- */
- s16b mana;
-
- /** @structvar r_dis
- * @brief Number
- * @note (+) disarming
- */
- s16b r_dis;
- /** @structvar r_dev
- * @brief Number
- * @note (+) magic devices
- */
- s16b r_dev;
- /** @structvar r_sav
- * @brief Number
- * @note (+) saving throw
- */
- s16b r_sav;
- /** @structvar r_stl
- * @brief Number
- * @note (+) stealth
- */
- s16b r_stl;
- /** @structvar r_srh
- * @brief Number
- * @note (+) search ability
- */
- s16b r_srh;
- /** @structvar r_fos
- * @brief Number
- * @note (+) search frequency
- */
- s16b r_fos;
- /** @structvar r_thn
- * @brief Number
- * @note (+) combat (normal)
- */
- s16b r_thn;
- /** @structvar r_thb
- * @brief Number
- * @note (+) combat (shooting)
- */
- s16b r_thb;
-
- /** @structvar r_mhp
- * @brief String
- * @note (+) Race mod hit-dice modifier
- */
- char r_mhp;
- /** @structvar r_exp
- * @brief Number
- * @note (+) Race mod experience factor
- */
- s16b r_exp;
-
- /** @structvar b_age
- * @brief String
- * @note (+) base age
- */
- char b_age;
- /** @structvar m_age
- * @brief String
- * @note (+) mod age
- */
- char m_age;
-
- /** @structvar m_b_ht
- * @brief String
- * @note (+) base height (males)
- */
- char m_b_ht;
- /** @structvar m_m_ht
- * @brief String
- * @note (+) mod height (males)
- */
- char m_m_ht;
- /** @structvar m_b_wt
- * @brief String
- * @note (+) base weight (males)
- */
- char m_b_wt;
- /** @structvar m_m_wt
- * @brief String
- * @note (+) mod weight (males)
- */
- char m_m_wt;
-
- /** @structvar f_b_ht
- * @brief String
- * @note (+) base height (females)
- */
- char f_b_ht;
- /** @structvar f_m_ht
- * @brief String
- * @note (+) mod height (females)
- */
- char f_m_ht;
- /** @structvar f_b_wt
- * @brief String
- * @note (+) base weight (females)
- */
- char f_b_wt;
- /** @structvar f_m_wt
- * @brief String
- * @note (+) mod weight (females)
- */
- char f_m_wt;
-
- /** @structvar infra
- * @brief String
- * @note (+) Infra-vision range
- */
- char infra;
-
- /** @structvar choice[2]
- * @brief Number
- * @note Legal race choices
- */
- u32b choice[2];
-
- /** @structvar pclass[2]
- * @brief Number
- * @note Classes allowed
- */
- u32b pclass[2];
- /** @structvar mclass[2]
- * @brief Number
- * @note Classes restricted
- */
- u32b mclass[2];
-
- /** @structvar powers[4]
- * @brief Number
- * @note Powers of the subrace
- */
- s16b powers[4];
-
- /** @structvar body_parts[BODY_MAX]
- * @brief String
- * @note To help to decide what to use when body changing
- */
- char body_parts[BODY_MAX];
-
- /** @structvar flags1
- * @brief Number
- */
- u32b flags1;
- /** @structvar flags2
- * @brief Number
- * @note flags
- */
- u32b flags2;
-
- /** @structvar oflags1[51]
- * @brief Number
- */
- u32b oflags1[51];
- /** @structvar oflags2[51]
- * @brief Number
- */
- u32b oflags2[51];
- /** @structvar oflags3[51]
- * @brief Number
- */
- u32b oflags3[51];
- /** @structvar oflags4[51]
- * @brief Number
- */
- u32b oflags4[51];
- /** @structvar oflags5[51]
- * @brief Number
- */
- u32b oflags5[51];
- /** @structvar oesp[51]
- * @brief Number
- */
- u32b oesp[51];
- /** @structvar opval[51]
- * @brief Number
- */
- s16b opval[51];
-
- /** @structvar g_attr
- * @brief Number
- * @note Overlay graphic attribute
- */
- byte g_attr;
- /** @structvar g_char
- * @brief String
- * @note Overlay graphic character
- */
- char g_char;
-
- /** @structvar skill_basem[MAX_SKILLS]
- * @brief String
- */
- char skill_basem[MAX_SKILLS];
- /** @structvar skill_base[MAX_SKILLS]
- * @brief Number
- */
- u32b skill_base[MAX_SKILLS];
- /** @structvar skill_modm[MAX_SKILLS]
- * @brief String
- */
- char skill_modm[MAX_SKILLS];
- /** @structvar skill_mod[MAX_SKILLS]
- * @brief Number
- */
- s16b skill_mod[MAX_SKILLS];
-};
-
-/** @var energy_use
- * @brief Number
- * @note Energy use for an action (0 if action does not take a turn).
- */
-extern s32b energy_use;
-
-/** @var player;
- * @brief player_type
- * @note The player.
- */
-extern player_type *p_ptr @ player;
-
-/** @var max_rp_idx
- * @brief Number
- * @note Maximum number of entries in player race array.
- */
-extern u16b max_rp_idx;
-
-/** @var race_info[max_rp_idx]
- * @brief player_race
- * @note Array of player races.
- */
-extern player_race race_info[max_rp_idx];
-
-/** @var *rp_name
- * @brief String
- * @note Name of player race.
- */
-extern char *rp_name;
-
-/** @var *rp_text
- * @brief String
- */
-extern char *rp_text;
-
-/** @var max_rmp_idx
- * @brief Number
- * @note Maximum number of player subraces.
- */
-extern u16b max_rmp_idx;
-
-/** @var _mod race_mod_info[max_rmp_idx]
- * @brief player_race
- * @note Array of player subraces.
- */
-extern player_race_mod race_mod_info[max_rmp_idx];
-
-/** @var *rmp_name
- * @brief String
- * @note Name of player subrace.
- */
-extern char *rmp_name;
-
-/** @var *rmp_text
- * @brief String
- */
-extern char *rmp_text;
-
-/** @var class_info[max_c_idx]
- * @brief player_class
- * @note Array of classes.
- */
-extern player_class class_info[max_c_idx];
-
-/** @var *c_name
- * @brief String
- * @note Name of player class.
- */
-extern char *c_name;
-
-/** @var *c_text
- * @brief String
- */
-extern char *c_text;
-
-/** @var flush_failure
- * @brief Boolean
- * @note TRUE if flush input on any failure, otherwise FALSE.
- */
-extern bool flush_failure;
-
-/** @fn set_roots(int v, s16b ac, s16b dam)
- * @brief Player has timed roots.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @param ac Number \n bonus to AC
- * @brief AC bonus
- * @param dam Number \n bonus to melee to-damage
- * @brief To-damage bonus
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_roots(int v, s16b ac, s16b dam);
-
-/** @fn set_shadow(int v)
- * @brief Player has wraith form.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_shadow(int v);
-
-/** @fn set_parasite(int v, int r)
- * @brief Player has timed parasite.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @param r Number \n index of race in monster race array
- * @brief Parasite race index
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * When the time remaining reaches 0, there is an 80% chance the parasite will
- * be born, otherwise it will die away.
- * @note (see file xtra2.c)
- */
-extern bool set_parasite(int v, int r);
-
-/** @fn set_disrupt_shield(int v)
- * @brief Player has timed disrupt shield (feels invulnerable).\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_disrupt_shield(int v);
-
-/** @fn set_prob_travel(int v)
- * @brief Player has timed probability travel.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_prob_travel(int v);
-
-/** @fn set_project(int v, s16b gf, s16b dam, s16b rad, s16b flag)
- * @brief Player's weapon has a spell effect.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @param gf Number \n spell effect
- * @brief Spell effect
- * @param dam Number \n damage caused by spell effect
- * @brief Spell damage
- * @param rad Number \n radius of spell effect
- * @brief Spell radius
- * @param flag Number \n spell projection effect
- * @brief Spell properties
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_project(int v, s16b gf, s16b dam, s16b rad, s16b flag);
-
-/** @fn set_tim_deadly(int v)
- * @brief Player has deadly accuracy.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_deadly(int v);
-
-/** @fn set_tim_res_time(int v)
- * @brief Player has timed time resistance.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_res_time(int v);
-
-/** @fn set_tim_reflect(int v)
- * @brief Player has timed reflection.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_reflect(int v);
-
-/** @fn set_meditation(int v)
- * @brief Player can meditate (forcibly pseudo-id).\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_meditation(int v);
-
-/** @fn set_strike(int v)
- * @brief Player has true strike.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_strike(int v);
-
-/** @fn set_walk_water(int v)
- * @brief Player can walk on water.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_walk_water(int v);
-
-/** @fn set_tim_ffall(int v)
- * @brief Player has timed levitation (feather-fall).\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_ffall(int v);
-
-/** @fn set_tim_fire_aura(int v)
- * @brief Player has a timed fiery aura.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_fire_aura(int v);
-
-/** @fn set_tim_regen(int v, int p)
- * @brief Player has timed regeneration.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @param p Number \n power of regeneration
- * @brief Regeneration power
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_regen(int v, int p);
-
-/** @fn set_holy(int v)
- * @brief Player has a timed holy aura.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_holy(int v);
-
-/** @fn set_grace(s32b v)
- * @brief Set the amount of grace a player has with a god.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range -30,000 to 30,000)
- * @brief Grace
- * @note (see file xtra2.c)
- */
-extern void set_grace(s32b v);
-
-/** @fn set_mimic(int v, int p, int level)
- * @brief Player has mimic form.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @param p Number \n the mimic form
- * @brief Mimic form
- * @param level Number \n the level of the mimic form
- * @brief Mimic level
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_mimic(int v, int p, int level);
-
-/** @fn set_no_breeders(int v)
- * @brief Player has timed breeder prevention.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_no_breeders(int v);
-
-/** @fn set_tim_esp(int v)
- * @brief Player has timed ESP.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_esp(int v);
-
-/** @fn set_invis(int v, int p)
- * @brief Player has timed invisibility.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @param p Number \n power of invisibility
- * @brief Invisibility power
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_invis(int v, int p);
-
-/** @fn set_lite(int v)
- * @brief Player has timed light.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Note the use of "PU_VIEW", which is needed to
- * memorize any terrain features which suddenly become "visible".
- * @note
- * Note that blindness is currently the only thing which can affect
- * "player_can_see_bold()".
- * @note (see file xtra2.c)
- */
-extern bool set_lite(int v);
-
-/** @fn set_blind(int v)
- * @brief Player has timed blindness.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Note the use of "PU_UN_VIEW", which is needed to memorize any terrain
- * features which suddenly become "visible".
- * @note
- * Note that blindness is currently the only thing which can affect
- * "player_can_see_bold()".
- * @note (see file xtra2.c)
- */
-extern bool set_blind(int v);
-
-/** @fn set_confused(int v)
- * @brief Player has timed confusion.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_confused(int v);
-
-/** @fn set_poisoned(int v)
- * @brief Player has timed poisoning.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_poisoned(int v);
-
-/** @fn set_afraid(int v)
- * @brief Player has timed fear.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_afraid(int v);
-
-/** @fn set_paralyzed(int v)
- * @brief Player has timed paralysis.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_paralyzed(int v);
-
-/** @fn set_image(int v)
- * @brief Player has timed hallucination.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Note that we must redraw the map when hallucination changes.
- * @note (see file xtra2.c)
- */
-extern bool set_image(int v);
-
-/** @fn set_fast(int v, int p)
- * @brief Player has timed speed boost.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @param p Number \n speed factor
- * @brief Speed factor
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_fast(int v, int p);
-
-/** @fn set_light_speed(int v)
- * @brief Player has timed light speed.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_light_speed(int v);
-
-/** @fn set_slow(int v)
- * @brief Player has timed slowness.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_slow(int v);
-
-/** @fn set_shield(int v, int p, s16b o, s16b d1, s16b d2)
- * @brief Player has timed mystic shield.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @param p Number \n bonus to AC
- * @brief AC bonus
- * @param o Number \n type of shield (see SHIELD_foo fields)
- * @brief Shield type
- * @param d1 Number \n number of dice for damage roll
- * @brief Damage dice
- * @param d2 Number \n number of sides per die for damage roll
- * @brief Damage sides
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_shield(int v, int p, s16b o, s16b d1, s16b d2);
-
-/* For calc_bonus hooks */
-/** @fn apply_flags(u32b f1, u32b f2, u32b f3, u32b f4, u32b f5, u32b esp, s16b pval = 0, s16b tval = 0, s16b to_h = 0, s16b to_d = 0, s16b to_a = 0)
- * @brief Apply flags and values to the player.\n
- * @param f1 Number \n flags to be applied to the player
- * @brief Flag1
- * @param f2 Number \n flags to be applied to the player
- * @brief Flag2
- * @param f3 Number \n flags to be applied to the player
- * @brief Flag3
- * @param f4 Number \n flags to be applied to the player
- * @brief Flag4
- * @param f5 Number \n flags to be applied to the player
- * @brief Flag5
- * @param esp Number \n ESP flag
- * @brief Esp flag
- * @param pval Number \n PVal to be applied to the player
- * @brief Pval
- * @param tval Number \n TVal to be applied to the player
- * @brief Tval
- * @param to_h Number \n to-hit bonus to be applied to the player
- * @brief To-hit
- * @param to_d Number \n to-damage bonus to be applied to the player
- * @brief To-damage
- * @param to_a Number \n AC bonus to be applied to the player
- * @brief AC
- * @note
- * f1 can apply to attribuets, spell power, mana capacity, stealth, searching
- * ability and frequency, infravision, digging, speed, extra blows, and
- * earthquakes.
- * @note
- * f2 can apply to life capacity, sensible fire, invisibility, free action,
- * hold life, immunities (except neither), resistances, reflection, and
- * sustains.
- * @note
- * f3 can apply to extra shots, aggravate, teleport, drain XP, blessed, extra
- * might, slow digestion, regeneration, lite, see invisible, wraith form,
- * feather fall, fire sheath, electricity sheath, anti magic, and anti
- * teleport.
- * @note
- * f4 can apply to lite, flying, climbing, nether immunity, precognition, and
- * anti-magic power and radius.
- * @note
- * f5 can apply to luck, critical hits, drain mana, drain life, immovable,
- * water breath, and magic breath.
- * @note
- * esp can apply to, well, just telepathy.
- * @note
- * pval can apply to attributes, luck, spell power, mana capacity, life
- * capacity, stealth, search ability and frequency (x 5), infravision, digging
- * (x 20), speed, extra blows, critical blows, invisibility (x 10), extra
- * might, anti-magic power and radius.
- * @note
- * tval can apply to lite
- * @note
- * to_h, to_d, and to_ac can apply to anti-magic power and radius.
- * @note (see file xtra1.c)
- */
-extern void apply_flags(u32b f1, u32b f2, u32b f3, u32b f4, u32b f5, u32b esp, s16b pval = 0, s16b tval = 0, s16b to_h = 0, s16b to_d = 0, s16b to_a = 0);
-
-/** @name Shield effect options
- * @{ */
-/** @def SHIELD_NONE */
-#define SHIELD_NONE 0x0000
-
-/** @def SHIELD_COUNTER */
-#define SHIELD_COUNTER 0x0001
-
-/** @def SHIELD_FIRE */
-#define SHIELD_FIRE 0x0002
-
-/** @def SHIELD_GREAT_FIRE */
-#define SHIELD_GREAT_FIRE 0x0004
-
-/** @def SHIELD_FEAR */
-#define SHIELD_FEAR 0x0008
-/** @} */
-
-
-/** @fn set_tim_thunder(int v, int p1, int p2)
- * @brief Player has timed thunderstorm.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @param p1 Number \n number of dice for damage roll
- * @brief Damage dice
- * @param p2 Number \n number of sides per die for damage roll
- * @brief Damage sides
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_thunder(int v, int p1, int p2);
-
-/** @fn set_tim_breath(int v, bool magical)
- * @brief Player has timed magic/water breath.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @param magical Boolean \n TRUE if player has magic breath, or FALSE if the
- * player has water breath
- * @brief Magic breath?
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_breath(int v, bool magical);
-
-/** @fn set_tim_fly(int v)
- * @brief Player has timed flight.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_fly(int v);
-
-/** @fn set_blessed(int v)
- * @brief Player has timed blessing.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Blessing gives +5 bonus AC and +10 bonus to-hit.
- * @note (see file xtra2.c)
- */
-extern bool set_blessed(int v);
-
-/** @fn set_hero(int v)
- * @brief Player has timed heroism.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Heroism gives +10 bonus max HP, +12 bonus to-hit, and resist fear.
- * @note (see file xtra2.c)
- */
-extern bool set_hero(int v);
-
-/** @fn set_shero(int v)
- * @brief Player has timed berserk strength.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Berserk strength gives +30 bonus max HP, +24 bonus to-hit, -10 penalty AC,
- * and resist fear.
- * @note (see file xtra2.c)
- */
-extern bool set_shero(int v);
-
-/** @fn set_protevil(int v)
- * @brief Player has timed protection from evil.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Protection from evil gives the player a chance to repel evil monsters.
- * @note (see file xtra2.c)
- */
-extern bool set_protevil(int v);
-
-/** @fn set_protgood(int v)
- * @brief Player has timed protection from good.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Protection from good gives the player a chance to repel good monsters.
- * @note (see file xtra2.c)
- */
-extern bool set_protgood(int v);
-
-/** @fn set_protundead(int v)
- * @brief Player has timed protection from undead.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Protection from undead protects against getting the Black Breath in a melee
- * attack.
- * @note (see file xtra2.c)
- */
-extern bool set_protundead(int v);
-
-/** @fn set_invuln(int v)
- * @brief Player has timed invulnerability.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Invulnerability prevents damage from walking on lava, walking the Straight
- * Road, poison, cuts, and starvation. It gives +100 bonus to AC.
- * @note
- * It can be ended by the player attacking a monster, firing a missile,
- * throwing an object, or activating a power.
- * @note (see file xtra2.c)
- */
-extern bool set_invuln(int v);
-
-/** @fn set_tim_invis(int v)
- * @brief Player has timed "see invisibile".\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_invis(int v);
-
-/** @fn set_tim_infra(int v)
- * @brief Player has timed infravision.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_tim_infra(int v);
-
-/** @fn set_mental_barrier(int v)
- * @brief Player has timed mental barrier.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Mental barrier sustains intelligence and wisdom.
- * @note (see file xtra2.c)
- */
-extern bool set_mental_barrier(int v);
-
-/** @fn set_poison(int v)
- * @brief Player has timed poison hands.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_poison(int v);
-
-/** @fn set_oppose_acid(int v)
- * @brief Player has timed acid resistance.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_oppose_acid(int v);
-
-/** @fn set_oppose_elec(int v)
- * @brief Player has timed electricity resistance.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_oppose_elec(int v);
-
-/** @fn set_oppose_fire(int v)
- * @brief Player has timed fire resistance.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_oppose_fire(int v);
-
-/** @fn set_oppose_cold(int v)
- * @brief Player has timed cold resistance.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_oppose_cold(int v);
-
-/** @fn set_oppose_pois(int v)
- * @brief Player has timed poison resistance.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_oppose_pois(int v);
-
-/** @fn set_oppose_ld(int v)
- * @brief Player has timed light and dark resistance.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_oppose_ld(int v);
-
-/** @fn set_oppose_cc(int v)
- * @brief Player has timed chaos and confusion resistance.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_oppose_cc(int v);
-
-/** @fn set_oppose_ss(int v)
- * @brief Player has timed sound and shard resistance.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_oppose_ss(int v);
-
-/** @fn set_oppose_nex(int v)
- * @brief Player has timed nexus resistance.\n
- * @param v Number \n time remaining until effect expires
- * (must be in the range 0 to 10,000)
- * @brief Time remaining
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note (see file xtra2.c)
- */
-extern bool set_oppose_nex(int v);
-
-/** @fn set_stun(int v)
- * @brief Player stun level changes.\n
- * @param v Number \n the level of stun (must be in the range 0 to 10,000)
- * @brief Stun level
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Note the special code to only notice "range" changes.
- * @note
- * Some races resist stunning.
- * @note
- * There is a v chance in 1000 or 1 in 16 that a stun will be the result of
- * a vicious blow to the head. If so, the player will lose a point of
- * intelligence, or wisdom, or both unless the stat is sustained.
- * @note (see file xtra2.c)
- */
-extern bool set_stun(int v);
-
-/** @fn set_cut(int v)
- * @brief Player cut level changes.\n
- * @param v Number \n the level of cut (must be in the range 0 to 10,000)
- * @brief Cut level
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * Note the special code to only notice "range" changes.
- * @note
- * Some races resist cutting.
- * @note
- * There is a v chance in 1000 or 1 in 16 that a cut will result in scarrring.
- * If so, the player will lose a point of charisma unless it is sustained.
- * @note (see file xtra2.c)
- */
-extern bool set_cut(int v);
-
-/** @fn set_food(int v)
- * @brief Player hunger level changes.\n
- * @param v Number \n the level of cut (must be in the range 0 to 10,000)
- * @brief Cut level
- * @return Boolean \n TRUE if player notices the effect, otherwise FALSE.
- * @note
- * The "p_ptr->food" variable can get as large as 20000, allowing the
- * addition of the most "filling" item, Elvish Waybread, which adds
- * 7500 food units, without overflowing the 32767 maximum limit.
- * @note
- * Perhaps we should disturb the player with various messages,
- * especially messages about hunger status changes. XXX XXX XXX
- * @note
- * Digestion of food is handled in "dungeon.c", in which, normally,
- * the player digests about 20 food units per 100 game turns, more
- * when "fast", more when "regenerating", less with "slow digestion",
- * but when the player is "gorged", he digests 100 food units per 10
- * game turns, or a full 1000 food units per 100 game turns.
- * @note
- * Note that the player's speed is reduced by 10 units while gorged,
- * so if the player eats a single food ration (5000 food units) when
- * full (15000 food units), he will be gorged for (5000/100)*10 = 500
- * game turns, or 500/(100/5) = 25 player turns (if nothing else is
- * affecting the player speed).
- * @note (see file xtra2.c)
- */
-extern bool set_food(int v);
-
-/** @name Hunger flags
- * @brief Player "food" crucial values
- * @{ */
-/** @def PY_FOOD_MAX
- * @note Food value (Bloated)
- */
-#define PY_FOOD_MAX 15000
-/** @def PY_FOOD_FULL
- * @note Food value (Normal)
- */
-#define PY_FOOD_FULL 10000
-/** @def PY_FOOD_ALERT
- * @note Food value (Hungry)
- */
-#define PY_FOOD_ALERT 2000
-/** @def PY_FOOD_WEAK
- * @note Food value (Weak)
- */
-#define PY_FOOD_WEAK 1000
-/** @def PY_FOOD_FAINT
- * @note Food value (Fainting)
- */
-#define PY_FOOD_FAINT 500
-/** @def PY_FOOD_STARVE
- * @note Food value (Starving)
- */
-#define PY_FOOD_STARVE 100
-/** @} */
-
-/** @fn check_experience(void)
- * @brief Check if player experience level has changed.\n
- * @note
- * If a player has achieved a level for the first time, give a corruption
- * (1 chance in 3) if it applies, increase skill points, check ability levels,
- * and add a note if notes are taken.
- * @note (see file xtra2.c)
- */
-extern void check_experience(void);
-
-/** @fn check_experience_obj(object_type *o_ptr)
- * @brief Check if object "o_ptr" experience level has changed.\n
- * @param *o_ptr object_type \n the object
- * @brief Object
- * @note
- * If an object has achieved a level for the first time, apply gains.
- * @note (see file xtra2.c)
- */
-extern void check_experience_obj(object_type *o_ptr);
-
-/** @fn gain_exp(s32b amount)
- * @brief Gain "amount" of experience.\n
- * @param amount Number \n the experience points to gain.
- * @brief Experience
- * @note
- * Count the number of objects which will gain experience. The objects share
- * equally 2/3 of "amount". Give corruption if it applies. Gain experience.
- * If experience is less than maximum, then increase maximum experience by 20%
- * of "amount". Check for level change and print experience (check_experience).
- * @note (see file xtra2.c)
- */
-extern void gain_exp(s32b amount);
-
-/** @fn lose_exp(s32b amount)
- * @brief Decrease experience by "amount".\n
- * @param amount Number \n the experience points to lose.
- * @brief Experience
- * @note
- * Experience can not fall below zero. Check for level change and print
- * experience (check_experience).
- * @note (see file xtra2.c)
- */
-extern void lose_exp(s32b amount);
-
-/** @fn no_lite(void)
- * @brief Return true if the player's grid is dark.
- * @return Boolean \n TRUE if the player's grid is dark, otherwise FALSE.
- * @note (see file cave.c)
- */
-extern bool no_lite(void);
-
-/** @var dun_level
- * @brief Number
- * @note Current dungeon level
- */
-extern s16b dun_level;
-
-
-/** @name Gods
- * @{ */
-/** @def GOD_ALL */
-#define GOD_ALL -1
-
-/** @def GOD_NONE */
-#define GOD_NONE 0
-
-/** @def GOD_ERU */
-#define GOD_ERU 1
-
-/** @def GOD_MANWE */
-#define GOD_MANWE 2
-
-/** @def GOD_TULKAS */
-#define GOD_TULKAS 3
-
-/** @def GOD_MELKOR */
-#define GOD_MELKOR 4
-
-/** @def GOD_YAVANNA */
-#define GOD_YAVANNA 5
-/** @} */
-
-
-/** @fn inc_piety(int god, s32b amt)
- * @brief Increase piety for god "god" by amount "amt".\n
- * @param god Number \n the god
- * @brief God
- * @param amt Number \n the amount of piety
- * @brief Piety
- * @note
- * If the player worships all gods, or "god", the piety (grace) will increase.
- * @note (see file gods.c)
- */
-extern void inc_piety(int god, s32b amt);
-
-/** @fn abandon_god(int god)
- * @brief Player renounces their religion.\n
- * @param god Number \n the god
- * @brief God
- * @note
- * If the player worships all gods or "god", the player worships no god and
- * the piety score is set to 0.
- * @note (see file gods.c)
- */
-extern void abandon_god(int god);
-
-/** @fn wisdom_scale(int max)
- * @brief Rescale the wisdom value to a 0 <-> max range.\n
- * @param max Number \n the new maximum value of the rescaled wisdom
- * @brief New maximum wisdom
- * @return Number \n The rescaled value of player wisdom.
- * @note (see file gods.c)
- */
-extern int wisdom_scale(int max);
-
-/** @fn follow_god(int god, bool silent)
- * @brief Player starts to follow god "god".\n
- * @param god Number \n the god
- * @brief God
- * @param silent Boolean \n TRUE if Melkor message is displayed, otherwise
- * FALSE.
- * @brief Show message?
- * @note
- * Unbelievers can not follow a god.
- * @note
- * If the player does not worship a god, they start worshipping "god". If the
- * god is Melkor, the player gains the Udun skill (show a message if silent is
- * FALSE).
- * @note (see file gods.c)
- */
-extern void follow_god(int god, bool silent);
-
-/** @fn add_new_gods(char *name)
- * @brief Add a new god to the deity array.\n
- * @param *name String \n the name of the god
- * @brief God name
- * @return Number \n The index of the new god inthe deity array.
- * @note (see file lua_bind.c)
- */
-extern s16b add_new_gods(char *name);
-
-/** @fn desc_god(int g_idx, int d, char *desc)
- * @brief Return line "d" of the description of god with god index "g_idx".\n
- * @param g_idx Number \n the index of god in the deity array.
- * @brief God index
- * @param d Number \n the line of the description
- * (must be in the range 0 to 9).
- * @brief Line of description
- * @param *desc String
- * @brief Description
- * @return *desc String \n Line "d" of the god description.
- * @note (see file lua_bind.c)
- */
-extern void desc_god(int g_idx, int d, char *desc);
-
-/** @name Powers
- * @{ */
-/** @def PWR_SPIT_ACID
- * @note Spit acid (GF_ACID) */
-#define PWR_SPIT_ACID 0
-
-/** @def PWR_BR_FIRE
- * @note Breathe fire (GF_FIRE) */
-#define PWR_BR_FIRE 1
-
-/** @def PWR_HYPN_GAZE
- * @note Hypnotic gaze */
-#define PWR_HYPN_GAZE 2
-
-/** @def PWR_TELEKINES
- * @note Telekinesis (fetch an object) */
-#define PWR_TELEKINES 3
-
-/** @def PWR_VTELEPORT
- * @note Teleport */
-#define PWR_VTELEPORT 4
-
-/** @def PWR_MIND_BLST
- * @note Mind blast (GF_PSI) */
-#define PWR_MIND_BLST 5
-
-/** @def PWR_RADIATION
- * @note Emit radiation (GF_NUKE) */
-#define PWR_RADIATION 6
-
-/** @def PWR_VAMPIRISM
- * @note Vampire bite */
-#define PWR_VAMPIRISM 7
-
-/** @def PWR_SMELL_MET
- * @note Detect treasure */
-#define PWR_SMELL_MET 8
-
-/** @def PWR_SMELL_MON
- * @note Detect normal monsters */
-#define PWR_SMELL_MON 9
-
-/** @def PWR_BLINK
- * @note Short teleport (up to 10 grids) */
-#define PWR_BLINK 10
-
-/** @def PWR_EAT_ROCK
- * @note Eat rock for food (wall to mud) */
-#define PWR_EAT_ROCK 11
-
-/** @def PWR_SWAP_POS
- * @note Swap position with a monster */
-#define PWR_SWAP_POS 12
-
-/** @def PWR_SHRIEK
- * @note Shriek (GF_SOUND and aggravate) */
-#define PWR_SHRIEK 13
-
-/** @def PWR_ILLUMINE
- * @note Lite area */
-#define PWR_ILLUMINE 14
-
-/** @def PWR_DET_CURSE
- * @note Detect cursed items in inventory */
-#define PWR_DET_CURSE 15
-
-/** @def PWR_BERSERK
- * @note Berserk rage */
-#define PWR_BERSERK 16
-
-/** @def PWR_POLYMORPH
- * @note Polymorph self */
-#define PWR_POLYMORPH 17
-
-/** @def PWR_MIDAS_TCH
- * @note Midas touch - turn an item into gold */
-#define PWR_MIDAS_TCH 18
-
-/** @def PWR_GROW_MOLD
- * @note Summon mold */
-#define PWR_GROW_MOLD 19
-
-/** @def PWR_RESIST
- * @note Temporary elemental resist */
-#define PWR_RESIST 20
-
-/** @def PWR_EARTHQUAKE
- * @note Cause an earthquake (destruction) */
-#define PWR_EARTHQUAKE 21
-
-/** @def PWR_EAT_MAGIC
- * @note Absorb energy from magic items */
-#define PWR_EAT_MAGIC 22
-
-/** @def PWR_WEIGH_MAG
- * @note Report magic affecting player */
-#define PWR_WEIGH_MAG 23
-
-/** @def PWR_STERILITY
- * @note Player experiences forced abstinence */
-#define PWR_STERILITY 24
-
-/** @def PWR_PANIC_HIT
- * @note Hit a monster and run away */
-#define PWR_PANIC_HIT 25
-
-/** @def PWR_DAZZLE
- * @note Stun, confuse, and turn monsters */
-#define PWR_DAZZLE 26
-
-/** @def PWR_DARKRAY
- * @note Fire a beam of light (GF_LITE) */
-#define PWR_DARKRAY 27
-
-/** @def PWR_RECALL
- * @note Recall to dungeon/town */
-#define PWR_RECALL 28
-
-/** @def PWR_BANISH
- * @note Banish evil creatures */
-#define PWR_BANISH 29
-
-/** @def PWR_COLD_TOUCH
- * @note Bolt of cold (GF_COLD) */
-#define PWR_COLD_TOUCH 30
-
-/** @def PWR_LAUNCHER
- * @note Increase the multiplier for a thrown object */
-#define PWR_LAUNCHER 31
-
-/** @def PWR_PASSWALL
- * @note Walk through a wall */
-#define PWR_PASSWALL 32
-
-/** @def PWR_DETECT_TD
- * @note Detect traps, doors, and stairs */
-#define PWR_DETECT_TD 33
-
-/** @def PWR_COOK_FOOD
- * @note Create some food */
-#define PWR_COOK_FOOD 34
-
-/** @def PWR_UNFEAR
- * @note Remove fear */
-#define PWR_UNFEAR 35
-
-/** @def PWR_EXPL_RUNE
- * @note Set an explosive rune */
-#define PWR_EXPL_RUNE 36
-
-/** @def PWR_STM
- * @note Bash a wall (stone to mud) */
-#define PWR_STM 37
-
-/** @def PWR_POIS_DART
- * @note Throw a poison dart (GF_POIS) */
-#define PWR_POIS_DART 38
-
-/** @def PWR_MAGIC_MISSILE
- * @note Fire a magic missile (GF_MISSILE) */
-#define PWR_MAGIC_MISSILE 39
-
-/** @def PWR_GROW_TREE
- * @note Grow trees around the player */
-#define PWR_GROW_TREE 40
-
-/** @def PWR_BR_COLD
- * @note Breathe cold (GF_COLD) */
-#define PWR_BR_COLD 41
-
-/** @def PWR_BR_CHAOS
- * @note Breathe chaos (GF_CHAOS) */
-#define PWR_BR_CHAOS 42
-
-/** @def PWR_BR_ELEM
- * @note Breath elements (GF_MISSILE) */
-#define PWR_BR_ELEM 43
-
-/** @def PWR_WRECK_WORLD
- * @note Change the world (new level) */
-#define PWR_WRECK_WORLD 44
-
-/** @def PWR_SCARE
- * @note Howl to scare monsters */
-#define PWR_SCARE 45
-
-/** @def PWR_REST_LIFE
- * @note Restore life levels */
-#define PWR_REST_LIFE 46
-
-/** @def PWR_SUMMON_MONSTER
- * @note Beastmaster powers (summon pets) */
-#define PWR_SUMMON_MONSTER 47
-
-/** @def PWR_NECRO
- * @note Cast a necromancy spell */
-#define PWR_NECRO 48
-
-/** @def PWR_ROHAN
- * @note Use flash aura or light speed jump */
-#define PWR_ROHAN 49
-
-/** @def PWR_THUNDER
- * @note Use thunder strike, ride the straight road, or go back in town */
-#define PWR_THUNDER 50
-
-/** @def PWR_DEATHMOLD
- * @note Use deathmold powers:\n
- * (a) Teleport to a specific place\n
- * (b) Fetch an item\n
- * (c) Go up 50'\n
- * (d) Go down 50'
- */
-#define PWR_DEATHMOLD 51
-
-/** @def PWR_HYPNO
- * @note Hypnotise a pet */
-#define PWR_HYPNO 52
-
-/** @def PWR_UNHYPNO
- * @note Unhypnotise a pet */
-#define PWR_UNHYPNO 53
-
-/** @def PWR_INCARNATE
- * @note Incarnate into a body */
-#define PWR_INCARNATE 54
-
-/** @def PWR_MAGIC_MAP
- * @note Magic mapping */
-#define PWR_MAGIC_MAP 55
-
-/** @def PWR_LAY_TRAP
- * @note Set a trap */
-#define PWR_LAY_TRAP 56
-
-/** @def PWR_MERCHANT
- * @note Appraise item, warp item, or identify item */
-#define PWR_MERCHANT 57
-
-/** @def PWR_COMPANION
- * @note Create a companion */
-#define PWR_COMPANION 58
-
-/** @def PWR_BEAR
- * @note Mimic a bear */
-#define PWR_BEAR 59
-
-/** @def PWR_DODGE
- * @note Report chance of dodging a monster */
-#define PWR_DODGE 60
-
-/** @def PWR_BALROG
- * @note Mimic a balrog */
-#define PWR_BALROG 61
-/** @} */
-
-/* Misc */
-/** @fn do_cmd_throw(void)
- * @brief Throw an object from the pack or floor.
- * @note
- * Note: "unseen" monsters are very hard to hit.
- * @note
- * Should throwing a weapon do full damage? Should it allow the magic
- * to hit bonus of the weapon to have an effect? Should it ever cause
- * the item to be destroyed? Should it do any damage at all?
- * @note (see file cmd2.c)
- */
-extern void do_cmd_throw(void);
-
-/** @fn change_wild_mode()
- * @brief Toggle between big map and little map.
- * @note
- * If the player is immovable, and the map is big, the player receives a
- * warning and is allowed to proceed.
- * @note
- * If the player is about to be recalled, and the map is big, the map is
- * not changed.
- * @note
- * The map is changed. The game is saved if autosave is set to "levels".
- * @note (see file spells2.c)
- */
-extern void change_wild_mode();
-
-/** @fn switch_class(int sclass)
- * @brief Change to an other class.\n
- * @param sclass Number \n the inex of the new class in the class array
- * @brief Class index
- * @note (see file xtra2.c)
- */
-extern void switch_class(int sclass);
-
-/** @fn switch_subclass(int sclass)
- * @brief Change to an other subclass.\n
- * @param sclass Number \n the new subclass
- * @brief Subclass
- * @note (see file xtra2.c)
- */
-extern void switch_subclass(int sclass);
-
-/** @fn switch_subrace(int racem, bool copy_old)
- * @brief Change to an other subrace.\n
- * @param racem Number \n index of subrace in subrace array
- * @brief Subrace index
- * @param copy_old Boolean \n TRUE if the new subrace is to be saved,
- * otherwise FALSE.
- * @brief Copy old subrace?
- * @note (see file xtra2.c)
- */
-extern void switch_subrace(int racem, bool copy_old);
-
-/** @fn get_subrace_title(int racem)
- * @brief Return the subrace title.\n
- * @param racem Number \n index of subrace in subrace array
- * @brief Subrace index
- * @return String \n Title of subrace.
- * @note (see file xtra2.c)
- */
-extern cptr get_subrace_title(int racem);
-
-/** @fn set_subrace_title(int racem, cptr name)
- * @brief Set the subrace title.\n
- * @param racem Number \n index of subrace in subrace array
- * @brief Subrace index
- * @param name String \n new title of subrace
- * @brief New title
- * @note (see file xtra2.c)
- */
-extern void set_subrace_title(int racem, cptr name);
-
-/** @fn do_rebirth()
- * @brief The player is reborn after a class, race, or subrace change.
- * @note
- * The experience factor is recalculated. The hit dice are reset and new HP
- * are calculated. There may be a level change involved.
- * @note (see file xtra2.c)
- */
-extern void do_rebirth();
-
-/* Player race flags */
-$static bool lua_test_race_flags(int slot, u32b flags) { if (slot == 1) return (PRACE_FLAG(flags)) ? TRUE : FALSE; else return (PRACE_FLAG2(flags)) ? TRUE : FALSE; }
-/** @fn test_race_flags(int slot, u32b flags);
- * @brief Test flag "flags" against race flags, race modifier flags, class
- * flags, and specialist flags.\n
- * @param slot Number \n 1 if testing against first set of flags (PRACE_FLAG),
- * 2 if testing against second set of flags (PRACE_FLAG2)
- * @brief Flag selecter.
- * @param flags Number \n the flags to be tested
- * @brief Test flags
- * @return Boolean \n TRUE if test flags match any of the corresponding race,
- * race modifier, class, and specialist flags.
- * @note (see file w_player.c)
- */
-static bool lua_test_race_flags@test_race_flags(int slot, u32b flags);
-
-/** @name Winner states
- * @{ */
-/** @def WINNER_NORMAL
- * @note Player has killed Morgoth */
-#define WINNER_NORMAL 1
-
-/** @def WINNER_ULTRA
- * @note Player has killed Melkor */
-#define WINNER_ULTRA 2
-/** @} */
-
-/** @var wizard
- * @brief Boolean
- * @note TRUE if player currently in Wizard mode, otherwise FALSE.
- */
-extern bool wizard;
-
-/** @var total_winner
- * @brief Number
- * @note Game has been won (see WINNER_foo fields).
- */
-extern u16b total_winner;
-
-/** @var has_won
- * @brief Number
- * @note Game has been won (see WINNER_foo fields).
- */
-extern u16b has_won;
-
-/** @var joke_monsters
- * @brief Boolean
- * @note TRUE if allowing joke monsters, otherwise FALSE.
- */
-extern bool joke_monsters;
-
-extern s16b max_dlv[999999];