diff rogue3/rogue.h @ 0:527e2150eaf0

Import Rogue 3.6 from the Roguelike Restoration Project (r1490)
author edwarj4
date Tue, 13 Oct 2009 13:33:34 +0000
parents
children b4856d4d4c4e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rogue3/rogue.h	Tue Oct 13 13:33:34 2009 +0000
@@ -0,0 +1,685 @@
+/*
+ * Rogue definitions and variable declarations
+ *
+ * @(#)rogue.h	3.38 (Berkeley) 6/15/81
+ *
+ * Rogue: Exploring the Dungeons of Doom
+ * Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman
+ * All rights reserved.
+ *
+ * See the file LICENSE.TXT for full copyright and licensing information.
+ */
+
+#include "mdport.h"
+
+/*
+ * Maximum number of different things
+ */
+#define MAXROOMS 9
+#define MAXTHINGS 9
+#define MAXOBJ 9
+#define MAXPACK 23
+#define MAXTRAPS 10
+#define	NUMTHINGS 7	/* number of types of things (scrolls, rings, etc.) */
+
+/*
+ * return values for get functions
+ */
+#define	NORM	0	/* normal exit */
+#define	QUIT	1	/* quit option setting */
+#define	MINUS	2	/* back up one option */
+
+/*
+ * All the fun defines
+ */
+#define next(ptr) (*ptr).l_next
+#define prev(ptr) (*ptr).l_prev
+#define ldata(ptr) (*ptr).l_data
+#define inroom(rp, cp) (\
+    (cp)->x <= (rp)->r_pos.x + ((rp)->r_max.x - 1) && (rp)->r_pos.x <= (cp)->x \
+ && (cp)->y <= (rp)->r_pos.y + ((rp)->r_max.y - 1) && (rp)->r_pos.y <= (cp)->y)
+#define winat(y, x) (mvwinch(mw,y,x)==' '?mvwinch(stdscr,y,x):winch(mw))
+#define debug if (wizard) msg
+#define RN (((seed = seed*11109+13849) & 0x7fff) >> 1)
+#define unc(cp) (cp).y, (cp).x
+#define cmov(xy) move((xy).y, (xy).x)
+#define DISTANCE(y1, x1, y2, x2) ((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1))
+#define OBJPTR(what)    (struct object *)((*what).l_data)
+#define THINGPTR(what)  (struct thing *)((*what).l_data)
+#define when break;case
+#define otherwise break;default
+#define until(expr) while(!(expr))
+#define ce(a, b) ((a).x == (b).x && (a).y == (b).y)
+#define draw(window) wrefresh(window)
+#define hero player.t_pos
+#define pstats player.t_stats
+#define pack player.t_pack
+#define attach(a,b) _attach(&a,b)
+#define detach(a,b) _detach(&a,b)
+#define free_list(a) _free_list(&a)
+#ifndef max
+#define max(a, b) ((a) > (b) ? (a) : (b))
+#endif
+#define on(thing, flag) (((thing).t_flags & flag) != 0)
+#define off(thing, flag) (((thing).t_flags & flag) == 0)
+#undef  CTRL
+#define CTRL(ch) (ch & 037)
+#define ALLOC(x) malloc((unsigned int) x)
+#define FREE(x) free((char *) x)
+#define	EQSTR(a, b, c)	(strncmp(a, b, c) == 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 newgrp() ++group
+#define o_charges o_ac
+#define ISMULT(type) (type == POTION || type == SCROLL || type == FOOD)
+
+/*
+ * Things that appear on the screens
+ */
+#define PASSAGE '#'
+#define DOOR '+'
+#define FLOOR '.'
+#define PLAYER '@'
+#define TRAP '^'
+#define TRAPDOOR '>'
+#define ARROWTRAP '{'
+#define SLEEPTRAP '$'
+#define BEARTRAP '}'
+#define TELTRAP '~'
+#define DARTTRAP '`'
+#define SECRETDOOR '&'
+#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
+
+/*
+ * Various constants
+ */
+#define	PASSWD		"mTBellIQOsLNA"
+#define BEARTIME 3
+#define SLEEPTIME 5
+#define HEALTIME 30
+#define HOLDTIME 2
+#define STPOS 0
+#define WANDERTIME 70
+#define BEFORE 1
+#define AFTER 2
+#define HUHDURATION 20
+#define SEEDURATION 850
+#define HUNGERTIME 1300
+#define MORETIME 150
+#define STOMACHSIZE 2000
+#define ESCAPE 27
+#define LEFT 0
+#define RIGHT 1
+#define BOLT_LENGTH 6
+
+/*
+ * Save against things
+ */
+#define VS_POISON 00
+#define VS_PARALYZATION 00
+#define VS_DEATH 00