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 */ }
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); } }