new powerup in brickmania

Author: Asael Reiter
Flyspray: FS #10463

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22057 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Kukla 2009-07-26 19:51:44 +00:00
parent c6309633a1
commit 00c657f9cc
30 changed files with 91 additions and 38 deletions

View file

@ -8,6 +8,8 @@ brickmania_gameover.112x54x16.bmp
brickmania_ball.15x15x16.bmp brickmania_ball.15x15x16.bmp
brickmania_bricks.640x480x16.bmp brickmania_bricks.640x480x16.bmp
brickmania_pads.640x480x16.bmp brickmania_pads.640x480x16.bmp
brickmania_short_pads.640x480x16.bmp
brickmania_long_pads.640x480x16.bmp
brickmania_break.640x480x16.bmp brickmania_break.640x480x16.bmp
brickmania_powerups.640x480x16.bmp brickmania_powerups.640x480x16.bmp
@ -15,6 +17,8 @@ brickmania_powerups.640x480x16.bmp
brickmania_ball.11x11x16.bmp brickmania_ball.11x11x16.bmp
brickmania_bricks.480x640x16.bmp brickmania_bricks.480x640x16.bmp
brickmania_pads.480x640x16.bmp brickmania_pads.480x640x16.bmp
brickmania_short_pads.480x640x16.bmp
brickmania_long_pads.480x640x16.bmp
brickmania_break.480x640x16.bmp brickmania_break.480x640x16.bmp
brickmania_powerups.480x640x16.bmp brickmania_powerups.480x640x16.bmp
@ -22,6 +26,8 @@ brickmania_powerups.480x640x16.bmp
brickmania_ball.5x5x16.bmp brickmania_ball.5x5x16.bmp
brickmania_bricks.320x240x16.bmp brickmania_bricks.320x240x16.bmp
brickmania_pads.320x240x16.bmp brickmania_pads.320x240x16.bmp
brickmania_short_pads.320x240x16.bmp
brickmania_long_pads.320x240x16.bmp
brickmania_break.320x240x16.bmp brickmania_break.320x240x16.bmp
brickmania_powerups.320x240x16.bmp brickmania_powerups.320x240x16.bmp
@ -29,6 +35,8 @@ brickmania_powerups.320x240x16.bmp
brickmania_ball.5x5x16.bmp brickmania_ball.5x5x16.bmp
brickmania_bricks.220x176x16.bmp brickmania_bricks.220x176x16.bmp
brickmania_pads.220x176x16.bmp brickmania_pads.220x176x16.bmp
brickmania_short_pads.220x176x16.bmp
brickmania_long_pads.220x176x16.bmp
brickmania_break.220x176x16.bmp brickmania_break.220x176x16.bmp
brickmania_powerups.220x176x16.bmp brickmania_powerups.220x176x16.bmp
@ -36,6 +44,8 @@ brickmania_powerups.220x176x16.bmp
brickmania_ball.5x5x16.bmp brickmania_ball.5x5x16.bmp
brickmania_bricks.176x132x16.bmp brickmania_bricks.176x132x16.bmp
brickmania_pads.176x132x16.bmp brickmania_pads.176x132x16.bmp
brickmania_short_pads.176x132x16.bmp
brickmania_long_pads.176x132x16.bmp
brickmania_powerups.176x132x16.bmp brickmania_powerups.176x132x16.bmp
brickmania_break.176x132x16.bmp brickmania_break.176x132x16.bmp
@ -43,6 +53,8 @@ brickmania_break.176x132x16.bmp
brickmania_ball.5x5x16.bmp brickmania_ball.5x5x16.bmp
brickmania_bricks.160x128x16.bmp brickmania_bricks.160x128x16.bmp
brickmania_pads.160x128x16.bmp brickmania_pads.160x128x16.bmp
brickmania_short_pads.160x128x16.bmp
brickmania_long_pads.160x128x16.bmp
brickmania_powerups.160x128x16.bmp brickmania_powerups.160x128x16.bmp
brickmania_break.160x128x16.bmp brickmania_break.160x128x16.bmp
@ -50,6 +62,8 @@ brickmania_break.160x128x16.bmp
brickmania_ball.4x4x16.bmp brickmania_ball.4x4x16.bmp
brickmania_bricks.132x80x16.bmp brickmania_bricks.132x80x16.bmp
brickmania_pads.132x80x16.bmp brickmania_pads.132x80x16.bmp
brickmania_short_pads.132x80x16.bmp
brickmania_long_pads.132x80x16.bmp
brickmania_powerups.132x80x16.bmp brickmania_powerups.132x80x16.bmp
brickmania_break.132x80x16.bmp brickmania_break.132x80x16.bmp
@ -57,6 +71,8 @@ brickmania_break.132x80x16.bmp
brickmania_ball.4x4x16.bmp brickmania_ball.4x4x16.bmp
brickmania_bricks.128x128x16.bmp brickmania_bricks.128x128x16.bmp
brickmania_pads.132x80x16.bmp brickmania_pads.132x80x16.bmp
brickmania_short_pads.132x80x16.bmp
brickmania_long_pads.132x80x16.bmp
brickmania_powerups.132x80x16.bmp brickmania_powerups.132x80x16.bmp
brickmania_break.132x80x16.bmp brickmania_break.132x80x16.bmp
#endif /* different colour displays */ #endif /* different colour displays */
@ -64,6 +80,8 @@ brickmania_break.132x80x16.bmp
#elif LCD_DEPTH > 1 #elif LCD_DEPTH > 1
brickmania_gameover.86x43x2.bmp brickmania_gameover.86x43x2.bmp
brickmania_pads.160x128x2.bmp brickmania_pads.160x128x2.bmp
brickmania_short_pads.160x128x2.bmp
brickmania_long_pads.160x128x2.bmp
brickmania_powerups.160x128x2.bmp brickmania_powerups.160x128x2.bmp
#if (LCD_WIDTH >= 160) #if (LCD_WIDTH >= 160)
brickmania_ball.5x5x2.bmp brickmania_ball.5x5x2.bmp
@ -80,6 +98,8 @@ brickmania_gameover.59x30x1.bmp
brickmania_bricks.112x64x1.bmp brickmania_bricks.112x64x1.bmp
brickmania_ball.3x3x1.bmp brickmania_ball.3x3x1.bmp
brickmania_pads.112x64x1.bmp brickmania_pads.112x64x1.bmp
brickmania_short_pads.112x64x1.bmp
brickmania_long_pads.112x64x1.bmp
brickmania_powerups.112x64x1.bmp brickmania_powerups.112x64x1.bmp
#endif #endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 B

