From 673bdae75485d14f759af597c3c62b99601f9a43 Mon Sep 17 00:00:00 2001 From: peterb12 Date: Thu, 21 Jul 2005 02:34:44 +0000 Subject: Initial revision git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3 c06c8d41-db1a-0410-9941-cceddc491573 --- trunk/source/defines.h | 160 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 trunk/source/defines.h (limited to 'trunk/source/defines.h') diff --git a/trunk/source/defines.h b/trunk/source/defines.h new file mode 100644 index 0000000000..d99b68eff6 --- /dev/null +++ b/trunk/source/defines.h @@ -0,0 +1,160 @@ +/* + * 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? + * + * Change History (most recent first): + * + * <4> 7/29/00 JDJ Renamed MNG NON_MONSTER, MNST MAX_MONSTERS, ITEMS MAX_ITEMS, + * ING NON_ITEM, CLOUDS MAX_CLOUDS, CNG EMPTY_CLOUD, NTRAPS MAX_TRAPS. + * <3> 9/25/99 CDL linuxlib -> liblinux + * <2> 6/17/99 BCR indented and added header + * <1> --/--/-- LRH Created + */ + +#ifndef DEFINES_H +#define DEFINES_H + +#define ESCAPE '\x1b' // most ansi-friendly way I can think of defining this. + +// there's got to be a better way... +#ifdef _LIBLINUX_IMPLEMENTATION +#elif macintosh +#else + #ifndef TRUE + #define TRUE 1 + #endif + + #ifndef FALSE + #define FALSE 0 + #endif +#endif + + +// max size of inventory array {dlb}: +#define ENDOFPACK 52 + +// max size of monter array {dlb}: +#define MAX_MONSTERS 200 +// number of monster enchantments +#define NUM_MON_ENCHANTS 6 +// non-monster for mgrd[][] -- (MNST + 1) {dlb}: +#define NON_MONSTER 201 + +// max size of item list {dlb}: +#define MAX_ITEMS 500 +// non-item -- (ITEMS + 1) {dlb} +#define NON_ITEM 501 + +// max size of cloud array {dlb}: +#define MAX_CLOUDS 100 + +// empty cloud -- (CLOUDS + 1) {dlb}: +#define EMPTY_CLOUD 101 + +// max x-bound for level generation {dlb} +#define GXM 80 +// max y-bound for level generation {dlb} +#define GYM 70 + +// max traps per level +#define MAX_TRAPS 30 + +// max shops per level +#define MAX_SHOPS 5 + +// lowest grid value which can be passed by walking etc. +#define MINMOVE 31 + +// lowest grid value which can be seen through +#define MINSEE 11 + + +// some shortcuts: +#define menv env.mons +#define mitm env.item +#define grd env.grid +#define mgrd env.mgrid +#define igrd env.igrid + + +// (MNG) -- for a reason! see usage {dlb}: +#define MHITNOT 201 +// (MNG + 1) -- for a reason! see usage {dlb}: +#define MHITYOU 202 + +// colors, such pretty colors ... +#ifndef DOS + #define BLACK 0 + #define BLUE 1 + #define GREEN 2 + #define CYAN 3 + #define RED 4 + #define MAGENTA 5 + #define BROWN 6 + #define LIGHTGREY 7 + #define DARKGREY 8 + #define LIGHTBLUE 9 + #define LIGHTGREEN 10 + #define LIGHTCYAN 11 + #define LIGHTRED 12 + #define LIGHTMAGENTA 13 + #define YELLOW 14 + #define WHITE 15 + + #define LIGHTGRAY LIGHTGREY + #define DARKGRAY DARKGREY +#else + #include + #define LIGHTGREY LIGHTGRAY + #define DARKGREY DARKGRAY +#endif + +// 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. +#define COLFLAG_CURSES_BRIGHTEN 0x0080 + +#ifdef USE_COLOUR_OPTS + + #define COLFLAG_FRIENDLY_MONSTER 0x0100 + + enum CHAR_ATTRIBUTES + { + CHATTR_NORMAL, + CHATTR_STANDOUT, + CHATTR_BOLD, + CHATTR_BLINK, + CHATTR_UNDERLINE, + CHATTR_REVERSE, + CHATTR_DIM + }; + +#endif + +// required for stuff::coinflip() +#define IB1 1 +#define IB2 2 +#define IB5 16 +#define IB18 131072 +#define MASK (IB1 + IB2 + IB5) +// required for stuff::coinflip() + +#define MINIMUM( xxx, yyy ) (((xxx) < (yyy)) ? (xxx) : (yyy)) +#define MAXIMUM( xxx, yyy ) (((xxx) > (yyy)) ? (xxx) : (yyy)) + +// 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. +#define CONTROL( xxx ) (xxx - 'A' + 1) + +#endif -- cgit v1.2.3-54-g00ecf