summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/plugins/SOURCES5
-rw-r--r--apps/plugins/bitmaps/mono/SOURCES10
-rw-r--r--apps/plugins/bitmaps/mono/brickmania_gameover.112x64x1.bmpbin17320 -> 0 bytes
-rw-r--r--apps/plugins/bitmaps/mono/brickmania_menu_items.112x64x1.bmpbin19496 -> 0 bytes
-rw-r--r--apps/plugins/bitmaps/native/SOURCES92
-rw-r--r--apps/plugins/bitmaps/native/brickmania_ball.176x132x16.bmpbin134 -> 0 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_ball.220x176x16.bmpbin134 -> 0 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_ball.3x3x1.bmp (renamed from apps/plugins/bitmaps/mono/brickmania_ball.112x64x1.bmp)bin108 -> 108 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_ball.4x4x16.bmpbin0 -> 102 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_ball.5x5x16.bmp (renamed from apps/plugins/bitmaps/native/brickmania_ball.160x128x16.bmp)bin134 -> 134 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_ball.5x5x2.bmp (renamed from apps/plugins/bitmaps/native/brickmania_ball.160x128x2.bmp)bin138 -> 138 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_break.132x80x16.bmpbin0 -> 1062 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_bricks.112x64x1.bmp (renamed from apps/plugins/bitmaps/mono/brickmania_bricks.112x64x1.bmp)bin1064 -> 1064 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_bricks.128x128x16.bmpbin0 -> 1314 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_bricks.132x80x16.bmpbin0 -> 1062 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_gameover.112x54x16.bmpbin0 -> 18198 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_gameover.160x128x16.bmpbin17318 -> 0 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_gameover.160x128x2.bmpbin17320 -> 0 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_gameover.176x132x16.bmpbin17318 -> 0 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_gameover.220x176x16.bmpbin17318 -> 0 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_gameover.59x30x1.bmpbin0 -> 5454 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_gameover.86x43x2.bmpbin0 -> 11234 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_bg.128x128x16.bmpbin0 -> 49206 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_bg.132x80x16.bmpbin0 -> 31734 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_bg.160x128x16.bmpbin61496 -> 61494 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_bg.240x320x16.bmpbin230454 -> 230454 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_bg.320x240x16.bmpbin230454 -> 230454 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_items.112x64x1.bmpbin0 -> 23454 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_items.132x80x16.bmpbin0 -> 24678 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_items.160x128x16.bmpbin40448 -> 31806 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_items.160x128x2.bmpbin40448 -> 26730 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_items.176x132x16.bmpbin38648 -> 36774 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_menu_items.220x176x16.bmpbin60536 -> 60534 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_pads.112x64x1.bmp (renamed from apps/plugins/bitmaps/mono/brickmania_pads.112x64x1.bmp)bin220 -> 220 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_pads.132x80x16.bmpbin0 -> 810 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_powerups.112x64x1.bmp (renamed from apps/plugins/bitmaps/mono/brickmania_powerups.112x64x1.bmp)bin244 -> 244 bytes
-rw-r--r--apps/plugins/bitmaps/native/brickmania_powerups.132x80x16.bmpbin0 -> 754 bytes
-rw-r--r--apps/plugins/brickmania.c523
38 files changed, 286 insertions, 344 deletions
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES
index f9c37f263e..94985579bc 100644
--- a/apps/plugins/SOURCES
+++ b/apps/plugins/SOURCES
@@ -44,6 +44,7 @@ disktidy.c
44flipit.c 44flipit.c
45 45
46#ifdef HAVE_LCD_BITMAP /* Not for the Player */ 46#ifdef HAVE_LCD_BITMAP /* Not for the Player */
47brickmania.c
47maze.c 48maze.c
48mazezam.c 49mazezam.c
49text_editor.c 50text_editor.c
@@ -64,10 +65,6 @@ bubbles.c
64invadrox.c 65invadrox.c
65#endif 66#endif
66 67
67#if LCD_WIDTH != 128 && !defined SANSA_C200
68/* These need adjusting for the iRiver if'p and Sansa c200, small H10 screen */
69brickmania.c
70#endif
71calculator.c 68calculator.c
72chip8.c 69chip8.c
73chopper.c 70chopper.c
diff --git a/apps/plugins/bitmaps/mono/SOURCES b/apps/plugins/bitmaps/mono/SOURCES
index 3917828bba..36fd2b02b0 100644
--- a/apps/plugins/bitmaps/mono/SOURCES
+++ b/apps/plugins/bitmaps/mono/SOURCES
@@ -20,16 +20,6 @@ bubbles_bubble.220x176x1.bmp
20bubbles_bubble.320x240x1.bmp 20bubbles_bubble.320x240x1.bmp
21#endif 21#endif
22 22
23/* BrickMania */
24#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
25brickmania_menu_items.112x64x1.bmp
26brickmania_bricks.112x64x1.bmp
27brickmania_ball.112x64x1.bmp
28brickmania_pads.112x64x1.bmp
29brickmania_powerups.112x64x1.bmp
30
31#endif
32
33/* Rockblox */ 23/* Rockblox */
34#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64) 24#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
35rockblox_background.112x64x1.bmp 25rockblox_background.112x64x1.bmp
diff --git a/apps/plugins/bitmaps/mono/brickmania_gameover.112x64x1.bmp b/apps/plugins/bitmaps/mono/brickmania_gameover.112x64x1.bmp
deleted file mode 100644
index 73afc2bfbb..0000000000
--- a/apps/plugins/bitmaps/mono/brickmania_gameover.112x64x1.bmp
+++ /dev/null
Binary files differ
diff --git a/apps/plugins/bitmaps/mono/brickmania_menu_items.112x64x1.bmp b/apps/plugins/bitmaps/mono/brickmania_menu_items.112x64x1.bmp
deleted file mode 100644
index 0403c9ae95..0000000000
--- a/apps/plugins/bitmaps/mono/brickmania_menu_items.112x64x1.bmp
+++ /dev/null
Binary files differ
diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES
index 35bd6ad69e..61c9b7a70f 100644
--- a/apps/plugins/bitmaps/native/SOURCES
+++ b/apps/plugins/bitmaps/native/SOURCES
@@ -1,59 +1,81 @@
1#ifdef HAVE_LCD_BITMAP 1#ifdef HAVE_LCD_BITMAP
2 2
3/* Brickmania */ 3/* Brickmania */
4#if (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176) && (LCD_DEPTH == 16) 4#ifdef HAVE_LCD_COLOR
5#if (LCD_WIDTH == 320) 5brickmania_gameover.112x54x16.bmp
6#if LCD_WIDTH >= 220 /* common to all big lcds */
7brickmania_ball.5x5x16.bmp
8brickmania_menu_items.220x176x16.bmp
9#if LCD_WIDTH >= 320 /* Ipod Video */
6brickmania_menu_bg.320x240x16.bmp 10brickmania_menu_bg.320x240x16.bmp
7brickmania_bricks.320x240x16.bmp 11brickmania_bricks.320x240x16.bmp
8brickmania_pads.320x240x16.bmp 12brickmania_pads.320x240x16.bmp
9brickmania_break.320x240x16.bmp 13brickmania_break.320x240x16.bmp
10brickmania_powerups.320x240x16.bmp 14brickmania_powerups.320x240x16.bmp
11#else 15#else
12#if (LCD_WIDTH == 240) && (LCD_HEIGHT == 320)
13brickmania_menu_bg.240x320x16.bmp
14#else
15brickmania_menu_bg.220x176x16.bmp
16#endif
17brickmania_bricks.220x176x16.bmp 16brickmania_bricks.220x176x16.bmp
18brickmania_pads.220x176x16.bmp 17brickmania_pads.220x176x16.bmp
19brickmania_break.220x176x16.bmp 18brickmania_break.220x176x16.bmp
20brickmania_powerups.220x176x16.bmp 19brickmania_powerups.220x176x16.bmp
20#if LCD_HEIGHT == 320
21brickmania_menu_bg.240x320x16.bmp
22#elif LCD_HEIGHT == 176
23brickmania_menu_bg.220x176x16.bmp
21#endif 24#endif
22brickmania_ball.220x176x16.bmp
23brickmania_menu_items.220x176x16.bmp
24brickmania_gameover.220x176x16.bmp
25#elif (((LCD_WIDTH == 160) && (LCD_HEIGHT == 128)) || \
26 ((LCD_WIDTH == 138) && (LCD_HEIGHT == 110))) && (LCD_DEPTH == 2)
27brickmania_menu_items.160x128x2.bmp
28brickmania_ball.160x128x2.bmp
29#if (LCD_WIDTH == 160)
30brickmania_bricks.160x128x2.bmp
31#else
32brickmania_bricks.138x110x2.bmp
33#endif 25#endif
34brickmania_gameover.160x128x2.bmp 26#elif LCD_WIDTH >= 176
35brickmania_menu_bg.160x128x2.bmp 27brickmania_ball.5x5x16.bmp
36brickmania_pads.160x128x2.bmp
37brickmania_powerups.160x128x2.bmp
38brickmania_break.160x128x2.bmp
39#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 16)
40brickmania_menu_items.160x128x16.bmp
41brickmania_ball.160x128x16.bmp
42brickmania_bricks.160x128x16.bmp
43brickmania_gameover.160x128x16.bmp
44brickmania_menu_bg.160x128x16.bmp
45brickmania_pads.160x128x16.bmp
46brickmania_powerups.160x128x16.bmp
47brickmania_break.160x128x16.bmp
48#elif (LCD_WIDTH == 176)/* && (LCD_HEIGHT == 132) */&& (LCD_DEPTH == 16)
49brickmania_menu_items.176x132x16.bmp 28brickmania_menu_items.176x132x16.bmp
50brickmania_ball.176x132x16.bmp
51brickmania_bricks.176x132x16.bmp 29brickmania_bricks.176x132x16.bmp
52brickmania_gameover.176x132x16.bmp
53brickmania_menu_bg.176x132x16.bmp 30brickmania_menu_bg.176x132x16.bmp
54brickmania_pads.176x132x16.bmp 31brickmania_pads.176x132x16.bmp
55brickmania_powerups.176x132x16.bmp 32brickmania_powerups.176x132x16.bmp
56brickmania_break.176x132x16.bmp 33brickmania_break.176x132x16.bmp
34#elif LCD_WIDTH >= 160
35brickmania_ball.5x5x16.bmp
36brickmania_menu_items.160x128x16.bmp
37brickmania_bricks.160x128x16.bmp
38brickmania_menu_bg.160x128x16.bmp
39brickmania_pads.160x128x16.bmp
40brickmania_powerups.160x128x16.bmp
41brickmania_break.160x128x16.bmp
42#elif LCD_WIDTH >= 132
43brickmania_ball.4x4x16.bmp
44brickmania_menu_items.132x80x16.bmp
45brickmania_bricks.132x80x16.bmp
46brickmania_menu_bg.132x80x16.bmp
47brickmania_pads.132x80x16.bmp
48brickmania_powerups.132x80x16.bmp
49brickmania_break.132x80x16.bmp
50#elif LCD_WIDTH >= 128
51brickmania_ball.4x4x16.bmp
52brickmania_menu_items.132x80x16.bmp
53brickmania_bricks.128x128x16.bmp
54brickmania_menu_bg.128x128x16.bmp
55brickmania_pads.132x80x16.bmp
56brickmania_powerups.132x80x16.bmp
57brickmania_break.132x80x16.bmp
58#endif /* different colour displays */
59#elif LCD_DEPTH > 1
60brickmania_gameover.86x43x2.bmp
61brickmania_menu_items.160x128x2.bmp
62brickmania_ball.5x5x2.bmp
63brickmania_menu_bg.160x128x2.bmp
64brickmania_pads.160x128x2.bmp
65brickmania_powerups.160x128x2.bmp
66brickmania_break.160x128x2.bmp
67#if (LCD_WIDTH >= 160)
68brickmania_bricks.160x128x2.bmp
69#else /* Mini currently */
70brickmania_bricks.138x110x2.bmp
71#endif
72#else /* mono */
73brickmania_gameover.59x30x1.bmp
74brickmania_menu_items.112x64x1.bmp
75brickmania_bricks.112x64x1.bmp
76brickmania_ball.3x3x1.bmp
77brickmania_pads.112x64x1.bmp
78brickmania_powerups.112x64x1.bmp
57#endif 79#endif
58 80
59/* Jackpot */ 81/* Jackpot */
diff --git a/apps/plugins/bitmaps/native/brickmania_ball.176x132x16.bmp b/apps/plugins/bitmaps/native/brickmania_ball.176x132x16.bmp
deleted file mode 100644
index 97da97f4a7..0000000000
--- a/apps/plugins/bitmaps/native/brickmania_ball.176x132x16.bmp
+++ /dev/null
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_ball.220x176x16.bmp b/apps/plugins/bitmaps/native/brickmania_ball.220x176x16.bmp
deleted file mode 100644
index 97da97f4a7..0000000000
--- a/apps/plugins/bitmaps/native/brickmania_ball.220x176x16.bmp
+++ /dev/null
Binary files differ
diff --git a/apps/plugins/bitmaps/mono/brickmania_ball.112x64x1.bmp b/apps/plugins/bitmaps/native/brickmania_ball.3x3x1.bmp
index 221b13b774..221b13b774 100644
--- a/apps/plugins/bitmaps/mono/brickmania_ball.112x64x1.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_ball.3x3x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_ball.4x4x16.bmp b/apps/plugins/bitmaps/native/brickmania_ball.4x4x16.bmp
new file mode 100644
index 0000000000..22b9bc8c37
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_ball.4x4x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_ball.160x128x16.bmp b/apps/plugins/bitmaps/native/brickmania_ball.5x5x16.bmp
index 97da97f4a7..97da97f4a7 100644
--- a/apps/plugins/bitmaps/native/brickmania_ball.160x128x16.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_ball.5x5x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_ball.160x128x2.bmp b/apps/plugins/bitmaps/native/brickmania_ball.5x5x2.bmp
index ddd4f212ce..ddd4f212ce 100644
--- a/apps/plugins/bitmaps/native/brickmania_ball.160x128x2.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_ball.5x5x2.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_break.132x80x16.bmp b/apps/plugins/bitmaps/native/brickmania_break.132x80x16.bmp
new file mode 100644
index 0000000000..528fe13e2c
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_break.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/mono/brickmania_bricks.112x64x1.bmp b/apps/plugins/bitmaps/native/brickmania_bricks.112x64x1.bmp
index fba374d480..fba374d480 100644
--- a/apps/plugins/bitmaps/mono/brickmania_bricks.112x64x1.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_bricks.112x64x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_bricks.128x128x16.bmp b/apps/plugins/bitmaps/native/brickmania_bricks.128x128x16.bmp
new file mode 100644
index 0000000000..8caf647a01
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_bricks.128x128x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_bricks.132x80x16.bmp b/apps/plugins/bitmaps/native/brickmania_bricks.132x80x16.bmp
new file mode 100644
index 0000000000..757bb76450
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_bricks.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_gameover.112x54x16.bmp b/apps/plugins/bitmaps/native/brickmania_gameover.112x54x16.bmp
new file mode 100644
index 0000000000..b25346d89a
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_gameover.112x54x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_gameover.160x128x16.bmp b/apps/plugins/bitmaps/native/brickmania_gameover.160x128x16.bmp
deleted file mode 100644
index d004433b5f..0000000000
--- a/apps/plugins/bitmaps/native/brickmania_gameover.160x128x16.bmp
+++ /dev/null
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_gameover.160x128x2.bmp b/apps/plugins/bitmaps/native/brickmania_gameover.160x128x2.bmp
deleted file mode 100644
index 73afc2bfbb..0000000000
--- a/apps/plugins/bitmaps/native/brickmania_gameover.160x128x2.bmp
+++ /dev/null
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_gameover.176x132x16.bmp b/apps/plugins/bitmaps/native/brickmania_gameover.176x132x16.bmp
deleted file mode 100644
index d004433b5f..0000000000
--- a/apps/plugins/bitmaps/native/brickmania_gameover.176x132x16.bmp
+++ /dev/null
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_gameover.220x176x16.bmp b/apps/plugins/bitmaps/native/brickmania_gameover.220x176x16.bmp
deleted file mode 100644
index d004433b5f..0000000000
--- a/apps/plugins/bitmaps/native/brickmania_gameover.220x176x16.bmp
+++ /dev/null
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_gameover.59x30x1.bmp b/apps/plugins/bitmaps/native/brickmania_gameover.59x30x1.bmp
new file mode 100644
index 0000000000..d20822e731
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_gameover.59x30x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_gameover.86x43x2.bmp b/apps/plugins/bitmaps/native/brickmania_gameover.86x43x2.bmp
new file mode 100644
index 0000000000..d45a48ad76
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_gameover.86x43x2.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_bg.128x128x16.bmp b/apps/plugins/bitmaps/native/brickmania_menu_bg.128x128x16.bmp
new file mode 100644
index 0000000000..30373baa2f
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_menu_bg.128x128x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_bg.132x80x16.bmp b/apps/plugins/bitmaps/native/brickmania_menu_bg.132x80x16.bmp
new file mode 100644
index 0000000000..e4ca574636
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_menu_bg.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_bg.160x128x16.bmp b/apps/plugins/bitmaps/native/brickmania_menu_bg.160x128x16.bmp
index 921365c22b..ee213efe6e 100644
--- a/apps/plugins/bitmaps/native/brickmania_menu_bg.160x128x16.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_menu_bg.160x128x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_bg.240x320x16.bmp b/apps/plugins/bitmaps/native/brickmania_menu_bg.240x320x16.bmp
index 93856e02a7..16c5549c7d 100644
--- a/apps/plugins/bitmaps/native/brickmania_menu_bg.240x320x16.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_menu_bg.240x320x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_bg.320x240x16.bmp b/apps/plugins/bitmaps/native/brickmania_menu_bg.320x240x16.bmp
index de6cc658b9..f2639cd65d 100644
--- a/apps/plugins/bitmaps/native/brickmania_menu_bg.320x240x16.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_menu_bg.320x240x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_items.112x64x1.bmp b/apps/plugins/bitmaps/native/brickmania_menu_items.112x64x1.bmp
new file mode 100644
index 0000000000..e341c67dfe
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_menu_items.112x64x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_items.132x80x16.bmp b/apps/plugins/bitmaps/native/brickmania_menu_items.132x80x16.bmp
new file mode 100644
index 0000000000..2594e86f45
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_menu_items.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_items.160x128x16.bmp b/apps/plugins/bitmaps/native/brickmania_menu_items.160x128x16.bmp
index 917a90badd..77dac8377f 100644
--- a/apps/plugins/bitmaps/native/brickmania_menu_items.160x128x16.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_menu_items.160x128x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_items.160x128x2.bmp b/apps/plugins/bitmaps/native/brickmania_menu_items.160x128x2.bmp
index 490e1a0bfa..5a8710a370 100644
--- a/apps/plugins/bitmaps/native/brickmania_menu_items.160x128x2.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_menu_items.160x128x2.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_items.176x132x16.bmp b/apps/plugins/bitmaps/native/brickmania_menu_items.176x132x16.bmp
index cba3e8c987..d7c6e554a2 100644
--- a/apps/plugins/bitmaps/native/brickmania_menu_items.176x132x16.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_menu_items.176x132x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_menu_items.220x176x16.bmp b/apps/plugins/bitmaps/native/brickmania_menu_items.220x176x16.bmp
index e1ff9ec1e9..c82912a073 100644
--- a/apps/plugins/bitmaps/native/brickmania_menu_items.220x176x16.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_menu_items.220x176x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/mono/brickmania_pads.112x64x1.bmp b/apps/plugins/bitmaps/native/brickmania_pads.112x64x1.bmp
index 85e5ff1d72..85e5ff1d72 100644
--- a/apps/plugins/bitmaps/mono/brickmania_pads.112x64x1.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_pads.112x64x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_pads.132x80x16.bmp b/apps/plugins/bitmaps/native/brickmania_pads.132x80x16.bmp
new file mode 100644
index 0000000000..03740cc3fb
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_pads.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/mono/brickmania_powerups.112x64x1.bmp b/apps/plugins/bitmaps/native/brickmania_powerups.112x64x1.bmp
index 66cca0a6d8..66cca0a6d8 100644
--- a/apps/plugins/bitmaps/mono/brickmania_powerups.112x64x1.bmp
+++ b/apps/plugins/bitmaps/native/brickmania_powerups.112x64x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/brickmania_powerups.132x80x16.bmp b/apps/plugins/bitmaps/native/brickmania_powerups.132x80x16.bmp
new file mode 100644
index 0000000000..2ff913e3a3
--- /dev/null
+++ b/apps/plugins/bitmaps/native/brickmania_powerups.132x80x16.bmp
Binary files differ
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index d4b774a93d..f03b227426 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -35,9 +35,6 @@ PLUGIN_HEADER
35 35
36#define RC_QUIT BUTTON_RC_STOP 36#define RC_QUIT BUTTON_RC_STOP
37 37
38/* Only iPod have scroll events */
39#define SCROLL_FWD(x) (0)
40#define SCROLL_BACK(x) (0)
41 38
42#elif CONFIG_KEYPAD == ONDIO_PAD 39#elif CONFIG_KEYPAD == ONDIO_PAD
43 40
@@ -48,9 +45,6 @@ PLUGIN_HEADER
48#define UP BUTTON_UP 45#define UP BUTTON_UP
49#define DOWN BUTTON_DOWN 46#define DOWN BUTTON_DOWN
50 47
51/* Only iPod have scroll events */
52#define SCROLL_FWD(x) (0)
53#define SCROLL_BACK(x) (0)
54 48
55#elif CONFIG_KEYPAD == RECORDER_PAD 49#elif CONFIG_KEYPAD == RECORDER_PAD
56 50
@@ -61,9 +55,6 @@ PLUGIN_HEADER
61#define UP BUTTON_UP 55#define UP BUTTON_UP
62#define DOWN BUTTON_DOWN 56#define DOWN BUTTON_DOWN
63 57
64/* Only iPod have scroll events */
65#define SCROLL_FWD(x) (0)
66#define SCROLL_BACK(x) (0)
67 58
68#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD 59#elif CONFIG_KEYPAD == ARCHOS_AV300_PAD
69 60
@@ -74,9 +65,6 @@ PLUGIN_HEADER
74#define UP BUTTON_UP 65#define UP BUTTON_UP
75#define DOWN BUTTON_DOWN 66#define DOWN BUTTON_DOWN
76 67
77/* Only iPod have scroll events */
78#define SCROLL_FWD(x) (0)
79#define SCROLL_BACK(x) (0)
80 68
81#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ 69#elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \
82 (CONFIG_KEYPAD == IPOD_3G_PAD) || \ 70 (CONFIG_KEYPAD == IPOD_3G_PAD) || \
@@ -92,6 +80,7 @@ PLUGIN_HEADER
92#define SCROLL_FWD(x) ((x) & BUTTON_SCROLL_FWD) 80#define SCROLL_FWD(x) ((x) & BUTTON_SCROLL_FWD)
93#define SCROLL_BACK(x) ((x) & BUTTON_SCROLL_BACK) 81#define SCROLL_BACK(x) ((x) & BUTTON_SCROLL_BACK)
94 82
83
95#elif (CONFIG_KEYPAD == GIGABEAT_PAD) 84#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
96 85
97#define QUIT BUTTON_POWER 86#define QUIT BUTTON_POWER
@@ -101,10 +90,8 @@ PLUGIN_HEADER
101#define UP BUTTON_UP 90#define UP BUTTON_UP
102#define DOWN BUTTON_DOWN 91#define DOWN BUTTON_DOWN
103 92
104#define SCROLL_FWD(x) (0)
105#define SCROLL_BACK(x) (0)
106 93
107#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD /* grayscale at the moment */ 94#elif CONFIG_KEYPAD == IAUDIO_X5M5_PAD
108 95
109#define QUIT BUTTON_POWER 96#define QUIT BUTTON_POWER
110#define LEFT BUTTON_LEFT 97#define LEFT BUTTON_LEFT
@@ -113,9 +100,6 @@ PLUGIN_HEADER
113#define UP BUTTON_UP 100#define UP BUTTON_UP
114#define DOWN BUTTON_DOWN 101#define DOWN BUTTON_DOWN
115 102
116/* Only iPod have scroll events */
117#define SCROLL_FWD(x) (0)
118#define SCROLL_BACK(x) (0)
119 103
120#elif CONFIG_KEYPAD == SANSA_E200_PAD 104#elif CONFIG_KEYPAD == SANSA_E200_PAD
121 105
@@ -126,10 +110,20 @@ PLUGIN_HEADER
126#define UP BUTTON_SCROLL_UP 110#define UP BUTTON_SCROLL_UP
127#define DOWN BUTTON_SCROLL_DOWN 111#define DOWN BUTTON_SCROLL_DOWN
128 112
129#define SCROLL_FWD(x) ((x) & BUTTON_SCROLL_DOWN)
130#define SCROLL_BACK(x) ((x) & BUTTON_SCROLL_UP)
131 113
132#elif CONFIG_KEYPAD == IRIVER_H10_PAD /* grayscale at the moment */ 114#elif CONFIG_KEYPAD == SANSA_C200_PAD
115
116#define QUIT BUTTON_POWER
117#define LEFT BUTTON_LEFT
118#define RIGHT BUTTON_RIGHT
119#define ALTLEFT BUTTON_VOL_DOWN
120#define ALTRIGHT BUTTON_VOL_UP
121#define SELECT BUTTON_SELECT
122#define UP BUTTON_UP
123#define DOWN BUTTON_DOWN
124
125
126#elif CONFIG_KEYPAD == IRIVER_H10_PAD
133 127
134#define QUIT BUTTON_POWER 128#define QUIT BUTTON_POWER
135#define LEFT BUTTON_LEFT 129#define LEFT BUTTON_LEFT
@@ -138,14 +132,17 @@ PLUGIN_HEADER
138#define UP BUTTON_SCROLL_UP 132#define UP BUTTON_SCROLL_UP
139#define DOWN BUTTON_SCROLL_DOWN 133#define DOWN BUTTON_SCROLL_DOWN
140 134
141/* Only iPod have scroll events */
142#define SCROLL_FWD(x) (0)
143#define SCROLL_BACK(x) (0)
144 135
145#else 136#else
146#error Unsupported keypad 137#error Unsupported keypad
147#endif 138#endif
148 139
140#ifndef SCROLL_FWD
141#define SCROLL_FWD(x) (0)
142#define SCROLL_BACK(x) (0)
143#endif
144
145
149static struct plugin_api* rb; 146static struct plugin_api* rb;
150 147
151enum menu_items { 148enum menu_items {
@@ -180,6 +177,35 @@ extern const fb_data brickmania_powerups[];
180/* purple, red, blue, pink, green, yellow orange */ 177/* purple, red, blue, pink, green, yellow orange */
181extern const fb_data brickmania_bricks[]; 178extern const fb_data brickmania_bricks[];
182 179
180#include "brickmania_pads.h"
181#include "brickmania_bricks.h"
182#include "brickmania_powerups.h"
183#include "brickmania_ball.h"
184#include "brickmania_menu_items.h"
185#include "brickmania_gameover.h"
186
187#define PAD_WIDTH BMPWIDTH_brickmania_pads
188#define PAD_HEIGHT (BMPHEIGHT_brickmania_pads/3)
189#define BRICK_HEIGHT (BMPHEIGHT_brickmania_bricks/7)
190#define BRICK_WIDTH BMPWIDTH_brickmania_bricks
191#define LEFTMARGIN ((LCD_WIDTH-10*BRICK_WIDTH)/2)
192#define POWERUP_HEIGHT (BMPHEIGHT_brickmania_powerups/7)
193#define POWERUP_WIDTH BMPWIDTH_brickmania_powerups
194#define BALL BMPHEIGHT_brickmania_ball
195#define HALFBALL ((BALL+1)/2)
196#define MENU_ITEMXOFS ((LCD_WIDTH - BMPWIDTH_brickmania_menu_items)/2)
197#define MENU_ITEMHEIGHT (BMPHEIGHT_brickmania_menu_items/9)
198#define MENU_ITEMWIDTH BMPWIDTH_brickmania_menu_items
199#define GAMEOVER_WIDTH BMPWIDTH_brickmania_gameover
200#define GAMEOVER_HEIGHT BMPHEIGHT_brickmania_gameover
201
202#if LCD_DEPTH > 1 /* currently no background bmp for mono screens */
203#include "brickmania_menu_bg.h"
204#define MENU_BGHEIGHT BMPHEIGHT_brickmania_menu_bg
205#define MENU_BGWIDTH BMPWIDTH_brickmania_menu_bg
206#endif
207
208
183#if (LCD_WIDTH == 320) && (LCD_HEIGHT == 240) 209#if (LCD_WIDTH == 320) && (LCD_HEIGHT == 240)
184 210
185/* The time (in ms) for one iteration through the game loop - decrease this 211/* The time (in ms) for one iteration through the game loop - decrease this
@@ -188,42 +214,16 @@ extern const fb_data brickmania_bricks[];
188*/ 214*/
189#define CYCLETIME 30 215#define CYCLETIME 30
190 216
191#define GAMESCREEN_HEIGHT LCD_HEIGHT
192
193#define PAD_WIDTH 56
194#define PAD_HEIGHT 7
195#define PAD_POS_Y LCD_HEIGHT - 7
196#define BRICK_HEIGHT 12
197#define BRICK_WIDTH 32
198#define BALL 5
199#define HALFBALL 3
200#define LEFTMARGIN 0
201#define TOPMARGIN 30 217#define TOPMARGIN 30
202 218
203#define MENU_BMPHEIGHT 20
204#define MENU_BMPWIDTH 112
205
206#define BMPHEIGHT_powerup 10
207#define BMPWIDTH_powerup 16
208
209#define BMPHEIGHT_menu LCD_HEIGHT
210#define BMPWIDTH_menu LCD_WIDTH
211
212#define BMPXOFS_start 105
213#define BMPYOFS_start 110 219#define BMPYOFS_start 110
214#define BMPXOFS_resume 112
215#define BMPYOFS_resume 132
216#define BMPXOFS_help 142
217#define BMPYOFS_help 150
218#define BMPXOFS_quit 143
219#define BMPYOFS_quit 170
220#define HIGHSCORE_XPOS 57 220#define HIGHSCORE_XPOS 57
221#define HIGHSCORE_YPOS 88 221#define HIGHSCORE_YPOS 88
222 222
223#define STRINGPOS_finsh 140 223#define STRINGPOS_FINISH 140
224#define STRINGPOS_congrats 157 224#define STRINGPOS_CONGRATS 157
225#define STRINGPOS_navi 150 225#define STRINGPOS_NAVI 150
226#define STRINGPOS_flipsides 150 226#define STRINGPOS_FLIP 150
227 227
228#elif (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176) 228#elif (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176)
229 229
@@ -236,44 +236,19 @@ extern const fb_data brickmania_bricks[];
236/* Offsets for LCDS > 220x176 */ 236/* Offsets for LCDS > 220x176 */
237 237
238#define GAMESCREEN_HEIGHT 176 238#define GAMESCREEN_HEIGHT 176
239
240#define PAD_WIDTH 40
241#define PAD_HEIGHT 5
242#define PAD_POS_Y GAMESCREEN_HEIGHT - 7
243#define BRICK_HEIGHT 8
244#define BRICK_WIDTH 21
245#define BALL 5
246#define HALFBALL 3
247#define LEFTMARGIN (LCD_WIDTH-220)/2 + 5
248#define TOPMARGIN 30 239#define TOPMARGIN 30
249 240
250#define XOFS ((LCD_WIDTH-220)/BRICK_WIDTH/2)*BRICK_WIDTH 241#define XOFS ((LCD_WIDTH-220)/BRICK_WIDTH/2)*BRICK_WIDTH
251#define YOFS ((LCD_HEIGHT-176)/BRICK_HEIGHT/2)*BRICK_HEIGHT 242#define YOFS ((LCD_HEIGHT-176)/BRICK_HEIGHT/2)*BRICK_HEIGHT
252 243
253#define MENU_BMPHEIGHT 20
254#define MENU_BMPWIDTH 112
255
256#define BMPHEIGHT_powerup 6
257#define BMPWIDTH_powerup 10
258
259#define BMPHEIGHT_menu LCD_HEIGHT
260#define BMPWIDTH_menu LCD_WIDTH
261
262#define BMPXOFS_start (55+XOFS)
263#define BMPYOFS_start (78+YOFS) 244#define BMPYOFS_start (78+YOFS)
264#define BMPXOFS_resume (62+XOFS) 245#define HIGHSCORE_XPOS (17+XOFS)
265#define BMPYOFS_resume (100+YOFS)
266#define BMPXOFS_help (92+XOFS)
267#define BMPYOFS_help (118+YOFS)
268#define BMPXOFS_quit (93+XOFS)
269#define BMPYOFS_quit (138+YOFS)
270#define HIGHSCORE_XPOS (7+XOFS)
271#define HIGHSCORE_YPOS (56+YOFS) 246#define HIGHSCORE_YPOS (56+YOFS)
272 247
273#define STRINGPOS_finsh 140 248#define STRINGPOS_FINISH 140
274#define STRINGPOS_congrats 157 249#define STRINGPOS_CONGRATS 157
275#define STRINGPOS_navi 150 250#define STRINGPOS_NAVI 150
276#define STRINGPOS_flipsides 150 251#define STRINGPOS_FLIP 150
277 252
278#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) 253#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128)
279/* The time (in ms) for one iteration through the game loop - decrease this 254/* The time (in ms) for one iteration through the game loop - decrease this
@@ -282,144 +257,97 @@ extern const fb_data brickmania_bricks[];
282*/ 257*/
283#define CYCLETIME 50 258#define CYCLETIME 50
284 259
285#define GAMESCREEN_HEIGHT LCD_HEIGHT
286
287#define PAD_WIDTH 30
288#define PAD_HEIGHT 5
289#define PAD_POS_Y LCD_HEIGHT - 7
290#define BRICK_HEIGHT 7
291#define BRICK_WIDTH 15
292#define BALL 5
293#define HALFBALL 3
294#define LEFTMARGIN 5
295#define TOPMARGIN 21 260#define TOPMARGIN 21
296 261
297#define MENU_BMPHEIGHT 17 262#if LCD_DEPTH > 2
298#define MENU_BMPWIDTH 88 263#define BMPYOFS_start 58
299
300#define BMPHEIGHT_powerup 6
301#define BMPWIDTH_powerup 10
302
303#if LCD_DEPTH == 16
304#define BMPHEIGHT_menu 128
305#else
306#define BMPHEIGHT_menu 45
307#endif
308#define BMPWIDTH_menu 160
309
310#if LCD_DEPTH == 16
311#define BMPXOFS_start 38
312#define BMPYOFS_start 56
313#define BMPXOFS_resume 42
314#define BMPYOFS_resume 72
315#define BMPXOFS_help 65
316#define BMPYOFS_help 85
317#define BMPXOFS_quit 66
318#define BMPYOFS_quit 99
319#else 264#else
320#define BMPXOFS_start 34 265#define BMPYOFS_start 66
321#define BMPYOFS_start 64
322#define BMPXOFS_resume 38
323#define BMPYOFS_resume 77
324#define BMPXOFS_help 64
325#define BMPYOFS_help 90
326#define BMPXOFS_quit 64
327#define BMPYOFS_quit 103
328#endif 266#endif
329#define HIGHSCORE_XPOS 7 267#define HIGHSCORE_XPOS 10
330#define HIGHSCORE_YPOS 36 268#define HIGHSCORE_YPOS 38
331 269
332#define STRINGPOS_finsh 110 270#define STRINGPOS_FINISH 110
333#define STRINGPOS_congrats 100 271#define STRINGPOS_CONGRATS 100
334#define STRINGPOS_navi 100 272#define STRINGPOS_NAVI 100
335#define STRINGPOS_flipsides 100 273#define STRINGPOS_FLIP 100
274
275#elif (LCD_WIDTH == 132) && (LCD_HEIGHT == 80)
336 276
337/* iPod Mini */
338#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110)
339/* The time (in ms) for one iteration through the game loop - decrease this 277/* The time (in ms) for one iteration through the game loop - decrease this
340 to speed up the game - note that current_tick is (currently) only accurate 278 to speed up the game - note that current_tick is (currently) only accurate
341 to 10ms. 279 to 10ms.
342*/ 280*/
343#define CYCLETIME 50 281#define CYCLETIME 50
344 282
345#define GAMESCREEN_HEIGHT LCD_HEIGHT
346
347#define PAD_WIDTH 30
348#define PAD_HEIGHT 5
349#define PAD_POS_Y LCD_HEIGHT - 5
350#define BRICK_HEIGHT 7
351#define BRICK_WIDTH 13
352#define BALL 5
353#define HALFBALL 3
354#define LEFTMARGIN 4
355#define TOPMARGIN 10 283#define TOPMARGIN 10
356 284
357#define MENU_BMPHEIGHT 17 285#define BMPYOFS_start 30
358#define MENU_BMPWIDTH 88 286#define HIGHSCORE_XPOS 68
287#define HIGHSCORE_YPOS 8
359 288
360#define BMPHEIGHT_powerup 6 289#define STRINGPOS_FINISH 55
361#define BMPWIDTH_powerup 10 290#define STRINGPOS_CONGRATS 45
291#define STRINGPOS_NAVI 60
292#define STRINGPOS_FLIP 60
362 293
363#define BMPHEIGHT_menu 45 294#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 128)
364#define BMPWIDTH_menu 160
365 295
366#define BMPXOFS_start 28 296/* The time (in ms) for one iteration through the game loop - decrease this
367#define BMPYOFS_start 41 297 to speed up the game - note that current_tick is (currently) only accurate
368#define BMPXOFS_resume 33 298 to 10ms.
369#define BMPYOFS_resume 58 299*/
370#define BMPXOFS_help 56 300#define CYCLETIME 50
371#define BMPYOFS_help 74
372#define BMPXOFS_quit 56
373#define BMPYOFS_quit 90
374#define HIGHSCORE_XPOS 76
375#define HIGHSCORE_YPOS 22
376 301
377#define STRINGPOS_finsh 54 302#define GAMESCREEN_HEIGHT 100
378#define STRINGPOS_congrats 44 303#define TOPMARGIN 15
379#define STRINGPOS_navi 44
380#define STRINGPOS_flipsides 44
381 304
305#define BMPYOFS_start 70
306#define HIGHSCORE_XPOS 8
307#define HIGHSCORE_YPOS 36
382 308
383#elif (LCD_WIDTH == 112) && (LCD_HEIGHT == 64) 309#define STRINGPOS_FINISH 55
310#define STRINGPOS_CONGRATS 45
311#define STRINGPOS_NAVI 60
312#define STRINGPOS_FLIP 60
313
314/* iPod Mini */
315#elif (LCD_WIDTH == 138) && (LCD_HEIGHT == 110)
384/* The time (in ms) for one iteration through the game loop - decrease this 316/* The time (in ms) for one iteration through the game loop - decrease this
385 to speed up the game - note that current_tick is (currently) only accurate 317 to speed up the game - note that current_tick is (currently) only accurate
386 to 10ms. 318 to 10ms.
387*/ 319*/
388#define CYCLETIME 75 320#define CYCLETIME 50
389
390#define GAMESCREEN_HEIGHT LCD_HEIGHT
391 321
392#define PAD_WIDTH 30
393#define PAD_HEIGHT 3
394#define PAD_POS_Y LCD_HEIGHT - 5
395#define BRICK_HEIGHT 4
396#define BRICK_WIDTH 11
397#define BALL 3
398#define HALFBALL 2
399#define LEFTMARGIN 1
400#define TOPMARGIN 10 322#define TOPMARGIN 10
401 323
402#define MENU_BMPHEIGHT 9 324#define BMPYOFS_start 51
403#define MENU_BMPWIDTH 80 325#define HIGHSCORE_XPOS 73
326#define HIGHSCORE_YPOS 25
404 327
405#define BMPHEIGHT_powerup 6 328#define STRINGPOS_FINISH 54
406#define BMPWIDTH_powerup 7 329#define STRINGPOS_CONGRATS 44
330#define STRINGPOS_NAVI 44
331#define STRINGPOS_FLIP 44
407 332
408#define BMPXOFS_start 12 333
409#define BMPYOFS_start 20 334#elif (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
410#define BMPXOFS_resume 18 335/* The time (in ms) for one iteration through the game loop - decrease this
411#define BMPYOFS_resume 31 336 to speed up the game - note that current_tick is (currently) only accurate
412#define BMPXOFS_help 39 337 to 10ms.
413#define BMPYOFS_help 42 338*/
414#define BMPXOFS_quit 40 339#define CYCLETIME 75
415#define BMPYOFS_quit 53 340
341#define TOPMARGIN 10
342
343#define BMPYOFS_start 22
416#define HIGHSCORE_XPOS 0 344#define HIGHSCORE_XPOS 0
417#define HIGHSCORE_YPOS 0 345#define HIGHSCORE_YPOS 0
418 346
419#define STRINGPOS_finsh 54 347#define STRINGPOS_FINISH 54
420#define STRINGPOS_congrats 44 348#define STRINGPOS_CONGRATS 44
421#define STRINGPOS_navi 44 349#define STRINGPOS_NAVI 44
422#define STRINGPOS_flipsides 44 350#define STRINGPOS_FLIP 44
423 351
424/* nano and sansa */ 352/* nano and sansa */
425#elif (LCD_WIDTH == 176) && (LCD_HEIGHT >= 132) && (LCD_DEPTH==16) 353#elif (LCD_WIDTH == 176) && (LCD_HEIGHT >= 132) && (LCD_DEPTH==16)
@@ -430,51 +358,40 @@ extern const fb_data brickmania_bricks[];
430 358
431#define CYCLETIME 30 359#define CYCLETIME 30
432 360
433#if (LCD_HEIGHT == 220)
434#define GAMESCREEN_HEIGHT 132 361#define GAMESCREEN_HEIGHT 132
435#else
436#define GAMESCREEN_HEIGHT LCD_HEIGHT
437#endif
438
439#define PAD_WIDTH 40
440#define PAD_HEIGHT 5
441#define PAD_POS_Y GAMESCREEN_HEIGHT - 7
442#define BRICK_HEIGHT 7
443#define BRICK_WIDTH 17
444#define BALL 5
445#define HALFBALL 3
446#define LEFTMARGIN 3
447#define TOPMARGIN 21 362#define TOPMARGIN 21
448 363
449#define MENU_BMPHEIGHT 16
450#define MENU_BMPWIDTH 89
451
452#define BMPHEIGHT_powerup 6
453#define BMPWIDTH_powerup 10
454
455#define BMPHEIGHT_menu 132
456#define BMPWIDTH_menu 176
457
458#define BMPXOFS_start 44
459#define BMPYOFS_start 58 364#define BMPYOFS_start 58
460#define BMPXOFS_resume 50
461#define BMPYOFS_resume 75
462#define BMPXOFS_help 74
463#define BMPYOFS_help 89
464#define BMPXOFS_quit 75
465#define BMPYOFS_quit 104
466#define HIGHSCORE_XPOS 7 365#define HIGHSCORE_XPOS 7
467#define HIGHSCORE_YPOS 36 366#define HIGHSCORE_YPOS 36
468 367
469#define STRINGPOS_finsh 110 368#define STRINGPOS_FINISH 110
470#define STRINGPOS_congrats 110 369#define STRINGPOS_CONGRATS 110
471#define STRINGPOS_navi 100 370#define STRINGPOS_NAVI 100
472#define STRINGPOS_flipsides 100 371#define STRINGPOS_FLIP 100
473 372
474#else 373#else
475#error Unsupported LCD Size 374#error Unsupported LCD Size
476#endif 375#endif
477 376
377
378#ifndef GAMESCREEN_HEIGHT
379#define GAMESCREEN_HEIGHT LCD_HEIGHT
380#endif
381
382/* calculate menu item offsets from the first defined and the height*/
383#define BMPYOFS_resume (BMPYOFS_start + MENU_ITEMHEIGHT)
384#define BMPYOFS_help (BMPYOFS_start + 2*MENU_ITEMHEIGHT)
385#define BMPYOFS_quit (BMPYOFS_start + 3*MENU_ITEMHEIGHT)
386
387/*calculate paddle y-position */
388#if GAMESCREEN_HEIGHT >= 128
389#define PAD_POS_Y GAMESCREEN_HEIGHT -PAD_HEIGHT - 2
390#else
391#define PAD_POS_Y GAMESCREEN_HEIGHT -PAD_HEIGHT - 1
392#endif
393
394
478int levels_num = 29; 395int levels_num = 29;
479 396
480static unsigned char levels[29][8][10] = { 397static unsigned char levels[29][8][10] = {
@@ -909,116 +826,116 @@ int game_menu(int when)
909 char str[10]; 826 char str[10];
910 rb->lcd_clear_display(); 827 rb->lcd_clear_display();
911#if (LCD_WIDTH != 112) && (LCD_HEIGHT != 64) 828#if (LCD_WIDTH != 112) && (LCD_HEIGHT != 64)
912 rb->lcd_bitmap(brickmania_menu_bg, 0, 0, BMPWIDTH_menu, BMPHEIGHT_menu); 829 rb->lcd_bitmap(brickmania_menu_bg, 0, 0, MENU_BGWIDTH, MENU_BGHEIGHT);
913#endif 830#endif
914 while (true) { 831 while (true) {
915 for(i=0;i<MENU_LENGTH;i++) { 832 for(i=0;i<MENU_LENGTH;i++) {
916#ifdef HAVE_LCD_COLOR 833#ifdef HAVE_LCD_COLOR
917 if (cur==0) 834 if (cur==0)
918 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0, 835 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0,
919 MENU_BMPHEIGHT * BM_SEL_START, MENU_BMPWIDTH, 836 MENU_ITEMHEIGHT * BM_SEL_START, MENU_ITEMWIDTH,
920 BMPXOFS_start, BMPYOFS_start, MENU_BMPWIDTH, 837 MENU_ITEMXOFS, BMPYOFS_start, MENU_ITEMWIDTH,
921 MENU_BMPHEIGHT); 838 MENU_ITEMHEIGHT);
922 else 839 else
923 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0, 840 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0,
924 MENU_BMPHEIGHT * BM_START, MENU_BMPWIDTH, 841 MENU_ITEMHEIGHT * BM_START, MENU_ITEMWIDTH,
925 BMPXOFS_start, BMPYOFS_start, MENU_BMPWIDTH, 842 MENU_ITEMXOFS, BMPYOFS_start, MENU_ITEMWIDTH,
926 MENU_BMPHEIGHT); 843 MENU_ITEMHEIGHT);
927 844
928 if (when==1) { 845 if (when==1) {
929 if (cur==1) 846 if (cur==1)
930 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0, 847 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0,
931 MENU_BMPHEIGHT * BM_SEL_RESUME, MENU_BMPWIDTH, 848 MENU_ITEMHEIGHT * BM_SEL_RESUME, MENU_ITEMWIDTH,
932 BMPXOFS_resume, BMPYOFS_resume, MENU_BMPWIDTH, 849 MENU_ITEMXOFS, BMPYOFS_resume, MENU_ITEMWIDTH,
933 MENU_BMPHEIGHT); 850 MENU_ITEMHEIGHT);
934 else 851 else
935 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0, 852 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0,
936 MENU_BMPHEIGHT * BM_RESUME, MENU_BMPWIDTH, 853 MENU_ITEMHEIGHT * BM_RESUME, MENU_ITEMWIDTH,
937 BMPXOFS_resume, BMPYOFS_resume, MENU_BMPWIDTH, 854 MENU_ITEMXOFS, BMPYOFS_resume, MENU_ITEMWIDTH,
938 MENU_BMPHEIGHT); 855 MENU_ITEMHEIGHT);
939 856
940 } else { 857 } else {
941 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0, 858 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0,
942 MENU_BMPHEIGHT * BM_NO_RESUME, MENU_BMPWIDTH, 859 MENU_ITEMHEIGHT * BM_NO_RESUME, MENU_ITEMWIDTH,
943 BMPXOFS_resume, BMPYOFS_resume, MENU_BMPWIDTH, 860 MENU_ITEMXOFS, BMPYOFS_resume, MENU_ITEMWIDTH,
944 MENU_BMPHEIGHT); 861 MENU_ITEMHEIGHT);
945 } 862 }
946 863
947 864
948 if (cur==2) 865 if (cur==2)
949 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0, 866 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0,
950 MENU_BMPHEIGHT * BM_SEL_HELP, MENU_BMPWIDTH, 867 MENU_ITEMHEIGHT * BM_SEL_HELP, MENU_ITEMWIDTH,
951 BMPXOFS_help, BMPYOFS_help, MENU_BMPWIDTH, 868 MENU_ITEMXOFS, BMPYOFS_help, MENU_ITEMWIDTH,
952 MENU_BMPHEIGHT); 869 MENU_ITEMHEIGHT);
953 else 870 else
954 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0, 871 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0,
955 MENU_BMPHEIGHT * BM_HELP, MENU_BMPWIDTH, 872 MENU_ITEMHEIGHT * BM_HELP, MENU_ITEMWIDTH,
956 BMPXOFS_help, BMPYOFS_help, MENU_BMPWIDTH, 873 MENU_ITEMXOFS, BMPYOFS_help, MENU_ITEMWIDTH,
957 MENU_BMPHEIGHT); 874 MENU_ITEMHEIGHT);
958 875
959 if (cur==3) 876 if (cur==3)
960 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0, 877 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0,
961 MENU_BMPHEIGHT * BM_SEL_QUIT, MENU_BMPWIDTH, 878 MENU_ITEMHEIGHT * BM_SEL_QUIT, MENU_ITEMWIDTH,
962 BMPXOFS_quit, BMPYOFS_quit, MENU_BMPWIDTH, 879 MENU_ITEMXOFS, BMPYOFS_quit, MENU_ITEMWIDTH,
963 MENU_BMPHEIGHT); 880 MENU_ITEMHEIGHT);
964 else 881 else
965 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0, 882 rb->lcd_bitmap_transparent_part(brickmania_menu_items, 0,
966 MENU_BMPHEIGHT * BM_QUIT, MENU_BMPWIDTH, 883 MENU_ITEMHEIGHT * BM_QUIT, MENU_ITEMWIDTH,
967 BMPXOFS_quit, BMPYOFS_quit, MENU_BMPWIDTH, 884 MENU_ITEMXOFS, BMPYOFS_quit, MENU_ITEMWIDTH,
968 MENU_BMPHEIGHT); 885 MENU_ITEMHEIGHT);
969#else 886#else
970 if (cur==0) 887 if (cur==0)
971 rb->lcd_bitmap_part(brickmania_menu_items, 0, 888 rb->lcd_bitmap_part(brickmania_menu_items, 0,
972 MENU_BMPHEIGHT * BM_SEL_START, MENU_BMPWIDTH, 889 MENU_ITEMHEIGHT * BM_SEL_START, MENU_ITEMWIDTH,
973 BMPXOFS_start, BMPYOFS_start, MENU_BMPWIDTH, 890 MENU_ITEMXOFS, BMPYOFS_start, MENU_ITEMWIDTH,
974 MENU_BMPHEIGHT); 891 MENU_ITEMHEIGHT);
975 else 892 else
976 rb->lcd_bitmap_part(brickmania_menu_items, 0, 893 rb->lcd_bitmap_part(brickmania_menu_items, 0,
977 MENU_BMPHEIGHT * BM_START, MENU_BMPWIDTH, 894 MENU_ITEMHEIGHT * BM_START, MENU_ITEMWIDTH,
978 BMPXOFS_start, BMPYOFS_start, MENU_BMPWIDTH, 895 MENU_ITEMXOFS, BMPYOFS_start, MENU_ITEMWIDTH,
979 MENU_BMPHEIGHT); 896 MENU_ITEMHEIGHT);
980 897
981 if (when==1) { 898 if (when==1) {
982 if (cur==1) 899 if (cur==1)
983 rb->lcd_bitmap_part(brickmania_menu_items, 0, 900 rb->lcd_bitmap_part(brickmania_menu_items, 0,
984 MENU_BMPHEIGHT * BM_SEL_RESUME, MENU_BMPWIDTH, 901 MENU_ITEMHEIGHT * BM_SEL_RESUME, MENU_ITEMWIDTH,
985 BMPXOFS_resume, BMPYOFS_resume, MENU_BMPWIDTH, 902 MENU_ITEMXOFS, BMPYOFS_resume, MENU_ITEMWIDTH,
986 MENU_BMPHEIGHT); 903 MENU_ITEMHEIGHT);
987 else 904 else
988 rb->lcd_bitmap_part(brickmania_menu_items, 0, 905 rb->lcd_bitmap_part(brickmania_menu_items, 0,
989 MENU_BMPHEIGHT * BM_RESUME, MENU_BMPWIDTH, 906 MENU_ITEMHEIGHT * BM_RESUME, MENU_ITEMWIDTH,
990 BMPXOFS_resume, BMPYOFS_resume, MENU_BMPWIDTH, 907 MENU_ITEMXOFS, BMPYOFS_resume, MENU_ITEMWIDTH,
991 MENU_BMPHEIGHT); 908 MENU_ITEMHEIGHT);
992 909
993 } else { 910 } else {
994 rb->lcd_bitmap_part(brickmania_menu_items, 0, 911 rb->lcd_bitmap_part(brickmania_menu_items, 0,
995 MENU_BMPHEIGHT * BM_NO_RESUME, MENU_BMPWIDTH, 912 MENU_ITEMHEIGHT * BM_NO_RESUME, MENU_ITEMWIDTH,
996 BMPXOFS_resume, BMPYOFS_resume, MENU_BMPWIDTH, 913 MENU_ITEMXOFS, BMPYOFS_resume, MENU_ITEMWIDTH,
997 MENU_BMPHEIGHT); 914 MENU_ITEMHEIGHT);
998 } 915 }
999 916
1000 917
1001 if (cur==2) 918 if (cur==2)
1002 rb->lcd_bitmap_part(brickmania_menu_items, 0, 919 rb->lcd_bitmap_part(brickmania_menu_items, 0,
1003 MENU_BMPHEIGHT * BM_SEL_HELP, MENU_BMPWIDTH, 920 MENU_ITEMHEIGHT * BM_SEL_HELP, MENU_ITEMWIDTH,
1004 BMPXOFS_help, BMPYOFS_help, MENU_BMPWIDTH, 921 MENU_ITEMXOFS, BMPYOFS_help, MENU_ITEMWIDTH,
1005 MENU_BMPHEIGHT); 922 MENU_ITEMHEIGHT);
1006 else 923 else
1007 rb->lcd_bitmap_part(brickmania_menu_items, 0, 924 rb->lcd_bitmap_part(brickmania_menu_items, 0,
1008 MENU_BMPHEIGHT * BM_HELP, MENU_BMPWIDTH, 925 MENU_ITEMHEIGHT * BM_HELP, MENU_ITEMWIDTH,
1009 BMPXOFS_help, BMPYOFS_help, MENU_BMPWIDTH, 926 MENU_ITEMXOFS, BMPYOFS_help, MENU_ITEMWIDTH,
1010 MENU_BMPHEIGHT); 927 MENU_ITEMHEIGHT);
1011 928
1012 if (cur==3) 929 if (cur==3)
1013 rb->lcd_bitmap_part(brickmania_menu_items, 0, 930 rb->lcd_bitmap_part(brickmania_menu_items, 0,
1014 MENU_BMPHEIGHT * BM_SEL_QUIT, MENU_BMPWIDTH, 931 MENU_ITEMHEIGHT * BM_SEL_QUIT, MENU_ITEMWIDTH,
1015 BMPXOFS_quit, BMPYOFS_quit, MENU_BMPWIDTH, 932 MENU_ITEMXOFS, BMPYOFS_quit, MENU_ITEMWIDTH,
1016 MENU_BMPHEIGHT); 933 MENU_ITEMHEIGHT);
1017 else 934 else
1018 rb->lcd_bitmap_part(brickmania_menu_items, 0, 935 rb->lcd_bitmap_part(brickmania_menu_items, 0,
1019 MENU_BMPHEIGHT * BM_QUIT, MENU_BMPWIDTH, 936 MENU_ITEMHEIGHT * BM_QUIT, MENU_ITEMWIDTH,
1020 BMPXOFS_quit, BMPYOFS_quit, MENU_BMPWIDTH, 937 MENU_ITEMXOFS, BMPYOFS_quit, MENU_ITEMWIDTH,
1021 MENU_BMPHEIGHT); 938 MENU_ITEMHEIGHT);
1022#endif 939#endif
1023 } 940 }
1024 rb->lcd_set_drawmode(DRMODE_FG); 941 rb->lcd_set_drawmode(DRMODE_FG);
@@ -1195,11 +1112,19 @@ int help(int when)
1195 break; 1112 break;
1196 case LEFT: 1113 case LEFT:
1197 case LEFT | BUTTON_REPEAT: 1114 case LEFT | BUTTON_REPEAT:
1115#ifdef ALTLEFT
1116 case ALTLEFT:
1117 case ALTLEFT | BUTTON_REPEAT:
1118#endif
1198 if( xoffset<0) 1119 if( xoffset<0)
1199 xoffset+=2; 1120 xoffset+=2;
1200 break; 1121 break;
1201 case RIGHT: 1122 case RIGHT:
1202 case RIGHT | BUTTON_REPEAT: 1123 case RIGHT | BUTTON_REPEAT:
1124#ifdef ALTRIGHT
1125 case ALTRIGHT:
1126 case ALTRIGHT | BUTTON_REPEAT:
1127#endif
1203 if(xoffset+maxX > LCD_WIDTH) 1128 if(xoffset+maxX > LCD_WIDTH)
1204 xoffset-=2; 1129 xoffset-=2;
1205 break; 1130 break;
@@ -1309,7 +1234,7 @@ int game_loop(void)
1309 } 1234 }
1310 rb->snprintf(s, sizeof(s), "%d", num_count); 1235 rb->snprintf(s, sizeof(s), "%d", num_count);
1311 rb->lcd_getstringsize(s, &sw, NULL); 1236 rb->lcd_getstringsize(s, &sw, NULL);
1312 rb->lcd_putsxy(LCD_WIDTH/2-2, STRINGPOS_flipsides, s); 1237 rb->lcd_putsxy(LCD_WIDTH/2-2, STRINGPOS_FLIP, s);
1313 } 1238 }
1314 1239
1315 /* write life num */ 1240 /* write life num */
@@ -1350,7 +1275,7 @@ int game_loop(void)
1350 rb->snprintf(s, sizeof(s), "Press SELECT To Continue"); 1275 rb->snprintf(s, sizeof(s), "Press SELECT To Continue");
1351#endif 1276#endif
1352 rb->lcd_getstringsize(s, &sw, NULL); 1277 rb->lcd_getstringsize(s, &sw, NULL);
1353 rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_navi, s); 1278 rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_NAVI, s);
1354 1279
1355 sec_count=*rb->current_tick+HZ; 1280 sec_count=*rb->current_tick+HZ;
1356 } 1281 }
@@ -1380,15 +1305,15 @@ int game_loop(void)
1380 if (con_game!=1) 1305 if (con_game!=1)
1381 brick[i*10+j].powertop+=2; 1306 brick[i*10+j].powertop+=2;
1382 rb->lcd_bitmap_part(brickmania_powerups,0, 1307 rb->lcd_bitmap_part(brickmania_powerups,0,
1383 BMPHEIGHT_powerup*brick[i*10+j 1308 POWERUP_HEIGHT*brick[i*10+j
1384 ].power, 1309 ].power,
1385 BMPWIDTH_powerup, 1310 POWERUP_WIDTH,
1386 LEFTMARGIN+j*BRICK_WIDTH+ 1311 LEFTMARGIN+j*BRICK_WIDTH+
1387 (BRICK_WIDTH/2- 1312 (BRICK_WIDTH/2-
1388 BMPWIDTH_powerup/2), 1313 POWERUP_WIDTH/2),
1389 brick[i*10+j].powertop, 1314 brick[i*10+j].powertop,
1390 BMPWIDTH_powerup, 1315 POWERUP_WIDTH,
1391 BMPHEIGHT_powerup); 1316 POWERUP_HEIGHT);
1392 } 1317 }
1393 } 1318 }
1394 1319
@@ -1803,16 +1728,16 @@ int game_loop(void)
1803 } 1728 }
1804 else { 1729 else {
1805 rb->lcd_getstringsize("Congratulations!", &sw, NULL); 1730 rb->lcd_getstringsize("Congratulations!", &sw, NULL);
1806 rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_congrats, 1731 rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_CONGRATS,
1807 "Congratulations!"); 1732 "Congratulations!");
1808#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64) 1733#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
1809 rb->lcd_getstringsize("No more levels", &sw, NULL); 1734 rb->lcd_getstringsize("No more levels", &sw, NULL);
1810 rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_finsh, 1735 rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_FINISH,
1811 "No more levels"); 1736 "No more levels");
1812#else 1737#else
1813 rb->lcd_getstringsize("You have finished the game!", 1738 rb->lcd_getstringsize("You have finished the game!",
1814 &sw, NULL); 1739 &sw, NULL);
1815 rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_finsh, 1740 rb->lcd_putsxy(LCD_WIDTH/2-sw/2, STRINGPOS_FINISH,
1816 "You have finished the game!"); 1741 "You have finished the game!");
1817#endif 1742#endif
1818 vscore=score; 1743 vscore=score;
@@ -1855,9 +1780,13 @@ int game_loop(void)
1855#endif 1780#endif
1856 1781
1857 move_button=rb->button_status(); 1782 move_button=rb->button_status();
1858 1783#ifdef ALTRIGHT
1784 button_right=((move_button & RIGHT) || (move_button & ALTRIGHT));
1785 button_left=((move_button & LEFT) || (move_button & ALTLEFT));
1786#else
1859 button_right=((move_button & RIGHT) || (SCROLL_FWD(button))); 1787 button_right=((move_button & RIGHT) || (SCROLL_FWD(button)));
1860 button_left=((move_button & LEFT) || (SCROLL_BACK(button))); 1788 button_left=((move_button & LEFT) || (SCROLL_BACK(button)));
1789#endif
1861 if ((con_game== 1 && start_game!=1) && (button_right || button_left)) 1790 if ((con_game== 1 && start_game!=1) && (button_right || button_left))
1862 continue; 1791 continue;
1863 if ((button_right && flip_sides==false) || 1792 if ((button_right && flip_sides==false) ||
@@ -1975,13 +1904,17 @@ int game_loop(void)
1975 } 1904 }
1976 } 1905 }
1977 else { 1906 else {
1978#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64) 1907#ifdef HAVE_LCD_COLOR
1979 rb->splash(HZ*2, "Game Over"); 1908 rb->lcd_bitmap_transparent(brickmania_gameover,
1980#else 1909 (LCD_WIDTH - GAMEOVER_WIDTH)/2,
1981 rb->lcd_bitmap(brickmania_gameover,LCD_WIDTH/2-55,LCD_HEIGHT-87, 1910 (GAMESCREEN_HEIGHT - GAMEOVER_HEIGHT)/2,
1982 110,52); 1911 GAMEOVER_WIDTH,GAMEOVER_HEIGHT);
1983 rb->lcd_update(); 1912#else /* greyscale and mono */
1913 rb->lcd_bitmap(brickmania_gameover,(LCD_WIDTH - GAMEOVER_WIDTH)/2,
1914 (GAMESCREEN_HEIGHT - GAMEOVER_HEIGHT)/2,
1915 GAMEOVER_WIDTH,GAMEOVER_HEIGHT);
1984#endif 1916#endif
1917 rb->lcd_update();
1985 if (score>highscore) { 1918 if (score>highscore) {
1986 sleep(2); 1919 sleep(2);
1987 highscore=score; 1920 highscore=score;