Ejemplo n.º 1
0
void MinigameBbAnt::drawMagnifyingGlass(DrawList &drawList) {	
	scale2x(_objects[0].x - 28, _objects[0].y - 27);
	drawList.clear();
	drawList.add(_objects[0].anim->frameIndices[0], _objects[0].x, _objects[0].y, _objects[0].priority);
	drawList.add(_objects[0].anim->frameIndices[1], _objects[0].x, _objects[0].y, _objects[0].priority);
	drawList.add(_objects[0].anim->frameIndices[2], _objects[0].x, _objects[0].y, _objects[0].priority);
}
Ejemplo n.º 2
0
//---------------------------------------------------------------------------
// void display(void)
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);   // clear the backbuffer

	//draw all the Static Stuff -> map data
	for (Drawable* drawable : Static) {
		drawable->draw();
	}
	//draw everything on the drawlist
	for (Drawable* drawable : drawList){ 
		drawable->draw(); 
		//delete the pointers to the drawable on the drawlist
		delete drawable;
	}

	//lastly draw the text -> ensures the text is always draw on top
	for (Drawable* drawable : DrawTextList) {
		drawable->draw();
		//delete the ponter to the drawable
		delete drawable;
	}
    // Visualize the drawing commands
    glFlush();            // Execute all commands waiting to be executed
    glutSwapBuffers();    // Swap the backbuffer and frontbuffer
	//clear the drawing & text list
	drawList.clear();
	DrawTextList.clear();
}
Ejemplo n.º 3
0
void BbvsEngine::loadScene(int sceneNum) {
	debug(0, "BbvsEngine::loadScene() sceneNum: %d", sceneNum);

	Common::String sprFilename = Common::String::format("vnm/vspr%04d.vnm", sceneNum);
	Common::String gamFilename = Common::String::format("vnm/game%04d.vnm", sceneNum);

	_screen->clear();

	_spriteModule->load(sprFilename.c_str());
	_gameModule->load(gamFilename.c_str());

	Palette palette = _spriteModule->getPalette();
	_screen->setPalette(palette);

	// Preload sounds
	for (uint i = 0; i < _gameModule->getPreloadSoundsCount(); ++i) {
		Common::String filename = Common::String::format("snd/snd%05d.aif", _gameModule->getPreloadSound(i));
		_sound->loadSound(filename);
	}

	if (sceneNum >= kMainMenu) {
		DrawList drawList;
		drawList.add(_gameModule->getBgSpriteIndex(0), 0, 0, 0);
		_screen->drawDrawList(drawList, _spriteModule);
		drawScreen();
	}

}
Ejemplo n.º 4
0
void MinigameBbAnt::buildDrawList2(DrawList &drawList) {
	buildDrawList1(drawList);
	drawList.add(getAnimation(168)->frameIndices[0], 40, 100, 2000);
	drawNumber(drawList, _counter1, 190, 112);
	drawNumber(drawList, _countdown5, 258, 112);
	drawList.add(getAnimation(169)->frameIndices[0], 120, 120, 2000);
	drawNumber(drawList, _counter4, 192, 132);
}
Ejemplo n.º 5
0
BufferedDrawList::DrawListRef BufferedDrawList::forUpdate() {

	DrawList* dl;
	for(;;) {
		dl = &Dl[Ui];
		if(--Ui == 0) Ui = 2;
		if (dl == Rendering || dl == ToRender)continue;

		break;
	}
	dl->clear();
	return DrawListRef( *dl, *this);
}
Ejemplo n.º 6
0
//draw the path from the map file
void path() {
	for (int i = 0; i < mapSizex; i++) {
		for (int j = 0; j < mapSizey; j++) {
			float x = i*20;
			float y = j*20;

			if (Map[i][j] == '/' ) { 
				//draw the path where enemy's walk
				Color color = { 0.47265625, 0.33203125, 0.28125 };
				PointF begin1 = { x,y };
				PointF begin2 = { (x),(y+20) };
				PointF begin3 = { (x-20),(y+20) };
				PointF begin4 = { (x - 20), (y) };
				Sqaure* sq = new Sqaure(begin1, begin2, begin3, begin4, color);
				Static.push_back(sq);
				//drawList.push_back(sq);
			}
			//path where building is allowed
			if (Map[i][j] == '*' || Map[i][j] == 'T') {
				//draw the building site
				Color color = { 0 , 0.47265625, 0.41796875 };
				PointF begin1 = { x,y };
				PointF begin2 = { (x),(y + 20) };
				PointF begin3 = { (x - 20),(y + 20) };
				PointF begin4 = { (x - 20), (y) };
				Sqaure* sq = new Sqaure(begin1, begin2, begin3, begin4, color);
				Static.push_back(sq);
				//drawList.push_back(sq);
			}
			//end point of the map
			if (Map[i][j] == 'E') {
				//draw the end map
				Color color = { 1.0f, 0.4f, 0.4f };
				PointF begin1 = { x,y };
				PointF begin2 = { (x),(y + 20) };
				PointF begin3 = { (x - 20),(y + 20) };
				PointF begin4 = { (x - 20), (y) };
				Sqaure* sq = new Sqaure(begin1, begin2, begin3, begin4, color);
				Static.push_back(sq);
				//drawList.push_back(sq);
			}
			//if the map data contains nothing special
			else {
				continue;
			}
		}
	}

	
}
Ejemplo n.º 7
0
void AsteroidField::Asteroid::Draw(DrawList &draw, const Point &center, const Point &centerVelocity) const
{
	Point pos = location - center;
	pos = Point(remainder(pos.X(), WRAP), remainder(pos.Y(), WRAP));
	
	draw.Add(animation, pos, angle.Unit() * .5, velocity - centerVelocity);
}
Ejemplo n.º 8
0
//draw the actual bullet's as is seen on screen
void drawBullet() {
	//define colors and width of the bullet
	Color color = { 0.9f, 0.9f, 0.9f }; //white bullets
	float lind = 2.0;
	//itterate over the bullet vector
	for (unsigned i = 0; i < bulletvector.size(); i++) {
		PointF BulletPos = bulletvector.at(i)->Move();

		// if bullet is out of screen 
		if (BulletPos[0] > windowWidth || BulletPos[1] > windowHeight || BulletPos[0] < 0 || BulletPos[1] < 0) {
			//delete the bulelt from the vector and the pointer to the bullet
			delete bulletvector.at(i);
			bulletvector.erase(bulletvector.begin() + i);	
			
		}
		else {
			//update the movement of the bullet
			bulletvector.at(i)->Update(BulletPos);
			//draw the bullet		+5 becuase of the width of the bullet
			PointF BulletPos2 = { BulletPos[0], (BulletPos[1] + 5) };
			Line* bulletline = new Line{ BulletPos , BulletPos2 , color, lind };
			//push to the draw list
			drawList.push_back(bulletline);
		}
	}
}
Ejemplo n.º 9
0
// Draw the asteroids, centered on the given location.
void AsteroidField::Draw(DrawList &draw, const Point &center, double zoom) const
{
	for(const Asteroid &asteroid : asteroids)
		asteroid.Draw(draw, center, zoom);
	for(const shared_ptr<Minable> &minable : minables)
		draw.Add(*minable);
}
Ejemplo n.º 10
0
//make a grid
void raster() {
	Color color = { 0.40625,0.76171875,0.63671875 };
	int rasterHoogte = windowHeight;
	int rasterBreedte = windowWidth;
	int res =  15;
	float radius = 2.5;
	int seg = 5;
	float varx;
	float vary;

	for (int i = 0; i < (rasterBreedte/res); i++) {
		for (int j = 0; j < ((rasterHoogte)/res); j++) {
			
			varx = 20 * i;
			vary = 20 * j;
			//make a grid if the width still has 200 pixels
			if ((windowWidth - 200) > varx) {
				PointF posPixel = { varx , vary };
				Circle* dots = new Circle(posPixel, color, radius, seg);
				Static.push_back(dots);
			}
			else {
				continue;
			}
		}
	}

	//draw the grid
	path();
}
Ejemplo n.º 11
0
//draw the game Gui buttons -> static draw so only has to be draw once
void DrawButton() {
	float x = (windowWidth - 180);
	float padding = 5;
	Color Textcolor = { 0.375, 0.48828125, 0.54296875 };
	Color ButtonColor = { 0.99609375, 0.33984375, 0.1328125 };
	//start button
	PointF begin = { (x+150),375 };
	PointF begin2 = { (x+150),  400};
	PointF end = { x,400 };
	PointF end2 = { x , 375 };
	int mode = 1;
	Sqaure* sq = new Sqaure(begin, begin2, end, end2, ButtonColor);
	Static.push_back(sq);
	PointF PosText = { (x+padding) , (end2[1] + padding) };
	string text_to = "Start Game";
	Text* button_text = new Text(text_to, Textcolor, PosText);
	Static.push_back(button_text);
	//make Button class
	Button* start = new Button(text_to, mode, ButtonColor, begin, end, begin2, end2);
	//add to Button vector
	ButtonVector.push_back(start);

	//Spawn Enemy button
	PointF begin3 = { (x + 150),300 };
	PointF begin4 = { (x + 150),  325 };
	PointF end3 = { x,325 };
	PointF end4 = { x , 300 };
	int mode2 = 1;
	Sqaure* sq2 = new Sqaure(begin3, begin4, end3, end4, ButtonColor);
	Static.push_back(sq2);
	PointF PosText2 = { (x + padding) , (end4[1] + padding) };
	string text_to2 = "Spawn Enemy";
	Text* button_text2 = new Text(text_to2, Textcolor, PosText2);
	Static.push_back(button_text2);
	//make button class
	Button* spawn = new Button(text_to2,mode2,ButtonColor,begin3,end3,begin4,end4);
	//add to Button vector
	ButtonVector.push_back(spawn);
	
}
Ejemplo n.º 12
0
//draw all the text that needs to be displayed
void text() {
	//definition stuff
	float x = (windowWidth - 180);
	float y = windowHeight - 100;
	Color color = { 0.375, 0.48828125, 0.54296875 };
	Color loseColor = { 1,1,1};
	PointF posF = { x, (y+50) };
	Text* texttodispF = new Text("FPS :", color, posF);
	DrawTextList.push_back(texttodispF);
	PointF pos2F = { (x + 125), (y+50) };
	Text* texttodisp2F = new Text(to_string(fps), color, pos2F);
	DrawTextList.push_back(texttodisp2F);

	//print the plaer health -> fancy icon ?
	PointF pos = { x, y };
	Text* texttodisp = new Text("Player Health : ", color, pos);
	DrawTextList.push_back(texttodisp);
	PointF pos2 = { (x +125), y };
	Text* texttodisp2 = new Text(to_string(	PlayerHealth)	, color, pos2);
	DrawTextList.push_back(texttodisp2);

	//print the player Score
	PointF pos3 = { x, (y -50) };
	Text* texttodisp3 = new Text("Player Score : ", color, pos3);
	DrawTextList.push_back(texttodisp3);
	PointF pos4 = { (x+125), (y - 50) };
	Text* texttodisp4 = new Text(to_string(PlayerScore), color, pos4);
	DrawTextList.push_back(texttodisp4);

	//print current player map 
	PointF pos5 = { x, (y - 100) };
	Text* texttodisp5 = new Text("Curret map : ", color, pos5);
	DrawTextList.push_back(texttodisp5);
	PointF pos6 = { (x + 125), (y - 100) };
	Text* texttodisp6 = new Text(MapName, color, pos6);
	DrawTextList.push_back(texttodisp6);

	if (lose == 1) {
		PointF pos6 = { (windowWidth/2 -100),(windowHeight/2)  };
		Text* texttodisp6 = new Text("You have lost this game ", loseColor, pos6);
		DrawTextList.push_back(texttodisp6);
		
	}

}
Ejemplo n.º 13
0
//draw all of the turrets
void drawTurret() {
	//for every turret construct the corresonding turret
	for (unsigned i = 0; i < turretvector.size(); i++) {
		Color color = { 0.2f, 0.2f, 0.2f };
		PointF pos = turretvector.at(i)->_position;
		PointF begin2 = { (pos[0] - 20) ,(pos[1]) };
		PointF begin3 = { (pos[0]) , (pos[1] + 40) };
		PointF begin4 = { (pos[0] + 20) , (pos[1]) };
		Sqaure* sq = new Sqaure(pos, begin2, begin3, begin4, color);
		//put turret on the Static drawlist
		Static.push_back(sq);
	}
}
Ejemplo n.º 14
0
void C_3DObject_Group::addDrawList(DrawList &dlist, Port_3D &port)
{
  int i;
  if ((n_objects > 0) && isVisible(port))
    {
      for (i = 0; i<n_objects;i++)
	if (objects[i]->visible)
	  objects[i]->draw_prep(port);
      for (i=0;i<n_objects;i++)
	{
	  if (objects[i]->visible && objects[i]->visible_flag)
	    dlist.add_object(objects[i]);
	}
    }
}
Ejemplo n.º 15
0
	void TestDrawListRandom(int numEntries) {

		DrawList<MyData> list;
		std::vector<double> configured;
		std::vector<double> drawn;

		const unsigned int cnt = numEntries;
		const unsigned int numDraw = cnt * 4096;
		double probSum = 0;

		list.resize(cnt);
		drawn.resize(cnt);
		configured.resize(cnt);

		// fill
		for (unsigned int i = 0; i < cnt; ++i) {
			double rnd = double(rand()) / double(RAND_MAX);
			configured[i] = rnd;
			list.set(i, MyData(i,i), rnd);
			probSum += rnd;
		}

		// draw
		for (unsigned int i = 0; i < numDraw; ++i) {
			MyData& d = list.draw();
			drawn[d.x]++;
		}

		// compare
		for (unsigned int i = 0; i < cnt; ++i) {
			double a = (configured[i] / probSum);
			double b = (drawn[i] / numDraw);
			ASSERT_NEAR(a, b, a*0.50);			// allow 50% difference between cfg and drawn
		}

	}
