AwakeMUD-0.8.18B/
AwakeMUD-0.8.18B/doc/
AwakeMUD-0.8.18B/lib/
AwakeMUD-0.8.18B/lib/etc/
AwakeMUD-0.8.18B/lib/etc/pfiles/
AwakeMUD-0.8.18B/lib/misc/
AwakeMUD-0.8.18B/lib/text/
AwakeMUD-0.8.18B/lib/text/help/
AwakeMUD-0.8.18B/lib/text/wizhelp/
AwakeMUD-0.8.18B/lib/veh/
AwakeMUD-0.8.18B/lib/world/
AwakeMUD-0.8.18B/lib/world/mob/
AwakeMUD-0.8.18B/lib/world/mtx/
AwakeMUD-0.8.18B/lib/world/qst/
AwakeMUD-0.8.18B/lib/world/shp/
AwakeMUD-0.8.18B/lib/world/veh/
 #include "bitfield.h"

#define ACCESS	0
#define CONTROL	1
#define INDEX	2
#define FILES	3
#define SLAVE	4

struct host_data {
  vnum_t vnum;
  rnum_t rnum;
  vnum_t parent;

  char *name;
  char *keywords;
  char *desc;
  char *shutdown_start;
  char *shutdown_stop;

  sh_int colour;
  sh_int security;
  sh_int intrusion;
  long stats[5][4];

  int type;
  int reset;
  int found;
  int alert;
  int pass;
  int shutdown;
  int shutdown_success;
  int shutdown_mpcp;
  bool payreset;

  struct trigger_step *trigger;
  struct matrix_icon *icons;
  struct matrix_icon *fighting;
  struct exit_data *exit;
  struct obj_data *file;
  host_data():
    name(NULL), keywords(NULL), desc(NULL), shutdown_start(NULL), shutdown_stop(NULL),
    type(0), reset(0), found(0), alert(0), pass(0), shutdown(0), shutdown_success(0), shutdown_mpcp(0), 
    payreset(TRUE), trigger(NULL), icons(NULL), fighting(NULL), exit(NULL), file(NULL)
  {}
};

struct exit_data {
  vnum_t host;
  char *number;
  struct exit_data *next;
  exit_data():
    host(0), number(NULL), next(NULL)
  {}
};

struct trigger_step {
  int step;
  int alert;
  vnum_t ic;
  struct trigger_step *next;
  trigger_step():
    step(0), alert(0), ic(0), next(NULL)
  {}
};

struct seen_data {
  int idnum;
  struct seen_data *next;
  seen_data():
    next(NULL)
  {}
};

struct ic_info {
  int rating;
  int type;
  int subtype;
  long target;
  bool supressed;
  Bitfield options;
  long trap; 
  int expert;
  int cascade;
  int targ_evasion;
  ic_info():
    rating(0), type(0), subtype(0), target(0), supressed(FALSE), trap(0), expert(0), cascade(0), targ_evasion(0)
  {}
};

struct deck_info {
  int mpcp;
  int bod;
  int sensor;
  int evasion;
  int masking;
  int hardening;

  int active;
  int storage;
  int response;
  int io;
  int res_det;
  int res_test;
  bool asist[2];
  bool ras;
  bool reality;
  bool iccm;

  int tally;
  int last_trigger;
  int scout;
  bool located;
  int redirect;
  long *redirectedon;
  long mxp;

  struct char_data *hitcher;
  struct obj_data *software;
  struct obj_data *deck;
  struct seen_data *seen;
  struct char_data *ch;
  struct phone_data *phone;
  deck_info():
    mpcp(0), bod(0), sensor(0), evasion(0), masking(0), hardening(0), active(0), 
    storage(0), response(0), res_det(0), res_test(0),
    tally(0), last_trigger(0), scout(0), located(FALSE),
    redirect(0), redirectedon(NULL), hitcher(NULL), software(NULL), deck(NULL),
    seen(NULL), ch(NULL), phone(NULL)
   {} 
};

struct matrix_icon {
  char *name;
  char *long_desc;
  char *look_desc;

  int idnum;
  vnum_t number;
  int condition;
  int initiative;
  int parry;
  int evasion;
  int position;
  struct ic_info ic;
  struct deck_info *decker;
  rnum_t in_host;
  struct matrix_icon *fighting;
  struct matrix_icon *next;
  struct matrix_icon *next_in_host;
  struct matrix_icon *next_fighting;

  matrix_icon():
    name(NULL), long_desc(NULL), look_desc(NULL), idnum(0), number(0), condition(10),
    initiative(0), parry(0), evasion(0), position(0),
    decker(NULL), fighting(NULL), next(NULL), next_in_host(NULL), next_fighting(NULL)
  {}
};

extern bool has_spotted(struct matrix_icon *icons, struct matrix_icon *targ);