diff --git a/data/levels/level101.dat b/data/levels/level101.dat index 2833d3b..baad1be 100644 --- a/data/levels/level101.dat +++ b/data/levels/level101.dat @@ -85,38 +85,100 @@ exitdir 2 44,0,0,0,0,0,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,0,0,0,0,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 +7,8,96,layer3 +8,8,96,layer3 +9,8,96,layer3 +10,8,96,layer3 +11,8,96,layer3 +12,8,96,layer3 +13,8,96,layer3 +14,8,96,layer3 +15,8,96,layer3 +16,8,96,layer3 +17,8,96,layer3 +18,8,96,layer3 +19,8,96,layer3 +20,8,96,layer3 +21,8,96,layer3 +22,8,96,layer3 +23,8,96,layer3 +24,8,96,layer3 +25,8,96,layer3 +26,8,96,layer3 +27,8,96,layer3 +28,8,96,layer3 +29,8,96,layer3 +30,8,96,layer3 +31,8,96,layer3 +32,8,96,layer3 +33,8,96,layer3 9,11,18 +15,12,96,layer3 +16,12,96,layer3 +17,12,96,layer3 +18,12,96,layer3 +19,12,96,layer3 +20,12,96,layer3 +21,12,96,layer3 +22,12,96,layer3 +23,12,96,layer3 +24,12,96,layer3 +25,12,96,layer3 14,13,28 26,13,28 13,14,28 27,14,28 -9,15,94,layer3 -10,15,94,layer3 +9,15,96,layer3 +10,15,96,layer3 12,15,28 28,15,28 -30,15,94,layer3 -31,15,94,layer3 +30,15,96,layer3 +31,15,96,layer3 11,16,28 29,16,28 -1,17,94,layer3 -2,17,94,layer3 -3,17,94,layer3 -4,17,94,layer3 -5,17,94,layer3 +1,17,96,layer3 +2,17,96,layer3 +3,17,96,layer3 +4,17,96,layer3 +5,17,96,layer3 12,17,28 28,17,28 -35,17,94,layer3 -36,17,94,layer3 -37,17,94,layer3 -38,17,94,layer3 +35,17,96,layer3 +36,17,96,layer3 +37,17,96,layer3 +38,17,96,layer3 13,18,28 27,18,28 14,19,28 26,19,28 +6,20,96,layer3 +8,20,96,layer3 15,20,28 25,20,28 +32,20,96,layer3 +34,20,96,layer3 +7,21,96,layer3 +9,21,96,layer3 +11,21,96,layer3 +12,21,96,layer3 +13,21,96,layer3 +14,21,96,layer3 +15,21,96,layer3 16,21,28 +16,21,96,layer3 +17,21,96,layer3 +18,21,96,layer3 +22,21,96,layer3 +23,21,96,layer3 24,21,28 +24,21,96,layer3 +25,21,96,layer3 +26,21,96,layer3 +27,21,96,layer3 +28,21,96,layer3 +29,21,96,layer3 +31,21,96,layer3 +33,21,96,layer3 9,23,19 31,23,18 7,24,19 diff --git a/data/levels/level612.dat b/data/levels/level612.dat index 318cd58..ec16ddb 100644 --- a/data/levels/level612.dat +++ b/data/levels/level612.dat @@ -6,11 +6,11 @@ endhelp monsters 0 1 17 134 38 17 +23 19 5 6 12 14 6 24 16 1 15 17 1 29 17 -23 19 5 18 13 8 18 27 8 16 3 17 @@ -28,7 +28,7 @@ monsters 15 21 17 15 30 17 endmonsters -exitdir -1 +exitdir -2 33,33,33,33,33,33,33,33,33,33,33,33,0,0,33,33,33,33,33,33,33,33,33,33,33,0,0,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,0,0,33,33,33,33,33,33,33,33,33,33,33,0,0,33,33,33,33,33,33,33,33,33,33,33,33,33, 33,33,33,33,33,33,33,33,33,33,33,33,0,0,33,33,33,33,33,33,33,33,33,33,33,0,0,33,33,33,33,33,33,33,33,33,33,33,33,33, diff --git a/data/levels/level613.dat b/data/levels/level613.dat index 40e987e..fc3564d 100644 --- a/data/levels/level613.dat +++ b/data/levels/level613.dat @@ -10,7 +10,6 @@ monsters 158 34 28 158 34 20 158 34 12 -158 5 8 158 5 16 158 5 24 17 7 24 @@ -105,7 +104,7 @@ monsters 15 5 20 15 5 12 endmonsters -exitdir -1 +exitdir -2 33,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,33, 33,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,33, 33,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,33, diff --git a/data/levels/level614.dat b/data/levels/level614.dat index 57e422a..14b1d55 100644 --- a/data/levels/level614.dat +++ b/data/levels/level614.dat @@ -32,7 +32,7 @@ monsters 17 4 7 17 35 7 endmonsters -exitdir 1 +exitdir -2 33,87,87,87,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,87,87,87,32, 33,87,87,87,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,87,87,87,33, 33,32,87,87,87,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,87,87,87,32,33, diff --git a/data/levels/level615.dat b/data/levels/level615.dat index aa5acf4..3d9d461 100644 --- a/data/levels/level615.dat +++ b/data/levels/level615.dat @@ -23,7 +23,7 @@ monsters 124 18 28 124 21 28 endmonsters -exitdir 1 +exitdir -2 33,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,33, 33,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,33, 33,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,33, diff --git a/data/levels/level618.dat b/data/levels/level618.dat index 7446059..2b34dc6 100644 --- a/data/levels/level618.dat +++ b/data/levels/level618.dat @@ -6,6 +6,7 @@ endhelp monsters 0 2 28 134 37 28 +23 20 18 12 24 28 49 16 28 158 15 4 @@ -20,9 +21,8 @@ monsters 15 10 27 15 29 27 6 21 14 -23 20 18 endmonsters -exitdir 1 +exitdir -2 90,0,0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,90, 90,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,90, 90,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,90, diff --git a/data/levels/level619.dat b/data/levels/level619.dat index c72375f..d85e669 100644 --- a/data/levels/level619.dat +++ b/data/levels/level619.dat @@ -4,6 +4,9 @@ hurryup 30 help endhelp monsters +0 3 26 +134 36 26 +23 19 9 6 10 6 6 27 6 12 10 18 @@ -15,8 +18,6 @@ monsters 133 22 18 157 20 8 12 20 12 -0 3 26 -134 36 26 7 35 1 7 4 1 15 7 22 @@ -40,10 +41,9 @@ monsters 17 30 10 16 35 14 16 4 14 -23 19 9 12 20 22 endmonsters -exitdir 1 +exitdir -2 90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,0,0,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90, 90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90, 90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,0,0,90,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90, diff --git a/data/levels/level620.dat b/data/levels/level620.dat index f1d2002..b869e93 100644 --- a/data/levels/level620.dat +++ b/data/levels/level620.dat @@ -8,7 +8,7 @@ monsters 134 37 16 163 7 28 endmonsters -exitdir 1 +exitdir -2 91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91, 91,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,91, 91,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,91, diff --git a/data/newtiles/sandbment.png b/data/newtiles/sandbment.png new file mode 100644 index 0000000..664a242 Binary files /dev/null and b/data/newtiles/sandbment.png differ diff --git a/data/tiledefs.dat b/data/tiledefs.dat index 8e8b2fe..124ba17 100644 --- a/data/tiledefs.dat +++ b/data/tiledefs.dat @@ -573,7 +573,7 @@ file newtiles/icebg.png end tile icebridge -id 17 +id 26 solid 2 file newtiles/icebridge.png end @@ -619,3 +619,9 @@ id 5 solid 0 file newtiles/bars.png end + +tile bars +id 5 +solid 0 +file newtiles/sandbment.png +end diff --git a/defs.h b/defs.h index 0a3834f..04f24fd 100644 --- a/defs.h +++ b/defs.h @@ -783,6 +783,7 @@ #define T_WATERLEFT 23 #define T_WATERDOWN 24 #define T_WARP 25 // hidden warp point - jump to reveal +#define T_ICEBRIDGE 26 // like land but you can drop down through it // death states #define D_INITIAL (1) // Need to trigger death sequence diff --git a/rc.c b/rc.c index 732499b..d47e3f4 100644 --- a/rc.c +++ b/rc.c @@ -5409,7 +5409,7 @@ printf("setting target to y = %d\n",ss->timer2); // melt any ice bridges it touches for (yyy = s->y - s->img->h ; yyy < s->y ; yyy += 4) { tt = gettileat(s->x + (s->img->w/2),yyy, &tx,&ty); - if (tt->id == T_BRIDGE) { + if (isbridge(tt->id)) { melttile(tx,ty,REGROWTIMER_SHORT); } } @@ -7272,7 +7272,7 @@ void removesprite(sprite_t *s) { int isonbridge(sprite_t *s) { tiletype_t *tthere; tthere = gettileat(s->x,s->y, NULL,NULL); - if (tthere->id == T_BRIDGE) { + if (isbridge(tthere->id)) { return B_TRUE; } @@ -7698,7 +7698,7 @@ void dogravity(sprite_t *s) { // melt roof for (xxx = s->x - (s->img->w/2) ; xxx < s->x + (s->img->w/2) ; xxx += TILEW) { tt = gettileat(xxx, s->y - s->img->h,&tx,&ty); - if (tt->id == T_BRIDGE) { + if (isbridge(tt->id)) { // melt it! melttile(tx,ty,REGROWTIMER_LONG); } @@ -7792,7 +7792,7 @@ void dogravity(sprite_t *s) { // king ant melts ground for (xxx = s->x - (s->img->w/2) ; xxx < s->x + (s->img->w/2) ; xxx += TILEW) { tt = gettileat(xxx, s->y + 2 ,&tx,&ty); - if (tt->id == T_BRIDGE) { + if (isbridge(tt->id)) { melttile(tx,ty,REGROWTIMER_LONG); } } @@ -13638,9 +13638,20 @@ int countbabies(sprite_t *s, int babytype) { return numbabies; } +int isbridge(int id) { + switch (id) { + case T_BRIDGE: + case T_ICEBRIDGE: + return B_TRUE; + } + return B_FALSE; +} + + int isice(int id) { switch (id) { case T_ICE: + case T_ICEBRIDGE: case T_ICETOP: return B_TRUE; } diff --git a/rc.h b/rc.h index 93c0233..374a324 100644 --- a/rc.h +++ b/rc.h @@ -128,5 +128,6 @@ int getpnum(sprite_t *s); int isonplatform(double x, double y); int countbabies(sprite_t *s, int babytype); int isice(int id); +int isbridge(int id); int savebmp(SDL_Surface *which); void melttile(int tx,int ty, int howlong);