Ejemplo n.º 16
0
int Minigame::drawNumber(DrawList &drawList, int number, int x, int y) {
	int digits = 1, rightX = x;
	
	for (int mag = 10; number / mag != 0; mag *= 10)
		++digits;
		
	rightX = x + digits * 10;
	x = rightX;
	
	while (digits--) {
		const int n = number % 10;
		x -= 10;
		drawList.add(_numbersAnim->frameIndices[n], x, y, 2000);
		number /= 10;
	}

	return rightX;
}
Ejemplo n.º 17
0
// Draw any instances of this asteroid that are on screen.
void AsteroidField::Asteroid::Draw(DrawList &draw, const Point &center, double zoom) const
{
	// Any object within this range must be drawn.
	Point topLeft = center + (Screen::TopLeft() - size) / zoom;
	Point bottomRight = center + (Screen::BottomRight() + size) / zoom;
	
	// Figure out the position of the first instance of this asteroid that is to
	// the right of and below the top left corner of the screen.
	double startX = fmod(position.X() - topLeft.X(), WRAP);
	startX += topLeft.X() + WRAP * (startX < 0.);
	double startY = fmod(position.Y() - topLeft.Y(), WRAP);
	startY += topLeft.Y() + WRAP * (startY < 0.);
	
	// Draw any instances of this asteroid that are on screen.
	for(double y = startY; y < bottomRight.Y(); y += WRAP)
		for(double x = startX; x < bottomRight.X(); x += WRAP)
			draw.Add(*this, Point(x, y));
}
Ejemplo n.º 18
0
	/** assert that cumulative values are correctly calculated when drawing the first time */
	TEST(DrawList, Cumulative) {

		DrawList<MyData> list;
		list.push_back(MyData(), 0.11);
		list.push_back(MyData(), 0.22);
		list.push_back(MyData(), 0.33);
		list.push_back(MyData(), 0.44);
		list.push_back(MyData(), 0.55);
		list.push_back(MyData(), 0.66);

		for (DrawListEntry<MyData>& dle : list.entries) {
			ASSERT_EQ(0, dle.cumulativeProbability);
		}

		list.draw();

		ASSERT_FLOAT_EQ(0.11f, list.entries[0].cumulativeProbability);
		ASSERT_FLOAT_EQ(0.33f, list.entries[1].cumulativeProbability);
		ASSERT_FLOAT_EQ(0.66f, list.entries[2].cumulativeProbability);
		ASSERT_FLOAT_EQ(1.10f, list.entries[3].cumulativeProbability);
		ASSERT_FLOAT_EQ(1.65f, list.entries[4].cumulativeProbability);
		ASSERT_FLOAT_EQ(2.31f, list.entries[5].cumulativeProbability);

		list.set(0, MyData(), 0.22);

		ASSERT_FLOAT_EQ(0.00f, list.entries[0].cumulativeProbability);
		ASSERT_FLOAT_EQ(0.33f, list.entries[1].cumulativeProbability);
		ASSERT_FLOAT_EQ(0.66f, list.entries[2].cumulativeProbability);
		ASSERT_FLOAT_EQ(1.10f, list.entries[3].cumulativeProbability);
		ASSERT_FLOAT_EQ(1.65f, list.entries[4].cumulativeProbability);
		ASSERT_FLOAT_EQ(2.31f, list.entries[5].cumulativeProbability);

		list.draw();

		ASSERT_FLOAT_EQ(0.22f, list.entries[0].cumulativeProbability);
		ASSERT_FLOAT_EQ(0.44f, list.entries[1].cumulativeProbability);
		ASSERT_FLOAT_EQ(0.77f, list.entries[2].cumulativeProbability);
		ASSERT_FLOAT_EQ(1.21f, list.entries[3].cumulativeProbability);
		ASSERT_FLOAT_EQ(1.76f, list.entries[4].cumulativeProbability);
		ASSERT_FLOAT_EQ(2.42f, list.entries[5].cumulativeProbability);

	}
