|
|
1.1 ! root 1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ ! 2: /* def.objclass.h - version 1.0.3 */ ! 3: ! 4: /* definition of a class of objects */ ! 5: ! 6: struct objclass { ! 7: char *oc_name; /* actual name */ ! 8: char *oc_descr; /* description when name unknown */ ! 9: char *oc_uname; /* called by user */ ! 10: Bitfield(oc_name_known,1); ! 11: Bitfield(oc_merge,1); /* merge otherwise equal objects */ ! 12: char oc_olet; ! 13: schar oc_prob; /* probability for mkobj() */ ! 14: schar oc_delay; /* delay when using such an object */ ! 15: uchar oc_weight; ! 16: schar oc_oc1, oc_oc2; ! 17: int oc_oi; ! 18: #define nutrition oc_oi /* for foods */ ! 19: #define a_ac oc_oc1 /* for armors - only used in ARM_BONUS */ ! 20: #define ARM_BONUS(obj) ((10 - objects[obj->otyp].a_ac) + obj->spe) ! 21: #define a_can oc_oc2 /* for armors */ ! 22: #define bits oc_oc1 /* for wands and rings */ ! 23: /* wands */ ! 24: #define NODIR 1 ! 25: #define IMMEDIATE 2 ! 26: #define RAY 4 ! 27: /* rings */ ! 28: #define SPEC 1 /* +n is meaningful */ ! 29: #define wldam oc_oc1 /* for weapons and PICK_AXE */ ! 30: #define wsdam oc_oc2 /* for weapons and PICK_AXE */ ! 31: #define g_val oc_oi /* for gems: value on exit */ ! 32: }; ! 33: ! 34: extern struct objclass objects[]; ! 35: ! 36: /* definitions of all object-symbols */ ! 37: ! 38: #define ILLOBJ_SYM '\\' ! 39: #define AMULET_SYM '"' ! 40: #define FOOD_SYM '%' ! 41: #define WEAPON_SYM ')' ! 42: #define TOOL_SYM '(' ! 43: #define BALL_SYM '0' ! 44: #define CHAIN_SYM '_' ! 45: #define ROCK_SYM '`' ! 46: #define ARMOR_SYM '[' ! 47: #define POTION_SYM '!' ! 48: #define SCROLL_SYM '?' ! 49: #define WAND_SYM '/' ! 50: #define RING_SYM '=' ! 51: #define GEM_SYM '*' ! 52: /* Other places with explicit knowledge of object symbols: ! 53: * ....shk.c: char shtypes[] = "=/)%?!["; ! 54: * mklev.c: "=/)%?![<>" ! 55: * hack.mkobj.c: char mkobjstr[] = "))[[!!!!????%%%%/=**"; ! 56: * hack.apply.c: otmp = getobj("0#%", "put in"); ! 57: * hack.eat.c: otmp = getobj("%", "eat"); ! 58: * hack.invent.c: if(index("!%?[)=*(0/\"", sym)){ ! 59: * hack.invent.c: || index("%?!*",otmp->olet))){ ! 60: */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.