Exemple #1
0
void	Explosion::clearExplosion(GameMap &map, int pow)
{
  int	xpos = getPosX();
  int	zpos = getPosZ();
  int	i;

  // right
  if (map.getCoordType(zpos, xpos) == 7)
    map.setTypeAtPos(xpos, zpos, 0);

  for (i = 1; i < pow; ++i)
    if (map.getCoordType(zpos, xpos + i) == 7)
      map.setTypeAtPos(xpos + i, zpos, 0);

  // left
  for (i = -1; i > -pow; --i)
    {
      if (map.getCoordType(zpos, xpos + i) == 7)
	map.setTypeAtPos(xpos + i, zpos, 0);
    }

  // up
  for (i = 1; i < pow; ++i)
    {
      if (map.getCoordType(zpos + i, xpos) == 7)
	map.setTypeAtPos(xpos, zpos + i, 0);
    }

  // down
  for (i = -1; i > -pow; --i)
    {
      if (map.getCoordType(zpos + i, xpos) == 7)
	map.setTypeAtPos(xpos, zpos + i, 0);
    }
}
Exemple #2
0
void	Explosion::impact(GameMap &map, int pow)
{
  int	xpos = getPosX();
  int	zpos = getPosZ();
  int	i;

  // right
  map.setTypeAtPos(xpos, zpos, 7);
  for (i = 1; i < pow; ++i)
    {
      if (map.getCoordType(zpos, xpos + i) == 1)
	break;
      else if (map.getCoordType(zpos, xpos + i) == 4)
	{
	  map.setRandomBonusAtPos(xpos + i, zpos);
	  break;
	}
      map.setTypeAtPos(xpos +i, zpos, 7);
    }

  // up
  for (i = -1; i > -pow; --i)
    {
      if (map.getCoordType(zpos, xpos + i) == 1)
	break;
      else if (map.getCoordType(zpos, xpos + i) == 4)
	{
	  map.setRandomBonusAtPos(xpos + i, zpos);
	  break;
	}
      map.setTypeAtPos(xpos + i, zpos, 7);
    }

  // up
  for (i = 1; i < pow; ++i)
    {
      if (map.getCoordType(zpos + i, xpos) == 1)
	break;
      else if (map.getCoordType(zpos + i, xpos) == 4)
      	{
      	  map.setRandomBonusAtPos(xpos, zpos + i);
      	  break;
      	}
      map.setTypeAtPos(xpos, zpos + i, 7);
    }

  // down
  for (i = -1; i > -pow; --i)
    {
      if (map.getCoordType(zpos + i, xpos) == 1)
	break;
      else if (map.getCoordType(zpos + i, xpos) == 4)
      	{
      	  map.setRandomBonusAtPos(xpos, zpos + i);
      	  break;
      	}
      map.setTypeAtPos(xpos, zpos + i, 7);
    }
}
Exemple #3
0
void	Explosion::toRenew(GameMap &map, int pow)
{
  int	xpos = getPosX();
  int	zpos = getPosZ();
  int	i;

  // right
  if (map.getCoordType(zpos, xpos) == 7 || map.getCoordType(zpos, xpos) == 0)
    map.setTypeAtPos(xpos, zpos, 7);

  for (i = 1; i < pow; ++i)
    if (map.getCoordType(zpos, xpos + i) == 7 ||
	map.getCoordType(zpos, xpos + i) == 0)
      map.setTypeAtPos(xpos + i, zpos, 7);
    else
      break;

  //left
  for (i = -1; i > -pow; --i)
    {
      if (map.getCoordType(zpos, xpos + i) == 7 ||
	  map.getCoordType(zpos, xpos + i) == 0)
	map.setTypeAtPos(xpos + i, zpos, 7);
      else
	break;
    }

  // up
  for (i = 1; i < pow; ++i)
    {
      if (map.getCoordType(zpos + i, xpos) == 7 ||
	  map.getCoordType(zpos + i, xpos) == 0)
	map.setTypeAtPos(xpos, zpos + i, 7);
      else
	break;
    }

  // down
  for (i = -1; i > -pow; --i)
    {
      if (map.getCoordType(zpos + i, xpos) == 7 ||
	  map.getCoordType(zpos + i, xpos) == 0)
	map.setTypeAtPos(xpos, zpos + i, 7);
      else
	break;
    }
}