-
Notifications
You must be signed in to change notification settings - Fork 0
/
Board.h
107 lines (89 loc) · 2.78 KB
/
Board.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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
* Board.h
* Snake
*
* Created by Tyler on 6/12/06.
* Copyright 2006 Tyler Kieft. All rights reserved.
*
* CHANGELOG:
* 18Jun06 TDK Make WALL_COLOR non static constant (read from level file)
* 17Jun06 TDK Add ending position constants.
* 16Jun06 TDK Collectibles.
* 16Jun06 TDK Add starting position constants.
* 16Jun06 TDK Add updatePosition().
* 16Jun06 TDK Add readCurrentLevel() and nextLevel() methods,
* levelData array, destructor.
* 16Jun06 TDK Add currentLevel variable.
* 12Jun06 TDK New Code.
*/
#ifndef BOARD_H
#define BOARD_H
#include <string>
using std::string;
#include "SDL.h"
#include "SDL_ttf.h"
#include "SnakePlayer.h"
class Board
{
private:
const static int LEVEL_FLOOR = 0;
const static int LEVEL_WALL = 1;
const static int LEVEL_WALL2 = 2;
const static int LEVEL_COLLECTIBLE = 5;
const static int LEVEL_FLOOR_NO_COLLECTIBLE = 9; //Don't put collectibles here!
SDL_Color WALL_COLOR;
SDL_Color WALL2_COLOR;
SDL_Color FLOOR_COLOR;
int currentLevel;
int deadPlayer;
int* levelData;
string levelName;
string levelLocation;
string dieString;
string levelPath;
string applePath;
int* snakeHead;
int* snakeHeadPosition;
int collectibles;
SDL_Surface* apple;
void levelInit( int numSnakes );
public:
/* Class-wide constants */
const static int TILESIZE = 12;
const static int LEVELSIZE = 35;
const static int XLOC = 30;
const static int YLOC = 30;
/* Constructor and destructor */
Board();
void Cleanup();
/* Methods */
void Init( string rsrcPath, int numSnakes );
int updatePosition( SnakePlayer* snakes[] );
void drawLevelPlaying( SDL_Surface* scr, SnakePlayer* snakes[] );
void drawLevelStart( SDL_Surface* scr );
void drawLevelPaused( SDL_Surface* scr );
void drawGameLost( SDL_Surface* scr );
void drawSnakeInfo( SDL_Surface* scr, SnakePlayer* snakes[] );
void drawHelp( SDL_Surface* scr );
void drawLevelLostInfo( SDL_Surface* scr, SnakePlayer* snakes[] );
void drawLevelWonInfo( SDL_Surface* scr );
void nextLevel( int numSnakes );
void restartLevel( int numSnakes );
void setLevel( int level, int numSnakes );
bool readCurrentLevel();
void placeCollectible();
private:
const static int STARTING_POSITION[];
const static int ENDING_POSITION[];
void drawLargeText( const char* text, double yMult, SDL_Surface* scr );
void drawSmallText( const char* text, SDL_Surface* scr, string loc );
void drawBorderedRect( SDL_Surface* scr );
TTF_Font* largeFont;
TTF_Font* smallFont;
TTF_Font* playerFont[2];
TTF_Font* levelFont;
SDL_Surface* fontSurface;
SDL_Color levelNumColor;
SDL_Color levelNumBG;
};
#endif