- Umbrella activation key is now UP instead of DOWN

- Added new ice tiles
This commit is contained in:
Rob Pearce 2008-11-25 22:23:18 +00:00
parent 8745ec0eca
commit b0bca28c23
10 changed files with 100 additions and 42 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 521 KiB

After

Width:  |  Height:  |  Size: 402 KiB

View File

@ -6,7 +6,7 @@ endhelp
monsters monsters
0 4 14 0 4 14
134 35 14 134 35 14
152 19 14 152 19 18
endmonsters endmonsters
exitdir 1 exitdir 1
61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61, 61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,

View File

@ -58,6 +58,7 @@
412,level412.dat,Test Tubes 412,level412.dat,Test Tubes
420,level420.dat,Water Feature 420,level420.dat,Water Feature
60,level60.dat,King Fly 60,level60.dat,King Fly
601,level601.dat,NEW LEVEL
109,level109.dat,THE END SO FAR 109,level109.dat,THE END SO FAR
99,level99.dat,TEST LEVEL 99,level99.dat,TEST LEVEL
0,intro.dat,INTRO 0,intro.dat,INTRO

Binary file not shown.

Before

Width:  |  Height:  |  Size: 591 B

After

Width:  |  Height:  |  Size: 906 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 638 B

After

Width:  |  Height:  |  Size: 864 B

View File

@ -559,3 +559,21 @@ id 5
solid 0 solid 0
file newtiles/clothbg.png file newtiles/clothbg.png
end end
tile icicle
id 5
solid 0
file newtiles/icicle.png
end
tile icebg
id 5
solid 0
file newtiles/icebg.png
end
tile icebridge
id 17
solid 2
file newtiles/icebridge.png
end

3
defs.h
View File

@ -397,7 +397,7 @@
#define S_SLOPE 2 #define S_SLOPE 2
// Sprite types // Sprite types
#define MAXPTYPES 153 #define MAXPTYPES 154
#define P_PLAYER 0 #define P_PLAYER 0
#define P_RAT 1 #define P_RAT 1
#define P_CHEESE 2 #define P_CHEESE 2
@ -556,6 +556,7 @@
#define P_WINGBOOTS 150 #define P_WINGBOOTS 150
#define P_BIGUMBRELLA 151 #define P_BIGUMBRELLA 151
#define P_KINGFLY 152 #define P_KINGFLY 152
#define P_SUPERUMBRELLA 153
#define FLY_FLYTIME 150 #define FLY_FLYTIME 150

68
rc.c
View File

