|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T t
Length: 8502 (0x2136) Types: TextFile Names: »types.h«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987 └─⟦this⟧ »EUUGD18/General/Rog-O-Matic/types.h«
/* * types.h: Rog-O-Matic XIV (CMU) Wed Jan 30 14:57:17 1985 - mlm * Copyright (C) 1985 by A. Appel, G. Jacobson, L. Hamey, and M. Mauldin * * Miscellaneous Macros and Constants */ /* The unctrl macro for systems where curses doesn't define it */ # ifndef unctrl extern char *_unctrl[]; # define unctrl(ch) (_unctrl[ch & 0177]) # endif /* Global Preprocessor constants */ # define ill ";'" # define status "Str:" # define MAXATTEMPTS (10) # define ROGQUIT (-2) # define DIED (1) # define FINISHED (0) # define SAVED (2) # define MAXINV (26) # define NONE (-1) # define MAXSTUFF (30) # define MAXMONST (40) # define SAVEARROWS (30) # define NAMSIZ (64) # define MAXLEV (30) # define MAXMON (128) # define SUCCESS (1) # define FAILURE (0) # define ISPRT(c) ((c) >= ' ' && (c) <= '~') # define GETROGUECHAR fgetc(frogue) # define GETLOGCHAR fgetc(logfile) /* * Magic numbers for Invisible stalker strategies */ # define INVHIT (1000) /* * Attribute bits for the screen map: If you change this list, be sure * to change the flag names at the end of debug.c. MLM */ # define BEEN (0000000001) # define CANGO (0000000002) # define DOOR (0000000004) # define HALL (0000000010) # define PSD (0000000020) # define ROOM (0000000040) # define SAFE (0000000100) # define SEEN (0000000200) # define SEENPOS (7) # define DEADEND (0000000400) # define STUFF (0000001000) # define TRAP (0000002000) # define ARROW (0000004000) # define TRAPDOR (0000010000) # define TELTRAP (0000020000) # define GASTRAP (0000040000) # define BEARTRP (0000100000) # define DARTRAP (0000200000) # define WATERAP (0000400000) # define MONSTER (0001000000) # define WALL (0002000000) # define USELESS (0004000000) # define SCAREM (0010000000) # define STAIRS (0020000000) # define RUNOK (0040000000) # define BOUNDARY (0100000000) # define SLEEPER (0200000000) # define EVERCLR (0400000000) # define TOPW (0) # define BOTW (1) # define LEFTW (2) # define RIGHTW (3) # define NOTW (-1) # define DOORW (-2) # define CORNERW (-3) # define INFINITY (10000) # define NOTAMOVE (-1) # define FORCE (1) # define OPTIONAL (0) # define NEAR (0) # define HERE (1) # define NOPRINT (0) # define DOPRINT (1) # define NOTRUNNING (0) # define RUNNING (1) # define ANY (0) # define RUSTPROOF (1) /* Types of moves planned by makemove */ # define REUSE (0) # define REEVAL (1) # define EXPLORE (1) # define EXPLORERUN (2) # define RUNTODOOR (3) # define RUNAWAY (4) # define SECRETDOOR (5) # define FINDSAFE (6) # define GOTOMOVE (7) # define ATTACKSLEEP (8) # define ARCHERYMOVE (9) # define UNPIN (10) # define UNPINEXP (11) # define EXPLOREROOM (12) # define FINDROOM (13) # define RESTMOVE (14) # define DOWNMOVE (15) # define RUNDOWN (16) # define NUMMOVES (17) /* Version numbers */ # define RV36A (361) /* OLDROG: Rogue 3.6 w/o wands */ # define RV36B (362) /* CURROG: Rogue 3.6 with wands */ # define RV52A (521) /* NEWROG: Rogue 5.2 */ # define RV52B (522) /* Rogue 5.2 with maze rooms */ # define RV53A (531) /* Rogue 5.3 new monsters */ /* Ways to spend time */ # define T_OTHER (0) # define T_HANDLING (1) # define T_FIGHTING (2) # define T_RESTING (3) # define T_MOVING (4) # define T_EXPLORING (5) # define T_RUNNING (6) # define T_GROPING (7) # define T_SEARCHING (8) # define T_DOORSRCH (9) # define T_LISTLEN (10) /* Bit value for debugging types (for debugging function dwait) */ # define D_FATAL (00001) # define D_ERROR (00002) # define D_WARNING (00004) # define D_INFORM (00010) # define D_SEARCH (00020) # define D_BATTLE (00040) # define D_MESSAGE (00100) # define D_PACK (00200) # define D_CONTROL (00400) # define D_SCREEN (01000) # define D_MONSTER (02000) # define D_SAY (04000) # define D_ALL (01777) # define D_NORMAL (D_FATAL | D_ERROR) # define debugon(mask) (debugging|=(mask)) # define debugoff(mask) (debugging&=(~(mask))) # define debug(mask) (debugging&(mask)) /* Parameters for genetic learning, knobs */ # define K_SRCH (0) # define K_DOOR (1) # define K_REST (2) # define K_ARCH (3) # define K_EXPER (4) # define K_RUN (5) # define K_WAKE (6) # define K_FOOD (7) # define MAXKNOB (8) /* Monster attributes */ # define AWAKE (1) # define ASLEEP (2) # define ALL (9) # define HELD (10) /* Constants for handling inventory */ # define UNKNOWN -99999 # define INVMAX 25 /* Pack item attributes DR UTexas 25 Jan 84 */ # define KNOWN (0000000001) # define CURSED (0000000002) # define ENCHANTED (0000000004) # define PROTECTED (0000000010) # define UNCURSED (0000000020) # define INUSE (0000000040) # define WORTHLESS (0000000100) /* Miscellaneous macros */ # define LETTER(i) ((char)((i)+'a')) # define DIGIT(c) ((int)((c)-'a')) # define OBJECT(c) DIGIT(c) # define ISDIGIT(c) ((c) >= '0' && (c) <= '9') # define plural(n) ((n)==1 ? "" : "s") # define ordinal(n) ((((n)/10)%10==1) ? "th": \ ((n)%10==1) ? "st": \ ((n)%10==2) ? "nd": \ ((n)%10==3) ? "rd":"th") # define ctrl(c) ((c)&037) # define ESC ctrl('[') # define NEWLINE ctrl('J') # define abs(a) ((a) >= 0 ? (a) : -(a)) # define max(a,b) (((a) > (b)) ? (a) : (b)) # define min(a,b) (((a) < (b)) ? (a) : (b)) # define between(v,a,b) ((v) < (a) ? (a) : (v) > (b) ? (b) : (v)) # define percent(v,p) (((v)*(p))/100) # define SKIPARG while (*++(*argv)); --(*argv) # define when break; case # define orwhen case # define otherwise break; default # define SKIPDIG(s) while (ISDIGIT(*(s))) (s)++ # define SKIPCHAR(c,s) while (*(s)==(c)) (s)++ # define SKIPTO(c,s) \ { while (*(s) && *(s)!=(c)) (s)++; if (*(s)==(c)) (s)++; } /* Utility Macros */ /* onrc - tell if row and col have the proper attributes */ # define onrc(type,r,c) ((type)&scrmap[r][c]) /* on - tell if current position has correct attributes */ # define on(type) onrc(type,atrow,atcol) /* seerc - is this character at row,col */ # define seerc(ch,r,c) ((ch)==screen[r][c]) /* see - is this character at current position */ # define see(ch) seerc(atrow,atcol) /* setrc - set attribute at <r,c> */ # define setrc(type,r,c) scrmap[r][c]|=(type) /* set - set attribute at current position */ # define set(type) setrc(type,atrow,atcol) /* unsetrc - unset attribute at <r,c> */ # define unsetrc(type,r,c) scrmap[r][c]&= ~(type) /* unset - unset attribute at current position */ # define unset(type) unsetrc(type,atrow,atcol) /* Direc - give the vector from an xy difference */ # define direc(r,c) (r>0?(c>0?7:(c<0?5:6)):(r<0?(c>0?1:(c<0?3:2)):(c>0?0:4))) /* atdrow - gives row of adjacent square given direction */ # define atdrow(dir) (atrow+deltr[(dir)]) /* atdcol - gives col of adjacent square given direction */ # define atdcol(dir) (atcol+deltc[(dir)]) /* Define a more mnemonic string comparison */ # define streq(s1,s2) (strcmp ((s1),(s2)) == 0) /* Monster value macros */ # define maxhitchar(m) (cosmic ? Level*3/2+6 : monatt[(m)-'A'].maxdam) # define avghitchar(m) (cosmic ? Level*2/3+4 : monatt[(m)-'A'].expdam) # define maxhit(m) maxhitchar(mlist[m].chr) # define avghit(m) avghitchar(mlist[m].chr) /* times 10 */ /* Item knowledge macros DR UTexas 25 Jan 84 */ /* itemis - test pack item for traits */ # define itemis(obj,trait) ((obj>=0) ? ((trait)&inven[obj].traits) : 0) /* remember - set traits for pack item */ # define remember(obj,trait) ((obj>=0) ? (inven[obj].traits|=(trait)) : 0) /* forget - clear traits for pack item */ # define forget(obj,trait) ((obj>=0) ? (inven[obj].traits&= ~(trait)) : 0) /* The types of objects */ typedef enum { strange, food, potion, scroll, wand, ring, hitter, thrower, missile, armor, amulet, gold, none} stuff; typedef struct { int fail, win; } probability; typedef struct { int count; double sum, sumsq, low, high; } statistic; typedef struct { int scol, srow; stuff what; } stuffrec; typedef struct { int mcol, mrow; char chr; int q; } monrec; typedef struct { int expdam, maxdam, mtokill; } attrec; typedef struct { int gamecnt, gamesum, inittime, timeswritten; } lrnrec; typedef struct { char m_name[NAMSIZ]; probability wehit, theyhit, arrowhit; statistic htokill, damage, atokill; } ltmrec; typedef struct { stuff type; int count, phit, pdam, charges, traits; char *str; } invrec; typedef struct { int activity[T_LISTLEN]; int timestamp; } timerec;