Fixed bug with boxing glove facing the wrong way

Added new tile type: metal
More troublshooting code for catching bug
This commit is contained in:
Rob Pearce 2008-10-23 01:18:49 +00:00
parent db8fa02c72
commit 9cab0704cf
7 changed files with 100 additions and 14 deletions

View File

@ -351,3 +351,9 @@ id 5
solid 0
file newtiles/railleft.png
end
tile land
id 4
solid 1
file newtiles/metal.png
end

View File

@ -30,5 +30,6 @@
101,level101.dat,Sand Castle
102,level102.dat,Diving Pool
18,level8.5.dat,Look out above...
110,level110.dat,Portrait Gallery #1
109,level109.dat,THE END SO FAR
99,level99.dat,TEST LEVEL

BIN
data/newtiles/metal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

65
data/world1/level110.dat Normal file
View File

@ -0,0 +1,65 @@
bgfile beach1.png
bg 0
hurryup 60
help
endhelp
monsters
0 2 23
23 10 3
12 20 18
1 31 19
1 9 19
6 19 3
1 36 11
1 4 11
49 32 7
49 4 7
60 30 26
60 6 27
18 11 28
18 33 28
1 33 15
1 6 15
endmonsters
exitdir 1
44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,33,33,0,0,0,0,0,0,0,0,0,33,33,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,33,33,33,0,0,0,0,0,0,0,0,0,33,33,33,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,23,23,33,33,33,0,0,0,0,0,0,0,0,0,0,0,33,33,33,23,23,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,33,33,33,0,0,0,10,56,56,56,9,0,0,0,33,33,33,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,33,33,33,33,0,56,56,56,56,56,56,56,0,33,33,33,33,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,33,33,33,56,56,56,56,56,56,56,56,56,33,33,33,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,23,23,23,23,23,23,23,23,23,23,0,0,56,56,56,56,56,56,56,56,56,56,56,56,56,0,0,23,23,23,23,23,23,23,23,23,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,56,56,56,56,56,56,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,56,56,56,56,56,56,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,56,56,56,56,56,56,56,56,56,56,56,56,56,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,23,23,23,23,23,23,23,23,23,0,0,0,0,53,53,33,33,33,33,53,33,33,33,33,53,53,0,0,0,23,23,23,23,23,23,23,23,23,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,53,53,33,33,33,33,53,33,33,33,33,53,53,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,53,53,33,27,33,33,53,33,33,27,33,53,53,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,53,53,33,27,33,33,53,33,33,27,33,53,53,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,23,23,23,23,23,23,23,23,0,0,0,53,53,33,33,33,33,53,33,33,33,33,53,53,0,0,23,23,23,23,23,23,23,23,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,53,53,53,53,53,53,53,53,53,53,53,53,53,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,53,53,53,53,53,53,53,53,53,53,53,53,53,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,53,53,53,53,53,53,53,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,23,23,23,23,23,23,23,23,0,0,0,0,0,53,53,53,33,53,53,53,0,0,0,0,23,23,23,23,23,23,23,23,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,53,53,33,53,53,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,33,33,33,33,33,33,33,55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,33,33,33,33,33,33,33,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,33,33,33,33,33,33,33,33,33,23,23,23,23,23,23,23,23,23,23,23,23,23,23,44,
44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,33,33,33,33,33,33,33,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,
44,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,33,33,33,33,33,33,33,33,33,16,16,16,16,16,16,16,16,16,16,16,16,16,16,44,
44,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,33,33,33,33,33,33,33,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,44,
44,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,33,33,33,33,33,33,33,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,44,
44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,44,
layer2
19,19,28
20,19,28
21,19,28
17,28,15
18,28,15
19,28,15
20,28,15
21,28,15
22,28,15
23,28,15

14
rc.c
View File

