#include "intlong.h"
bit32 scprod();
extern atomtype *iptr1;
extern bit16 shit_data[];
extern bit16 view_pos[3],view_vec[9];
extern bit16 divy(bit32 x);

void shit(void)
{
  register bit16 *p = shit_data;
  bit16 i,x,y,d;
  bit16 shit_pos[3];
  for(i=*p++; i != 0; i--,p+=3) {
    shit_pos[0] = (bit8)(p[0]-view_pos[0]);
    shit_pos[1] = (bit8)(p[1]-view_pos[1]);
    shit_pos[2] = (bit8)(p[2]-view_pos[2]);
    d = div14(scprod(shit_pos,view_vec+3));
    if(d > 5) {
      x = divy(scprod(shit_pos,view_vec) / d) + (VPX1+VPX2)/2;
      if((x > VPX1) && (x < VPX2)) {
        y = divy(scprod(shit_pos,view_vec+6) / d) + (VPY1+VPY2)/2;
        if((y > VPY1) && (y < VPY2)) {
          iptr1->type = 'p';
          iptr1->x1 = x;
          iptr1->y1 = y;
          iptr1++;
        }
      }
    }
  }
}

bit16 divy(bit32 x)
{
  return (bit16)(x >> 8);
}