@ -1657,6 +1657,9 @@ void die(sprite_t *s) {
case P_KINGSNAIL: case P_KINGSNAIL:
addsprite(P_BIGSCUBA, (640/2), 0, "bigscuba"); addsprite(P_BIGSCUBA, (640/2), 0, "bigscuba");
break; break;
case P_KINGFLY:
addsprite(P_SUPERUMBRELLA, (640/2), 0, "bigumbrella");
break;
} }
} else if ((s->id == P_SNAIL) && (s->lives > 0)) { // snails can't die but turn into slugs instead } else if ((s->id == P_SNAIL) && (s->lives > 0)) { // snails can't die but turn into slugs instead
sprite_t *newsp; sprite_t *newsp;
@ -3626,13 +3629,17 @@ int movesprite(sprite_t *s) {
} }
s->timer2--; s->timer2--;
if (s->timer2 == 0) { if (s->timer2 <= 0) {
if (s->timer1 == KFS_FLY1) { if ((s->y >= s->img->h*4) && (s->y <= (480-s->img->h*2))) {
s->timer1 = KFS_HORZWAIT; if ((s->x >= s->img->w) && (s->x <= 640-(s->img->w))) {
s->timer3 = s->y; if (s->timer1 == KFS_FLY1) {
} else { s->timer1 = KFS_HORZWAIT;
s->timer1 = KFS_VERTWAIT; s->timer3 = s->y;
s->timer3 = s->x; } else {
s->timer1 = KFS_VERTWAIT;
s->timer3 = s->x;
}
}
} }
} }
} else if (s->timer1 == KFS_HORZWAIT) { } else if (s->timer1 == KFS_HORZWAIT) {
@ -6734,6 +6741,8 @@ void dogravity(sprite_t *s) {
ontheground = B_FALSE; ontheground = B_FALSE;
} else if ((s->id == P_BIGSCUBA) && (s->y < 480/2)) { } else if ((s->id == P_BIGSCUBA) && (s->y < 480/2)) {
ontheground = B_FALSE; ontheground = B_FALSE;
} else if ((s->id == P_SUPERUMBRELLA) && (s->y < 480/2)) {
ontheground = B_FALSE;
} else { } else {
ontheground = isonground(s); ontheground = isonground(s);
} }
@ -7365,12 +7374,34 @@ int dofruiteffect(sprite_t *pp, sprite_t *s) {
if (player) { if (player) {
player->permmask = B_TRUE; player->permmask = B_TRUE;
player->hasmask = B_TRUE; player->hasmask = B_TRUE;
addoutlinetext(player->x,player->y - player->img->h/2, TEXTSIZE_LIFE, "SUPER MASK!", &cyan,&black,POINTSDELAY, TT_NORM); if ((player->lives > 0) && !player->dead) {
addoutlinetext(player->x,player->y - player->img->h/2, TEXTSIZE_LIFE, "SUPER MASK!", &cyan,&black,POINTSDELAY, TT_NORM);
}
} }
if (player2) { if (player2) {
player2->permmask = B_TRUE; player2->permmask = B_TRUE;
player2->hasmask = B_TRUE; player2->hasmask = B_TRUE;
addoutlinetext(player2->x,player2->y - player2->img->h/2, TEXTSIZE_LIFE, "SUPER MASK!", &cyan,&black,POINTSDELAY, TT_NORM); if ((player2->lives > 0) && !player2->dead) {
addoutlinetext(player2->x,player2->y - player2->img->h/2, TEXTSIZE_LIFE, "SUPER MASK!", &cyan,&black,POINTSDELAY, TT_NORM);
}
}
return B_TRUE;
} else if (s->id == P_SUPERUMBRELLA) {
// both players
playfx(FX_POWERUP);
if (player) {
player->permumbrella = B_TRUE;
player->umbrella = B_TRUE;
if ((player->lives > 0) && !player->dead) {
addoutlinetext(player->x,player->y - player->img->h/2, TEXTSIZE_LIFE, "SUPER UMBRELLA!", &cyan,&black,POINTSDELAY, TT_NORM);
}
}
if (player2) {
player2->permumbrella = B_TRUE;
player2->umbrella = B_TRUE;
if ((player2->lives > 0) && !player2->dead) {
addoutlinetext(player2->x,player2->y - player2->img->h/2, TEXTSIZE_LIFE, "SUPER UMBRELLA!", &cyan,&black,POINTSDELAY, TT_NORM);
}
} }
return B_TRUE; return B_TRUE;
} else if (s->id == P_NUMNETS) { } else if (s->id == P_NUMNETS) {
@ -11852,7 +11883,15 @@ void doplayermovement(sprite_t *pl) {
} }
} }
} if (pl->falling) {
if (pl->umbrella) pl->umbrellaup = B_TRUE;
}
} else {
if (pl->falling) {
if (pl->umbrella) pl->umbrellaup = B_FALSE;
}
}
if (keydown(pnum,KEY_DOWN)) { if (keydown(pnum,KEY_DOWN)) {
if ((pl->swimming) && (pl->hasmask)) { if ((pl->swimming) && (pl->hasmask)) {
// swimming // swimming
@ -11869,15 +11908,6 @@ void doplayermovement(sprite_t *pl) {
pl->x = ladderx; pl->x = ladderx;
} }
} }
if (pl->falling) {
if (pl->umbrella) pl->umbrellaup = B_TRUE;
}
} else {
if (pl->falling) {
if (pl->umbrella) pl->umbrellaup = B_FALSE;
}
} }
// Jump // Jump
if (keydown(pnum,KEY_JUMP)) { if (keydown(pnum,KEY_JUMP)) {

View File

@ -1604,6 +1604,9 @@ int loadimagesets(void) {
loadspriteimage(P_BIGUMBRELLA,F_WALK1, "sprites/bigumbrella.png"); loadspriteimage(P_BIGUMBRELLA,F_WALK1, "sprites/bigumbrella.png");
imageset[P_BIGUMBRELLA].numimages = 1; imageset[P_BIGUMBRELLA].numimages = 1;
loadspriteimage(P_SUPERUMBRELLA,F_WALK1, "sprites/superumbrella.png");
imageset[P_SUPERUMBRELLA].numimages = 1;
loadspriteimage(P_CAMERA,F_WALK1, "sprites/camera.png"); loadspriteimage(P_CAMERA,F_WALK1, "sprites/camera.png");
imageset[P_CAMERA].numimages = 1; imageset[P_CAMERA].numimages = 1;
@ -2459,6 +2462,7 @@ int isfruit(int id) {
/* super powerups */ /* super powerups */
case P_BIGSPEED: case P_BIGSPEED:
case P_BIGSCUBA: case P_BIGSCUBA:
case P_SUPERUMBRELLA:
return FT_SUPER; return FT_SUPER;
/* permenant powerups */ /* permenant powerups */
case P_SPEED: case P_SPEED:
@ -3373,6 +3377,7 @@ void setfruitinfo(void) {
setinfo(P_HELMET, "Helmet","Gives you a suit of armour which will protect you from death.", "helmet.png"); setinfo(P_HELMET, "Helmet","Gives you a suit of armour which will protect you from death.", "helmet.png");
setinfo(P_BIGSPEED, "Big Speed Up", "Makes you walk faster, permenantly!", "bigspeed.png"); setinfo(P_BIGSPEED, "Big Speed Up", "Makes you walk faster, permenantly!", "bigspeed.png");
setinfo(P_BIGSCUBA, "Big Scuba Mask", "Permenantly gives you fast underwater movement.", "bigscuba.png"); setinfo(P_BIGSCUBA, "Big Scuba Mask", "Permenantly gives you fast underwater movement.", "bigscuba.png");
setinfo(P_SUPERUMBRELLA, "Big Umbrella", "Bestows you with an umbrella which can survive death!", "superumbrella.png");
setinfo(P_MASKPOWERUP, "Scuba Mask", "Allows you to move fast underwater.", "maskpowerup.png"); setinfo(P_MASKPOWERUP, "Scuba Mask", "Allows you to move fast underwater.", "maskpowerup.png");
setinfo(P_WINGBOOTS, "Winged Boots", "These magical boots cause you to grow wings, allowing to you jump again while in mid-air!", "wingboots.png"); setinfo(P_WINGBOOTS, "Winged Boots", "These magical boots cause you to grow wings, allowing to you jump again while in mid-air!", "wingboots.png");
@ -3404,7 +3409,7 @@ void setfruitinfo(void) {
setinfo(P_MAGNET, "Magnet", "Collecting this powerup will align the magnetic forces of the earth in your favour, attracting all nearby fruits towards you.", "magnet.png"); setinfo(P_MAGNET, "Magnet", "Collecting this powerup will align the magnetic forces of the earth in your favour, attracting all nearby fruits towards you.", "magnet.png");
setinfo(P_BADMAGNET, "Red Skull", "This skull curses you and will repel fruits away from you, denying you access to them!", "badmagnet.png"); setinfo(P_BADMAGNET, "Red Skull", "This skull curses you and will repel fruits away from you, denying you access to them!", "badmagnet.png");
setinfo(P_JETPACK, "Jetpack", "For the remainder of the current level, the jetpack's thrust will add to your jumping ability!", "jetpack.png"); setinfo(P_JETPACK, "Jetpack", "For the remainder of the current level, the jetpack's thrust will add to your jumping ability!", "jetpack.png");
setinfo(P_UMBRELLA, "Umbrella", "Slows your descent, giving you more time to contemplate your rat eradication quest.", "umbrella.png"); setinfo(P_UMBRELLA, "Umbrella", "Slows your descent, giving you more time to contemplate your rat eradication quest. Activate this useful item by holding UP while falling.", "umbrella.png");
setinfo(P_CAMERA, "Camera", "Creates a bright flash of light, blinding all enemies.", "camera.png"); setinfo(P_CAMERA, "Camera", "Creates a bright flash of light, blinding all enemies.", "camera.png");
setinfo(P_ZAPPOWERUP, "Bug Zapper", "Zaps nearby enemies with miniature bolts of lightning", "zapper.png"); setinfo(P_ZAPPOWERUP, "Bug Zapper", "Zaps nearby enemies with miniature bolts of lightning", "zapper.png");
setinfo(P_SKULL, "Green Skull", "Avoid these at all costs! The green skull will shrink your net to miniscule proportions for the remainder of the level.", "skull.png"); setinfo(P_SKULL, "Green Skull", "Avoid these at all costs! The green skull will shrink your net to miniscule proportions for the remainder of the level.", "skull.png");
@ -4088,27 +4093,29 @@ void drawplayer(sprite_t *s, SDL_Rect *where) {
// draw umbrella // draw umbrella
if (s->umbrella && s->umbrellaup) { if (s->umbrella && s->umbrellaup) {
if (!s->swimming && !s->climbing) { if ((levelcomplete != LV_CLOUD) && (levelcomplete != LV_CLOUDLOOP)) {
SDL_Rect umarea; if (!s->swimming && !s->climbing) {
if (s->netting) { SDL_Rect umarea;
if (s->dir == D_RIGHT) { if (s->netting) {
umarea.x = s->x - 11 - 10; if (s->dir == D_RIGHT) {
umarea.x = s->x - 11 - 10;
} else {
umarea.x = s->x - 11 + 10;
}
umarea.y = s->y - s->img->h - 2;
} else if (s->falling) {
if (s->dir == D_RIGHT) {
umarea.x = s->x - 11 - 8;
} else {
umarea.x = s->x - 11 + 8;
}
umarea.y = s->y - s->img->h - 9;
} else { } else {
umarea.x = s->x - 11 + 10; umarea.x = s->x - 11;
umarea.y = s->y - s->img->h - 2;
} }
umarea.y = s->y - s->img->h - 2; doblit(imageset[P_BIGUMBRELLA].img[F_WALK1], screen, &umarea);
} else if (s->falling) {
if (s->dir == D_RIGHT) {
umarea.x = s->x - 11 - 8;
} else {
umarea.x = s->x - 11 + 8;
}
umarea.y = s->y - s->img->h - 9;
} else {
umarea.x = s->x - 11;
umarea.y = s->y - s->img->h - 2;
} }
doblit(imageset[P_BIGUMBRELLA].img[F_WALK1], screen, &umarea);
} }
} }

View File

@ -49,7 +49,7 @@
<td align=center><img src="img/bell.png"><br>Powerup Bell</td><td>Rings if a permenant powerup is going to appear on the level</td> <td align=center><img src="img/bell.png"><br>Powerup Bell</td><td>Rings if a permenant powerup is going to appear on the level</td>
</tr><tr><td align=center><img src="img/honey.png"><br>Honey</td><td>Coats your net in a layer of sticky honey, allowing it to pick up fruits from afar.</td> </tr><tr><td align=center><img src="img/honey.png"><br>Honey</td><td>Coats your net in a layer of sticky honey, allowing it to pick up fruits from afar.</td>
<td align=center><img src="img/maskpowerup.png"><br>Scuba Mask</td><td>Allows you to move fast underwater.</td> <td align=center><img src="img/maskpowerup.png"><br>Scuba Mask</td><td>Allows you to move fast underwater.</td>
</tr><tr><td align=center><img src="img/umbrella.png"><br>Umbrella</td><td>Slows your descent, giving you more time to contemplate your rat eradication quest.</td> </tr><tr><td align=center><img src="img/umbrella.png"><br>Umbrella</td><td>Slows your descent, giving you more time to contemplate your rat eradication quest. Activate this useful item by holding UP while falling.</td>
<td align=center><img src="img/wingboots.png"><br>Winged Boots</td><td>These magical boots cause you to grow wings, allowing to you jump again while in mid-air!</td> <td align=center><img src="img/wingboots.png"><br>Winged Boots</td><td>These magical boots cause you to grow wings, allowing to you jump again while in mid-air!</td>
</tr><tr><td align=center><img src="img/cardh.png"><br>Card</td><td>Keep a look out for these useful items. Collect a full poker hand for a secret bonus!</td> </tr><tr><td align=center><img src="img/cardh.png"><br>Card</td><td>Keep a look out for these useful items. Collect a full poker hand for a secret bonus!</td>
<td colspan=2>&nbsp;</td></tr><tr bgcolor="#ffff00"><th colspan=4>Temporary Powerups</th></tr> <td colspan=2>&nbsp;</td></tr><tr bgcolor="#ffff00"><th colspan=4>Temporary Powerups</th></tr>
@ -88,5 +88,6 @@
</tr><tr bgcolor="#ffff00"><th colspan=4>Super Powerups</th></tr> </tr><tr bgcolor="#ffff00"><th colspan=4>Super Powerups</th></tr>
<tr><td align=center><img src="img/bigspeed.png"><br>Big Speed Up</td><td>Makes you walk faster, permenantly!</td> <tr><td align=center><img src="img/bigspeed.png"><br>Big Speed Up</td><td>Makes you walk faster, permenantly!</td>
<td align=center><img src="img/bigscuba.png"><br>Big Scuba Mask</td><td>Permenantly gives you fast underwater movement.</td> <td align=center><img src="img/bigscuba.png"><br>Big Scuba Mask</td><td>Permenantly gives you fast underwater movement.</td>
</tr></table> </tr><tr><td align=center><img src="img/superumbrella.png"><br>Big Umbrella</td><td>Bestows you with an umbrella which can survive death!</td>
<td colspan=2>&nbsp;</td></tr></table>
</center> </center>