#include "intlong.h"
extern void vector(bit16 x1, bit16 y1, bit16 x2, bit16 y2, char mode, bit16 col);
extern void plot(bit16 x, bit16 y);
extern void draw_object(bodytype *body);
extern void shit(void);
extern atomtype imbuf[256];
extern atomtype *ibase1,*ibase2;
extern atomtype *iptr1,*iptr2;
extern atomtype *imax1,*imax2;
extern bodytype bodies[];

void init_atoms(void)
{
  iptr1 = ibase1;
}

void plot_atoms(void)
{
  char flag;
  imax1 = iptr1;
  iptr1 = ibase1;
  iptr2 = ibase2;
  do {
    flag = 0;
    if(iptr1 != imax1) {
      switch(iptr1->type) {
        case 'v':
                vector(iptr1->x1,iptr1->y1,iptr1->x2,iptr1->y2,'^',5);
                break;
        case 'p':
                plot(iptr1->x1,iptr1->y1);
                break;
      }
      iptr1++;
      flag = 1;
    }
    if(iptr2 != imax2) {
      switch(iptr2->type) {
        case 'v':
                vector(iptr2->x1,iptr2->y1,iptr2->x2,iptr2->y2,'^',5);
                break;
        case 'p':
                plot(iptr2->x1,iptr2->y1);
                break;
      }
      iptr2++;
      flag = 1;
    }
  } while(flag);
  iptr1 = ibase1;
  ibase1 = ibase2;
  ibase2 = iptr1;
  imax2 = imax1;
}

void display(bit16 dmode)
{
  int i;
  register bodytype *p;
  init_atoms();
  for(i=0; i<MAX_BODY; i++) {
    p = &bodies[i];
    if(p->r != 0) {
      draw_object(p);
    }
  }
  shit();
  plot_atoms();
}

