summaryrefslogtreecommitdiff
path: root/uisimulator/tetris.c
diff options
context:
space:
mode:
Diffstat (limited to 'uisimulator/tetris.c')
-rw-r--r--uisimulator/tetris.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/uisimulator/tetris.c b/uisimulator/tetris.c
index 8884fd8964..24090eb67e 100644
--- a/uisimulator/tetris.c
+++ b/uisimulator/tetris.c
@@ -20,8 +20,7 @@
20 ****************************************************************************/ 20 ****************************************************************************/
21 21
22#ifdef HAVE_LCD_BITMAP 22#ifdef HAVE_LCD_BITMAP
23 23#include <stdbool.h>
24#include "types.h"
25#include "lcd.h" 24#include "lcd.h"
26#include "button.h" 25#include "button.h"
27#include "kernel.h" 26#include "kernel.h"
@@ -121,7 +120,7 @@ void draw_frame(int fstart_x,int fstop_x,int fstart_y,int fstop_y)
121 lcd_drawline(fstop_x, fstart_y, fstop_x, fstop_y); 120 lcd_drawline(fstop_x, fstart_y, fstop_x, fstop_y);
122} 121}
123 122
124void draw_block(int x,int y,int block,int frame,int clear) 123void draw_block(int x,int y,int block,int frame,bool clear)
125{ 124{
126 int i; 125 int i;
127 for(i=0;i < 4;i++) { 126 for(i=0;i < 4;i++) {
@@ -143,7 +142,7 @@ void to_virtual()
143 (current_x+block_data[current_b][current_f][0][i])) = current_b+1; 142 (current_x+block_data[current_b][current_f][0][i])) = current_b+1;
144} 143}
145 144
146int gameover() 145bool gameover()
147{ 146{
148 int i; 147 int i;
149 int frame, block, y, x; 148 int frame, block, y, x;
@@ -162,14 +161,14 @@ int gameover()
162 if(y+block_data[block][frame][1][i] < start_y) 161 if(y+block_data[block][frame][1][i] < start_y)
163 { 162 {
164 /* Game over ;) */ 163 /* Game over ;) */
165 return TRUE; 164 return true;
166 } 165 }
167 } 166 }
168 } 167 }
169 return FALSE; 168 return false;
170} 169}
171 170
172int valid_position(int x,int y,int block,int frame) 171bool valid_position(int x,int y,int block,int frame)
173{ 172{
174 int i; 173 int i;
175 for(i=0;i < 4;i++) 174 for(i=0;i < 4;i++)
@@ -179,8 +178,8 @@ int valid_position(int x,int y,int block,int frame)
179 (x+block_data[block][frame][0][i] > max_x-1) || 178 (x+block_data[block][frame][0][i] > max_x-1) ||
180 (y+block_data[block][frame][1][i] < 0) || 179 (y+block_data[block][frame][1][i] < 0) ||
181 (y+block_data[block][frame][1][i] > max_y-1)) 180 (y+block_data[block][frame][1][i] > max_y-1))
182 return FALSE; 181 return false;
183 return TRUE; 182 return true;
184} 183}
185 184
186void from_virtual() 185void from_virtual()
@@ -207,10 +206,10 @@ void move_block(int x,int y,int f)
207 } 206 }
208 if(valid_position(current_x+x,current_y+y,current_b,current_f)) 207 if(valid_position(current_x+x,current_y+y,current_b,current_f))
209 { 208 {
210 draw_block(current_x,current_y,current_b,last_frame,TRUE); 209 draw_block(current_x,current_y,current_b,last_frame,true);
211 current_x += x; 210 current_x += x;
212 current_y += y; 211 current_y += y;
213 draw_block(current_x,current_y,current_b,current_f,FALSE); 212 draw_block(current_x,current_y,current_b,current_f,false);
214 lcd_update(); 213 lcd_update();
215 } 214 }
216 else 215 else
@@ -225,27 +224,28 @@ void new_block()
225 current_y = 0; 224 current_y = 0;
226 next_b = t_rand(blocks); 225 next_b = t_rand(blocks);
227 next_f = t_rand(block_frames[next_b]); 226 next_f = t_rand(block_frames[next_b]);
228 draw_block(max_x+2,start_y-1,current_b,current_f,TRUE); 227 draw_block(max_x+2,start_y-1,current_b,current_f,true);
229 draw_block(max_x+2,start_y-1,next_b,next_f,FALSE); 228 draw_block(max_x+2,start_y-1,next_b,next_f,false);
230 if(!valid_position(current_x,current_y,current_b,current_f)) 229 if(!valid_position(current_x,current_y,current_b,current_f))
231 { 230 {
232 draw_block(current_x,current_y,current_b,current_f,FALSE); 231 draw_block(current_x,current_y,current_b,current_f,false);
233 lcd_update(); 232 lcd_update();
234 } 233 }
235 else 234 else
236 draw_block(current_x,current_y,current_b,current_f,FALSE); 235 draw_block(current_x,current_y,current_b,current_f,false);
237} 236}
238 237
239int check_lines() 238int check_lines()
240{ 239{
241 int x,y,line,i; 240 int x,y,i;
241 bool line;
242 int lines = 0; 242 int lines = 0;
243 for(y=0;y < max_y;y++) 243 for(y=0;y < max_y;y++)
244 { 244 {
245 line = TRUE; 245 line = true;
246 for(x=0;x < max_x;x++) 246 for(x=0;x < max_x;x++)
247 if(virtual[y*max_x+x] == 0) 247 if(virtual[y*max_x+x] == 0)
248 line = FALSE; 248 line = false;
249 if(line) 249 if(line)
250 { 250 {
251 lines++; 251 lines++;