- Umbrella activation key is now UP instead of DOWN
- Added new ice tiles
This commit is contained in:
parent
8745ec0eca
commit
b0bca28c23
Binary file not shown.
Before Width: | Height: | Size: 521 KiB After Width: | Height: | Size: 402 KiB |
|
@ -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,
|
||||||
|
|
|
@ -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 |
|
@ -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
3
defs.h
|
@ -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
68
rc.c
|
@ -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)) {
|
||||||
|
|
45
shared.c
45
shared.c
|
@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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> </td></tr><tr bgcolor="#ffff00"><th colspan=4>Temporary Powerups</th></tr>
|
<td colspan=2> </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> </td></tr></table>
|
||||||
</center>
|
</center>
|
||||||
|
|
Loading…
Reference in New Issue