- 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
0 4 14
134 35 14
152 19 14
152 19 18
endmonsters
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,

View File

@ -58,6 +58,7 @@
412,level412.dat,Test Tubes
420,level420.dat,Water Feature
60,level60.dat,King Fly
601,level601.dat,NEW LEVEL
109,level109.dat,THE END SO FAR
99,level99.dat,TEST LEVEL
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
file newtiles/clothbg.png
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
// Sprite types
#define MAXPTYPES 153
#define MAXPTYPES 154
#define P_PLAYER 0
#define P_RAT 1
#define P_CHEESE 2
@ -556,6 +556,7 @@
#define P_WINGBOOTS 150
#define P_BIGUMBRELLA 151
#define P_KINGFLY 152
#define P_SUPERUMBRELLA 153
#define FLY_FLYTIME 150

68
rc.c
View File

@ -1657,6 +1657,9 @@ void die(sprite_t *s) {
case P_KINGSNAIL:
addsprite(P_BIGSCUBA, (640/2), 0, "bigscuba");
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
sprite_t *newsp;
@ -3626,13 +3629,17 @@ int movesprite(sprite_t *s) {
}
s->timer2--;
if (s->timer2 == 0) {
if (s->timer1 == KFS_FLY1) {
s->timer1 = KFS_HORZWAIT;
s->timer3 = s->y;
} else {
s->timer1 = KFS_VERTWAIT;
s->timer3 = s->x;
if (s->timer2 <= 0) {
if ((s->y >= s->img->h*4) && (s->y <= (480-s->img->h*2))) {
if ((s->x >= s->img->w) && (s->x <= 640-(s->img->w))) {
if (s->timer1 == KFS_FLY1) {
s->timer1 = KFS_HORZWAIT;
s->timer3 = s->y;
} else {
s->timer1 = KFS_VERTWAIT;
s->timer3 = s->x;
}
}
}
}
} else if (s->timer1 == KFS_HORZWAIT) {
@ -6734,6 +6741,8 @@ void dogravity(sprite_t *s) {
ontheground = B_FALSE;
} else if ((s->id == P_BIGSCUBA) && (s->y < 480/2)) {
ontheground = B_FALSE;
} else if ((s->id == P_SUPERUMBRELLA) && (s->y < 480/2)) {
ontheground = B_FALSE;
} else {
ontheground = isonground(s);
}
@ -7365,12 +7374,34 @@ int dofruiteffect(sprite_t *pp, sprite_t *s) {
if (player) {
player->permmask = 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) {
player2->permmask = 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;
} 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 ((pl->swimming) && (pl->hasmask)) {
// swimming
@ -11869,15 +11908,6 @@ void doplayermovement(sprite_t *pl) {
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
if (keydown(pnum,KEY_JUMP)) {

View File

@ -1604,6 +1604,9 @@ int loadimagesets(void) {
loadspriteimage(P_BIGUMBRELLA,F_WALK1, "sprites/bigumbrella.png");
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");
imageset[P_CAMERA].numimages = 1;
@ -2459,6 +2462,7 @@ int isfruit(int id) {
/* super powerups */
case P_BIGSPEED:
case P_BIGSCUBA:
case P_SUPERUMBRELLA:
return FT_SUPER;
/* permenant powerups */
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_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_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_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_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_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_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");
@ -4088,27 +4093,29 @@ void drawplayer(sprite_t *s, SDL_Rect *where) {
// draw umbrella
if (s->umbrella && s->umbrellaup) {
if (!s->swimming && !s->climbing) {
SDL_Rect umarea;
if (s->netting) {
if (s->dir == D_RIGHT) {
umarea.x = s->x - 11 - 10;
if ((levelcomplete != LV_CLOUD) && (levelcomplete != LV_CLOUDLOOP)) {
if (!s->swimming && !s->climbing) {
SDL_Rect umarea;
if (s->netting) {
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 {
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;
} 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);
}
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>
</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>
</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>
</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>
@ -88,5 +88,6 @@
</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>
<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>