#include "Popcorn:h.Popcorn"

void Popcorn_CollisionCheck(struct object_table *t1,
     			    struct object_table *t2)
{
  int	 		    num1, num2;
  union object_flags	    reason_collide;

  reason_collide.word = 0;
  reason_collide.bits.collide = 1;

  if (t1->collisions == NULL || t2->collisions == NULL)
    return;

  num1 = 0;
  while (num1 != t1->collisions->entries)
  {
    if (t1 != t2)
      num2 = 0;
    else
      num2 = num1+1;
    while (num2 != t2->collisions->entries)
    {
      if (
      !(t1->collisions->collision[num1].y0 > t2->collisions->collision[num2].y1) &&
      !(t1->collisions->collision[num1].y1 < t2->collisions->collision[num2].y0) &&
      !(t1->collisions->collision[num1].x0 > t2->collisions->collision[num2].x1) &&
      !(t1->collisions->collision[num1].x1 < t2->collisions->collision[num2].x0)      )
        ( t1->collisions->collision[num1].back_ptr->handler)( (void*) t1->collisions->collision[num1].back_ptr, reason_collide, (void*) t2->collisions->collision[num2].back_ptr); /* Yuck... so I can't (void*) program! */
/*       { */
/*         printf("%X %X\n", t1->collisions->collision[num1].back_ptr, t1->collisions->collision[num1].back_ptr); */
/*       } */

      num2++;
    }
    num1++;
  }
  return;
}