After

Width:  |  Height:  |  Size: 282 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 754 B

After

Width:  |  Height:  |  Size: 954 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 B

After

Width:  |  Height:  |  Size: 506 B

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View file

@ -214,6 +214,8 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#endif #endif
#include "pluginbitmaps/brickmania_pads.h" #include "pluginbitmaps/brickmania_pads.h"
#include "pluginbitmaps/brickmania_short_pads.h"
#include "pluginbitmaps/brickmania_long_pads.h"
#include "pluginbitmaps/brickmania_bricks.h" #include "pluginbitmaps/brickmania_bricks.h"
#include "pluginbitmaps/brickmania_powerups.h" #include "pluginbitmaps/brickmania_powerups.h"
#include "pluginbitmaps/brickmania_ball.h" #include "pluginbitmaps/brickmania_ball.h"
@ -221,10 +223,12 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define PAD_WIDTH BMPWIDTH_brickmania_pads #define PAD_WIDTH BMPWIDTH_brickmania_pads
#define PAD_HEIGHT (BMPHEIGHT_brickmania_pads/3) #define PAD_HEIGHT (BMPHEIGHT_brickmania_pads/3)
#define SHORT_PAD_WIDTH BMPWIDTH_brickmania_short_pads
#define LONG_PAD_WIDTH BMPWIDTH_brickmania_long_pads
#define BRICK_HEIGHT (BMPHEIGHT_brickmania_bricks/7) #define BRICK_HEIGHT (BMPHEIGHT_brickmania_bricks/7)
#define BRICK_WIDTH BMPWIDTH_brickmania_bricks #define BRICK_WIDTH BMPWIDTH_brickmania_bricks
#define LEFTMARGIN ((LCD_WIDTH-10*BRICK_WIDTH)/2) #define LEFTMARGIN ((LCD_WIDTH-10*BRICK_WIDTH)/2)
#define POWERUP_HEIGHT (BMPHEIGHT_brickmania_powerups/7) #define POWERUP_HEIGHT (BMPHEIGHT_brickmania_powerups/9)
#define POWERUP_WIDTH BMPWIDTH_brickmania_powerups #define POWERUP_WIDTH BMPWIDTH_brickmania_powerups
#define BALL BMPHEIGHT_brickmania_ball #define BALL BMPHEIGHT_brickmania_ball
#define HALFBALL ((BALL+1)/2) #define HALFBALL ((BALL+1)/2)
@ -585,6 +589,7 @@ int used_balls=1;
bool saved_game=false; bool saved_game=false;
int l_score=0; int l_score=0;
int difficulty = EASY; int difficulty = EASY;
int pad_width;
typedef struct cube { typedef struct cube {
int powertop; int powertop;
@ -642,7 +647,7 @@ static void brickmania_int_game(int new_game)
ball[i].tempy=0; ball[i].tempy=0;
ball[i].tempx=0; ball[i].tempx=0;
ball[i].pos_y=PAD_POS_Y-BALL; ball[i].pos_y=PAD_POS_Y-BALL;
ball[i].pos_x=pad_pos_x+(PAD_WIDTH/2)-2; ball[i].pos_x=LCD_WIDTH/2-2;
ball[i].glue=false; ball[i].glue=false;
} }
@ -650,7 +655,7 @@ static void brickmania_int_game(int new_game)
start_game =1; start_game =1;
con_game =0; con_game =0;
pad_type=0; pad_type=0;
pad_width=PAD_WIDTH;
flip_sides=false; flip_sides=false;
if (new_game==1) { if (new_game==1) {
@ -1029,7 +1034,7 @@ static int brickmania_game_loop(void)
/* the bricks */ /* the bricks */
for (i=0;i<=7;i++) { for (i=0;i<=7;i++) {
for (j=0;j<=9;j++) { for (j=0;j<=9;j++) {
if (brick[i*10+j].power<7) { if (brick[i*10+j].power<9) {
if (brick[i*10+j].poweruse==2) { if (brick[i*10+j].poweruse==2) {
if (con_game!=1) if (con_game!=1)
brick[i*10+j].powertop+=2; brick[i*10+j].powertop+=2;
@ -1047,7 +1052,7 @@ static int brickmania_game_loop(void)
} }
if ((pad_pos_x<LEFTMARGIN+j*BRICK_WIDTH+5 && if ((pad_pos_x<LEFTMARGIN+j*BRICK_WIDTH+5 &&
pad_pos_x+PAD_WIDTH>LEFTMARGIN+j*BRICK_WIDTH+5) && pad_pos_x+pad_width>LEFTMARGIN+j*BRICK_WIDTH+5) &&
brick[i*10+j].powertop+6>=PAD_POS_Y && brick[i*10+j].powertop+6>=PAD_POS_Y &&
brick[i*10+j].poweruse==2) { brick[i*10+j].poweruse==2) {
switch(brick[i*10+j].power) { switch(brick[i*10+j].power) {
@ -1078,6 +1083,8 @@ static int brickmania_game_loop(void)
for(k=0;k<used_balls;k++) for(k=0;k<used_balls;k++)
ball[k].glue=false; ball[k].glue=false;
flip_sides=false; flip_sides=false;
pad_pos_x+=(pad_width-PAD_WIDTH)/2;
pad_width=PAD_WIDTH;
break; break;
case 5: case 5:
score+=23; score+=23;
@ -1092,6 +1099,31 @@ static int brickmania_game_loop(void)
-1 : 1; -1 : 1;
ball[used_balls-1].y= -4; ball[used_balls-1].y= -4;
break; break;
case 7:
score+=23;
if (pad_width==PAD_WIDTH) {
pad_width=LONG_PAD_WIDTH;
pad_pos_x-=(LONG_PAD_WIDTH-PAD_WIDTH)/2;
}
else if (pad_width==SHORT_PAD_WIDTH) {
pad_width=PAD_WIDTH;
pad_pos_x-=(PAD_WIDTH-SHORT_PAD_WIDTH)/2;
}
if (pad_pos_x < 0)
pad_pos_x = 0;
else if(pad_pos_x+pad_width > LCD_WIDTH)
pad_pos_x = LCD_WIDTH-pad_width;
break;
case 8:
if (pad_width==PAD_WIDTH) {
pad_width=SHORT_PAD_WIDTH;
pad_pos_x+=(PAD_WIDTH-SHORT_PAD_WIDTH)/2;
}
else if (pad_width==LONG_PAD_WIDTH) {
pad_width=PAD_WIDTH;
pad_pos_x+=(LONG_PAD_WIDTH-PAD_WIDTH)/2;
}
break;
} }
brick[i*10+j].poweruse=1; brick[i*10+j].poweruse=1;
} }
@ -1296,14 +1328,14 @@ static int brickmania_game_loop(void)
} /* for i */ } /* for i */
/* draw the pad */ /* draw the pad */
rb->lcd_bitmap_part(brickmania_pads,0,pad_type*PAD_HEIGHT, rb->lcd_bitmap_part(pad_width==PAD_WIDTH?brickmania_pads:pad_width==LONG_PAD_WIDTH?brickmania_long_pads:brickmania_short_pads,0,pad_type*PAD_HEIGHT,
PAD_WIDTH,pad_pos_x, PAD_POS_Y, PAD_WIDTH, pad_width,pad_pos_x, PAD_POS_Y, pad_width,
PAD_HEIGHT); PAD_HEIGHT);
for(k=0;k<used_balls;k++) { for(k=0;k<used_balls;k++) {
if ((ball[k].pos_x >= pad_pos_x && if ((ball[k].pos_x >= pad_pos_x &&
ball[k].pos_x <= pad_pos_x+PAD_WIDTH) && ball[k].pos_x <= pad_pos_x+pad_width) &&
(PAD_POS_Y-4<ball[k].pos_y+BALL && (PAD_POS_Y-4<ball[k].pos_y+BALL &&
PAD_POS_Y>ball[k].pos_y+BALL) && (ball[k].y >0)) PAD_POS_Y>ball[k].pos_y+BALL) && (ball[k].y >0))
ball[k].tempy=PAD_POS_Y-ball[k].pos_y-BALL; ball[k].tempy=PAD_POS_Y-ball[k].pos_y-BALL;
@ -1337,7 +1369,7 @@ static int brickmania_game_loop(void)
ball[used_balls].tempy=0; ball[used_balls].tempy=0;
ball[used_balls].tempx=0; ball[used_balls].tempx=0;
ball[used_balls].pos_y=PAD_POS_Y-BALL; ball[used_balls].pos_y=PAD_POS_Y-BALL;
ball[used_balls].pos_x=pad_pos_x+(PAD_WIDTH/2)-2; ball[used_balls].pos_x=pad_pos_x+(pad_width/2)-2;
k--; k--;
continue; continue;
@ -1359,65 +1391,65 @@ static int brickmania_game_loop(void)
if ((ball[k].pos_y+BALL >= PAD_POS_Y && if ((ball[k].pos_y+BALL >= PAD_POS_Y &&
(ball[k].pos_x >= pad_pos_x && (ball[k].pos_x >= pad_pos_x &&
ball[k].pos_x <= pad_pos_x+PAD_WIDTH)) && ball[k].pos_x <= pad_pos_x+pad_width)) &&
start_game != 1 && !ball[k].glue) { start_game != 1 && !ball[k].glue) {
if ((ball[k].pos_x+HALFBALL >= pad_pos_x && if ((ball[k].pos_x+HALFBALL >= pad_pos_x &&
ball[k].pos_x+HALFBALL <= ball[k].pos_x+HALFBALL <=
pad_pos_x+(PAD_WIDTH/2/4)) || pad_pos_x+(pad_width/2/4)) ||
(ball[k].pos_x +HALFBALL>= (ball[k].pos_x +HALFBALL>=
pad_pos_x+(PAD_WIDTH-(PAD_WIDTH/2/4)) && pad_pos_x+(pad_width-(pad_width/2/4)) &&
ball[k].pos_x+HALFBALL <= pad_pos_x+PAD_WIDTH)) { ball[k].pos_x+HALFBALL <= pad_pos_x+pad_width)) {
ball[k].y = -2; ball[k].y = -2;
if (ball[k].pos_x != 0 && if (ball[k].pos_x != 0 &&
ball[k].pos_x+BALL!=LCD_WIDTH) ball[k].pos_x+BALL!=LCD_WIDTH)
ball[k].x = brickmania_pad_check(6,0,ball[k].pos_x+2<= ball[k].x = brickmania_pad_check(6,0,ball[k].pos_x+2<=
pad_pos_x+(PAD_WIDTH/2)? pad_pos_x+(pad_width/2)?
0:1,k); 0:1,k);
} }
else if ((ball[k].pos_x+HALFBALL >= else if ((ball[k].pos_x+HALFBALL >=
pad_pos_x+(PAD_WIDTH/2/4) && pad_pos_x+(pad_width/2/4) &&
ball[k].pos_x+HALFBALL <= ball[k].pos_x+HALFBALL <=
pad_pos_x+2*(PAD_WIDTH/2/4)) || pad_pos_x+2*(pad_width/2/4)) ||
(ball[k].pos_x+HALFBALL >= (ball[k].pos_x+HALFBALL >=
pad_pos_x+(PAD_WIDTH-2*(PAD_WIDTH/2/4)) && pad_pos_x+(pad_width-2*(pad_width/2/4)) &&
ball[k].pos_x+HALFBALL <= ball[k].pos_x+HALFBALL <=
pad_pos_x+(PAD_WIDTH-(PAD_WIDTH/2/4)) )) { pad_pos_x+(pad_width-(pad_width/2/4)) )) {
ball[k].y = -3; ball[k].y = -3;
if (ball[k].pos_x != 0 && if (ball[k].pos_x != 0 &&
ball[k].pos_x+BALL!=LCD_WIDTH) ball[k].pos_x+BALL!=LCD_WIDTH)
ball[k].x = brickmania_pad_check(4,0,ball[k].pos_x+2<= ball[k].x = brickmania_pad_check(4,0,ball[k].pos_x+2<=
pad_pos_x+(PAD_WIDTH/2)? pad_pos_x+(pad_width/2)?
0:1,k); 0:1,k);
} }
else if ((ball[k].pos_x+HALFBALL >= else if ((ball[k].pos_x+HALFBALL >=
pad_pos_x+2*(PAD_WIDTH/2/4) && pad_pos_x+2*(pad_width/2/4) &&
ball[k].pos_x+HALFBALL <= ball[k].pos_x+HALFBALL <=
pad_pos_x+3*(PAD_WIDTH/2/4)) || pad_pos_x+3*(pad_width/2/4)) ||
(ball[k].pos_x+2 >= (ball[k].pos_x+2 >=
pad_pos_x+(PAD_WIDTH-3*(PAD_WIDTH/2/4)) && pad_pos_x+(pad_width-3*(pad_width/2/4)) &&
ball[k].pos_x+2 <= ball[k].pos_x+2 <=
pad_pos_x+ ((PAD_WIDTH/2)-2*(PAD_WIDTH/2/4)) )) { pad_pos_x+ ((pad_width/2)-2*(pad_width/2/4)) )) {
ball[k].y = -4; ball[k].y = -4;
if (ball[k].pos_x != 0 && if (ball[k].pos_x != 0 &&
ball[k].pos_x+BALL!=LCD_WIDTH) ball[k].pos_x+BALL!=LCD_WIDTH)
ball[k].x = brickmania_pad_check(3,0,ball[k].pos_x+2<= ball[k].x = brickmania_pad_check(3,0,ball[k].pos_x+2<=
pad_pos_x+(PAD_WIDTH/2)? pad_pos_x+(pad_width/2)?
0:1,k); 0:1,k);
} }
else if ((ball[k].pos_x+HALFBALL >= else if ((ball[k].pos_x+HALFBALL >=
pad_pos_x+3*(PAD_WIDTH/2/4) && pad_pos_x+3*(pad_width/2/4) &&
ball[k].pos_x+HALFBALL <= ball[k].pos_x+HALFBALL <=
pad_pos_x+4*(PAD_WIDTH/2/4)-2) || pad_pos_x+4*(pad_width/2/4)-2) ||
(ball[k].pos_x+2 >= pad_pos_x+(PAD_WIDTH/2+2) && (ball[k].pos_x+2 >= pad_pos_x+(pad_width/2+2) &&
ball[k].pos_x+2 <= ball[k].pos_x+2 <=
pad_pos_x+(PAD_WIDTH-3*(PAD_WIDTH/2/4)) )) { pad_pos_x+(pad_width-3*(pad_width/2/4)) )) {
ball[k].y = -4; ball[k].y = -4;
if (ball[k].pos_x != 0 && if (ball[k].pos_x != 0 &&
@ -1441,7 +1473,7 @@ static int brickmania_game_loop(void)
if (ball[k].pos_y+5 >= PAD_POS_Y && if (ball[k].pos_y+5 >= PAD_POS_Y &&
(pad_type==1 && !ball[k].glue) && (pad_type==1 && !ball[k].glue) &&
(ball[k].pos_x >= pad_pos_x && (ball[k].pos_x >= pad_pos_x &&
ball[k].pos_x <= pad_pos_x+PAD_WIDTH)) { ball[k].pos_x <= pad_pos_x+pad_width)) {
ball[k].y=0; ball[k].y=0;
ball[k].pos_y=PAD_POS_Y-BALL; ball[k].pos_y=PAD_POS_Y-BALL;
ball[k].glue=true; ball[k].glue=true;
@ -1511,15 +1543,15 @@ static int brickmania_game_loop(void)
touch_y = rb->button_get_data() & 0xffff; touch_y = rb->button_get_data() & 0xffff;
if(touch_y >= PAD_POS_Y && touch_y <= PAD_POS_Y+PAD_HEIGHT) if(touch_y >= PAD_POS_Y && touch_y <= PAD_POS_Y+PAD_HEIGHT)
{ {
pad_pos_x += (flip_sides ? -1 : 1) * ( (touch_x-pad_pos_x-PAD_WIDTH/2) / 4 ); pad_pos_x += (flip_sides ? -1 : 1) * ( (touch_x-pad_pos_x-pad_width/2) / 4 );
if(pad_pos_x < 0) if(pad_pos_x < 0)
pad_pos_x = 0; pad_pos_x = 0;
else if(pad_pos_x+PAD_WIDTH > LCD_WIDTH) else if(pad_pos_x+pad_width > LCD_WIDTH)
pad_pos_x = LCD_WIDTH-PAD_WIDTH; pad_pos_x = LCD_WIDTH-pad_width;
for(k=0;k<used_balls;k++) for(k=0;k<used_balls;k++)
if ((start_game==1 || ball[k].glue)) if ((start_game==1 || ball[k].glue))
ball[k].pos_x = pad_pos_x+PAD_WIDTH/2; ball[k].pos_x = pad_pos_x+pad_width/2;
} }
if(button & BUTTON_REL) if(button & BUTTON_REL)
@ -1540,11 +1572,11 @@ static int brickmania_game_loop(void)
continue; continue;
if ((button_right && flip_sides==false) || if ((button_right && flip_sides==false) ||
(button_left && flip_sides==true)) { (button_left && flip_sides==true)) {
if (pad_pos_x+8+PAD_WIDTH > LCD_WIDTH) { if (pad_pos_x+8+pad_width > LCD_WIDTH) {
for(k=0;k<used_balls;k++) for(k=0;k<used_balls;k++)
if (start_game==1 || ball[k].glue) if (start_game==1 || ball[k].glue)
ball[k].pos_x+=LCD_WIDTH-pad_pos_x-PAD_WIDTH; ball[k].pos_x+=LCD_WIDTH-pad_pos_x-pad_width;
pad_pos_x+=LCD_WIDTH-pad_pos_x-PAD_WIDTH; pad_pos_x+=LCD_WIDTH-pad_pos_x-pad_width;
} }
else { else {
for(k=0;k<used_balls;k++) for(k=0;k<used_balls;k++)
@ -1579,7 +1611,7 @@ static int brickmania_game_loop(void)
if (start_game==1 && con_game!=1 && pad_type!=1) { if (start_game==1 && con_game!=1 && pad_type!=1) {
for(k=0;k<used_balls;k++) { for(k=0;k<used_balls;k++) {
ball[k].y=-4; ball[k].y=-4;
ball[k].x=pad_pos_x+(PAD_WIDTH/2)-2>= ball[k].x=pad_pos_x+(pad_width/2)-2>=
LCD_WIDTH/2?2:-2; LCD_WIDTH/2?2:-2;
} }
start_game =0; start_game =0;
@ -1605,7 +1637,7 @@ static int brickmania_game_loop(void)
fire[tfire].left=pad_pos_x+1; fire[tfire].left=pad_pos_x+1;
tfire=brickmania_fire_space(); tfire=brickmania_fire_space();
fire[tfire].top=PAD_POS_Y-7; fire[tfire].top=PAD_POS_Y-7;
fire[tfire].left=pad_pos_x+PAD_WIDTH-1; fire[tfire].left=pad_pos_x+pad_width-1;
} else if (con_game==1 && start_game!=1) { } else if (con_game==1 && start_game!=1) {
for(k=0;k<used_balls;k++) { for(k=0;k<used_balls;k++) {
ball[k].x=x[k]; ball[k].x=x[k];

View file

@ -483,6 +483,7 @@ David Johnston
Ralph Soto Ralph Soto
Mykhailo Radzievskyi Mykhailo Radzievskyi
Christophe Gouiran Christophe Gouiran
Asael Reiter
The libmad team The libmad team
The wavpack team The wavpack team