diff options
author | Felix Arends <edx@rockbox.org> | 2002-04-28 09:30:54 +0000 |
---|---|---|
committer | Felix Arends <edx@rockbox.org> | 2002-04-28 09:30:54 +0000 |
commit | e0cabeeb633f4da95a538fb6b4c6bc3ac7cfaa55 (patch) | |
tree | 39642cb95b6bf353b62aeb731995e91d546008a3 /uisimulator | |
parent | ca3d6dc5dc7af97e41c9a3d9ee1f57b2b214c86e (diff) |
removed tetris.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@295 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'uisimulator')
-rw-r--r-- | uisimulator/win32/file-win32.c | 3 | ||||
-rw-r--r-- | uisimulator/win32/file-win32.h | 9 | ||||
-rw-r--r-- | uisimulator/win32/tetris.c | 288 | ||||
-rw-r--r-- | uisimulator/win32/uisw32.suo | bin | 10240 -> 9728 bytes | |||
-rw-r--r-- | uisimulator/win32/uisw32.vcproj | 8 |
5 files changed, 10 insertions, 298 deletions
diff --git a/uisimulator/win32/file-win32.c b/uisimulator/win32/file-win32.c index 148c81c08d..478df372d5 100644 --- a/uisimulator/win32/file-win32.c +++ b/uisimulator/win32/file-win32.c @@ -32,6 +32,9 @@ DIR *opendir ( { DIR *p = (DIR*)malloc(sizeof(DIR)); if (_findfirst (dirname, &p) == -1) + { + free (p); return NULL; + } return p; }
\ No newline at end of file diff --git a/uisimulator/win32/file-win32.h b/uisimulator/win32/file-win32.h index d5ba495d55..48ebfa8fb0 100644 --- a/uisimulator/win32/file-win32.h +++ b/uisimulator/win32/file-win32.h @@ -22,16 +22,13 @@ #include <io.h> -typedef unsigned short ino_t; -typedef long off_t; typedef _finddata_t DIR; struct dirent { - long __d_reserved[4]; - ino_t d_ino; /* Just for compatibility, it's junk */ - char d_name[256]; /* FIXME: use NAME_MAX? */ + long __d_reserved[4]; + unsigned short d_ino; /* Just for compatibility, it's junk */ + char d_name[256]; /* FIXME: use NAME_MAX? */ }; - #endif // #ifndef __FILE_WIN32_H__
\ No newline at end of file diff --git a/uisimulator/win32/tetris.c b/uisimulator/win32/tetris.c deleted file mode 100644 index 040539bf6a..0000000000 --- a/uisimulator/win32/tetris.c +++ /dev/null @@ -1,288 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 1999 Mattis Wadman (nappe@sudac.org) - * - * Heavily modified for embedded use by Björn Stenberg (bjorn@haxx.se) - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "types.h" -#include "lcd.h" -#include "button.h" -#include "kernel.h" - -#ifdef SIMULATOR -#include <stdio.h> -// #include <unistd.h> -#endif - -int start_x = 1; -int start_y = 1; -int max_x = 14; -int max_y = 24; -int current_x = 0; -int current_y = 0; -int current_f = 0; -int current_b = 0; -int level = 0; -short lines = 0; -int score = 0; -int next_b = 0; -int next_f = 0; -char virtual[LCD_WIDTH*LCD_HEIGHT]; -short level_speeds[10] = {1000,900,800,700,600,500,400,300,250,200}; -int blocks = 7; -int block_frames[7] = {1,2,2,2,4,4,4}; -int block_data[7][4][2][4] = -{ - { - {{0,1,0,1},{0,0,1,1}} - }, - { - {{0,1,1,2},{1,1,0,0}}, - {{0,0,1,1},{0,1,1,2}} - }, - { - {{0,1,1,2},{0,0,1,1}}, - {{1,1,0,0},{0,1,1,2}} - }, - { - {{1,1,1,1},{0,1,2,3}}, - {{0,1,2,3},{2,2,2,2}} - }, - { - {{1,1,1,2},{2,1,0,0}}, - {{0,1,2,2},{1,1,1,2}}, - {{0,1,1,1},{2,2,1,0}}, - {{0,0,1,2},{0,1,1,1}} - }, - { - {{0,1,1,1},{0,0,1,2}}, - {{0,1,2,2},{1,1,1,0}}, - {{1,1,1,2},{0,1,2,2}}, - {{0,0,1,2},{2,1,1,1}} - }, - { - {{1,0,1,2},{0,1,1,1}}, - {{2,1,1,1},{1,0,1,2}}, - {{1,0,1,2},{2,1,1,1}}, - {{0,1,1,1},{1,0,1,2}} - } -}; - -/* not even pseudo random :) */ -int rand(int range) -{ - static int count; - count++; - return count % range; -} - -void draw_frame(int fstart_x,int fstop_x,int fstart_y,int fstop_y) -{ - int i; - for (i=0; fstart_x+i-1 < fstop_x; i++) - { - lcd_drawpixel(fstart_x+i,fstart_y); - lcd_drawpixel(fstart_x+i,fstop_y); - } - for (i=1; fstart_y+i < fstop_y; i++) - { - lcd_drawpixel(fstart_x,fstart_y+i); - lcd_drawpixel(fstop_x,fstart_y+i); - } - lcd_drawpixel(fstart_x,fstart_y); - lcd_drawpixel(fstop_x,fstart_y); - lcd_drawpixel(fstart_x,fstop_y); - lcd_drawpixel(fstop_x,fstop_y); -} - -void draw_block(int x,int y,int block,int frame,int clear) -{ - int i; - for(i=0;i < 4;i++) - if ( (clear ? 0 : block+1) ) - lcd_drawpixel(start_x+x+block_data[block][frame][0][i], - start_y+y+block_data[block][frame][1][i]); - else - lcd_clearpixel(start_x+x+block_data[block][frame][0][i], - start_y+y+block_data[block][frame][1][i]); -} - -void to_virtual() -{ - int i; - for(i=0;i < 4;i++) - *(virtual+ - ((current_y+block_data[current_b][current_f][1][i])*max_x)+ - (current_x+block_data[current_b][current_f][0][i])) = current_b+1; -} - -int valid_position(int x,int y,int block,int frame) -{ - int i; - for(i=0;i < 4;i++) - if( (*(virtual+((y+block_data[block][frame][1][i])*max_x)+x+ - block_data[block][frame][0][i]) != 0) || - (x+block_data[block][frame][0][i] < 0) || - (x+block_data[block][frame][0][i] > max_x-1) || - (y+block_data[block][frame][1][i] < 0) || - (y+block_data[block][frame][1][i] > max_y-1)) - return FALSE; - return TRUE; -} - -void from_virtual() -{ - int x,y; - for(y=0;y < max_y;y++) - for(x=0;x < max_x;x++) - if(*(virtual+(y*max_x)+x)) - lcd_drawpixel(start_x+x,start_y+y); - else - lcd_clearpixel(start_x+x,start_y+y); -} - -void move_block(int x,int y,int f) -{ - int last_frame = current_f; - if(f != 0) - { - current_f += f; - if(current_f > block_frames[current_b]-1) - current_f = 0; - if(current_f < 0) - current_f = block_frames[current_b]-1; - } - if(valid_position(current_x+x,current_y+y,current_b,current_f)) - { - draw_block(current_x,current_y,current_b,last_frame,TRUE); - current_x += x; - current_y += y; - draw_block(current_x,current_y,current_b,current_f,FALSE); - lcd_update(); - } - else - current_f = last_frame; -} - -void new_block() -{ - current_b = next_b; - current_f = next_f; - current_x = (int)((max_x)/2)-1; - current_y = 0; - next_b = rand(blocks); - next_f = rand(block_frames[next_b]); - draw_block(max_x+2,start_y-1,current_b,current_f,TRUE); - draw_block(max_x+2,start_y-1,next_b,next_f,FALSE); - if(!valid_position(current_x,current_y,current_b,current_f)) - { - draw_block(current_x,current_y,current_b,current_f,FALSE); - lcd_update(); - } - else - draw_block(current_x,current_y,current_b,current_f,FALSE); -} - -int check_lines() -{ - int x,y,line,i; - int lines = 0; - for(y=0;y < max_y;y++) - { - line = TRUE; - for(x=0;x < max_x;x++) - if(virtual[y*max_x+x] == 0) - line = FALSE; - if(line) - { - lines++; - for(i=y;i > 1;i--) - for (x=0;x<max_x;x++) - virtual[i*max_x] = virtual[((i-1)*max_x)]; - for (x=0;x<max_x;x++) - virtual[max_x] = 0; - } - } - return lines; -} - -void move_down() -{ - int l; - if(!valid_position(current_x,current_y+1,current_b,current_f)) - { - to_virtual(); - l = check_lines(); - if(l) - { - lines += l; - level = (int)lines/10; - if(level > 9) - level = 9; - from_virtual(); - score += l*l; - } - new_block(); - move_block(0,0,0); - } - else - move_block(0,1,0); -} - -void game_loop(void) -{ - while(1) - { - int b=0; - int count = 0; - /* while(count*20 < level_speeds[level]) */ - { - b = button_get(); - if ( b & BUTTON_LEFT ) { - printf("Left\n"); - move_block(-1,0,0); - } - if ( b & BUTTON_RIGHT ) { - printf("Right\n"); - move_block(1,0,0); - } - if ( b & BUTTON_UP ) { - printf("Up\n"); - move_block(0,0,1); - } - if ( b & BUTTON_DOWN ) { - printf("Down\n"); - move_down(); - } - count++; - sleep(HZ/4); - } - move_down(); - } -} - -void main(void) -{ - draw_frame(start_x-1,start_x+max_x,start_y-1,start_y+max_y); - lcd_update(); - - next_b = rand(blocks); - next_f = rand(block_frames[next_b]); - new_block(); - game_loop(); -} diff --git a/uisimulator/win32/uisw32.suo b/uisimulator/win32/uisw32.suo Binary files differindex 31b4d3d464..fa961efe48 100644 --- a/uisimulator/win32/uisw32.suo +++ b/uisimulator/win32/uisw32.suo diff --git a/uisimulator/win32/uisw32.vcproj b/uisimulator/win32/uisw32.vcproj index cde446b6ad..00d87f610b 100644 --- a/uisimulator/win32/uisw32.vcproj +++ b/uisimulator/win32/uisw32.vcproj @@ -107,13 +107,13 @@ Name="Source Files" Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm"> <File - RelativePath="button.c"> + RelativePath="..\app.c"> </File> <File - RelativePath="..\..\firmware\chartables.c"> + RelativePath="button.c"> </File> <File - RelativePath="file-win32.c"> + RelativePath="..\..\firmware\chartables.c"> </File> <File RelativePath="kernel.c"> @@ -125,7 +125,7 @@ RelativePath="..\..\firmware\drivers\lcd.c"> </File> <File - RelativePath="main.c"> + RelativePath="..\tetris.c"> </File> <File RelativePath="uisw32.c"> |