Exemplo n.º 1
0
void Test_Collisions()
{

  int i;
  int Handle_Missile_Flag;

  Handle_Missile_Flag=OFF;

  for(i=0;i<6;i++)   /* for all  possible missiles */
    {                  /* check against mine only */
  if(Mine_Flag==ALIVE)
    if(Missile_Flag[i]==ALIVE)
      if(Check_Collision(Missile_X_Pos[i],Missile_Y_Pos[i],
  	    Mine_X_Pos,Mine_Y_Pos,COLLISION_DIST) )
        {
    Missile_Flag[i]=KILL;
    Handle_Missile_Flag=ON;

    Mine_Flag=KILL;
    Score=1.0;
    Handle_Mine();
      } /* end missile vs. mine for aiming test */
    }
  if(Handle_Missile_Flag) Handle_Missile(); /* KILL them all */


}
Exemplo n.º 2
0
 void cBaseBox::Activate_Collision(ObjectDirection cdirection)
 {
     if (move_col_dir != DIR_UNDEFINED)
     {
         return;
     }
     
     if (useable_count == 0)
     {
         return;
     }
     
     if (box_invisible)
     {
         if (box_invisible == BOX_INVISIBLE_SEMI_MASSIVE)
         {
             m_massive_type = MASS_MASSIVE;
         }
     }
     
     if (cdirection == DIR_UP)
     {
         Set_Scale_Directions(1, 0, 1, 1);
     }
     else if (cdirection == DIR_DOWN)
     {
         Set_Scale_Directions(0, 1, 1, 1);
     }
     else if (cdirection == DIR_LEFT)
     {
         Set_Scale_Directions(1, 0, 1, 0);
     }
     else if (cdirection == DIR_RIGHT)
     {
         Set_Scale_Directions(1, 0, 0, 1);
     }
     
     move_col_dir = cdirection;
     Update_Valid_Update();
     
     Check_Collision(Get_Opposite_Direction(move_col_dir));
     Activate();
     
     if (useable_count > 0 || useable_count == -1)
     {
         Set_Useable_Count(useable_count - 1);
     }
 }