/*
* File: defines.h
* Summary: Various definess used by Crawl.
* Written by: Linley Henzel
*
* Abstract: A variety of miscellaneous constant values are found here.
* I think we should move the colors into an enum or something
* because there are in numerical order. But I'm too lazy to
* do it myself.
*
* Copyright © 1999 Brian Robinson. // Me? How come?
*/
// there's got to be a better way...
// max size of inventory array {dlb}:
// minimum value for strength required on armour and weapons
const int STR_REQ_THRESHOLD = 10;
// Max ghosts on a level.
const int MAX_GHOSTS = 10;
// max size of monter array {dlb}:
// number of monster enchantments
// non-monster for mgrd[][] -- (MNST + 1) {dlb}:
// (MNG) -- for a reason! see usage {dlb}:
// (MNG + 1) -- for a reason! see usage {dlb}:
// max size of item list {dlb}:
// non-item -- (ITEMS + 1) {dlb}
// max size of cloud array {dlb}:
// empty cloud -- (CLOUDS + 1) {dlb}:
// max x-bound for level generation {dlb}
// max y-bound for level generation {dlb}
const int INFINITE_DISTANCE = 30000;
// this is the size of the border around the playing area (see in_bounds())
// This is the border that must be left around the map. I'm not sure why it's
// necessary, beyond hysterical raisins.
const int MAPGEN_BORDER = 2;
const int LABYRINTH_BORDER = 4;
// Now some defines about the actual play area:
// Note: these boundaries are exclusive for the zone the player can move/dig,
// and are inclusive for the area that we display on the map.
// Note: that the right (bottom) boundary is one smaller here.
// these mark the center zone where the player moves without shifting
// default LOS radius
// default LOS radius squared, for comparison with distance()
// maximal LOS radius
// maximal horizontal or vertical LOS range:
// a quadrant needs to fit inside an 2D array with
// 0 <= x, y <= LOS_MAX_RANGE
// max traps per level
// max shops per level
// max shops randomly generated in a level.
// Can be passed to monster_die to indicate that a friendly did the killing.
const int ANON_FRIENDLY_MONSTER = -1999;
// This value is used to make test_hit checks always succeed
// Yes, I know we have 32-bit ints now.
const int DEBUG_COOKIE = 32767;
const int MAX_SKILL_LEVEL = 27;
const int MIN_HIT_MISS_PERCENTAGE = 5;
// grids that monsters can see
const int MONSTER_LOS_RANGE = LOS_RADIUS;
// Maximum charge level for rods
const int MAX_ROD_CHARGE = 17;
const int ROD_CHARGE_MULT = 100;
const int GOURMAND_MAX = 200;
const int GOURMAND_NUTRITION_BASE = 10;
const int CHUNK_BASE_NUTRITION = 1000;
// The maximum number of abilities any god can have
// This value is used to mark immune levels of MR
const int MAG_IMMUNE = 5000;
// This is the damage amount used to signal insta-death
const int INSTANT_DEATH = -9999;
// Maximum enchantment on weapons/armour/secondary armours
// This is the same as for ammunition.
const int MAX_WPN_ENCHANT = 9;
// Note: use armour_max_enchant(item) to get the correct limit for item
const int MAX_ARM_ENCHANT = 8;
const int MAX_SEC_ENCHANT = 2;
// Size of unique_items in player class
// some shortcuts:
// colors, such pretty colors ...
// Colour options... these are used as bit flags along with the colour
// value in the low byte.
// This is used to signal curses (which has seven base colours) to
// try to get a brighter version using recommisioned attribute flags.
//#ifdef USE_COLOUR_OPTS
;
//#endif
// Convert capital letters into mystic numbers representing
// CTRL sequences. This is a macro because a lot of the type
// it wants to be used in case labels.
const char * const MONSTER_NUMBER = "monster-number";
// Synthetic keys:
// cgotoxy regions
;
// Mouse modes (for tiles)
;