diff rogue5/rogue.h @ 33:f502bf60e6e4

Import Rogue 5.4 from the Roguelike Restoration Project (r1490)
author elwin
date Mon, 24 May 2010 20:10:59 +0000 (2010-05-24)
parents
children 655c317b6237
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rogue5/rogue.h	Mon May 24 20:10:59 2010 +0000
@@ -0,0 +1,778 @@
+/*
+ * Rogue definitions and variable declarations
+ *
+ * @(#)rogue.h	5.42 (Berkeley) 08/06/83
+ *
+ * Rogue: Exploring the Dungeons of Doom
+ * Copyright (C) 1980-1983, 1985, 1999 Michael Toy, Ken Arnold and Glenn Wichman
+ * All rights reserved.
+ *
+ * See the file LICENSE.TXT for full copyright and licensing information.
+ */
+
+#include "extern.h"
+
+#undef lines 
+
+#define NOOP(x) (x += 0)
+#define CCHAR(x) ( (x) & A_CHARTEXT )
+
+#define MAXDAEMONS 20
+#define EMPTY 0
+
+/*
+ * Maximum number of different things
+ */
+#define MAXROOMS	9
+#define MAXTHINGS	9
+#define MAXOBJ		9
+#define MAXPACK		23
+#define MAXTRAPS	10
+#define AMULETLEVEL	26
+#define	NUMTHINGS	7	/* number of types of things */
+#define MAXPASS		13	/* upper limit on number of passages */
+#define	NUMLINES	24
+#define	NUMCOLS		80
+#define STATLINE		(NUMLINES - 1)
+#define BORE_LEVEL	50
+
+/*
+ * return values for get functions
+ */
+#define	NORM	0	/* normal exit */
+#define	QUIT	1	/* quit option setting */
+#define	MINUS	2	/* back up one option */
+
+/*
+ * inventory types
+ */
+#define	INV_OVER	0
+#define	INV_SLOW	1
+#define	INV_CLEAR	2
+
+/*
+ * All the fun defines
+ */
+#define when		break;case
+#define otherwise	break;default
+#define until(expr)	while(!(expr))
+#define next(ptr)	(*ptr).l_next
+#define prev(ptr)	(*ptr).l_prev
+#define winat(y,x)	(moat(y,x) != NULL ? moat(y,x)->t_disguise : chat(y,x))
+#define ce(a,b)		((a).x == (b).x && (a).y == (b).y)
+#define hero		player.t_pos
+#define pstats		player.t_stats
+#define pack		player.t_pack
+#define proom		player.t_room
+#define max_hp		player.t_stats.s_maxhp
+#define attach(a,b)	_attach(&a,b)
+#define detach(a,b)	_detach(&a,b)
+#define free_list(a)	_free_list(&a)
+#undef max
+#define max(a,b)	((a) > (b) ? (a) : (b))
+#define on(thing,flag)	((((thing).t_flags & (flag)) != 0))
+#define GOLDCALC	(rnd(50 + 10 * level) + 2)
+#define ISRING(h,r)	(cur_ring[h] != NULL && cur_ring[h]->o_which == r)
+#define ISWEARING(r)	(ISRING(LEFT, r) || ISRING(RIGHT, r))
+#define ISMULT(type) 	(type == POTION || type == SCROLL || type == FOOD)
+#define INDEX(y,x)	(&places[((x) << 5) + (y)])
+#define chat(y,x)	(places[((x) << 5) + (y)].p_ch)
+#define flat(y,x)	(places[((x) << 5) + (y)].p_flags)
+#define moat(y,x)	(places[((x) << 5) + (y)].p_monst)
+#define unc(cp)		(cp).y, (cp).x
+#ifdef MASTER
+#define debug		if (wizard) msg
+#endif
+
+/*
+ * things that appear on the screens
+ */
+#define PASSAGE		'#'
+#define DOOR		'+'
+#define FLOOR		'.'
+#define PLAYER		'@'
+#define TRAP		'^'
+#define STAIRS		'%'
+#define GOLD		'*'
+#define POTION		'!'
+#define SCROLL		'?'
+#define MAGIC		'$'
+#define FOOD		':'
+#define WEAPON		')'
+#define ARMOR		']'
+#define AMULET		','
+#define RING		'='
+#define STICK		'/'
+#define CALLABLE	-1
+#define R_OR_S		-2
+
+/*
+ * Various constants
+ */
+#define BEARTIME	spread(3)
+#define SLEEPTIME	spread(5)
+#define HOLDTIME	spread(2)
+#define WANDERTIME	spread(70)
+#define BEFORE		spread(1)
+#define AFTER		spread(2)
+#define HEALTIME	30
+#define HUHDURATION	20
+#define SEEDURATION	850
+#define HUNGERTIME	1300
+#define MORETIME	150
+#define STOMACHSIZE	2000
+#define STARVETIME	850
+#define ESCAPE		27
+#define LEFT		0
+#define RIGHT		1
+#define BOLT_LENGTH	6
+#define LAMPDIST	3
+#ifdef MASTER
+#ifndef PASSWD
+#define	PASSWD		"mTBellIQOsLNA"
+#endif
+#endif
+
+/*
+ * Save against things