-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCColourScheme.h
62 lines (46 loc) · 1.92 KB
/
CColourScheme.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef _CCOLOURSCHEME_H_
#define _CCOLOURSCHEME_H_
#include <iostream>
#include "CColour.h"
#include "CGraphicCell.h"
#include "CGraphicGrid.h"
class CColourScheme
{
public:
CColour* background;
CColour* dead;
CColour* alive;
CColour* dying;
CColour* reprod;
private:
CColourScheme();
public:
CColourScheme( std::string dead, std::string alive, std::string reprod, std::string dying, std::string background = "" )
{
this->dead = new CColour( dead );
this->alive = new CColour( alive );
this->reprod = new CColour( reprod );
this->dying = new CColour( dying );
this->background = ( background.empty() ) ? ( new CColour() ) : ( new CColour( background ) );
}
~CColourScheme()
{
delete dead;
delete alive;
delete dying;
delete reprod;
}
void setDead( std::string deadstr ) { dead->setColour( deadstr ); }
void setAlive( std::string alivestr ) { alive->setColour( alivestr ); }
void setDying( std::string dyingstr ) { dying->setColour( dyingstr ); }
void setReprod( std::string reprodstr ) { reprod->setColour( reprodstr ); }
static void setColoursToGrid( CColourScheme* cs )
{
SDL_FillRect( CGraphicCell::SurfDead, NULL, cs->dead->toRGB( CGraphicCell::SurfDead ) );
SDL_FillRect( CGraphicCell::SurfAlive, NULL, cs->alive->toRGB( CGraphicCell::SurfAlive ) );
SDL_FillRect( CGraphicCell::SurfReprod, NULL, cs->reprod->toRGB( CGraphicCell::SurfReprod ) );
SDL_FillRect( CGraphicCell::SurfDying, NULL, cs->dying->toRGB( CGraphicCell::SurfDying ) );
SDL_FillRect( CGraphicGrid::SurfGrid, NULL, cs->background->toRGB( CGraphicGrid::SurfGrid ) );
}
};
#endif // _CCOLOURSCHEME_H_