git repos / blockattack-game

blame: source/code/ScoresDisplay.cpp

normal view · raw

c3b697c6 sago007 2016-02-07 17:30 1
/*
7a956470 sago007 2016-02-14 17:09 2
===========================================================================
7a956470 sago007 2016-02-14 17:09 3
blockattack - Block Attack - Rise of the Blocks
7a956470 sago007 2016-02-14 17:09 4
Copyright (C) 2005-2016 Poul Sander
c3b697c6 sago007 2016-02-07 17:30 5
7a956470 sago007 2016-02-14 17:09 6
This program is free software: you can redistribute it and/or modify
7a956470 sago007 2016-02-14 17:09 7
it under the terms of the GNU General Public License as published by
7a956470 sago007 2016-02-14 17:09 8
the Free Software Foundation, either version 2 of the License, or
7a956470 sago007 2016-02-14 17:09 9
(at your option) any later version.
7a956470 sago007 2016-02-14 17:09 10
7a956470 sago007 2016-02-14 17:09 11
This program is distributed in the hope that it will be useful,
7a956470 sago007 2016-02-14 17:09 12
but WITHOUT ANY WARRANTY; without even the implied warranty of
7a956470 sago007 2016-02-14 17:09 13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
7a956470 sago007 2016-02-14 17:09 14
GNU General Public License for more details.
7a956470 sago007 2016-02-14 17:09 15
7a956470 sago007 2016-02-14 17:09 16
You should have received a copy of the GNU General Public License
7a956470 sago007 2016-02-14 17:09 17
along with this program.  If not, see http://www.gnu.org/licenses/
7a956470 sago007 2016-02-14 17:09 18
7a956470 sago007 2016-02-14 17:09 19
Source information and contacts persons can be found at
7a956470 sago007 2016-02-14 17:09 20
http://www.blockattack.net
7a956470 sago007 2016-02-14 17:09 21
===========================================================================
7a956470 sago007 2016-02-14 17:09 22
*/
c3b697c6 sago007 2016-02-07 17:30 23
c3b697c6 sago007 2016-02-07 17:30 24
#include "ScoresDisplay.hpp"
c3b697c6 sago007 2016-02-07 17:30 25
#include "global.hpp"
c3b697c6 sago007 2016-02-07 17:30 26
#include "common.h"
c3b697c6 sago007 2016-02-07 17:30 27
#include "stats.h"
d21782d4 sago007 2016-03-13 11:17 28
#include "MenuSystem.h"
16476649 Poul Sander 2022-01-09 10:29 29
#include <fmt/core.h>
c3b697c6 sago007 2016-02-07 17:30 30
aa7d74c5 Poul Sander 2019-05-08 17:14 31
d2ba3cf5 sago007 2018-05-13 15:00 32
static void setButtonFont(const sago::SagoDataHolder* holder, sago::SagoTextField& field, const char* text) {
34ab7861 sago007 2018-03-28 14:47 33
	field.SetHolder(holder);
34ab7861 sago007 2018-03-28 14:47 34
	field.SetFont("freeserif");
34ab7861 sago007 2018-03-28 14:47 35
	field.SetColor({255,255,255,255});
34ab7861 sago007 2018-03-28 14:47 36
	field.SetFontSize(24);
d8fe60bd sago007 2018-04-02 16:15 37
	field.SetOutline(1, {128,128,128,255});
34ab7861 sago007 2018-03-28 14:47 38
	field.SetText(text);
34ab7861 sago007 2018-03-28 14:47 39
}
e1b2e653 sago007 2017-11-28 18:10 40
69d8f1dc sago007 2018-03-31 16:19 41
sago::SagoTextField* ScoresDisplay::getCachedText(const std::string& text) {
69d8f1dc sago007 2018-03-31 16:19 42
	std::shared_ptr<sago::SagoTextField> ptr = fieldCache[text];
69d8f1dc sago007 2018-03-31 16:19 43
	if (!ptr) {
69d8f1dc sago007 2018-03-31 16:19 44
		std::shared_ptr<sago::SagoTextField> newText = std::make_shared<sago::SagoTextField>();
69d8f1dc sago007 2018-03-31 16:19 45
		sagoTextSetBlueFont(*newText.get());
0b8fb137 sago007 2018-03-31 19:53 46
		newText->SetText(text);
69d8f1dc sago007 2018-03-31 16:19 47
		fieldCache[text] = newText;
69d8f1dc sago007 2018-03-31 16:19 48
	}
69d8f1dc sago007 2018-03-31 16:19 49
	return fieldCache[text].get();
69d8f1dc sago007 2018-03-31 16:19 50
}
69d8f1dc sago007 2018-03-31 16:19 51
69d8f1dc sago007 2018-03-31 16:19 52
void ScoresDisplay::Write(SDL_Renderer* target, int x, int y, const char* text) {
69d8f1dc sago007 2018-03-31 16:19 53
	getCachedText(text)->Draw(target, x, y);
c3b697c6 sago007 2016-02-07 17:30 54
}
c3b697c6 sago007 2016-02-07 17:30 55
16476649 Poul Sander 2022-01-09 10:29 56
16476649 Poul Sander 2022-01-09 10:29 57
void ScoresDisplay::Write(SDL_Renderer* target, int x, int y, const std::string& text) {
16476649 Poul Sander 2022-01-09 10:29 58
	Write(target, x, y, text.c_str());
16476649 Poul Sander 2022-01-09 10:29 59
}
16476649 Poul Sander 2022-01-09 10:29 60
1b403c4a Poul Sander 2024-04-14 14:57 61
const int numberOfPages = 13;
c3b697c6 sago007 2016-02-07 17:30 62
13476fc2 sago007 2016-09-28 18:34 63
void ScoresDisplay::DrawBackgroundAndCalcPlacements() {
72383a9e sago007 2016-10-30 11:56 64
	DrawBackground(globalData.screen);
72383a9e sago007 2016-10-30 11:56 65
	nextX = globalData.xsize-buttonXsize-20;
ec3f09de Poul Sander 2022-01-29 14:33 66
	backY = globalData.ysize-buttonYsize-18;
13476fc2 sago007 2016-09-28 18:34 67
	nextY = backY;
13476fc2 sago007 2016-09-28 18:34 68
}
13476fc2 sago007 2016-09-28 18:34 69
c3b697c6 sago007 2016-02-07 17:30 70
//Draws the highscores
79d552fa sago007 2019-02-12 17:17 71
void ScoresDisplay::DrawHighscores(int x, int y, bool endless, int level = 0) {
13476fc2 sago007 2016-09-28 18:34 72
	DrawBackgroundAndCalcPlacements();
c3b697c6 sago007 2016-02-07 17:30 73
	if (endless) {
47515b6a Poul Sander 2019-02-13 18:16 74
		std::string header;
47515b6a Poul Sander 2019-02-13 18:16 75
		switch (level) {
9c7fa9a1 sago007 2020-06-27 22:09 76
		case 1:
9c7fa9a1 sago007 2020-06-27 22:09 77
			header = _("Endless (Fast):");
9c7fa9a1 sago007 2020-06-27 22:09 78
			break;
9c7fa9a1 sago007 2020-06-27 22:09 79
		case 2:
9c7fa9a1 sago007 2020-06-27 22:09 80
			header = _("Endless (Faster):");
9c7fa9a1 sago007 2020-06-27 22:09 81
			break;
9c7fa9a1 sago007 2020-06-27 22:09 82
		case 3:
9c7fa9a1 sago007 2020-06-27 22:09 83
			header = _("Endless (Even faster):");
9c7fa9a1 sago007 2020-06-27 22:09 84
			break;
9c7fa9a1 sago007 2020-06-27 22:09 85
		case 4:
9c7fa9a1 sago007 2020-06-27 22:09 86
			header = _("Endless (Fastest):");
9c7fa9a1 sago007 2020-06-27 22:09 87
			break;
1b403c4a Poul Sander 2024-04-14 14:57 88
		case 5:
1b403c4a Poul Sander 2024-04-14 14:57 89
			header = _("Endless (5 blocks):");
1b403c4a Poul Sander 2024-04-14 14:57 90
			break;
1b403c4a Poul Sander 2024-04-14 14:57 91
		case 6:
1b403c4a Poul Sander 2024-04-14 14:57 92
			header = _("Endless (5 blocks, Fast):");
1b403c4a Poul Sander 2024-04-14 14:57 93
			break;
1b403c4a Poul Sander 2024-04-14 14:57 94
		case 7:
1b403c4a Poul Sander 2024-04-14 14:57 95
			header = _("Endless (5 blocks, Faster):");
1b403c4a Poul Sander 2024-04-14 14:57 96
			break;
1b403c4a Poul Sander 2024-04-14 14:57 97
		case 8:
1b403c4a Poul Sander 2024-04-14 14:57 98
			header = _("Endless (5 blocks, Even faster):");
1b403c4a Poul Sander 2024-04-14 14:57 99
			break;
1b403c4a Poul Sander 2024-04-14 14:57 100
		case 9:
1b403c4a Poul Sander 2024-04-14 14:57 101
			header = _("Endless (5 blocks, Fastest):");
1b403c4a Poul Sander 2024-04-14 14:57 102
			break;
9c7fa9a1 sago007 2020-06-27 22:09 103
		default:
9c7fa9a1 sago007 2020-06-27 22:09 104
			header = _("Endless:");
47515b6a Poul Sander 2019-02-13 18:16 105
		};
bd32d4bd Poul Sander 2022-01-30 16:11 106
		Write(globalData.screen, x+100,y+100, header );
c3b697c6 sago007 2016-02-07 17:30 107
	}
c3b697c6 sago007 2016-02-07 17:30 108
	else {
1b403c4a Poul Sander 2024-04-14 14:57 109
		std::string header = _("Time Trial:");
1b403c4a Poul Sander 2024-04-14 14:57 110
		if (level == 1) {
1b403c4a Poul Sander 2024-04-14 14:57 111
			header = _("Time Trial (5 blocks):");
1b403c4a Poul Sander 2024-04-14 14:57 112
		}
1b403c4a Poul Sander 2024-04-14 14:57 113
		Write(globalData.screen, x+100,y+100, header );
c3b697c6 sago007 2016-02-07 17:30 114
	}
c3b697c6 sago007 2016-02-07 17:30 115
	for (int i =0; i<10; i++) {
7a956470 sago007 2016-02-14 17:09 116
		record r;
c3b697c6 sago007 2016-02-07 17:30 117
		if (endless) {
9c7fa9a1 sago007 2020-06-27 22:09 118
			switch (level) {
9c7fa9a1 sago007 2020-06-27 22:09 119
			case 1:
9c7fa9a1 sago007 2020-06-27 22:09 120
				r = theTopScoresEndless1.getScoreNumber(i);
9c7fa9a1 sago007 2020-06-27 22:09 121
				break;
9c7fa9a1 sago007 2020-06-27 22:09 122
			case 2:
9c7fa9a1 sago007 2020-06-27 22:09 123
				r = theTopScoresEndless2.getScoreNumber(i);
9c7fa9a1 sago007 2020-06-27 22:09 124
				break;
9c7fa9a1 sago007 2020-06-27 22:09 125
			case 3:
9c7fa9a1 sago007 2020-06-27 22:09 126
				r = theTopScoresEndless3.getScoreNumber(i);
9c7fa9a1 sago007 2020-06-27 22:09 127
				break;
9c7fa9a1 sago007 2020-06-27 22:09 128
			case 4:
9c7fa9a1 sago007 2020-06-27 22:09 129
				r = theTopScoresEndless4.getScoreNumber(i);
9c7fa9a1 sago007 2020-06-27 22:09 130
				break;
1b403c4a Poul Sander 2024-04-14 14:57 131
			case 5:
1b403c4a Poul Sander 2024-04-14 14:57 132
				r = theTopScoresEndless0_5.getScoreNumber(i);
1b403c4a Poul Sander 2024-04-14 14:57 133
				break;
1b403c4a Poul Sander 2024-04-14 14:57 134
			case 6:
1b403c4a Poul Sander 2024-04-14 14:57 135
				r = theTopScoresEndless1_5.getScoreNumber(i);
1b403c4a Poul Sander 2024-04-14 14:57 136
				break;
1b403c4a Poul Sander 2024-04-14 14:57 137
			case 7:
1b403c4a Poul Sander 2024-04-14 14:57 138
				r = theTopScoresEndless2_5.getScoreNumber(i);
1b403c4a Poul Sander 2024-04-14 14:57 139
				break;
1b403c4a Poul Sander 2024-04-14 14:57 140
			case 8:
1b403c4a Poul Sander 2024-04-14 14:57 141
				r = theTopScoresEndless3_5.getScoreNumber(i);
1b403c4a Poul Sander 2024-04-14 14:57 142
				break;
1b403c4a Poul Sander 2024-04-14 14:57 143
			case 9:
1b403c4a Poul Sander 2024-04-14 14:57 144
				r = theTopScoresEndless4_5.getScoreNumber(i);
1b403c4a Poul Sander 2024-04-14 14:57 145
				break;
9c7fa9a1 sago007 2020-06-27 22:09 146
			default:
9c7fa9a1 sago007 2020-06-27 22:09 147
				r = theTopScoresEndless0.getScoreNumber(i);
79d552fa sago007 2019-02-12 17:17 148
			}
c3b697c6 sago007 2016-02-07 17:30 149
		}
c3b697c6 sago007 2016-02-07 17:30 150
		else {
1b403c4a Poul Sander 2024-04-14 14:57 151
			if (level == 1) {
1b403c4a Poul Sander 2024-04-14 14:57 152
				r = theTopScoresTimeTrial_5.getScoreNumber(i);
1b403c4a Poul Sander 2024-04-14 14:57 153
			}
1b403c4a Poul Sander 2024-04-14 14:57 154
			else {
1b403c4a Poul Sander 2024-04-14 14:57 155
				r = theTopScoresTimeTrial.getScoreNumber(i);
1b403c4a Poul Sander 2024-04-14 14:57 156
			}
c3b697c6 sago007 2016-02-07 17:30 157
		}
7a956470 sago007 2016-02-14 17:09 158
		char playerScore[32];
7a956470 sago007 2016-02-14 17:09 159
		char playerName[32];
7a956470 sago007 2016-02-14 17:09 160
		snprintf(playerScore, sizeof(playerScore), "%i", r.score);
7a956470 sago007 2016-02-14 17:09 161
		snprintf(playerName, sizeof(playerName), "%s", r.name.c_str());
69d8f1dc sago007 2018-03-31 16:19 162
		Write(globalData.screen, x+420,y+150+i*35, playerScore);
69d8f1dc sago007 2018-03-31 16:19 163
		Write(globalData.screen, x+60,y+150+i*35, playerName);
c3b697c6 sago007 2016-02-07 17:30 164
	}
c3b697c6 sago007 2016-02-07 17:30 165
}
c3b697c6 sago007 2016-02-07 17:30 166
c3b697c6 sago007 2016-02-07 17:30 167
void ScoresDisplay::DrawStats() {
13476fc2 sago007 2016-09-28 18:34 168
	DrawBackgroundAndCalcPlacements();
c3b697c6 sago007 2016-02-07 17:30 169
	int y = 5;
c3b697c6 sago007 2016-02-07 17:30 170
	const int y_spacing = 30;
69d8f1dc sago007 2018-03-31 16:19 171
	Write(globalData.screen, 10,y,_("Stats") );
c3b697c6 sago007 2016-02-07 17:30 172
	y+=y_spacing*2;
69d8f1dc sago007 2018-03-31 16:19 173
	Write(globalData.screen, 10,y,_("Chains") );
c3b697c6 sago007 2016-02-07 17:30 174
	for (int i=2; i<13; i++) {
c3b697c6 sago007 2016-02-07 17:30 175
		y+=y_spacing;
bd32d4bd Poul Sander 2022-01-30 16:11 176
		Write(globalData.screen, 10,y,std::to_string(i)+"X");
e373cd75 Poul Sander 2018-11-07 19:21 177
		std::string numberAsString = std::to_string(Stats::getInstance()->getNumberOf("chainX"+std::to_string(i)));
bd32d4bd Poul Sander 2022-01-30 16:11 178
		Write(globalData.screen, 300,y,numberAsString);
c3b697c6 sago007 2016-02-07 17:30 179
	}
c3b697c6 sago007 2016-02-07 17:30 180
	y+=y_spacing*2;
69d8f1dc sago007 2018-03-31 16:19 181
	Write(globalData.screen, 10,y,_("Lines Pushed: ") );
e373cd75 Poul Sander 2018-11-07 19:21 182
	std::string numberAsString = std::to_string(Stats::getInstance()->getNumberOf("linesPushed"));
bd32d4bd Poul Sander 2022-01-30 16:11 183
	Write(globalData.screen, 300,y,numberAsString);
c3b697c6 sago007 2016-02-07 17:30 184
c3b697c6 sago007 2016-02-07 17:30 185
	y+=y_spacing;
69d8f1dc sago007 2018-03-31 16:19 186
	Write(globalData.screen, 10,y, _("Puzzles solved: ") );
549ecfae sago007 2016-10-09 08:37 187
	numberAsString = std::to_string(Stats::getInstance()->getNumberOf("puzzlesSolved"));
bd32d4bd Poul Sander 2022-01-30 16:11 188
	Write(globalData.screen, 300,y,numberAsString);
c3b697c6 sago007 2016-02-07 17:30 189
c3b697c6 sago007 2016-02-07 17:30 190
	y+=y_spacing*2;
69d8f1dc sago007 2018-03-31 16:19 191
	Write(globalData.screen, 10,y, _("Run time: ") );
c3b697c6 sago007 2016-02-07 17:30 192
	commonTime ct = TimeHandler::peekTime("totalTime",TimeHandler::ms2ct(SDL_GetTicks()));
c3b697c6 sago007 2016-02-07 17:30 193
	y+=y_spacing;
16476649 Poul Sander 2022-01-09 10:29 194
	Write(globalData.screen, 10, y, fmt::format( _("Days: {}"), ct.days) );
c3b697c6 sago007 2016-02-07 17:30 195
	y+=y_spacing;
16476649 Poul Sander 2022-01-09 10:29 196
	Write(globalData.screen, 10, y, fmt::format( _("Hours: {:02}"), ct.hours) );
c3b697c6 sago007 2016-02-07 17:30 197
	y+=y_spacing;
16476649 Poul Sander 2022-01-09 10:29 198
	Write(globalData.screen, 10, y, fmt::format( _("Minutes: {:02}"), ct.minutes) );
c3b697c6 sago007 2016-02-07 17:30 199
	y+=y_spacing;
16476649 Poul Sander 2022-01-09 10:29 200
	Write(globalData.screen, 10, y, fmt::format( _("Seconds: {:02}"), ct.seconds) );
c3b697c6 sago007 2016-02-07 17:30 201
c3b697c6 sago007 2016-02-07 17:30 202
	y-=y_spacing*4; //Four rows back
72383a9e sago007 2016-10-30 11:56 203
	const int x_offset3 = globalData.xsize/3+10; //Ofset for three rows
69d8f1dc sago007 2018-03-31 16:19 204
	Write(globalData.screen, x_offset3,y, _("Play time: ") );
c3b697c6 sago007 2016-02-07 17:30 205
	ct = TimeHandler::getTime("playTime");
c3b697c6 sago007 2016-02-07 17:30 206
	y+=y_spacing;
16476649 Poul Sander 2022-01-09 10:29 207
	Write(globalData.screen, x_offset3, y, fmt::format( _("Days: {}"), ct.days) );
c3b697c6 sago007 2016-02-07 17:30 208
	y+=y_spacing;
16476649 Poul Sander 2022-01-09 10:29 209
	Write(globalData.screen, x_offset3, y, fmt::format( _("Hours: {:02}"), ct.hours) );
c3b697c6 sago007 2016-02-07 17:30 210
	y+=y_spacing;
16476649 Poul Sander 2022-01-09 10:29 211
	Write(globalData.screen, x_offset3, y, fmt::format( _("Minutes: {:02}"), ct.minutes) );
c3b697c6 sago007 2016-02-07 17:30 212
	y+=y_spacing;
16476649 Poul Sander 2022-01-09 10:29 213
	Write(globalData.screen, x_offset3, y, fmt::format( _("Seconds: {:02}"), ct.seconds) );
c3b697c6 sago007 2016-02-07 17:30 214
72383a9e sago007 2016-10-30 11:56 215
	const int x_offset = globalData.xsize/2+10;
c3b697c6 sago007 2016-02-07 17:30 216
	y = 5+y_spacing*2;
69d8f1dc sago007 2018-03-31 16:19 217
	Write(globalData.screen, x_offset,y, _("VS CPU (win/loss)") );
c3b697c6 sago007 2016-02-07 17:30 218
	for (int i=0; i<7; i++) {
c3b697c6 sago007 2016-02-07 17:30 219
		y += y_spacing;
bd32d4bd Poul Sander 2022-01-30 16:11 220
		Write(globalData.screen, x_offset,y, fmt::format("AI {}",i+1) );
549ecfae sago007 2016-10-09 08:37 221
		numberAsString = std::to_string(Stats::getInstance()->getNumberOf("defeatedAI"+std::to_string(i)));
e373cd75 Poul Sander 2018-11-07 19:21 222
		std::string numberAsString2 = std::to_string(Stats::getInstance()->getNumberOf("defeatedByAI"+std::to_string(i)));
e373cd75 Poul Sander 2018-11-07 19:21 223
		std::string toPrint = numberAsString + "/" + numberAsString2;
bd32d4bd Poul Sander 2022-01-30 16:11 224
		Write(globalData.screen, x_offset+230,y,toPrint);
c3b697c6 sago007 2016-02-07 17:30 225
	}
c3b697c6 sago007 2016-02-07 17:30 226
}
c3b697c6 sago007 2016-02-07 17:30 227
c3b697c6 sago007 2016-02-07 17:30 228
ScoresDisplay::ScoresDisplay() {
c3b697c6 sago007 2016-02-07 17:30 229
}
c3b697c6 sago007 2016-02-07 17:30 230
c3b697c6 sago007 2016-02-07 17:30 231
ScoresDisplay::~ScoresDisplay() {
c3b697c6 sago007 2016-02-07 17:30 232
}
c3b697c6 sago007 2016-02-07 17:30 233
ec3f09de Poul Sander 2022-01-29 14:33 234
void ScoresDisplay::Draw(SDL_Renderer* target) {
c3b697c6 sago007 2016-02-07 17:30 235
	switch (page) {
9c7fa9a1 sago007 2020-06-27 22:09 236
	case 0:
9c7fa9a1 sago007 2020-06-27 22:09 237
	case 1:
9c7fa9a1 sago007 2020-06-27 22:09 238
	case 2:
9c7fa9a1 sago007 2020-06-27 22:09 239
	case 3:
9c7fa9a1 sago007 2020-06-27 22:09 240
	case 4:
9c7fa9a1 sago007 2020-06-27 22:09 241
		//Highscores, endless
9c7fa9a1 sago007 2020-06-27 22:09 242
		DrawHighscores(100,100,true, page);
9c7fa9a1 sago007 2020-06-27 22:09 243
		break;
9c7fa9a1 sago007 2020-06-27 22:09 244
	case 5:
9c7fa9a1 sago007 2020-06-27 22:09 245
		//Highscores, Time Trial
9c7fa9a1 sago007 2020-06-27 22:09 246
		DrawHighscores(100,100,false);
9c7fa9a1 sago007 2020-06-27 22:09 247
		break;
9c7fa9a1 sago007 2020-06-27 22:09 248
	case 6:
1b403c4a Poul Sander 2024-04-14 14:57 249
	case 7:
1b403c4a Poul Sander 2024-04-14 14:57 250
	case 8:
1b403c4a Poul Sander 2024-04-14 14:57 251
	case 9:
1b403c4a Poul Sander 2024-04-14 14:57 252
	case 10:
1b403c4a Poul Sander 2024-04-14 14:57 253
		//Highscores, endless 5 blocks
1b403c4a Poul Sander 2024-04-14 14:57 254
		DrawHighscores(100,100,true, page-1);
1b403c4a Poul Sander 2024-04-14 14:57 255
		break;
1b403c4a Poul Sander 2024-04-14 14:57 256
	case 11:
1b403c4a Poul Sander 2024-04-14 14:57 257
		//Highscores, Time Trial 5 blocks
1b403c4a Poul Sander 2024-04-14 14:57 258
		DrawHighscores(100,100,false, 1);
1b403c4a Poul Sander 2024-04-14 14:57 259
		break;
1b403c4a Poul Sander 2024-04-14 14:57 260
	case 12:
9c7fa9a1 sago007 2020-06-27 22:09 261
	default:
9c7fa9a1 sago007 2020-06-27 22:09 262
		DrawStats();
c3b697c6 sago007 2016-02-07 17:30 263
	};
c3b697c6 sago007 2016-02-07 17:30 264
34ab7861 sago007 2018-03-28 14:47 265
	const sago::SagoDataHolder* holder = &globalData.spriteHolder->GetDataHolder();
c3b697c6 sago007 2016-02-07 17:30 266
	//Draw buttons:
72383a9e sago007 2016-10-30 11:56 267
	globalData.bBack.Draw(globalData.screen, 0, backX, backY);
34ab7861 sago007 2018-03-28 14:47 268
	static sago::SagoTextField backLabel;
34ab7861 sago007 2018-03-28 14:47 269
	setButtonFont(holder, backLabel, _("Back"));
34ab7861 sago007 2018-03-28 14:47 270
	backLabel.Draw(globalData.screen, backX+60,backY+10, sago::SagoTextField::Alignment::center);
72383a9e sago007 2016-10-30 11:56 271
	globalData.bNext.Draw(globalData.screen, 0, nextX, nextY);
34ab7861 sago007 2018-03-28 14:47 272
	static sago::SagoTextField nextLabel;
34ab7861 sago007 2018-03-28 14:47 273
	setButtonFont(holder, nextLabel, _("Next"));
34ab7861 sago007 2018-03-28 14:47 274
	nextLabel.Draw(globalData.screen, nextX+60, nextY+10, sago::SagoTextField::Alignment::center);
c3b697c6 sago007 2016-02-07 17:30 275
c3b697c6 sago007 2016-02-07 17:30 276
	//Draw page number
16476649 Poul Sander 2022-01-09 10:29 277
	std::string pageXofY = fmt::format(_("Page {} of {}"), page+1, numberOfPages);
c9a65d81 sago007 2018-03-31 16:22 278
	getCachedText(pageXofY)->Draw(globalData.screen,  globalData.xsize/2, globalData.ysize-60, sago::SagoTextField::Alignment::center);
ec3f09de Poul Sander 2022-01-29 14:33 279
	HelpCommonState::Draw(target);
c3b697c6 sago007 2016-02-07 17:30 280
}
c3b697c6 sago007 2016-02-07 17:30 281
58a2d7e1 sago007 2016-02-12 18:53 282
void ScoresDisplay::ProcessInput(const SDL_Event& event, bool& processed) {
c7f2082f sago007 2016-03-13 11:48 283
20d77c6e sago007 2016-11-12 16:28 284
	UpdateMouseCoordinates(event, globalData.mousex, globalData.mousey);
092bdebe sago007 2017-03-19 14:39 285
79d552fa sago007 2019-02-12 17:17 286
	if (isRightEvent(event)) {
d21782d4 sago007 2016-03-13 11:17 287
		page++;
d21782d4 sago007 2016-03-13 11:17 288
		if (page>=numberOfPages) {
d21782d4 sago007 2016-03-13 11:17 289
			page = 0;
c3b697c6 sago007 2016-02-07 17:30 290
		}
647f12da sago007 2016-09-12 20:07 291
		processed = true;
d21782d4 sago007 2016-03-13 11:17 292
	}
8e3fb7e1 sago007 2016-03-13 11:26 293
79d552fa sago007 2019-02-12 17:17 294
	if (isLeftEvent(event)) {
d21782d4 sago007 2016-03-13 11:17 295
		page--;
d21782d4 sago007 2016-03-13 11:17 296
		if (page<0) {
d21782d4 sago007 2016-03-13 11:17 297
			page = numberOfPages-1;
c3b697c6 sago007 2016-02-07 17:30 298
		}
647f12da sago007 2016-09-12 20:07 299
		processed = true;
c3b697c6 sago007 2016-02-07 17:30 300
	}
ec3f09de Poul Sander 2022-01-29 14:33 301
	HelpCommonState::ProcessInput(event, processed);
c3b697c6 sago007 2016-02-07 17:30 302
}
c3b697c6 sago007 2016-02-07 17:30 303
c3b697c6 sago007 2016-02-07 17:30 304
void ScoresDisplay::Update() {
c3b697c6 sago007 2016-02-07 17:30 305
	// If the mouse button is released, make bMouseUp equal true
08c44684 sago007 2016-10-30 09:19 306
	if ( !(SDL_GetMouseState(nullptr, nullptr)&SDL_BUTTON(1)) ) {
c3b697c6 sago007 2016-02-07 17:30 307
		bMouseUp=true;
c3b697c6 sago007 2016-02-07 17:30 308
	}
c3b697c6 sago007 2016-02-07 17:30 309
c3b697c6 sago007 2016-02-07 17:30 310
	if (SDL_GetMouseState(nullptr,nullptr)&SDL_BUTTON(1) && bMouseUp) {
c3b697c6 sago007 2016-02-07 17:30 311
		bMouseUp = false;
c3b697c6 sago007 2016-02-07 17:30 312
c3b697c6 sago007 2016-02-07 17:30 313
		//The back button:
20d77c6e sago007 2016-11-12 16:28 314
		if ((globalData.mousex>backX) && (globalData.mousex<backX+buttonXsize) && (globalData.mousey>backY) && (globalData.mousey<backY+buttonYsize)) {
c3b697c6 sago007 2016-02-07 17:30 315
			page--;
c3b697c6 sago007 2016-02-07 17:30 316
			if (page<0) {
c3b697c6 sago007 2016-02-07 17:30 317
				page = numberOfPages-1;
c3b697c6 sago007 2016-02-07 17:30 318
			}
c3b697c6 sago007 2016-02-07 17:30 319
		}
c3b697c6 sago007 2016-02-07 17:30 320
c3b697c6 sago007 2016-02-07 17:30 321
		//The next button:
20d77c6e sago007 2016-11-12 16:28 322
		if ((globalData.mousex>nextX) && (globalData.mousex<nextX+buttonXsize) && (globalData.mousey>nextY) && (globalData.mousey<nextY+buttonYsize)) {
c3b697c6 sago007 2016-02-07 17:30 323
			page++;
c3b697c6 sago007 2016-02-07 17:30 324
			if (page>=numberOfPages) {
c3b697c6 sago007 2016-02-07 17:30 325
				page = 0;
c3b697c6 sago007 2016-02-07 17:30 326
			}
c3b697c6 sago007 2016-02-07 17:30 327
		}
c3b697c6 sago007 2016-02-07 17:30 328
	}
ec3f09de Poul Sander 2022-01-29 14:33 329
	HelpCommonState::Update();
16476649 Poul Sander 2022-01-09 10:29 330
}
1970-01-01 00:00 331