Ejemplo n.º 19
0
//draw the enemy's + walk alogirthm
void drawEnemy() {
	Color color = { 0.12890625, 0.5859375, 0.94921875 };
	float r = 22;
	//number of triganles that need to be drawn
	int seg = 20;
	for (unsigned i = 0; i<enenemyvector.size(); i++) {
		PointF curpos = enenemyvector.at(i)->_current;
		//if the enemy is out of the screen
		if (curpos[0] > windowWidth || curpos[1] > windowHeight) {
			//delete the enemy
			delete enenemyvector.at(i);
			//cout << "Deleted an enemy" << endl;
			//delete the enemy from the enemy vector
			enenemyvector.erase((enenemyvector.begin() + i));
		}

		//enemy is still in the screen
		else {
			PointF curpos = enenemyvector.at(i)->_current;

			//decrease the enemy health if a bullet hits the enemy
			for (unsigned j = 0; j < bulletvector.size(); j++) {
				PointF Bullet = bulletvector.at(j)->_begin;
				//calulate the diffrence in position
				float dx = abs(  Bullet[0]	 - curpos[0]);
				float dy = abs(  Bullet[1]	- curpos[1]);
				//cout << "dx :" << dx << "dy:" << dy << endl;
				//bullet and enemy are at the same poition

				//if the distnace is smaller tne the radius of the object
				if ( dx < 20 &&	dy < 20	) {
					enenemyvector.at(i)->Health(10);;
					//cout << "Damaged an enemy" << endl;
					PlayerScore = PlayerScore + 10;
					PlaySoundW(L"point.wav", NULL, SND_FILENAME | SND_NODEFAULT | SND_ASYNC);
					//delete teh bullet 
					delete bulletvector.at(j);
					bulletvector.erase((bulletvector.begin() + j));
				}

			}


			//walk algorithm is good but could do better
			if (enenemyvector.at(i)->_health > 0) {
				int curx = curpos[0] /20;
				int cury = curpos[1] / 20;
				// get the map character that is 20 pixels further
				char nextCharXplus = Map[(curx+1)][cury];
				char nextCharYplus = Map[curx][(cury + 1)];
				char nextCharXmin =	Map[(curx - 1)][cury];
				char nextCharYmin = Map[curx][(cury - 1)];

				//if the enemy is at the end of the defense
				if (Map[(curx)][cury] == 'E') {
					//delete the enemy
					delete enenemyvector.at(i);
					//delete the enemy from the enemy vector
					enenemyvector.erase((enenemyvector.begin() + i));
					PlayerHealth = PlayerHealth - 30;
					PlaySoundW(L"loss.wav", NULL, SND_FILENAME | SND_NODEFAULT | SND_ASYNC);
					continue;
				}
				//once the end line is insight
				if (Map[(curx + 2)][cury] == 'E') {
					PointF posEnemy = enenemyvector.at(i)->Move(1, 0);
					enenemyvector.at(i)->Update(posEnemy);
					Circle* cirle = new Circle(posEnemy, color, r, seg);
					drawList.push_back(cirle);
					drawBullets(posEnemy, i);
					//Bullet(posEnemy, i);
					continue;
				}
				//once the end line is insight
				if (nextCharXplus == 'E') {
					PointF posEnemy = enenemyvector.at(i)->Move(1, 0);
					enenemyvector.at(i)->Update(posEnemy);
					Circle* cirle = new Circle(posEnemy, color, r, seg);
					drawList.push_back(cirle);
					drawBullets(posEnemy, i);
					continue;
				}
				// move 20 y pixels right
				if (nextCharYplus == '/' && Map[(curx)][(cury +2)] ) {
					PointF posEnemy = enenemyvector.at(i)->Move(0,1);
					enenemyvector.at(i)->Update(posEnemy);
					Circle* cirle = new Circle(posEnemy, color, r, seg);
					drawList.push_back(cirle);
					drawBullets(posEnemy, i);
					continue;
				}
				// move 20 x pixels rght
				if (nextCharXplus == '/' && Map[(curx + 2)][cury]== '/'	) {				
					PointF posEnemy = enenemyvector.at(i)->Move(1, 0);
					enenemyvector.at(i)->Update(posEnemy);
					Circle* cirle = new Circle(posEnemy, color, r, seg);
					drawList.push_back(cirle);
					drawBullets(posEnemy, i);
					continue;
				}
				//move 20 pixels down
				if (nextCharYmin == '/' && Map[curx][(cury - 2)] == '/'  ) {
					PointF posEnemy = enenemyvector.at(i)->Move(0, -1);
					enenemyvector.at(i)->Update(posEnemy);
					Circle* cirle = new Circle(posEnemy, color, r, seg);
					drawList.push_back(cirle);
					drawBullets(posEnemy, i);
					continue;
				}
				//move 20 pixels left
				if (nextCharXmin == '/') {
					PointF posEnemy = enenemyvector.at(i)->Move(-1, 0);
					enenemyvector.at(i)->Update(posEnemy);
					Circle* cirle = new Circle(posEnemy, color, r, seg);
					drawList.push_back(cirle);
					drawBullets(posEnemy, i);				
					continue;
				}
				else {
					cout << "Error unable to move the enemy" << endl;
					continue;
 				}


			}
			else	//the enemy has zero health
			{
					cout << "Deleted an enenemy" << endl;
					//delete the enemy
					delete enenemyvector[i];
					//delete the enemy from the enemy vector
					enenemyvector.erase((enenemyvector.begin() + i));
			}
		}
	}
}
Ejemplo n.º 20
0
	TEST(DrawList, draw) {

		DrawList<MyData> list;
		list.push_back(MyData(0,1), 0.1);
		list.push_back(MyData(1,2), 0.1);
		list.push_back(MyData(2,3), 0.1);
		list.push_back(MyData(3,4), 0.1);
		list.push_back(MyData(4,6), 0.2);
		list.push_back(MyData(6,10), 0.4);

		ASSERT_EQ(0, list.draw(0.00).x);
		ASSERT_EQ(0, list.draw(0.05).x);
		ASSERT_EQ(0, list.draw(0.09).x);

		ASSERT_EQ(1, list.draw(0.11).x);
		ASSERT_EQ(1, list.draw(0.15).x);
		ASSERT_EQ(1, list.draw(0.19).x);

		ASSERT_EQ(2, list.draw(0.201).x);
		ASSERT_EQ(2, list.draw(0.25).x);
		ASSERT_EQ(2, list.draw(0.299).x);

		ASSERT_EQ(3, list.draw(0.30001).x);
		ASSERT_EQ(3, list.draw(0.3333).x);
		ASSERT_EQ(3, list.draw(0.399999).x);

		ASSERT_EQ(4, list.draw(0.40001).x);
		ASSERT_EQ(4, list.draw(0.4333).x);
		ASSERT_EQ(4, list.draw(0.599999).x);

		ASSERT_EQ(6, list.draw(0.600001).x);
		ASSERT_EQ(6, list.draw(0.7).x);
		ASSERT_EQ(6, list.draw(0.999999).x);

	}
Ejemplo n.º 21
0
void MinigameBbAnt::buildDrawList3(DrawList &drawList) {
	buildDrawList1(drawList);
	drawList.add(getAnimation(163)->frameIndices[0], 120, 70, 2000);
	drawList.add(getAnimation(165)->frameIndices[0], 95, 95, 2000);
	drawNumber(drawList, _hiScore, 208, 107);
}