@ -1347,19 +1347,20 @@ void checkcollide(sprite_t *s) {
/* check for colission with our net */
if (s->netting ) {
if ((isnettable(s2->id) && !s2->invuln) || (s->netsticky && isfruit(s2->id))){
if ((isnettable(s2) && !s2->invuln) || (s->netsticky && isfruit(s2->id))){
if ((s->x + s->netlen*s->netdir) > s2->x) {
xdiff = (s->x + s->netlen*s->netdir) - s2->x;
} else {
xdiff = s2->x - (s->x + s->netlen*s->netdir);
}
//if (xdiff < 0) xdiff = -xdiff;
if (xdiff < 0) xdiff = -xdiff;
if (s->netystart > (s2->y - s2->img->h/2)) {
ydiff = s->netystart - (s2->y - s2->img->h/2);
} else {
ydiff = (s2->y - s2->img->h/2) - s->netystart;
}
//if (ydiff < 0) ydiff = -ydiff;
if (ydiff < 0) ydiff = -ydiff;
ythresh = s2->img->h;
// check...
@ -1382,8 +1383,6 @@ void checkcollide(sprite_t *s) {
if ((xdiff <= s2->img->w/2) && (ydiff <= ythresh)) {
// we hit something!
printf("caught: s='%s',%0.0f,%0.0f s2='%s',%0.0f,%0.0f\n",
s->name, s->x, s->y, s2->name,s2->x,s2->y);
if (s->netsticky && isfruit(s2->id)) {
getfruit(s, s2, 1);
@ -1423,6 +1422,11 @@ void checkcollide(sprite_t *s) {
// otherwise we caught it if we have enough nets
if (s->netcaught < s->netmax) {
printf("caught: ydiff=%0.0f,ythresh=%0.0f,s='%s',%0.0f,%0.0f s2='%s',%0.0f,%0.0f\n",
ydiff,ythresh,
s->name, s->x, s->y, s2->name,s2->x,s2->y);
s2->caughtby = s;
s2->jumping = B_FALSE;
s2->falling = 0;

View File

@ -1222,6 +1222,8 @@ int loadimagesets(void) {
loadspriteimage(P_GLOVE,F_WALK1, "sprites/glove.png");
imageset[P_GLOVE].numimages = 1;
// manually do flipped images
imageset[P_GLOVE].img[MAXFRAMES] = rotozoomSurfaceXY(imageset[P_GLOVE].img[0], 0, -1,1,0);
loadspriteimage(P_DIAMOND,F_WALK1, "sprites/diamond.png");
imageset[P_DIAMOND].numimages = 1;
@ -1686,6 +1688,10 @@ void drawsprite(sprite_t *s) {
if (s->dir == -1) {
frame += MAXFRAMES;
}
} else if (s->id == P_GLOVE) {
if (s->dir == -1) {
frame += MAXFRAMES;
}
} else if ((s->id == P_WINGLEFT) || (s->id == P_WINGRIGHT)) {
if (player->dir == -1) {
frame += MAXFRAMES;
@ -2573,6 +2579,8 @@ int randompowerup(void) {
int num;
num = rand() % 31;
return P_BOXING;
switch (num) {
case 0:
default:
@ -2674,9 +2682,10 @@ int isboss(int monid) {
}
}
int isnettable(int monid) {
if (ismonster(monid)) {
switch (monid) {
int isnettable(sprite_t *s) {
if (ismonster(s->id)) {
if (ismonster(s->id)) {
switch (s->id) {
case P_BLACKCLOUD:
case P_KINGRAT:
return B_FALSE;
@ -2684,6 +2693,7 @@ int isnettable(int monid) {
return B_TRUE;
}
}
}
return B_FALSE;
}

View File

@ -47,7 +47,7 @@ int loadlevellist(void);
int savelevellist(void);
int ispermenant(int pid);
int isbosslevel(int lev);
int isnettable(int monid);
int isnettable(sprite_t *s);
int isboss(int monid);
int getbosshealth(int mid);
void getpixelrgb(SDL_Surface *where, int x, int y, SDL_Color *clr);