home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / HACKSRC.ZIP / OBJCLASS.H < prev    next >
C/C++ Source or Header  |  1985-10-16  |  2KB  |  61 lines

  1. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  2. /* 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.  * mkobj.c:    char mkobjstr[] = "))[[!!!!????%%%%/=**";
  56.  * apply.c:   otmp = getobj("0#%", "put in");
  57.  * eat.c:     otmp = getobj("%", "eat");
  58.  * invent.c:          if(index("!%?[)=*(0/\"", sym)){
  59.  * invent.c:    || index("%?!*",otmp->olet))){
  60.  */
  61.