/***************************************************************************
pipequeue.h - description
-------------------
begin : Sat Sep 30 2000
copyright : (C) 2000 by Waldemar Baraldi
email : baraldi@lacasilla.com.ar
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef PIPE_QUEUE_H
#define PIPE_QUEUE_H
#include "animatedcanvas.h"
#include "pipe.h"
#include "videomanager.h"
class PipeQueue : public AnimatedCanvas{
public:
static const int MaxPipes=3;
PipeQueue();
~PipeQueue();
int width();
int height();
/** Retorna el Pipe que se encuentra en la cabeza
de la cola y lo quita agregando luego uno por la cola.*/
Pipe * getHead();
/** Retorna el pipe en la posicion.*/
Pipe * getPipe(int pos);
/** Asigna una probabilidad entre 1..100 de agregar restricciones
de direccion.*/
void setRestrictionCoef(unsigned int coef);
/** Asigna una probabilidad entre 1..100 de agregar pipes fijos.*/
void setFixedCoef(unsigned int coef);
bool isChanged();
/** paint heredado.*/
void paint(VideoManager * vm);
void tick(){};
protected:
void fillUp();
Pipe * queue[MaxPipes];
int index;
bool change;
unsigned int res_coef;
unsigned int fixed_coef;
bool filled;
Pipe * generatePipe();
};
#endif