//
// deftype.h
//

typedef struct
{
        int x, y;
} DEST;


typedef struct
{
          BYTE feldx, feldy, del, stop, explose;
          BYTE attack, job, atkanz, type;                     
          BYTE status, kills, go;
          BYTE fire, d_x, d_y, d_, ainc, binc, yinc, xinc, x_, y_, dir;
          int energie, shape;
          int x, y, x1, y1;                                  
          int ax, ay, ax1, ay1;                              
          int dx, dy;                                        
          DEST d[20];
          BYTE dcount, dc;
          int tx, ty;
} MANN;

typedef struct
{
        BYTE    speed;                  // Geschwindigkeit
        BYTE    weapon_reach;           // Waffenreichweite
        BYTE    see_reach;              // Sichtweite
        BYTE    energie;                // Lebensernergie
        BYTE    weapon_destruct;        // Hit-Points die die Waffe abzieht
        BYTE    hit_security;           // Treffsicherheit
} MANN_DEFS;


void fput_Mann ( FILE *D, MANN *M )
{
  int i;

  fputc(M->shape, D);                   // 1
  fputc(M->feldx, D);                   // 2
  fputc(M->feldy, D);                   // 3  
  fputc(M->energie, D);                 // 4
  fputc(M->del, D);                     // 5
  fputc(M->stop, D);                    // 6
  fputc(M->attack, D);                  // 7
  fputc(M->atkanz, D);                  
  fputc(M->type, D);                  
  fputc(M->job, D);
  fputc(M->x, D);                       // 8
  fputc(M->y, D);                       // 9
  fputc(M->x1, D);                      // 10
  fputc(M->y1, D);                      // 11
  fputc(M->ax, D);                      // 12
  fputc(M->ay, D);                      // 13
  fputc(M->ax1, D);                     // 14
  fputc(M->ay1, D);                     // 15
  fputc(M->dx, D);                      // 16
  fputc(M->dy, D);                      // 17
  fputc(M->tx, D);                      // 18
  fputc(M->ty, D);                      // 19
  fputc(M->dcount, D);
  for (i=0; i<5; i++) { fputc(M->d[i].x, D); fputc(M->d[i].y, D); }
}

void fget_Mann ( FILE *D, MANN *M )
{
  int i;

  M->shape = fgetc(D);                   // 1
  M->feldx = fgetc(D);                   // 2
  M->feldy = fgetc(D);                   // 3  
  M->energie = fgetc(D);                 // 4
  M->del = fgetc(D);                     // 5
  M->stop = fgetc(D);                    // 6
  M->attack = fgetc(D);                  // 7
  M->atkanz = fgetc(D);   
  M->type = fgetc(D);   
  M->job = fgetc(D);
  M->x = fgetc(D);                       // 8
  M->y = fgetc(D);                       // 9
  M->x1 = fgetc(D);                      // 10
  M->y1 = fgetc(D);                      // 11
  M->ax = fgetc(D);                      // 12
  M->ay = fgetc(D);                      // 13
  M->ax1 = fgetc(D);                     // 14
  M->ay1 = fgetc(D);                     // 15
  M->dx = fgetc(D);                      // 16
  M->dy = fgetc(D);                      // 17
  M->tx = fgetc(D);                      // 18
  M->ty = fgetc(D);                      // 19
  M->dcount = fgetc(D);
  for (i=0; i<5; i++) { M->d[i].x = fgetc(D); M->d[i].y = fgetc(D); }
}

