| c3b697c6 |
sago007 |
2016-02-07 17:30 |
1 |
/* |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
2 |
* To change this license header, choose License Headers in Project Properties. |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
3 |
* To change this template file, choose Tools | Templates |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
4 |
* and open the template in the editor. |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
5 |
*/ |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
6 |
|
| 58a2d7e1 |
sago007 |
2016-02-12 18:53 |
7 |
/* |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
8 |
* File: ScoresDisplay.cpp |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
9 |
* Author: poul |
| 58a2d7e1 |
sago007 |
2016-02-12 18:53 |
10 |
* |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
11 |
* Created on 7. februar 2016, 17:34 |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
12 |
*/ |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
13 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
14 |
#include "ScoresDisplay.hpp" |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
15 |
#include "global.hpp" |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
16 |
#include "common.h" |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
17 |
#include "stats.h" |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
18 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
19 |
using namespace std; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
20 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
21 |
static void NFont_Write(SDL_Renderer* target, int x, int y, const char* text) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
22 |
nf_standard_blue_font.draw(target, x, y, "%s", text); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
23 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
24 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
25 |
const int numberOfPages = 3; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
26 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
27 |
//Draws the highscores |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
28 |
void ScoresDisplay::DrawHighscores(int x, int y, bool endless) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
29 |
backgroundImage.Draw(screen, 0, 0, 0); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
30 |
if (endless) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
31 |
nf_standard_blue_font.draw(screen, x+100,y+100, "%s",_("Endless:") ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
32 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
33 |
else { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
34 |
nf_standard_blue_font.draw(screen, x+100,y+100, "%s",_("Time Trial:") ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
35 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
36 |
for (int i =0; i<10; i++) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
37 |
char playerScore[32]; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
38 |
char playerName[32]; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
39 |
if (endless) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
40 |
snprintf(playerScore, sizeof(playerScore), "%i", theTopScoresEndless.getScoreNumber(i)); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
41 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
42 |
else { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
43 |
snprintf(playerScore, sizeof(playerScore), "%i", theTopScoresTimeTrial.getScoreNumber(i)); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
44 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
45 |
if (endless) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
46 |
snprintf(playerName, sizeof(playerName), "%s", theTopScoresEndless.getScoreName(i)); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
47 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
48 |
else { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
49 |
snprintf(playerName, sizeof(playerName), "%s", theTopScoresTimeTrial.getScoreName(i)); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
50 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
51 |
nf_standard_blue_font.draw(screen, x+420,y+150+i*35, "%s",playerScore); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
52 |
nf_standard_blue_font.draw(screen, x+60,y+150+i*35, "%s",playerName); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
53 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
54 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
55 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
56 |
void ScoresDisplay::DrawStats() { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
57 |
backgroundImage.Draw(screen, 0, 0, 0); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
58 |
int y = 5; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
59 |
const int y_spacing = 30; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
60 |
NFont_Write(screen, 10,y,_("Stats") ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
61 |
y+=y_spacing*2; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
62 |
NFont_Write(screen, 10,y,_("Chains") ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
63 |
for (int i=2; i<13; i++) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
64 |
y+=y_spacing; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
65 |
NFont_Write(screen, 10,y,(itoa(i)+"X").c_str()); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
66 |
string numberAsString = itoa(Stats::getInstance()->getNumberOf("chainX"+itoa(i))); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
67 |
NFont_Write(screen, 300,y,numberAsString.c_str()); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
68 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
69 |
y+=y_spacing*2; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
70 |
NFont_Write(screen, 10,y,_("Lines Pushed: ") ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
71 |
string numberAsString = itoa(Stats::getInstance()->getNumberOf("linesPushed")); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
72 |
NFont_Write(screen, 300,y,numberAsString.c_str()); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
73 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
74 |
y+=y_spacing; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
75 |
NFont_Write(screen, 10,y, _("Puzzles solved: ") ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
76 |
numberAsString = itoa(Stats::getInstance()->getNumberOf("puzzlesSolved")); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
77 |
NFont_Write(screen, 300,y,numberAsString.c_str()); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
78 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
79 |
y+=y_spacing*2; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
80 |
NFont_Write(screen, 10,y, _("Run time: ") ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
81 |
commonTime ct = TimeHandler::peekTime("totalTime",TimeHandler::ms2ct(SDL_GetTicks())); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
82 |
y+=y_spacing; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
83 |
NFont_Write(screen, 10, y, SPrintCF( _("Days: %i"), ct.days) ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
84 |
y+=y_spacing; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
85 |
NFont_Write(screen, 10, y, SPrintCF( _("Hours: %i"), ct.hours) ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
86 |
y+=y_spacing; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
87 |
NFont_Write(screen, 10, y, SPrintCF( _("Minutes: %i"), ct.minutes) ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
88 |
y+=y_spacing; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
89 |
NFont_Write(screen, 10, y, SPrintCF( _("Seconds: %i"), ct.seconds) ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
90 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
91 |
y-=y_spacing*4; //Four rows back |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
92 |
const int x_offset3 = xsize/3+10; //Ofset for three rows |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
93 |
NFont_Write(screen, x_offset3,y, _("Play time: ") ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
94 |
ct = TimeHandler::getTime("playTime"); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
95 |
y+=y_spacing; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
96 |
NFont_Write(screen, x_offset3, y, SPrintCF( _("Days: %i"), ct.days) ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
97 |
y+=y_spacing; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
98 |
NFont_Write(screen, x_offset3, y, SPrintCF( _("Hours: %i"), ct.hours) ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
99 |
y+=y_spacing; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
100 |
NFont_Write(screen, x_offset3, y, SPrintCF( _("Minutes: %i"), ct.minutes) ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
101 |
y+=y_spacing; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
102 |
NFont_Write(screen, x_offset3, y, SPrintCF( _("Seconds: %i"), ct.seconds) ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
103 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
104 |
const int x_offset = xsize/2+10; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
105 |
y = 5+y_spacing*2; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
106 |
NFont_Write(screen, x_offset,y, _("VS CPU (win/loss)") ); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
107 |
for (int i=0; i<7; i++) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
108 |
y += y_spacing; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
109 |
NFont_Write(screen, x_offset,y,string("AI "+itoa(i+1)).c_str()); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
110 |
numberAsString = itoa(Stats::getInstance()->getNumberOf("defeatedAI"+itoa(i))); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
111 |
string numberAsString2 = itoa(Stats::getInstance()->getNumberOf("defeatedByAI"+itoa(i))); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
112 |
string toPrint = numberAsString + "/" + numberAsString2; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
113 |
NFont_Write(screen, x_offset+230,y,toPrint.c_str()); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
114 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
115 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
116 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
117 |
ScoresDisplay::ScoresDisplay() { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
118 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
119 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
120 |
ScoresDisplay::~ScoresDisplay() { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
121 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
122 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
123 |
bool ScoresDisplay::IsActive() { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
124 |
return isActive; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
125 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
126 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
127 |
void ScoresDisplay::Draw(SDL_Renderer* target) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
128 |
switch (page) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
129 |
case 0: |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
130 |
//Highscores, endless |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
131 |
DrawHighscores(100,100,true); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
132 |
break; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
133 |
case 1: |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
134 |
//Highscores, Time Trial |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
135 |
DrawHighscores(100,100,false); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
136 |
break; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
137 |
case 2: |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
138 |
default: |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
139 |
DrawStats(); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
140 |
}; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
141 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
142 |
//Draw buttons: |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
143 |
bHighScore.Draw(screen, 0, scoreX,scoreY); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
144 |
bBack.Draw(screen, 0, backX, backY); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
145 |
nf_button_font.draw(screen, backX+60,backY+10, NFont::CENTER ,_("Back")); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
146 |
bNext.Draw(screen, 0, nextX, nextY); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
147 |
nf_button_font.draw(screen, nextX+60,nextY+10, NFont::CENTER,_("Next")); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
148 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
149 |
//Draw page number |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
150 |
string pageXofY = (boost::format(_("Page %1% of %2%") )%(page+1)%numberOfPages).str(); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
151 |
NFont_Write(screen, xsize/2-nf_standard_blue_font.getWidth( "%s", pageXofY.c_str())/2,ysize-60,pageXofY.c_str()); |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
152 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
153 |
|
| 58a2d7e1 |
sago007 |
2016-02-12 18:53 |
154 |
void ScoresDisplay::ProcessInput(const SDL_Event& event, bool& processed) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
155 |
if ( event.type == SDL_KEYDOWN ) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
156 |
if ( (event.key.keysym.sym == SDLK_RIGHT)) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
157 |
page++; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
158 |
if (page>=numberOfPages) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
159 |
page = 0; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
160 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
161 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
162 |
else if ( (event.key.keysym.sym == SDLK_LEFT)) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
163 |
page--; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
164 |
if (page<0) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
165 |
page = numberOfPages-1; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
166 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
167 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
168 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
169 |
if ( (event.key.keysym.sym == SDLK_RETURN)||(event.key.keysym.sym == SDLK_KP_ENTER) ) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
170 |
isActive = false; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
171 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
172 |
else if ( (event.key.keysym.sym == SDLK_ESCAPE) ) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
173 |
isActive = false; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
174 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
175 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
176 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
177 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
178 |
void ScoresDisplay::Update() { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
179 |
int mousex, mousey; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
180 |
SDL_GetMouseState(&mousex,&mousey); |
| 58a2d7e1 |
sago007 |
2016-02-12 18:53 |
181 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
182 |
// If the mouse button is released, make bMouseUp equal true |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
183 |
if (!SDL_GetMouseState(nullptr, nullptr)&SDL_BUTTON(1)) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
184 |
bMouseUp=true; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
185 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
186 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
187 |
if (SDL_GetMouseState(nullptr,nullptr)&SDL_BUTTON(1) && bMouseUp) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
188 |
bMouseUp = false; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
189 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
190 |
//The Score button: |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
191 |
if ((mousex>scoreX) && (mousex<scoreX+buttonXsize) && (mousey>scoreY) && (mousey<scoreY+buttonYsize)) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
192 |
isActive = false; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
193 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
194 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
195 |
//The back button: |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
196 |
if ((mousex>backX) && (mousex<backX+buttonXsize) && (mousey>backY) && (mousey<backY+buttonYsize)) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
197 |
page--; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
198 |
if (page<0) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
199 |
page = numberOfPages-1; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
200 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
201 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
202 |
|
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
203 |
//The next button: |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
204 |
if ((mousex>nextX) && (mousex<nextX+buttonXsize) && (mousey>nextY) && (mousey<nextY+buttonYsize)) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
205 |
page++; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
206 |
if (page>=numberOfPages) { |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
207 |
page = 0; |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
208 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
209 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
210 |
} |
| c3b697c6 |
sago007 |
2016-02-07 17:30 |
211 |
} |