#include <exec/lists.h>
#include <exec/ports.h>

/* Antal linier der kan ses på skærmen ad gangen ved crsr-menuer */
/*#define VISIBLELINES 4 ændret til global variabel */ 
#define TOPLINE 7

/* Dette er bare en version/forfatter streng */
#define TITLE "Cydal filedoor V2.9 by Claus Dyring Jensen"

/* Her er lidt til alle ansikoderne */
#define ESC "\x1b"

#define FG0 "\x1b""[30m"
#define FG1 "\x1b""[31m"
#define FG2 "\x1b""[32m"
#define FG3 "\x1b""[33m"
#define FG4 "\x1b""[34m"
#define FG5 "\x1b""[35m"
#define FG6 "\x1b""[36m"
#define FG7 "\x1b""[37m"

#define BG0 "\x1b""[40m"
#define BG1 "\x1b""[41m"
#define BG2 "\x1b""[42m"
#define BG3 "\x1b""[43m"
#define BG4 "\x1b""[44m"
#define BG5 "\x1b""[45m"
#define BG6 "\x1b""[46m"
#define BG7 "\x1b""[47m"

#define LE "\x1b""[D"
#define RI "\x1b""[C"
#define UP "\x1b""[A"
#define DO "\x1b""[B"

#define KNAP "\x1b""[1;31m"
#define MENU "\x1b""[0;31m"

/* En msg struktur som vi får fra/gir til MAX */
struct DoorMsg {
  struct   Message Door_Msg;
  short    command;
  short    data;
  char     string[80];
  short    carrier;
};

/* Info om fil som den ligger på disk */
struct File {
  char name[32];
  char shortdesc[80];
  char longdesc[80];
  UWORD dl;
  UWORD qual;
  ULONG date;
  ULONG siz;
  LONGBITS flags;
};

#define FILEFLAG_LONGFILE 1       /* Lang beskrivelse findes og er i separat fil */
#define FILEFLAG_LONGARCHIVE 2    /* Lang beskrivelse findes og er i arkivet */
#define FILEFLAG_QUALITYLOCKED 4  /* Sysoppens kvalitetsvurderinger er endelige.. */

/* Info om fil som den ligger i hukommelsen */
struct Filemem {
  struct MinNode n;   /* Skal være først */
  struct File f;
};

/* Info om område som det ligger på disk */
struct Area {
  char name[32];      /* Det navn brugeren ser */
  char filename[32];  /* Navn på den fil der indeholder filerne i areaet */
  char path[100];     /* Sti til de filer der ligger i området */
  UWORD access;       /* Accesslevel påkrævet for at downloade fra området */
};

/* Info om område som det ligger i hukommelsen */
struct Areamem {
  struct Areamem *next;   /* Denne liste er simpel, så den er kun enkelthægtet */
  struct Area area;
  struct MinList files;
  BOOL dirty;             /* Markerer ændring i files listen fx karakterer ell dl count */
  ULONG filecount;
};
