Added secret way to skip levels 1 and 2

Random level powerup now disappears on end of level
This commit is contained in:
Rob Pearce 2008-11-22 10:11:33 +00:00
parent ed7505722b
commit 91790eeb0a
7 changed files with 38 additions and 7 deletions

View File

@ -29,6 +29,7 @@ monsters
15 34 19 15 34 19
16 35 19 16 35 19
17 36 19 17 36 19
15 3 15
endmonsters endmonsters
exitdir 1 exitdir 1
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
@ -47,10 +48,10 @@ exitdir 1
4,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,4, 4,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,4,
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,4,
39,1,34,0,0,0,0,0,0,0,0,0,0,0,0,0,42,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4, 39,1,1,34,0,0,0,0,0,0,0,0,0,0,0,0,42,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4,
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,0,0,0,0,0,4,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,0,0,0,0,0,4,4,
4,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,0,0,0,0,0,4,4, 4,0,0,0,0,0,0,0,0,0,83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,0,0,0,0,0,4,4,
39,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,38,4,4,4,4,4,4,39,1,1,1,1,1,38,4, 39,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,38,4,4,4,4,4,4,39,1,1,1,1,1,38,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,44,44,4,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,44,44,4,4,4,4,4,4,4,4,4,4,

Binary file not shown.

BIN
data/sounds/warp.wav Normal file

Binary file not shown.

View File

@ -541,3 +541,9 @@ id 5
solid 0 solid 0
file newtiles/light2.png file newtiles/light2.png
end end
tile specialsign
id 25
solid 0
file newtiles/signup.png
end

4
defs.h
View File

@ -279,7 +279,7 @@
/* enums */ /* enums */
/* sounds */ /* sounds */
#define MAXFX 56 #define MAXFX 57
#define FX_SHOOT 0 #define FX_SHOOT 0
#define FX_SLAM 1 #define FX_SLAM 1
#define FX_KILL 2 #define FX_KILL 2
@ -336,6 +336,7 @@
#define FX_EVILLAUGH 53 #define FX_EVILLAUGH 53
#define FX_BIRDS 54 #define FX_BIRDS 54
#define FX_EXTRALIFE 55 #define FX_EXTRALIFE 55
#define FX_WARP 56
// card suits // card suits
#define CS_HEART 1 #define CS_HEART 1
@ -668,6 +669,7 @@
#define T_WATERRIGHT 22 #define T_WATERRIGHT 22
#define T_WATERLEFT 23 #define T_WATERLEFT 23
#define T_WATERDOWN 24 #define T_WATERDOWN 24
#define T_WARP 25 // hidden warp point - jump to reveal
// death states // death states
#define D_INITIAL (1) // Need to trigger death sequence #define D_INITIAL (1) // Need to trigger death sequence

2
edit.c
View File

@ -1234,6 +1234,8 @@ void drawtilehint(SDL_Surface *where, tiletype_t *tt, double x, double y) {
writetext(where, x+1, y+1, "->", PALTEXTSIZE, &red); writetext(where, x+1, y+1, "->", PALTEXTSIZE, &red);
} else if (tt->id == T_LEFT) { } else if (tt->id == T_LEFT) {
writetext(where, x+1, y+1, "<-", PALTEXTSIZE, &red); writetext(where, x+1, y+1, "<-", PALTEXTSIZE, &red);
} else if (tt->id == T_WARP) {
writetext(where, x+1, y+1, "W", PALTEXTSIZE, &red);
} }
} }

28
rc.c
View File

@ -416,9 +416,10 @@ int main (int argc, char **argv) {
} }
// kill all cards, so we don't have a pokereffect during endoflevel // kill all cards, so we don't have a pokereffect during endoflevel
// also kill the random level powerup if it exists
for (s2 = sprite; s2 ; s2 = nexts) { for (s2 = sprite; s2 ; s2 = nexts) {
nexts = s2->next; nexts = s2->next;
if (iscard(s2->id) || s2->id == P_MOVINGCARD) { if (iscard(s2->id) || s2->id == P_MOVINGCARD || strstr(s2->name, "random_up")) {
s2->dead = D_FINAL; s2->dead = D_FINAL;
} }
} }
@ -1388,7 +1389,7 @@ void jump(sprite_t *s, int dir) {
s->jumping = 1; s->jumping = 1;
s->jumpspeed = 2; s->jumpspeed = 2;
s->jumpdir = dir; s->jumpdir = dir;
} else { // plaayer } else { // player
tiletype_t *tt; tiletype_t *tt;
s->jumpdir = dir; s->jumpdir = dir;
if (s->jumpdir != 0) { if (s->jumpdir != 0) {
@ -1426,6 +1427,20 @@ void jump(sprite_t *s, int dir) {
s->jumpspeed = 5; s->jumpspeed = 5;
} }
// Special hidden cheat - jumping on the up sign on level 1
// skips you to level 3 (to avoid boring levels at the start)
if (s->jumpdir == 0) {
int tx,ty;
tt= gettileat(s->x, s->y - (TILEH/2), &tx, &ty);
if (tt->id == T_WARP) {
// it disappears
curlevel->map[ty*LEVELW+tx] = getuniq(T_WARP);
// puff in a telephone
puffin(P_PHONE, tx*TILEW + (TILEW/2), ty*TILEH+TILEH, "warpphone", -1);
playfx(FX_WARP);
}
}
} }
// stop climbing // stop climbing
s->climbing = B_FALSE; s->climbing = B_FALSE;
@ -7080,8 +7095,12 @@ int dofruiteffect(sprite_t *pp, sprite_t *s) {
sprintf(tempm, "Engaged"); sprintf(tempm, "Engaged");
addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY, TT_NORM); addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY, TT_NORM);
} else { } else {
playfx(FX_PHONE); if (!strstr(s->name, "warp")) {
sprintf(tempm, "Telephone!"); playfx(FX_PHONE);
sprintf(tempm, "Telephone!");
} else {
sprintf(tempm, "Warp!");
}
addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY, TT_NORM); addoutlinetext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,&black,POINTSDELAY, TT_NORM);
// set powerup // set powerup
pp->powerup = PW_PHONE; pp->powerup = PW_PHONE;
@ -7568,6 +7587,7 @@ int initsound(void) {
loadfx(FX_EVILLAUGH, "evillaugh.wav"); loadfx(FX_EVILLAUGH, "evillaugh.wav");
loadfx(FX_BIRDS, "birds.wav"); loadfx(FX_BIRDS, "birds.wav");
loadfx(FX_EXTRALIFE, "extralife.wav"); loadfx(FX_EXTRALIFE, "extralife.wav");
loadfx(FX_WARP, "warp.wav");
// load sound effects // load sound effects
for (i = 0; i < MAXFX; i++) { for (i = 0; i < MAXFX; i++) {