/* -*- C++ -*- */

#ifndef _OBSTACLE_H_
#define _OBSTACLE_H_

#include "Figure.h"

/** Contains the cubes of the obstacle and draws the border. */
class Obstacle : public Figure
{
public:
	Obstacle (const int _sizeX,
		  const int _sizeY,
		  const int _sizeZ);
	~Obstacle();

	/** Draws the obstacle boundings and cubes. */
	void draw();

	/** Return true if _fig is inside border. */
	bool isInsideBorder (const Figure& _fig) const;

	/** Removes possible levels and accumulate points.
	 *
	 * @return points accumulated on removing
	 */
	int removeLevelsWherePossible();

protected:

	/** Color of the border. */
	Color colorBorder;

	/** Removes all cubes on specified level and drops all higher level. */
	void removeCubesOnLevel (int level);

	/** Counts all cubes on specified level. */
	int countCubesOnLevel (int level);
};

#endif _OBSTACLE_H_

Documentation generated by skyhunter@Dagobah on Wed Sep 16 18:39:03 MEST 1998