void CollisionManager::CollideBulletTerrain( Bullet& bullet, Terrain& terrain ) { if( terrain.Type() != Terrain::Rock ) { bullet.SetCoordinates( terrain.GetCoordinates() ); return; } MessageBeep(MB_ICONSTOP); bullet.Explode(); bullet.Damage(terrain); }
void CollisionManager::CollideTankTerrain( Tank& tank, Terrain& terrain ) { switch( terrain.Type() ) { case Terrain::Rock: MessageBeep(MB_ICONHAND); break; case Terrain::Ice: if( ! tank.IsSkidding() ) { tank.SetCoordinates( terrain.GetCoordinates() ); tank.Skid(); } break; case Terrain::Grass: tank.SetCoordinates( terrain.GetCoordinates() ); break; } }