Mercurial > hg > early-roguelike
diff urogue/rogue.h @ 256:c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
author | John "Elwin" Edwards |
---|---|
date | Tue, 31 Jan 2017 19:56:04 -0500 |
parents | |
children | c4b12d2d1dcd |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/urogue/rogue.h Tue Jan 31 19:56:04 2017 -0500 @@ -0,0 +1,1815 @@ +/* + rogue.h - A very large header file + + UltraRogue: The Ultimate Adventure in the Dungeons of Doom + Copyright (C) 1984, 1991, 1997 Herb Chong + All rights reserved. + + Based on "Advanced Rogue" + Copyright (C) 1984, 1985 Michael Morgan, Ken Dalka + All rights reserved. + + Based on "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 <signal.h> +#include <stdio.h> +#include <stdarg.h> + +#ifndef LINT +#include <curses.h> +#else +#include "lint-curses.h" +#endif + +#define SHOTPENALTY 2 /* In line of sight of missile */ +#define DOORPENALTY 1 /* Moving out of current room */ + +/* Maximum number of different things */ +#define MAXROOMS 9 /* max rooms per normal level */ +#define MAXDOORS 4 /* max doors to a room */ +#define MAXOBJ 6 /* max number of items to find on a level */ +#define MAXTREAS 30 /* max number monsters/treasure in treasure room */ +#define MAXTRAPS 80 /* max traps per level */ +#define MAXTRPTRY 16 /* max attempts/level allowed for setting traps */ +#define MAXPURCH 8 /* max purchases per trading post visit */ +#define NUMMONST (sizeof(monsters) / sizeof(struct monster) - 2) +#define NUMSUMMON 48 /* number of creatures that can summon hero */ +#define NLEVMONS 8 /* number of new monsters per level */ +#define LINELEN 512 /* characters in a buffer */ + +/* The character types */ +#define C_FIGHTER 0 +#define C_PALADIN 1 +#define C_RANGER 2 +#define C_CLERIC 3 +#define C_DRUID 4 +#define C_MAGICIAN 5 +#define C_ILLUSION 6 +#define C_THIEF 7 +#define C_ASSASIN 8 +#define C_NINJA 9 +#define C_MONSTER 10 +#define C_NOTSET 11 /* Must not be a value from above */ + +/* used for ring stuff */ +#define LEFT_1 0 +#define LEFT_2 1 +#define LEFT_3 2 +#define LEFT_4 3 +#define LEFT_5 4 +#define RIGHT_1 5 +#define RIGHT_2 6 +#define RIGHT_3 7 +#define RIGHT_4 8 +#define RIGHT_5 9 + +/* All the fun defines */ +#define next(ptr) ((ptr)?(ptr->l_next):NULL) +#define prev(ptr) ((ptr)?(ptr->l_prev):NULL) +#define identifier(ptr) (ptr->o_ident) +#define winat(y,x) ( (char) \ + ((mvwinch(mw,y,x) == ' ') ? mvwinch(stdscr,y,x) : winch(mw)) ) + +#define debug if (wizard && wiz_verbose) msg +#define verify(b) if (b) verify_function(__FILE__, __LINE__); +#define DISTANCE(c1, c2) ( ((c2).x - (c1).x)*((c2).x - (c1).x) + \ + ((c2).y - (c1).y)*((c2).y - (c1).y) ) + +#define xyDISTANCE(y1, x1, y2, x2) ((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1)) +#define OBJPTR(what) ((*what).data.obj) +#define THINGPTR(what) ((*what).data.th) +#define ce(a, b) ((a).x == (b).x && (a).y == (b).y) +#define hero player.t_pos +#define pstats player.t_stats +#define max_stats player.maxstats +#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)) +#define min(a, b) ((a) < (b) ? (a) : (b)) +#endif +#define GOLDCALC (rnd(50 + 30 * level) + 2) +#define o_charges o_ac +#define mi_wght mi_worth + +/* Things that appear on the screens */ +#define WALL ' ' +#define PASSAGE '#' +#define DOOR '+' +#define FLOOR '.' +#define VPLAYER '@' +#define IPLAYER '_' +#define POST '^' +#define LAIR '(' +#define RUSTTRAP ';' +#define TRAPDOOR '>' +#define ARROWTRAP '{' +#define SLEEPTRAP '$' +#define BEARTRAP '}' +#define TELTRAP '~' +#define DARTTRAP '`' +#define POOL '"' +#define MAZETRAP '\\' +#define FIRETRAP '<' +#define POISONTRAP '[' +#define ARTIFACT ',' +#define SECRETDOOR '&' +#define STAIRS '%' +#define GOLD '*' +#define POTION '!' +#define SCROLL '?' +#define MAGIC '$' +#define BMAGIC '>' /* Blessed magic */ +#define CMAGIC '<' /* Cursed magic */ +#define FOOD ':' +#define WEAPON ')' +#define ARMOR ']' +#define RING '=' +#define STICK '/' + +/* Various constants */ +#define HOLDTIME 2 +#define BEARTIME 3 +#define SLEEPTIME 4 +#define FREEZETIME 6 +#define STINKTIME 6 +#define CHILLTIME (roll(2, 4)) +#define STONETIME 8 +#define SICKTIME 10 +#define CLRDURATION 15 +#define HUHDURATION 20 +#define SMELLTIME 20 +#define HEROTIME 20 +#define HEALTIME 30 +#define WANDERTIME 140 +#define GONETIME 200 +#define PHASEDURATION 300 +#define SEEDURATION 850 + +#define STPOS 0 +#define BEFORE 1 +#define AFTER 2 + +#define MORETIME 150 +#define HUNGERTIME 1300 +#define STOMACHSIZE 2000 + +#define BOLT_LENGTH 10 +#define MARKLEN 20 + +#define LINEFEED 10 +#define CARRIAGE_RETURN 13 +#define ESCAPE 27 + +/* Adjustments for save against things */ +#define VS_POISON 0 +#define VS_PARALYZATION 0 +#define VS_DEATH 0 +#define VS_PETRIFICATION 1 +#define VS_WAND 2 +#define VS_BREATH 3 +#define VS_MAGIC 4 + +/*attributes for treasures in dungeon */ +#define ISNORMAL 0x00000000UL /* Neither blessed nor cursed */ +#define ISCURSED 0x00000001UL /* cursed */ +#define ISKNOW 0x00000002UL /* has been identified */ +#define ISPOST 0x00000004UL /* object is in a trading post */ +#define ISMETAL 0x00000008UL /* is metallic */ +#define ISPROT 0x00000010UL /* object is protected */ +#define ISBLESSED 0x00000020UL /* blessed */ +#define ISZAPPED 0x00000040UL /* weapon has been charged by dragon */ +#define ISVORPED 0x00000080UL /* vorpalized weapon */ +#define ISSILVER 0x00000100UL /* silver weapon */ +#define ISPOISON 0x00000200UL /* poisoned weapon */ +#define CANRETURN 0x00000400UL /* weapon returns if misses */ +#define ISOWNED 0x00000800UL /* weapon returns always */ +#define ISLOST 0x00001000UL /* weapon always disappears */ +#define ISMISL 0x00002000UL /* missile weapon */ +#define ISMANY 0x00004000UL /* show up in a group */ +#define CANBURN 0x00008000UL /* burns monsters */ +#define ISSHARP 0x00010000UL /* cutting edge */ +#define ISTWOH 0x00020000UL /* needs two hands to wield */ +#define ISLITTLE 0x00040000UL /* small weapon */ +#define ISLAUNCHER 0x00080000UL /* used to throw other weapons */ +#define TYP_MAGIC_MASK 0x0f000000UL +#define POT_MAGIC 0x01000000UL +#define SCR_MAGIC 0x02000000UL +#define ZAP_MAGIC 0x04000000UL +#define SP_WIZARD 0x10000000UL /* only wizards */ +#define SP_ILLUSION 0x20000000UL /* only illusionists */ +#define SP_CLERIC 0x40000000UL /* only clerics/paladins */ +#define SP_DRUID 0x80000000UL /* only druids/rangers */ +#define SP_MAGIC 0x30000000UL /* wizard or illusionist */ +#define SP_PRAYER 0xc0000000UL /* cleric or druid */ +#define SP_ALL 0xf0000000UL /* all special classes */ +#define _TWO_ ISBLESSED /* more powerful spell */ + +/* Various flag bits */ +#define ISDARK 0x00000001UL +#define ISGONE 0x00000002UL +#define ISTREAS 0x00000004UL +#define ISFOUND 0x00000008UL +#define ISTHIEFSET 0x00000010UL +#define WASDARK 0x00000020UL + +/* struct thing t_flags (might include player) for monster attributes */ +#define ISBLIND 0x00000001UL +#define ISINWALL 0x00000002UL +#define ISRUN 0x00000004UL +#define ISFLEE 0x00000008UL +#define ISINVIS 0x00000010UL +#define ISMEAN 0x00000020UL +#define ISGREED 0x00000040UL +#define CANSHOOT 0x00000080UL +#define ISHELD 0x00000100UL +#define ISHUH 0x00000200UL +#define ISREGEN 0x00000400UL +#define CANHUH 0x00000800UL +#define CANSEE 0x00001000UL +#define HASFIRE 0x00002000UL +#define ISSLOW 0x00004000UL +#define ISHASTE 0x00008000UL +#define ISCLEAR 0x00010000UL +#define CANINWALL 0x00020000UL +#define ISDISGUISE 0x00040000UL +#define CANBLINK 0x00080000UL +#define CANSNORE 0x00100000UL +#define HALFDAMAGE 0x00200000UL +#define CANSUCK 0x00400000UL +#define CANRUST 0x00800000UL +#define CANPOISON 0x01000000UL +#define CANDRAIN 0x02000000UL +#define ISUNIQUE 0x04000000UL +#define STEALGOLD 0x08000000UL +#define STEALMAGIC 0x10000001UL +#define CANDISEASE 0x10000002UL +#define HASDISEASE 0x10000004UL +#define CANSUFFOCATE 0x10000008UL +#define DIDSUFFOCATE 0x10000010UL +#define BOLTDIVIDE 0x10000020UL +#define BLOWDIVIDE 0x10000040UL +#define NOCOLD 0x10000080UL +#define TOUCHFEAR 0x10000100UL +#define BMAGICHIT 0x10000200UL +#define NOFIRE 0x10000400UL +#define NOBOLT 0x10000800UL +#define CARRYGOLD 0x10001000UL +#define CANITCH 0x10002000UL +#define HASITCH 0x10004000UL +#define DIDDRAIN 0x10008000UL +#define WASTURNED 0x10010000UL +#define CANSELL 0x10020000UL +#define CANBLIND 0x10040000UL +#define CANBBURN 0x10080000UL +#define ISCHARMED 0x10100000UL +#define CANSPEAK 0x10200000UL +#define CANFLY 0x10400000UL +#define ISFRIENDLY 0x10800000UL +#define CANHEAR 0x11000000UL +#define ISDEAF 0x12000000UL +#define CANSCENT 0x14000000UL +#define ISUNSMELL 0x18000000UL +#define WILLRUST 0x20000001UL +#define WILLROT 0x20000002UL +#define SUPEREAT 0x20000004UL +#define PERMBLIND 0x20000008UL +#define MAGICHIT 0x20000010UL +#define CANINFEST 0x20000020UL +#define HASINFEST 0x20000040UL +#define NOMOVE 0x20000080UL +#define CANSHRIEK 0x20000100UL +#define CANDRAW 0x20000200UL +#define CANSMELL 0x20000400UL +#define CANPARALYZE 0x20000800UL +#define CANROT 0x20001000UL +#define ISSCAVENGE 0x20002000UL +#define DOROT 0x20004000UL +#define CANSTINK 0x20008000UL +#define HASSTINK 0x20010000UL +#define ISSHADOW 0x20020000UL +#define CANCHILL 0x20040000UL +#define CANHUG 0x20080000UL +#define CANSURPRISE 0x20100000UL +#define CANFRIGHTEN 0x20200000UL +#define CANSUMMON 0x20400000UL +#define TOUCHSTONE 0x20800000UL +#define LOOKSTONE 0x21000000UL +#define CANHOLD 0x22000000UL +#define DIDHOLD 0x24000000UL +#define DOUBLEDRAIN 0x28000000UL +#define ISUNDEAD 0x30000001UL +#define BLESSMAP 0x30000002UL +#define BLESSGOLD 0x30000004UL +#define BLESSMONS 0x30000008UL +#define BLESSMAGIC 0x30000010UL +#define BLESSFOOD 0x30000020UL +#define CANBRANDOM 0x30000040UL /* Types of breath */ +#define CANBACID 0x30000080UL +#define CANBFIRE 0x30000100UL +#define CANBBOLT 0x30000200UL +#define CANBGAS 0x30000400UL +#define CANBICE 0x30000800UL +#define CANBPGAS 0x30001000UL /* Paralyze gas */ +#define CANBSGAS 0x30002000UL /* Sleeping gas */ +#define CANBSLGAS 0x30004000UL /* Slow gas */ +#define CANBFGAS 0x30008000UL /* Fear gas */ +#define CANBREATHE 0x3000ffc0UL /* Can it breathe at all? */ +#define STUMBLER 0x30010000UL +#define POWEREAT 0x30020000UL +#define ISELECTRIC 0x30040000UL +#define HASOXYGEN 0x30080000UL /* Doesn't need to breath air */ +#define POWERDEXT 0x30100000UL +#define POWERSTR 0x30200000UL +#define POWERWISDOM 0x30400000UL +#define POWERINTEL 0x30800000UL +#define POWERCONST 0x31000000UL +#define SUPERHERO 0x32000000UL +#define ISUNHERO 0x34000000UL +#define CANCAST 0x38000000UL +#define CANTRAMPLE 0x40000001UL +#define CANSWIM 0x40000002UL +#define LOOKSLOW 0x40000004UL +#define CANWIELD 0x40000008UL +#define CANDARKEN 0x40000010UL +#define ISFAST 0x40000020UL +#define CANBARGAIN 0x40000040UL +#define NOMETAL 0x40000080UL +#define CANSPORE 0x40000100UL +#define NOSHARP 0x40000200UL +#define DRAINWISDOM 0x40000400UL +#define DRAINBRAIN 0x40000800UL +#define ISLARGE 0x40001000UL +#define ISSMALL 0x40002000UL +#define CANSTAB 0x40004000UL +#define ISFLOCK 0x40008000UL +#define ISSWARM 0x40010000UL +#define CANSTICK 0x40020000UL +#define CANTANGLE 0x40040000UL +#define DRAINMAGIC 0x40080000UL +#define SHOOTNEEDLE 0x40100000UL +#define CANZAP 0x40200000UL +#define HASARMOR 0x40400000UL +#define CANTELEPORT 0x40800000UL +#define ISBERSERK 0x41000000UL +#define ISFAMILIAR 0x42000000UL +#define HASFAMILIAR 0x44000000UL +#define SUMMONING 0x48000000UL +#define CANREFLECT 0x50000001UL +#define LOWFRIENDLY 0x50000002UL +#define MEDFRIENDLY 0x50000004UL +#define HIGHFRIENDLY 0x50000008UL +#define MAGICATTRACT 0x50000010UL +#define ISGOD 0x50000020UL +#define CANLIGHT 0x50000040UL +#define HASSHIELD 0x50000080UL +#define HASMSHIELD 0x50000100UL +#define LOWCAST 0x50000200UL +#define MEDCAST 0x50000400UL +#define HIGHCAST 0x50000800UL +#define WASSUMMONED 0x50001000UL +#define HASSUMMONED 0x50002000UL +#define CANTRUESEE 0x50004000UL + + +#define FLAGSHIFT 28UL +#define FLAGINDEX 0x0000000fL +#define FLAGMASK 0x0fffffffL + +/* on - check if a monster flag is on */ +#define on(th, flag) \ + ((th).t_flags[(flag >> FLAGSHIFT) & FLAGINDEX] & (flag & FLAGMASK)) + +/* off - check if a monster flag is off */ +#define off(th, flag) \ + (!((th).t_flags[(flag >> FLAGSHIFT) & FLAGINDEX] & (flag & FLAGMASK))) + +/* turn_on - turn on a monster flag */ +#define turn_on(th, flag) \ + ( (th).t_flags[(flag >> FLAGSHIFT) & FLAGINDEX] |= (flag & FLAGMASK)) + +/* turn_off - turn off a monster flag */ +#define turn_off(th, flag) \ + ( (th).t_flags[(flag >> FLAGSHIFT) & FLAGINDEX] &= ~(flag & FLAGMASK)) + +#define SAME_POS(c1,c2) ( (c1.x == c2.x) && (c1.y == c2.y) ) + +/* types of things */ +/* All magic spells duplicate a potion, scroll, or stick effect */ + +#define TYP_POTION 0 +#define TYP_SCROLL 1 +#define TYP_RING 2 +#define TYP_STICK 3 +#define MAXMAGICTYPES 4 /* max number of items in magic class */ +#define MAXMAGICITEMS 50 /* max number of items in magic class */ +#define TYP_FOOD 4 +#define TYP_WEAPON 5 +#define TYP_ARMOR 6 +#define TYP_ARTIFACT 7 +#define NUMTHINGS (sizeof(things) / sizeof(struct magic_item)) + +/* Artifact types */ +#define TR_PURSE 0 +#define TR_PHIAL 1 +#define TR_AMULET 2 +#define TR_PALANTIR 3 +#define TR_CROWN 4 +#define TR_SCEPTRE 5 +#define TR_SILMARIL 6 +#define TR_WAND 7 +#define MAXARTIFACT (sizeof(arts) / sizeof(struct init_artifact)) + +/* Artifact flags */ +#define ISUSED 01 +#define ISACTIVE 02 + +/* Potion types - add also to magic_item.c and potions.c */ +#define P_CLEAR 0 +#define P_GAINABIL 1 +#define P_SEEINVIS 2 +#define P_HEALING 3 +#define P_MONSTDET 4 +#define P_TREASDET 5 +#define P_RAISELEVEL 6 +#define P_HASTE 7 +#define P_RESTORE 8 +#define P_PHASE 9 +#define P_INVIS 10 +#define P_SMELL 11 +#define P_HEAR 12 +#define P_SHERO 13 +#define P_DISGUISE 14 +#define P_FIRERESIST 15 +#define P_COLDRESIST 16 +#define P_HASOXYGEN 17 +#define P_LEVITATION 18 +#define P_REGENERATE 19 +#define P_SHIELD 20 +#define P_TRUESEE 21 +#define MAXPOTIONS 22 + +/* Scroll types - add also to magic_item.c and scrolls.c */ +#define S_CONFUSE 0 +#define S_MAP 1 +#define S_LIGHT 2 +#define S_HOLD 3 +#define S_SLEEP 4 +#define S_ENCHANT 5 +#define S_IDENTIFY 6 +#define S_SCARE 7 +#define S_GFIND 8 +#define S_SELFTELEP 9 +#define S_CREATE 10 +#define S_REMOVECURSE 11 +#define S_PETRIFY 12 +#define S_GENOCIDE 13 +#define S_CURING 14 +#define S_MAKEITEMEM 15 +#define S_PROTECT 16 +#define S_NOTHING 17 +#define S_SILVER 18 +#define S_OWNERSHIP 19 +#define S_FOODDET 20 +#define S_ELECTRIFY 21 +#define S_CHARM 22 +#define S_SUMMON 23 +#define S_REFLECT 24 +#define S_SUMFAMILIAR 25 +#define S_FEAR 26 +#define S_MSHIELD 27 +#define MAXSCROLLS 28 + +/* Rod/Wand/Staff types - add also to magic_item.c and sticks.c */ +#define WS_LIGHT 0 +#define WS_HIT 1 +#define WS_ELECT 2 +#define WS_FIRE 3 +#define WS_COLD 4 +#define WS_POLYMORPH 5 +#define WS_MISSILE 6 +#define WS_SLOW_M 7 +#define WS_DRAIN 8 +#define WS_CHARGE 9 +#define WS_MONSTELEP 10 +#define WS_CANCEL 11 +#define WS_CONFMON 12 +#define WS_DISINTEGRATE 13 +#define WS_ANTIMATTER 14 +#define WS_PARALYZE 15 +#define WS_XENOHEALING 16 +#define WS_NOTHING 17 +#define WS_INVIS 18 +#define WS_BLAST 19 +#define WS_WEB 20 +#define WS_KNOCK 21 +#define WS_CLOSE 22 +#define MAXSTICKS 23 + +/* Ring types */ +#define R_PROTECT 0 +#define R_ADDSTR 1 +#define R_SUSABILITY 2 +#define R_SEARCH 3 +#define R_SEEINVIS 4 +#define R_ALERT 5 +#define R_AGGR 6 +#define R_ADDHIT 7 +#define R_ADDDAM 8 +#define R_REGEN 9 +#define R_DIGEST 10 +#define R_TELEPORT 11 +#define R_STEALTH 12 +#define R_ADDINTEL 13 +#define R_ADDWISDOM 14 +#define R_HEALTH 15 +#define R_VREGEN 16 +#define R_LIGHT 17 +#define R_DELUSION 18 +#define R_CARRYING 19 +#define R_ADORNMENT 20 +#define R_LEVITATION 21 +#define R_FIRERESIST 22 +#define R_COLDRESIST 23 +#define R_ELECTRESIST 24 +#define R_RESURRECT 25 +#define R_BREATHE 26 +#define R_FREEDOM 27 +#define R_WIZARD 28 +#define R_PIETY 29 +#define R_TELCONTROL 30 +#define R_TRUESEE 31 +#define MAXRINGS 32 + +/* Weapon types */ +#define SLING 0 /* sling */ +#define ROCK 1 /* rocks */ +#define BULLET 2 /* sling bullet */ +#define BOW 3 /* short bow */ +#define ARROW 4 /* arrow */ +#define SILVERARROW 5 /* silver arrows */ +#define FLAMEARROW 6 /* flaming arrows */ +#define FOOTBOW 7 /* footbow */ +#define FBBOLT 8 /* footbow bolt */ +#define CROSSBOW 9 /* crossbow */ +#define BOLT 10 /* crossbow bolt */ + +#define DART 11 /* darts */ +#define DAGGER 12 /* dagger */ +#define HAMMER 13 /* hammer */ +#define LEUKU 14 /* leuku */ +#define JAVELIN 15 /* javelin */ +#define TOMAHAWK 16 /* tomahawk */ +#define MACHETE 17 /* machete */ +#define THROW_AXE 18 /* throwing axe */ +#define SHORT_SPEAR 19 /* spear */ +#define BOOMERANG 20 /* boomerangs */ +#define LONG_SPEAR 21 /* spear */ +#define SHURIKEN 22 /* shurikens */ +#define MOLOTOV 23 /* molotov cocktails */ +#define GRENADE 24 /* grenade for explosions */ +#define CLUB 25 /* club */ +#define PITCHFORK 26 /* pitchfork */ +#define SHORT_SWORD 27 /* short sword */ +#define HAND_AXE 28 /* hand axe */ +#define PARTISAN 29 /* partisan */ +#define GRAIN_FLAIL 30 /* grain flail */ +#define SINGLESTICK 31 /* singlestick */ +#define RAPIER 32 /* rapier */ +#define SICKLE 33 /* sickle */ +#define HATCHET 34 /* hatchet */ +#define SCIMITAR 35 /* scimitar */ +#define LIGHT_MACE 36 /* mace */ +#define MORNINGSTAR 37 /* morning star */ +#define BROAD_SWORD 38 /* broad sword */ +#define MINER_PICK 39 /* miner's pick */ +#define GUISARME 40 /* guisarme */ +#define WAR_FLAIL 41 /* war flail */ +#define CRYSKNIFE 42 /* crysknife */ +#define BATTLE_AXE 43 /* battle axe */ +#define CUTLASS 44 /* cutlass sword */ +#define GLAIVE 45 /* glaive */ +#define PERTUSKA 46 /* pertuska */ +#define LONG_SWORD 47 /* long sword */ +#define LANCE 48 /* lance */ +#define RANSEUR 49 /* ranseur */ +#define SABRE 50 /* sabre */ +#define SPETUM 51 /* spetum */ +#define HALBERD 52 /* halberd */ +#define TRIDENT 53 /* trident */ +#define WAR_PICK 54 /* war pick */ +#define BARDICHE 55 /* bardiche */ +#define HEAVY_MACE 56 /* mace */ +#define SCYTHE 57 /* great scythe */ +#define QUARTERSTAFF 58 /* quarter staff */ +#define BAST_SWORD 59 /* bastard sword */ +#define PIKE 60 /* pike */ +#define TWO_FLAIL 61 /* two-handed flail */ +#define TWO_MAUL 62 /* two-handed maul */ +#define TWO_PICK 63 /* two-handed pick */ +#define TWO_SWORD 64 /* two-handed sword */ +#define CLAYMORE 65 /* claymore sword */ +#define MAXWEAPONS (sizeof(weaps) / sizeof(struct init_weps)) +#define NONE 100 /* no weapon */ + +/* Armor types */ +#define SOFT_LEATHER 0 +#define CUIRBOLILLI 1 +#define HEAVY_LEATHER 2 +#define RING_MAIL 3 +#define STUDDED_LEATHER 4 +#define SCALE_MAIL 5 +#define PADDED_ARMOR 6 +#define CHAIN_MAIL 7 +#define BRIGANDINE 8 +#define SPLINT_MAIL 9 +#define BANDED_MAIL 10 +#define GOOD_CHAIN 11