- help text now appears on top of sprites

- powerup counter is reset when you die
- fixed bug preventing jumping near a wall
- fixed bug: hurryup cloud shouldn't be able to teleport
- conveyor belts no longer affect fruits 
- editor now has delay after adding a sprite to prevent duplicate
- properly rendomized direction that monster corpses go in
- music now speeds up after a HURRYUP
- snakes can no longer walk up slopes
- added sound effects for HURRYUP and TOO SLOW
- getting all fruits on the level now makes gems shoot out sideways
- dead monsters now create a puff before turning into a fruit
This commit is contained in:
Rob Pearce 2008-09-27 06:02:42 +00:00
parent c80fb57c54
commit 89cce7f749
54 changed files with 995 additions and 271 deletions

36
defs.h
View File

@ -6,10 +6,26 @@
/* Macros */ /* Macros */
//#define OPENGL //#define OPENGL
// channel numbers
#define CH_LASTCHANNEL 21
#define CH_HURRYUP 20
// size of flower straem when getting last flower
// (number of gems on each side)
#define STREAMWID 6
// puff of smoke
#define PUFFFRAMES 6
#define PUFFSPEED 4 // how fast it animates (smaller = faster)
#define PUFFAPPEAR 4 // frame at which puff will turn into a gem
// text sizes // text sizes
#define TEXTSIZE_HELP 20 #define TEXTSIZE_HELP 20
#define TEXTSIZE_POINTS 10 #define TEXTSIZE_POINTS 10
#define TEXTSIZE_BONUS 20
#define TEXTSIZE_HURRY 50 #define TEXTSIZE_HURRY 50
// text delays // text delays
@ -17,6 +33,7 @@
// how long to keep various text on the screen // how long to keep various text on the screen
#define POINTSDELAY 40 #define POINTSDELAY 40
#define BONUSDELAY 50
#define HURRYDELAY 50 #define HURRYDELAY 50
#define LEVELDELAY 70 #define LEVELDELAY 70
#define HELPDELAY 80 #define HELPDELAY 80
@ -40,7 +57,7 @@
// Limits // Limits
#define MAXMAPPINGS 50 #define MAXMAPPINGS 50
#define MAXMONSTERSPERLEVEL 20 #define MAXMONSTERSPERLEVEL 40
#define MAXLETTERHEIGHT 100 #define MAXLETTERHEIGHT 100
#define MAXFRAMES 11 // max number of frames for sprites #define MAXFRAMES 11 // max number of frames for sprites
#define MAXHELP 5 #define MAXHELP 5
@ -63,7 +80,7 @@
/* enums */ /* enums */
/* sounds */ /* sounds */
#define MAXFX 9 #define MAXFX 12
#define FX_SHOOT 0 #define FX_SHOOT 0
#define FX_SLAM 1 #define FX_SLAM 1
#define FX_KILL 2 #define FX_KILL 2
@ -73,6 +90,9 @@
#define FX_POWERUP 6 #define FX_POWERUP 6
#define FX_DIE 7 #define FX_DIE 7
#define FX_WINLEVEL 8 #define FX_WINLEVEL 8
#define FX_HURRYUP 9
#define FX_TOOSLOW 10
#define FX_BONUS 11
// Slope types // Slope types
#define S_NOTSOLID 0 #define S_NOTSOLID 0
@ -80,7 +100,7 @@
#define S_SLOPE 2 #define S_SLOPE 2
// Sprite types // Sprite types
#define MAXPTYPES 19 #define MAXPTYPES 23
#define P_PLAYER 0 #define P_PLAYER 0
#define P_RAT 1 #define P_RAT 1
#define P_CHEESE 2 #define P_CHEESE 2
@ -100,6 +120,10 @@
#define P_FLOWERRED 16 #define P_FLOWERRED 16
#define P_FLOWERPURPLE 17 #define P_FLOWERPURPLE 17
#define P_COKE 18 #define P_COKE 18
#define P_GEMRED 19
#define P_PUFF 20
#define P_GEMYELLOW 21
#define P_GEMPURPLE 22
// Frame names // Frame names
#define F_WALK1 0 #define F_WALK1 0
@ -266,6 +290,9 @@ typedef struct sprite_s {
int bounces; // how many time have we bounced after dying int bounces; // how many time have we bounced after dying
int doomcount; // sprites dies when this reaches zero int doomcount; // sprites dies when this reaches zero
int moved; // did we move this loop cycle? int moved; // did we move this loop cycle?
int timer1; //
int timer2; //
int timer3; //
// GAME MECHANICS // GAME MECHANICS
@ -301,7 +328,8 @@ extern SDL_Color yellow;
extern int vidargs; extern int vidargs;
extern int toggletimer; extern int toggletimer;
extern TTF_Font *font[]; extern TTF_Font *font[];
extern Mix_Music *music; extern int musicplaying;
extern Mix_Music *music, *normalmusic, *fastmusic;
extern Mix_Chunk *sfx[]; extern Mix_Chunk *sfx[];

View File

@ -2,8 +2,9 @@
- in defs.h: add P_ entry - in defs.h: add P_ entry
- in shared.c: add score value in setdefaults if applicable - in shared.c: add score value in setdefaults if applicable
- in shared.c: add loadspriteimage() line(s) in loadimagesets() - in shared.c: add loadspriteimage() line(s) in loadimagesets()
- in shared.c: add entry to monstertochar - in shared.c: IF NOT AN EFFECT: add entry to monstertochar
- in shared.c: add entry to chartomonster - in shared.c: IF NOT AN EFFECT: add entry to chartomonster
- in shared.c: update isfruit(), isbullet() - in shared.c: update isflower(), isfruit(), isbullet(), iseffect();
- in shared.c: IF A GEM: update flowertogem()
- in rc.c: update ismonster() - in rc.c: update ismonster()
- in rc.c: add monster movement - in rc.c: add monster movement

8
doco/making_a_gem.txt Normal file
View File

@ -0,0 +1,8 @@
- grab gem from here:
http://www.geocities.com/joflo723/t_jewels.htm
- load into gimp, select gem with magic wand
- copy,paste as new (background should be transparent now!)
- scale to appropriate size

78
edit.c
View File

@ -208,28 +208,30 @@ int main (int argc, char **argv) {
y = (my / TILEH); y = (my / TILEH);
/* checks */ /* checks */
// can only have one player start pos if (toggletimer == 0) {
if (selsprite == P_PLAYER) { // can only have one player start pos
/* does a player start pos already exist? */ if (selsprite == P_PLAYER) {
sprite_t *s; /* does a player start pos already exist? */
for (s = sprite ; s ; s = s->next) { sprite_t *s;
if (s->id == P_PLAYER) { for (s = sprite ; s ; s = s->next) {
// if so, just move it if (s->id == P_PLAYER) {
s->x = x*TILEW+(TILEW/2); // if so, just move it
s->y = y*TILEH+TILEH; s->x = x*TILEW+(TILEW/2);
placed = B_TRUE; s->y = y*TILEH+TILEH;
modified = B_TRUE;
// get rid of old sprite
draweditorlevel();
}
}
} else { // is there a monster already there?
sprite_t *s;
for (s = sprite ; s ; s = s->next) {
if (s->id == selsprite) {
if ((s->x == x*TILEW+(TILEW/2)) && (s->y == y*TILEH+TILEH)) {
/* don't place it */
placed = B_TRUE; placed = B_TRUE;
modified = B_TRUE;
// get rid of old sprite
draweditorlevel();
}
}
} else { // is there a monster already there?
sprite_t *s;
for (s = sprite ; s ; s = s->next) {
if (s->id == selsprite) {
if ((s->x == x*TILEW+(TILEW/2)) && (s->y == y*TILEH+TILEH)) {
/* don't place it */
placed = B_TRUE;
}
} }
} }
} }
@ -239,11 +241,16 @@ int main (int argc, char **argv) {
if (!placed) { if (!placed) {
/* place selected sprite at mouse position /* place selected sprite at mouse position
(locked to a til) */ (locked to a til) */
addsprite(selsprite, x*TILEW+(TILEW/2),y*TILEH+TILEH,"something", B_TRUE); if (selsprite == P_HELP) {
addsprite(selsprite, x*TILEW+(TILEW/2),y*TILEH+TILEH,"FILL ME IN", B_TRUE);
} else {
addsprite(selsprite, x*TILEW+(TILEW/2),y*TILEH+TILEH,"something", B_TRUE);
}
toggletimer = 30;
modified = B_TRUE; modified = B_TRUE;
drawsprites();
} }
drawsprites();
} }
} }
} }
@ -277,6 +284,31 @@ int main (int argc, char **argv) {
modified = B_TRUE; modified = B_TRUE;
} }
} }
if (keys[SDLK_c]) {
if (toggletimer == 0) {
int offset,x,y;
/* clear all sprites */
while (sprite) {
killsprite(sprite);
}
/* clear level */
for (x = 0; x < LEVELW; x++) {
for (y = 0; y < LEVELH; y++) {
offset = y*LEVELW+x;
if ((x == 0) || (x == LEVELW-1)) {
curlevel->map[offset] = T_FULL;
} else if (y == LEVELH-1) {
curlevel->map[offset] = T_LAND;
} else {
curlevel->map[offset] = T_BLANK;
}
drawtile(screen,x,y);
}
}
}
}
/* next level */ /* next level */
if (keys[SDLK_RIGHT]) { if (keys[SDLK_RIGHT]) {

View File

@ -2,13 +2,15 @@
#define __GLOBALS_H #define __GLOBALS_H
/* global variables */ /* global variables */
int musicplaying;
SDL_Surface *temps; // temporary surface SDL_Surface *temps; // temporary surface
SDL_Surface *screen; // the actual video screen SDL_Surface *screen; // the actual video screen
sprite_t *sprite; // head of sprite linked list sprite_t *sprite; // head of sprite linked list
sprite_t *lastsprite; // tail of sprite linked list sprite_t *lastsprite; // tail of sprite linked list
sprite_t *player; // pointer to the player's sprite sprite_t *player; // pointer to the player's sprite
Mix_Music *music; Mix_Music *music, *fastmusic, *normalmusic;
Mix_Chunk *sfx[MAXFX]; Mix_Chunk *sfx[MAXFX];
level_t *curlevel; // the current level's data level_t *curlevel; // the current level's data

BIN
music/mainfast.mod Normal file

Binary file not shown.

BIN
newtiles/log1.5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 707 B

BIN
newtiles/log2.5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 708 B

BIN
newtiles/log3.5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 700 B

BIN
newtiles/log4.5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 B

BIN
newtiles/signleft.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

BIN
newtiles/signright.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 B

BIN
rc

Binary file not shown.

424
rc.c
View File

@ -24,26 +24,28 @@ SDL_Surface *temps;
SDL_Surface *screen; SDL_Surface *screen;
TTF_Font *font[MAXLETTERHEIGHT]; TTF_Font *font[MAXLETTERHEIGHT];
Mix_Music *curmusic = NULL; // pointer to currently playing music
char tempm[BUFLEN]; char tempm[BUFLEN];
tiletype_t fakeblock; tiletype_t fakeblock;
/* the order in which fruit will appear */ /* the order in which fruit will appear */
int fruittypes[] = { int fruittypes[] = {
2, P_CHEESE,
9, P_ICECREAM,
10, P_CHIPS,
11, P_BURGER,
-1 -1
}; };
/* the order in which powerups will appear */ /* the order in which powerups will appear */
int poweruptypes[] = { int poweruptypes[] = {
3, P_SPEED,
4, P_NUMNETS,
5, P_BIGNET,
4, P_NUMNETS,
-1 -1
}; };
@ -85,6 +87,7 @@ int main (int argc, char **argv) {
int *animtile; int *animtile;
curlevelnum = 1; curlevelnum = 1;
musicplaying = B_FALSE;
/* handle arguments */ /* handle arguments */
if (argc >= 2) { if (argc >= 2) {
@ -155,9 +158,6 @@ int main (int argc, char **argv) {
SDL_setFramerate(&manager, WANTFPS); SDL_setFramerate(&manager, WANTFPS);
if (loadlevel(curworld,curlevelnum)) {
return 1;
}
/* init sound */ /* init sound */
if (initsound()) { if (initsound()) {
@ -165,8 +165,10 @@ int main (int argc, char **argv) {
return 1; return 1;
} }
/* start music */ playmusic(normalmusic);
Mix_PlayMusic(music, -1); if (loadlevel(curworld,curlevelnum)) {
return 1;
}
drawlevel(); drawlevel();
@ -399,8 +401,6 @@ int main (int argc, char **argv) {
//} //}
checkcollide(player); checkcollide(player);
/* draw text */
drawtext();
drawscore(); drawscore();
@ -410,6 +410,8 @@ int main (int argc, char **argv) {
for (s = sprite ; s ; s = s->next) { for (s = sprite ; s ; s = s->next) {
drawsprite(s); drawsprite(s);
} }
/* draw text */
drawtext();
flip(); flip();
@ -435,6 +437,8 @@ void tick(void) {
/* once per second */ /* once per second */
if (fpsticks - fpsstart >= 1000) { if (fpsticks - fpsstart >= 1000) {
gtime++; gtime++;
/* */ /* */
if (gtime == curlevel->hurryuptime) { if (gtime == curlevel->hurryuptime) {
if (!levelcomplete) { if (!levelcomplete) {
@ -444,14 +448,18 @@ void tick(void) {
} }
} }
addtext(320,240,TEXTSIZE_HURRY, "Hurry up!", &yellow,HURRYDELAY); addtext(320,240,TEXTSIZE_HURRY, "Hurry up!", &yellow,HURRYDELAY);
stopmusic();
Mix_PlayChannel(CH_HURRYUP, sfx[FX_HURRYUP], 0);
} }
} } else if (gtime == curlevel->hurryuptime + 10) {
if (gtime == curlevel->hurryuptime + 10) {
if (!levelcomplete) { if (!levelcomplete) {
addsprite(P_CLOUD, 320,240,"cloud", B_FALSE); addsprite(P_CLOUD, 320,240,"cloud", B_FALSE);
addtext(320,240,TEXTSIZE_HURRY, "Too slow!", &red,HURRYDELAY); addtext(320,240,TEXTSIZE_HURRY, "Too slow!", &red,HURRYDELAY);
playfx(FX_TOOSLOW);
} }
} }
/* 5 seconds after level completion */ /* 5 seconds after level completion */
if (levelcomplete == 3) { if (levelcomplete == 3) {
@ -469,6 +477,9 @@ void tick(void) {
void nextlevel(void) { void nextlevel(void) {
/* go to next level */ /* go to next level */
curlevelnum++; curlevelnum++;
if (!musicplaying || (curmusic == fastmusic)) {
playmusic(normalmusic);
}
loadlevel(curworld,curlevelnum); loadlevel(curworld,curlevelnum);
drawlevel(); drawlevel();
levelcomplete = B_FALSE; levelcomplete = B_FALSE;
@ -513,6 +524,11 @@ void die(sprite_t *s) {
// this handles cases where the cloud hasn't appeared yet. // this handles cases where the cloud hasn't appeared yet.
if (s == player) { if (s == player) {
gtime = 0; gtime = 0;
if (curmusic == fastmusic) {
playmusic(normalmusic);
}
// reset powerup types
curpoweruptype = 0;
} }
if (s == player) { if (s == player) {
@ -602,7 +618,7 @@ void checkcollide(sprite_t *s) {
if ((xdiff <= s->img->w/2 + s2->img->w/2) && if ((xdiff <= s->img->w/2 + s2->img->w/2) &&
(ydiff <= s->img->h/2 + s2->img->h/2)) { (ydiff <= s->img->h/2 + s2->img->h/2)) {
/* COLLISION! */ /* COLLISION! */
if (isfruit(s2->id)) { if (isfruit(s2->id) && (s2->teleporting == 0)) {
if (s == player) { if (s == player) {
int gotscore = s2->score; int gotscore = s2->score;
@ -611,9 +627,7 @@ void checkcollide(sprite_t *s) {
/* give points to the player */ /* give points to the player */
player->score = player->score + gotscore; player->score = player->score + gotscore;
/* handle fruit effects */ /* handle fruit effects */
if (dofruiteffect(s2)) { if (!dofruiteffect(s2)) {
playfx(FX_POWERUP);
} else {
playfx(FX_FRUIT); playfx(FX_FRUIT);
sprintf(tempm, "%d", gotscore); sprintf(tempm, "%d", gotscore);
addtext(s2->x,s2->y - s2->img->h/2, TEXTSIZE_POINTS, tempm, &white,POINTSDELAY); addtext(s2->x,s2->y - s2->img->h/2, TEXTSIZE_POINTS, tempm, &white,POINTSDELAY);
@ -632,6 +646,43 @@ void checkcollide(sprite_t *s) {
} }
// do death bouncing effect
void bouncesprite(sprite_t *s) {
s->x += s->xs;
s->y += s->ys;
if (s->x >= (640-TILEW-(s->img->w/2))) {
// move back onto screen
while (s->x >= (640-TILEW-(s->img->w/2))) {
s->x--;
}
if (s->xs > 0) s->xs = -s->xs; // reverse direction
s->bounces++;
} else if (s->x <= TILEW+s->img->w/2) {
// move back onto screen
while (s->x <= TILEW+s->img->w/2) {
s->x++;
}
if (s->xs < 0) s->xs = -s->xs; // reverse direction
s->bounces++;
}
if (s->y >= (480-(s->img->h/2))) {
while (s->y >= (480-(s->img->h/2))) {
s->y--;
}
if (s->ys > 0) s->ys = -s->ys; // reverse direction
s->bounces++;
} else if (s->y <= s->img->h) {
while (s->y <= s->img->h) {
s->y++;
}
if (s->ys < 0) s->ys = -s->ys; // reverse direction
s->bounces++;
}
}
void movesprite(sprite_t *s) { void movesprite(sprite_t *s) {
int rv; int rv;
tiletype_t *tt; tiletype_t *tt;
@ -680,11 +731,14 @@ void movesprite(sprite_t *s) {
} }
return; return;
} else if (s->dead == D_INITIAL) { /* just set to dead */ } else if (s->dead == D_INITIAL) { /* just set to dead */
//s->xs = ((rand() % 7)) - 3;
// TODO: avoid straight up, also make this able // 0 through 5
// to be a float s->xs = 0.5 + ((rand() % 50) / 10); // 0.5 through 5.5
s->xs = ((rand() % 14) / 2) - 3; if (rand() % 2) { // 50% change of going left
s->ys = ((rand() % 3) + 3) * -1; s->xs = s->xs * -1;
}
s->ys = -1 * (4 + ((rand() % 30) / 10)); // -4 through -7
s->dead = D_BOUNCING; s->dead = D_BOUNCING;
s->bounces = 0; s->bounces = 0;
if (s == player) { if (s == player) {
@ -710,33 +764,17 @@ void movesprite(sprite_t *s) {
} }
} else { } else {
/* bounch around the screen 3 times */ /* bounch around the screen 3 times */
s->x += s->xs; bouncesprite(s);
s->y += s->ys;
if (s->x >= (640-TILEW-(s->img->w/2))) {
if (s->xs > 0) {
s->xs = -s->xs;
s->bounces++;
}
} else if (s->x <= TILEW+s->img->w/2) {
if (s->xs < 0) {
s->xs = -s->xs;
s->bounces++;
}
}
if (s->y >= (480-(s->img->h/2))) {
if (s->ys > 0) {
s->ys = -s->ys;
s->bounces++;
}
} else if (s->y <= s->img->h) {
if (s->ys < 0) {
s->ys = -s->ys;
s->bounces++;
}
}
if ((s->bounces >= 2) && (s->ys > 0)) { if ((s->bounces >= 2) && (s->ys > 0)) {
s->dead = D_LASTBOUNCE; // make sure we're not on the ground
if (!isonground(s)) {
int tx,ty;
tiletype_t *tt;
tt = gettileat(s->x,s->y,&tx,&ty);
printf("finished bouncing, sprite is at: %d, %d (tileid %d)\n",tx,ty,tt->id);
s->dead = D_LASTBOUNCE;
}
} }
} }
return; return;
@ -749,8 +787,8 @@ void movesprite(sprite_t *s) {
s->dead = D_FINAL; s->dead = D_FINAL;
} }
} else { /* bounce around, stop when we hit the ground */ } else { /* bounce around, stop when we hit the ground */
s->x += s->xs; bouncesprite(s);
s->y += s->ys; /* OLD BOUNCE CODE
if (s->x >= (640-TILEW- s->img->w/2)) { if (s->x >= (640-TILEW- s->img->w/2)) {
if (s->xs > 0) { if (s->xs > 0) {
s->xs = -s->xs; s->xs = -s->xs;
@ -774,6 +812,7 @@ void movesprite(sprite_t *s) {
s->bounces++; s->bounces++;
} }
} }
*/
if ((s->ys > 0) && (s->y >= TILEH)) { if ((s->ys > 0) && (s->y >= TILEH)) {
@ -783,13 +822,17 @@ void movesprite(sprite_t *s) {
/* change into a fruit */ /* change into a fruit */
x = s->x; x = s->x;
gettileat(s->x,s->y-1,NULL,&ty); gettileat(s->x,s->y-1,NULL,&ty);
y = ty*TILEH + TILEH - 2; //y = ty*TILEH + TILEH - 2;
y = ty*TILEH - 2;
/* make sure it's within the screen */ /* make sure it's within the screen */
if (x > (640-TILEW)) x = 640-TILEW; if (x > (640-TILEW)) x = 640-TILEW;
if (x < (TILEW)) x = TILEW; if (x < (TILEW)) x = TILEW;
addsprite(s->willbecome, x, y, "Fruit", B_FALSE); //addsprite(s->willbecome, x, y, "Fruit", B_FALSE);
puffin(s->willbecome, x, y, 0);
//ss = addsprite(P_PUFF, x, y, "Fruit", B_FALSE);
//ss->timer3 = s->willbecome;
} }
} }
@ -845,10 +888,12 @@ void movesprite(sprite_t *s) {
return; return;
} }
if (isonground(s)) { if (!iseffect(s->id)) {
if ((!s->falling) && (!s->jumping)) { if (isonground(s)) {
if (!s->climbing) { if ((!s->falling) && (!s->jumping)) {
adjustheight(s); if (!s->climbing && !s->dropping) {
adjustheight(s);
}
} }
} }
} }
@ -864,6 +909,42 @@ void movesprite(sprite_t *s) {
} else if (s->jumptimer % 20 == 0) { } else if (s->jumptimer % 20 == 0) {
s->dir = -s->dir; s->dir = -s->dir;
} }
} else if (s->id == P_PUFF) {
/* SUMMARY:
timer1:
indicates current frame. if < 0, don't draw.
if >= PUFFFRAMES, use last frame.
when timer1 gets to PUFFAPPEAR, create a gem
of type s->
timer2:
loops from 0 to 9.
at intervals of PUFFSPEED, increment timer1.
*/
// still delaying
if (s->timer1 < 0) {
// increment "frame"
s->timer1++;
} else {
// increment frame at a slower pace
if (++s->timer2 >= 10) {
s->timer2 = 0;
}
if (timer % PUFFSPEED == 0) {
s->timer1++;
// finished animating
if (s->timer1 == PUFFAPPEAR) {
// create a gem/fruit/etc
addsprite(s->timer3, s->x,s->y,"gem", B_FALSE);
} else if (s->timer1 >= PUFFFRAMES) {
s->dead = D_FINAL;
}
}
}
} else if (s->id == P_RAT) { } else if (s->id == P_RAT) {
if (!s->falling) { if (!s->falling) {
int move = B_FALSE; int move = B_FALSE;
@ -954,8 +1035,8 @@ void movesprite(sprite_t *s) {
/* if there's a hole in front of us */ /* if there's a hole in front of us */
if (tt->solid == S_NOTSOLID) { if (tt->solid == S_NOTSOLID) {
if (player->y > s->y ) { if (player->y > s->y ) {
/* if player is below, fall off */ /* if player is below and nearby, fall off */
if (xdiff <= (TILEW*12)) { if (xdiff <= (TILEW*16)) {
move = B_TRUE; move = B_TRUE;
} }
} else if (player->y == s->y) { } else if (player->y == s->y) {
@ -985,34 +1066,40 @@ void movesprite(sprite_t *s) {
/* moves like an angry rat all the time */ /* moves like an angry rat all the time */
if ((player->dead == 0) && (!s->jumping) && (!s->jumptimer)) { if ((player->dead == 0) && (!s->jumping) && (!s->jumptimer)) {
/* if player is above us, jump */ /* if player is above us...*/
if (player->y < s->y) { if (player->y < s->y) {
if ((xdiff >= (TILEW*2)) && (xdiff <= (TILEW*3))) { if ((xdiff >= (TILEW*2)) && (xdiff <= (TILEW*3))) { // if 2-3 tiles right
/* jump right */ /* jump right */
jump(s, D_RIGHT); jump(s, D_RIGHT);
} else if ((xdiff <= -(TILEW*2)) && (xdiff >= -(TILEW*3))) { } else if ((xdiff <= -(TILEW*2)) && (xdiff >= -(TILEW*3))) { // if 2-3 tiles left
/* jump left */ /* jump left */
jump(s, D_LEFT); jump(s, D_LEFT);
} else if (s->y - player->y <= (TILEH*6)) { } else if (s->y - player->y <= (TILEH*6)) { // player less than 6 tiles above
if ((xdiff >= 0) && (xdiff < (TILEW*2))) { if ((xdiff >= 0) && (xdiff < (TILEW*4))) { // ... and within 4 tiles
/* jump up */ /* jump up */
jump(s, 0); jump(s, 0);
} else if ((xdiff <= 0) && (xdiff > -(TILEW*2))) { } else if ((xdiff <= 0) && (xdiff > -(TILEW*4))) { // ... and within 4 tiles
/* jump up */ /* jump up */
jump(s, 0); jump(s, 0);
} }
} else {
/* jump whichever way we're facing */
/*
s->jumpdir = s->dir;
s->jumping = 1;
s->jumpspeed = 5;
*/
} }
} }
} }
} }
} else if (s->id == P_SNAKE) { } else if (s->id == P_SNAKE) {
/* timer1 loopsfrom 0 - 19
if timer2 is 0, we can shoot. if it is 1, we can't.
*/
// inc shooting timer
if (s->timer1) {
s->timer1--;
if (s->timer1 == 0) {
printf("can shoot again\n");
}
}
if (!s->falling) { if (!s->falling) {
int move = B_FALSE; int move = B_FALSE;
int xdiff, absxdiff,ydiff; int xdiff, absxdiff,ydiff;
@ -1052,7 +1139,8 @@ void movesprite(sprite_t *s) {
if (ydiff <= (TILEH*4)) { if (ydiff <= (TILEH*4)) {
sprite_t *ss; sprite_t *ss;
int shoot = B_FALSE; int shoot = B_FALSE;
if (s->bullet == NULL) { if (s->bullet == NULL) { // if we don't already have a bullet
// if we are facing the player
if ( (player->x < s->x) && (s->dir == D_LEFT) ) { if ( (player->x < s->x) && (s->dir == D_LEFT) ) {
shoot = B_TRUE; shoot = B_TRUE;
} else if ( (player->x > s->x) && (s->dir == D_RIGHT) ) { } else if ( (player->x > s->x) && (s->dir == D_RIGHT) ) {
@ -1060,13 +1148,19 @@ void movesprite(sprite_t *s) {
} }
} }
if (shoot) { if (shoot) {
ss = addsprite(P_SPIT,s->x,s->y - s->img->h/2,"spit", B_FALSE); // if our shooting timer is okay
ss->ys = 0; if (s->timer1 == 0) {
ss->xs = s->dir * (getspeed(s)*2); ss = addsprite(P_SPIT,s->x,s->y - s->img->h/2,"spit", B_FALSE);
ss->dir = s->dir; ss->ys = 0;
ss->owner = s; ss->xs = s->dir * (getspeed(s)*2);
ss->dir = s->dir;
ss->owner = s;
s->bullet = ss; s->bullet = ss;
// start timer for shooting again
s->timer1 = 200;
}
} }
} }
@ -1289,19 +1383,23 @@ void dotileeffects(sprite_t *s) {
/* check where we are */ /* check where we are */
tt = gettileat(s->x,s->y-2,NULL,NULL); tt = gettileat(s->x,s->y-2,NULL,NULL);
if ((tt->id == T_TELEPORT) || (tt->id == T_TELEPORT2)) { if ((tt->id == T_TELEPORT) || (tt->id == T_TELEPORT2)) {
s->teleporting = 1; if (s->id == P_PLAYER || ismonster(s->id)) {
if (s->id != P_CLOUD) {
s->teleporting = 1;
}
}
} }
/* check under us */ /* check under us */
tt = gettileat(s->x,s->y+3,NULL,NULL); tt = gettileat(s->x,s->y+3,NULL,NULL);
while (!finished) { while (!finished) {
if (tt->id == T_RIGHT) { if (tt->id == T_RIGHT) {
if (!ismonster(s->id)) { if (!ismonster(s->id) && !isfruit(s->id)) {
movex(s, 1.5); movex(s, 1.5);
} }
finished = B_TRUE; finished = B_TRUE;
} else if (tt->id == T_LEFT) { } else if (tt->id == T_LEFT) {
if (!ismonster(s->id)) { if (!ismonster(s->id) && !isfruit(s->id)) {
movex(s, -1.5); movex(s, -1.5);
} }
finished = B_TRUE; finished = B_TRUE;
@ -1746,9 +1844,9 @@ int isroofnabove(sprite_t *s, int howfar) {
/* get tile above sprite's head */ /* get tile above sprite's head */
tt = gettileat(s->x, ypos,NULL,NULL); tt = gettileat(s->x, ypos,NULL,NULL);
if (tt->solid) return B_TRUE; if (tt->solid) return B_TRUE;
tt = gettileat(s->x + s->img->w/2, ypos,NULL,NULL); tt = gettileat(s->x + (s->img->w/2 - 2), ypos,NULL,NULL);
if (tt->solid) return B_TRUE; if (tt->solid) return B_TRUE;
tt = gettileat(s->x - s->img->w/2, ypos,NULL,NULL); tt = gettileat(s->x - (s->img->w/2 - 2), ypos,NULL,NULL);
if (tt->solid) return B_TRUE; if (tt->solid) return B_TRUE;
return B_FALSE; return B_FALSE;
@ -1759,7 +1857,7 @@ int isonground(sprite_t *s) {
if (isongroundpoint(s, s->x, s->y)) { if (isongroundpoint(s, s->x, s->y)) {
return B_TRUE; return B_TRUE;
} }
if (!s->falling && !s->dropping) { if ((s->dead) || (!s->falling && !s->dropping)) {
if (isongroundpoint(s, s->x + s->img->w/2, s->y)) { if (isongroundpoint(s, s->x + s->img->w/2, s->y)) {
return B_TRUE; return B_TRUE;
} }
@ -1780,6 +1878,11 @@ int isongroundpoint(sprite_t *s, int x,int y) {
tt = gettileat(x,y, &tilex, &tiley); tt = gettileat(x,y, &tilex, &tiley);
// slope etc doesn't matter if you're dead
if (s->dead && tt->solid) {
return B_TRUE;
}
// when dropping, the tile you dropped from doesn't count // when dropping, the tile you dropped from doesn't count
// as "ground". // as "ground".
if (s->dropping && (tilex == s->dropx) && (tiley == s->dropy)) { if (s->dropping && (tilex == s->dropx) && (tiley == s->dropy)) {
@ -1834,6 +1937,7 @@ void dogravity(sprite_t *s) {
if (s->dead) return; if (s->dead) return;
if (s->flies) return; if (s->flies) return;
if (iseffect(s->id)) return;
if (isbullet(s->id)) return; if (isbullet(s->id)) return;
@ -1867,6 +1971,7 @@ void dogravity(sprite_t *s) {
} else { } else {
if (isonground(s) ) { if (isonground(s) ) {
s->dropping = B_FALSE;
s->falling = B_FALSE; s->falling = B_FALSE;
s->climbing = B_FALSE; s->climbing = B_FALSE;
} else { } else {
@ -1935,18 +2040,13 @@ void dogravity(sprite_t *s) {
xnet = s2->x; xnet = s2->x;
ynet = s2->y - s2->img->h/2; ynet = s2->y - s2->img->h/2;
gotsomething = B_TRUE; gotsomething++;
} else { } else {
/* otherwise it gets angry */ /* otherwise it gets angry */
s2->angry = B_TRUE; s2->angry = B_TRUE;
} }
} }
} }
if (gotsomething) {
playfx(FX_KILL);
}
gotsomething = B_FALSE;
/* kill anything we hit */ /* kill anything we hit */
for (s2 = sprite; s2 ; s2 = s2->next) { for (s2 = sprite; s2 ; s2 = s2->next) {
@ -1958,7 +2058,7 @@ void dogravity(sprite_t *s) {
if ((xdiff <= s2->img->w) && (ydiff <= s2->img->h)) { if ((xdiff <= s2->img->w) && (ydiff <= s2->img->h)) {
if (s2->id != P_CLOUD) { if (s2->id != P_CLOUD) {
/* becomes a powerup */ /* dies and becomes a powerup */
s2->willbecome = poweruptypes[curpoweruptype]; s2->willbecome = poweruptypes[curpoweruptype];
if (poweruptypes[++curpoweruptype] == -1) { if (poweruptypes[++curpoweruptype] == -1) {
curpoweruptype = 0; curpoweruptype = 0;
@ -1967,16 +2067,22 @@ void dogravity(sprite_t *s) {
pointsinc *= 2; pointsinc *= 2;
psize += 10; psize += 10;
gotsomething = B_TRUE; gotsomething++;
} }
} }
} }
} }
if (gotsomething) { if (gotsomething >= 1) {
playfx(FX_KILL);
}
if (gotsomething > 1) {
playfx(FX_MULTIKILL); playfx(FX_MULTIKILL);
} }
gotsomething = B_FALSE;
/* release anything we've caught */ /* release anything we've caught */
for (s2 = sprite; s2 ; s2 = s2->next) { for (s2 = sprite; s2 ; s2 = s2->next) {
if (s2->caughtby == s) { if (s2->caughtby == s) {
@ -2031,6 +2137,9 @@ int movex(sprite_t *s,double amt) {
if (tt2->solid == S_SOLID) { if (tt2->solid == S_SOLID) {
return B_TRUE; return B_TRUE;
} }
if (tt2->solid == S_SLOPE && (!candoslopes(s->id))) {
return B_TRUE;
}
/* get new position */ /* get new position */
newx = curx + amt; newx = curx + amt;
@ -2042,7 +2151,7 @@ int movex(sprite_t *s,double amt) {
/* new block is at least partially solid */ /* new block is at least partially solid */
if (tt2->solid == S_SOLID) { if (tt2->solid == S_SOLID) {
return B_TRUE; return B_TRUE;
} else if (tt2->solid == S_SLOPE) { } else if ((tt2->solid == S_SLOPE) && candoslopes(s->id)) {
/* we can move, but need to adjust our height */ /* we can move, but need to adjust our height */
s->x += amt; s->x += amt;
} else { } else {
@ -2059,7 +2168,7 @@ void adjustheight(sprite_t *s) {
int xoff,groundy; int xoff,groundy;
int tilex,tiley; int tilex,tiley;
if (s->flies) { if ((s->flies) || isbullet(s->id)) {
return; return;
} }
@ -2079,10 +2188,12 @@ void adjustheight(sprite_t *s) {
int dofruiteffect(sprite_t *s) { int dofruiteffect(sprite_t *s) {
if (s->id == P_SPEED) { if (s->id == P_SPEED) {
playfx(FX_POWERUP);
player->speed = 2; player->speed = 2;
addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, "Speed up!", &white,POINTSDELAY); addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, "Speed up!", &white,POINTSDELAY);
return B_TRUE; return B_TRUE;
} else if (s->id == P_NUMNETS) { } else if (s->id == P_NUMNETS) {
playfx(FX_POWERUP);
if (player->netmax < 4) { if (player->netmax < 4) {
player->netmax++; player->netmax++;
} }
@ -2090,13 +2201,67 @@ int dofruiteffect(sprite_t *s) {
addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY); addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY);
return B_TRUE; return B_TRUE;
} else if (s->id == P_BIGNET) { } else if (s->id == P_BIGNET) {
playfx(FX_POWERUP);
player->netbig = B_TRUE; player->netbig = B_TRUE;
sprintf(tempm, "Big net!"); sprintf(tempm, "Big net!");
addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY); addtext(s->x,s->y - s->img->h/2, TEXTSIZE_POINTS, tempm,&white,POINTSDELAY);
return B_TRUE; return B_TRUE;
} else if (s->id == P_HELP) { } else if (s->id == P_HELP) {
playfx(FX_POWERUP);
addtext(320,240,TEXTSIZE_HELP, s->name, &white,HELPDELAY); addtext(320,240,TEXTSIZE_HELP, s->name, &white,HELPDELAY);
return B_TRUE; return B_TRUE;
} else if (isflower(s->id)) {
int xx;
sprite_t *ss;
tiletype_t *tt;
int found = B_FALSE;
/* was this the last fruit of its kind on the level? */
for (ss = sprite; ss; ss = ss->next) {
if ((ss != s) && (ss->id == s->id)) {
found = B_TRUE;
}
}
/* if so, create a left/right stream of flowers */
if (!found) {
int howmany = STREAMWID + 1;
int puffdelay;
// RIGHT
puffdelay = 0;
for (xx = s->x+TILEW; xx < s->x + (TILEW*howmany); xx += TILEW) {
// if on a wall, exit
tt = gettileat(xx,s->y-TILEH,NULL,NULL);
if (tt->solid) {
break;
}
/* create a flower */
puffin(flowertogem(s->id), xx, s->y, puffdelay);
//ss = addsprite(P_PUFF, xx,s->y,"puff", B_FALSE);
//ss->timer1 = -puffdelay;
//ss->timer3 = flowertogem(s->id);
puffdelay += 1;
}
// LEFT
puffdelay = 0;
for (xx = s->x+TILEW; xx > s->x - (TILEW*howmany); xx -= TILEW) {
// if on a wall, exit
tt = gettileat(xx,s->y-TILEH,NULL,NULL);
if (tt->solid) {
break;
}
puffin(flowertogem(s->id), xx, s->y, puffdelay);
//ss = addsprite(P_PUFF, xx,s->y,"puff", B_FALSE);
//ss->timer1 = -puffdelay;
//ss->timer3 = flowertogem(s->id);
puffdelay += 1;
}
playfx(FX_BONUS);
sprintf(tempm, "BONUS!");
addtext(s->x,s->y - s->img->h/2, TEXTSIZE_BONUS, tempm,&white,BONUSDELAY);
return B_TRUE;
}
} }
return B_FALSE; return B_FALSE;
@ -2165,6 +2330,8 @@ int initsound(void) {
return B_TRUE; return B_TRUE;
} }
Mix_AllocateChannels(CH_LASTCHANNEL);
loadfx(FX_SHOOT, "shoot.wav"); loadfx(FX_SHOOT, "shoot.wav");
loadfx(FX_SLAM, "slam.wav"); loadfx(FX_SLAM, "slam.wav");
loadfx(FX_KILL, "kill.wav"); loadfx(FX_KILL, "kill.wav");
@ -2174,6 +2341,9 @@ int initsound(void) {
loadfx(FX_POWERUP, "powerup.wav"); loadfx(FX_POWERUP, "powerup.wav");
loadfx(FX_DIE, "die.wav"); loadfx(FX_DIE, "die.wav");
loadfx(FX_WINLEVEL, "winlevel.wav"); loadfx(FX_WINLEVEL, "winlevel.wav");
loadfx(FX_HURRYUP, "hurryup.wav");
loadfx(FX_TOOSLOW, "tooslow.wav");
loadfx(FX_BONUS, "bonus.wav");
// load sound effects // load sound effects
@ -2183,16 +2353,66 @@ int initsound(void) {
} }
} }
// set up callback
Mix_ChannelFinished(channeldone);
// load music // load music
music = Mix_LoadMUS("music/main.mod"); normalmusic = Mix_LoadMUS("music/main.mod");
if (!music) { if (!normalmusic) {
printf("can't load music\n"); printf("can't load music\n");
return B_TRUE; return B_TRUE;
} }
fastmusic = Mix_LoadMUS("music/mainfast.mod");
if (!fastmusic) {
printf("can't load fast music\n");
return B_TRUE;
}
return B_FALSE; return B_FALSE;
} }
void playfx(int num) { void playfx(int num) {
Mix_PlayChannel(-1, sfx[num], 0); Mix_PlayChannel(-1, sfx[num], 0);
} }
void playmusic(Mix_Music *toplay) {
/* stop music */
if (musicplaying) {
Mix_HaltMusic();
}
/* start music */
//music = toplay;
Mix_PlayMusic(toplay, -1);
curmusic = toplay;
musicplaying = B_TRUE;
}
void stopmusic(void) {
/* stop music */
if (musicplaying) {
Mix_HaltMusic();
}
musicplaying = B_FALSE;
curmusic = NULL;
}
// callback for sound effects finishing
void channeldone(int channel) {
if (channel == CH_HURRYUP) {
// start fast music
playmusic(fastmusic);
}
}
void puffin(int willbecome, int x, int y, int delay) {
sprite_t *ss;
ss = addsprite(P_PUFF, x, y, "puff", B_FALSE);
ss->timer3 = willbecome;
ss->timer1 = -delay;
}

5
rc.h
View File

@ -13,6 +13,7 @@ void drawnetting(sprite_t *s);
void dogravity(sprite_t *s); void dogravity(sprite_t *s);
void dotileeffects(sprite_t *s); void dotileeffects(sprite_t *s);
int movex(sprite_t *s,double amt); int movex(sprite_t *s,double amt);
void bouncesprite(sprite_t *s);
void movesprite(sprite_t *s); void movesprite(sprite_t *s);
int isinwater(sprite_t *s); int isinwater(sprite_t *s);
int isroofabove(sprite_t *s); int isroofabove(sprite_t *s);
@ -37,3 +38,7 @@ int canturn(sprite_t *pl);
int initsound(void); int initsound(void);
int loadfx(int sid, char *filename); int loadfx(int sid, char *filename);
void playfx(int num); void playfx(int num);
void playmusic(Mix_Music *toplay);
void stopmusic(void);
void channeldone(int channel);
void puffin(int willbecome, int x, int y, int delay);

109
shared.c
View File

@ -555,6 +555,9 @@ void setdefaults(sprite_t *s) {
s->jumping = 0; s->jumping = 0;
s->jumpspeed = 0; s->jumpspeed = 0;
s->jumpdir = 1; s->jumpdir = 1;
s->timer1 = 0;
s->timer2 = 0;
s->timer3 = 0;
s->netting = 0; s->netting = 0;
s->netmax = 1; s->netmax = 1;
s->netcaught = 0; s->netcaught = 0;
@ -600,15 +603,24 @@ void setdefaults(sprite_t *s) {
case P_BURGER: case P_BURGER:
s->score = 400; s->score = 400;
break; break;
case P_FLOWERRED: case P_FLOWERYELLOW:
s->score = 5; s->score = 5;
break; break;
case P_FLOWERYELLOW: case P_FLOWERRED:
s->score = 10; s->score = 10;
break; break;
case P_FLOWERPURPLE: case P_FLOWERPURPLE:
s->score = 30; s->score = 30;
break; break;
case P_GEMYELLOW:
s->score = 50;
break;
case P_GEMRED:
s->score = 75;
break;
case P_GEMPURPLE:
s->score = 100;
break;
default: default:
s->score = 0; s->score = 0;
break; break;
@ -945,6 +957,22 @@ int loadimagesets(void) {
loadspriteimage(P_FLOWERPURPLE,F_WALK1, "sprites/flower-purple.png"); loadspriteimage(P_FLOWERPURPLE,F_WALK1, "sprites/flower-purple.png");
imageset[P_FLOWERPURPLE].numimages = 1; imageset[P_FLOWERPURPLE].numimages = 1;
loadspriteimage(P_GEMYELLOW,F_WALK1, "sprites/gem-yellow.png");
imageset[P_GEMYELLOW].numimages = 1;
loadspriteimage(P_GEMRED,F_WALK1, "sprites/gem-red.png");
imageset[P_GEMRED].numimages = 1;
loadspriteimage(P_GEMPURPLE,F_WALK1, "sprites/gem-purple.png");
imageset[P_GEMPURPLE].numimages = 1;
for (i = 0; i < PUFFFRAMES; i++) {
char name[SMALLBUFLEN];
sprintf(name, "sprites/puff%d.png",i);
loadspriteimage(P_PUFF,i, name);
}
imageset[P_PUFF].numimages = PUFFFRAMES;
/* bullets */ /* bullets */
loadspriteimage(P_SPIT,F_WALK1, "sprites/spit.bmp"); loadspriteimage(P_SPIT,F_WALK1, "sprites/spit.bmp");
imageset[P_SPIT].numimages = 1; imageset[P_SPIT].numimages = 1;
@ -955,7 +983,7 @@ int loadimagesets(void) {
/* generate rotated/flipped images */ /* generate rotated/flipped images */
for (p = 0; p < MAXPTYPES; p++) { for (p = 0; p < MAXPTYPES; p++) {
/* rotated */ /* rotated */
if (!isfruit(p) && !isbullet(p)) { if (!isfruit(p) && !isbullet(p) && !iseffect(p)) {
tempimg = rotozoomSurface(imageset[p].img[F_DEAD],90,1,0); tempimg = rotozoomSurface(imageset[p].img[F_DEAD],90,1,0);
imageset[p].img[F_DEAD2] = SDL_DisplayFormat(tempimg); imageset[p].img[F_DEAD2] = SDL_DisplayFormat(tempimg);
@ -1044,6 +1072,17 @@ void drawsprite(sprite_t *s) {
frame = F_WALK1; frame = F_WALK1;
} else if (isbullet(s->id)) { } else if (isbullet(s->id)) {
frame = F_WALK1; frame = F_WALK1;
} else if (iseffect(s->id)) {
if (s->id == P_PUFF) {
if (s->timer1 >= PUFFFRAMES) {
frame = PUFFFRAMES-1;
} else if (s->timer1 < 0) {
// don't draw
return;
} else {
frame = s->timer1;
}
}
} else if (s->dead) { } else if (s->dead) {
if (s == player) { if (s == player) {
frame = F_DEAD; frame = F_DEAD;
@ -1193,16 +1232,23 @@ int gettileframecount(int tid) {
return tt->numframes; return tt->numframes;
} }
int isfruit(int id) { // returns gem type for a given flower
int flowertogem(int id) {
switch (id) {
case P_FLOWERRED:
return P_GEMRED;
case P_FLOWERYELLOW:
return P_GEMYELLOW;
case P_FLOWERPURPLE:
return P_GEMPURPLE;
}
return P_GEMRED;
}
int isflower(int id) {
switch (id) { switch (id) {
case P_CHEESE:
case P_ICECREAM:
case P_CHIPS:
case P_BURGER:
case P_SPEED:
case P_NUMNETS:
case P_BIGNET:
case P_HELP:
case P_FLOWERRED: case P_FLOWERRED:
case P_FLOWERYELLOW: case P_FLOWERYELLOW:
case P_FLOWERPURPLE: case P_FLOWERPURPLE:
@ -1213,12 +1259,41 @@ int isfruit(int id) {
return B_FALSE; return B_FALSE;
} }
int isfruit(int id) {
switch (id) {
case P_CHEESE:
case P_ICECREAM:
case P_CHIPS:
case P_BURGER:
case P_SPEED:
case P_NUMNETS:
case P_BIGNET:
case P_HELP:
case P_FLOWERYELLOW:
case P_FLOWERRED:
case P_FLOWERPURPLE:
case P_GEMYELLOW:
case P_GEMRED:
case P_GEMPURPLE:
return B_TRUE;
}
return B_FALSE;
}
int isbullet(int id) { int isbullet(int id) {
if (id == P_SPIT) return B_TRUE; if (id == P_SPIT) return B_TRUE;
return B_FALSE; return B_FALSE;
} }
int iseffect(int id) {
if (id == P_PUFF) return B_TRUE;
return B_FALSE;
}
inline void drawpixel16(SDL_Surface *screen, int x, int y, SDL_Color c) inline void drawpixel16(SDL_Surface *screen, int x, int y, SDL_Color c)
{ {
@ -1375,6 +1450,7 @@ int chartomonster(char ch) {
case 'Y': return P_FLOWERYELLOW; case 'Y': return P_FLOWERYELLOW;
case 'P': return P_FLOWERPURPLE; case 'P': return P_FLOWERPURPLE;
case 'C': return P_COKE; case 'C': return P_COKE;
case '*': return P_GEMRED;
} }
return -1; return -1;
@ -1392,6 +1468,7 @@ char monstertochar(int id ) {
case P_FLOWERYELLOW: return 'Y'; case P_FLOWERYELLOW: return 'Y';
case P_FLOWERPURPLE: return 'P'; case P_FLOWERPURPLE: return 'P';
case P_COKE: return 'C'; case P_COKE: return 'C';
case P_GEMRED: return '*';
} }
return '\0'; return '\0';
@ -1466,3 +1543,11 @@ SDL_Surface *loadspriteimage(int spriteid, int frame, char *filename) {
} }
return imageset[spriteid].img[frame]; return imageset[spriteid].img[frame];
} }
int candoslopes(int sid) {
switch(sid) {
case P_SNAKE:
return B_FALSE;
}
return B_TRUE;
}

View File

@ -17,6 +17,10 @@ void killsprite(sprite_t *s);
void drawsprite(sprite_t *s); void drawsprite(sprite_t *s);
int gettileframecount(int tid); int gettileframecount(int tid);
int isfruit(int id); int isfruit(int id);
int isflower(int id);
int iseffect(int id);
int candoslopes(int sid);
int flowertogem(int id);
inline void drawpixel16(SDL_Surface *screen, int x, int y, SDL_Color c); inline void drawpixel16(SDL_Surface *screen, int x, int y, SDL_Color c);
inline void drawpixel32(SDL_Surface *screen, int x, int y, SDL_Color c); inline void drawpixel32(SDL_Surface *screen, int x, int y, SDL_Color c);
inline void drawbox16(SDL_Surface *screen, int x1,int y1,int x2,int y2,SDL_Color *c,SDL_Color *fc); inline void drawbox16(SDL_Surface *screen, int x1,int y1,int x2,int y2,SDL_Color *c,SDL_Color *fc);

BIN
sounds/bonus.au Normal file

Binary file not shown.

BIN
sounds/bonus.wav Normal file

Binary file not shown.

BIN
sounds/hurryup.wav Normal file

Binary file not shown.

BIN
sounds/multikill-old1.wav Normal file

Binary file not shown.

Binary file not shown.

BIN
sounds/tooslow.wav Normal file

Binary file not shown.

BIN
sprites/birthstones.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
sprites/coke.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

BIN
sprites/cokecaught.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

BIN
sprites/cokedead.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

BIN
sprites/cokejump.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 392 B

BIN
sprites/dwarfshoot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
sprites/flower-purple.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 B

BIN
sprites/flower-yellow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

BIN
sprites/gem-purple.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 674 B

BIN
sprites/gem-red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

BIN
sprites/gem-yellow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

BIN
sprites/puff0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 B

BIN
sprites/puff1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

BIN
sprites/puff2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 921 B

BIN
sprites/puff3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 873 B

BIN
sprites/puff4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 959 B

BIN
sprites/puff5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 929 B

58
world1/BAK Normal file
View File

@ -0,0 +1,58 @@
tileset green
bg 0
hurryup 30
endmaps
help
Use X to jump, Z to catch the rat.
Once caught, Down+Z will slam and kill a monster!
endhelp
monsters
1 3 19
? 7 19
? 12 19
@ 16 14
@ 30 15
@ 31 15
P 21 15
@ 22 15
@ 20 15
Y 23 15
Y 19 15
P 36 14
Y 2 15
Y 1 15
Y 24 19
Y 22 19
Y 20 19
r 18 15
endmonsters
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,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,18,19,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,19,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,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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,4,
4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,4,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,4,4,4,4,4,4,4,
4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,

34
world1/ORIG.level15.dat Normal file
View File

@ -0,0 +1,34 @@
tileset green
bg 0
hurryup 30
endmaps
****************************************
*000000s00*0000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000a00*
*00000000000000000000000000000000000000*
*0a000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000a00000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*10000000000a0000000000000000a000000000*
***000>>>>>000>>>>>>>>>>>>>>000<<<<<<00*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

39
world1/blank.dat Normal file
View File

@ -0,0 +1,39 @@
tileset green
bg 0
hurryup 30
endmaps
help
endhelp
monsters
1 3 28
endmonsters
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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,

View File

@ -10,7 +10,6 @@ monsters
1 3 19 1 3 19
? 7 19 ? 7 19
? 12 19 ? 12 19
@ 16 14
@ 30 15 @ 30 15
@ 31 15 @ 31 15
P 21 15 P 21 15
@ -18,17 +17,20 @@ P 21 15
@ 20 15 @ 20 15
Y 23 15 Y 23 15
Y 19 15 Y 19 15
P 36 14
Y 2 15 Y 2 15
Y 1 15 Y 1 15
Y 24 19 Y 24 19
Y 22 19 Y 22 19
Y 20 19 Y 20 19
r 18 15 r 27 15
P 36 14
Y 34 19
@ 35 19
P 36 19
endmonsters endmonsters
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,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,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,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,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,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,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,18,19,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,18,19,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
@ -40,13 +42,13 @@ endmonsters
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,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,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,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,4,
4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,4, 4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,4,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,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,4,4,4,4,4,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,1,1,1,1,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,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,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,

45
world1/level10.dat Normal file
View File

@ -0,0 +1,45 @@
tileset green
bg 0
hurryup 30
endmaps
help
endhelp
monsters
1 5 26
C 28 26
C 35 3
C 16 14
r 36 9
r 2 3
S 17 22
endmonsters
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,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,1,1,1,0,0,0,0,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,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,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,1,1,1,1,1,1,1,1,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,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,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,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,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,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,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,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,4,1,20,21,21,21,21,20,1,1,1,1,1,4,4,1,1,20,21,21,21,21,21,20,20,20,20,20,1,1,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,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,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,20,20,20,20,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,4,
4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,3,0,0,0,0,0,0,4,
4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,3,0,0,0,0,0,4,
4,0,0,0,0,0,0,0,4,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,3,0,0,0,0,4,
4,20,20,20,20,0,0,0,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,1,1,8,1,4,
4,0,0,0,0,0,0,0,4,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,7,4,4,
4,0,0,0,0,0,0,0,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,7,4,4,
4,0,0,0,0,0,0,0,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,7,4,4,
4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,4,4,

46
world1/level11.dat Normal file
View File

@ -0,0 +1,46 @@
tileset green
bg 0
hurryup 30
endmaps
help
endhelp
monsters
1 3 28
C 33 7
C 11 13
r 13 5
r 19 21
r 7 17
S 28 24
s 23 1
endmonsters
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,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,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,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,1,1,20,20,21,21,21,21,22,22,22,22,22,22,21,21,21,20,20,1,1,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,1,1,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,1,1,20,20,21,21,21,20,20,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
4,0,0,0,0,0,1,1,20,20,21,21,21,21,22,22,22,22,22,22,21,21,21,20,20,1,1,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,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,1,1,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,1,1,20,20,20,21,21,21,22,22,22,22,22,22,21,21,21,21,20,20,20,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
4,0,0,0,1,20,20,20,20,20,20,20,20,20,20,20,20,20,1,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,2,1,1,1,1,1,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,2,4,4,4,4,4,4,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,2,4,4,4,4,4,4,4,0,0,0,0,0,0,4,
4,0,0,0,0,0,0,1,1,1,20,20,20,20,20,20,20,20,20,20,20,1,1,1,1,4,4,4,4,4,4,4,4,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
1,1,1,1,20,20,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,22,22,22,22,21,21,21,21,21,20,20,20,20,20,20,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,

View File

@ -6,6 +6,7 @@ help
Slam a monster onto another for a powerup. Slam a monster onto another for a powerup.
Grab this monster, but don't kill it yet... Grab this monster, but don't kill it yet...
Stand on this ledge then slam! Stand on this ledge then slam!
Collect all flowers for a bonus!
endhelp endhelp
monsters monsters
1 4 10 1 4 10
@ -18,19 +19,22 @@ Y 15 8
Y 19 8 Y 19 8
Y 32 8 Y 32 8
Y 36 8 Y 36 8
@ 28 9 Y 28 9
r 9 4
? 27 4
Y 20 4
endmonsters endmonsters
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,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,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,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,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,18,23,19,0,0,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,0,0,0,0,18,23,19,0,0,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,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,4, 4,4,4,4,4,4,4,0,0,0,0,0,0,1,1,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,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,4, 4,4,4,4,4,4,4,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,3,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,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,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,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,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,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,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,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,4,
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,1,0,0,0,4,1,1,1,4,0,0,4, 4,0,0,0,0,0,0,0,0,5,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,5,1,6,0,0,4,1,1,1,4,0,0,4,
4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,1,1,4, 4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,1,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,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,

View File

@ -1,11 +1,13 @@
tileset green tileset green
bg 0 bg 0
hurryup 30 hurryup 40
endmaps endmaps
help help
You can walk through spikes safely.
But don't fall on them!
endhelp endhelp
monsters monsters
1 4 28 1 4 27
r 19 15 r 19 15
r 5 7 r 5 7
r 35 7 r 35 7
@ -27,51 +29,12 @@ r 4 23
@ 37 7 @ 37 7
@ 37 23 @ 37 23
@ 2 23 @ 2 23
@ 18 28 ? 10 19
@ 18 28 ? 16 19
@ 18 28
@ 18 28
@ 18 28
@ 18 28
@ 18 28
@ 18 28
@ 18 28
@ 19 28
@ 20 28
@ 20 28
@ 20 28
@ 21 28
@ 21 28
@ 21 28
@ 21 28
@ 21 28
@ 22 28
@ 22 28
@ 22 28
@ 22 28
@ 22 28
@ 22 28
@ 22 28
@ 22 28
@ 22 28
@ 22 28
@ 23 28
@ 23 28
@ 23 28
@ 23 28
@ 23 28
@ 23 28
@ 23 28
@ 23 28
@ 23 28
@ 17 28
@ 17 28
@ 16 28
@ 16 28
endmonsters endmonsters
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,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,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,18,23,23,23,23,19,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
@ -84,7 +47,7 @@ endmonsters
4,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,23,19,0,0,0,4,
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,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,1,1,1,1,1,1,1,1,1,1,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
@ -96,6 +59,6 @@ endmonsters
4,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,4, 4,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,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,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,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,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,6,11,11,5,0,0,0,0,0,0,0,0,0,0,0,0,6,11,11,5,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,1,4,4,4,4,

View File

@ -1,8 +1,9 @@
tileset green tileset green
bg 0 bg 0
hurryup 30 hurryup 120
endmaps endmaps
help help
Drop through bridges with Down+X
endhelp endhelp
monsters monsters
1 17 8 1 17 8
@ -30,13 +31,14 @@ Y 15 24
Y 6 24 Y 6 24
P 8 4 P 8 4
@ 26 8 @ 26 8
? 21 8
endmonsters endmonsters
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,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,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,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,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,1,20,20,21,21,21,21,21,21,21,21,20,20,1,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
@ -44,19 +46,19 @@ endmonsters
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,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,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,4, 4,0,0,0,1,20,20,21,21,21,21,21,21,21,21,20,20,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,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,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,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,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,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,4, 4,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,20,20,20,20,20,20,20,20,20,20,20,20,1,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,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,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,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,4, 4,0,0,0,1,20,20,21,21,21,21,21,21,21,21,20,20,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,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,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,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,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,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,4, 4,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,20,20,21,21,21,21,21,21,21,21,20,20,1,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,

View File

@ -60,7 +60,7 @@ endmonsters
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,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,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,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,

81
world1/level6.bad Normal file
View File

@ -0,0 +1,81 @@
tileset green
bg 0
hurryup 30
endmaps
help
Rolling logs will push you along.
endhelp
monsters
P 19 1
P 20 1
P 21 1
Y 8 21
Y 31 21
Y 29 21
Y 27 21
Y 10 21
Y 12 21
@ 23 13
@ 16 13
Y 26 13
P 18 1
Y 13 13
@ 22 5
@ 17 5
@ 19 9
@ 20 9
Y 16 9
Y 23 9
Y 15 9
Y 24 9
Y 16 17
Y 17 17
Y 22 17
Y 23 17
Y 24 17
Y 25 17
Y 14 17
Y 15 17
@ 20 17
@ 19 17
P 16 5
P 23 5
1 2 25
? 6 21
r 21 17
r 18 9
r 11 21
r 28 13
r 19 5
C 20 1
endmonsters
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,0,0,1,1,1,1,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,18,19,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,18,19,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,1,1,9,9,9,9,1,1,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,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,1,1,20,20,20,20,20,20,20,20,1,1,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,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,1,1,1,1,1,1,10,10,10,10,10,10,1,1,1,1,1,1,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,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,1,20,20,20,20,20,1,1,1,1,1,1,1,1,1,1,1,1,20,20,20,20,20,1,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,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,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,1,1,1,1,1,1,1,1,1,1,1,1,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,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
4,4,4,4,4,4,4,4,4,4,4,4,4,16,16,16,16,16,16,16,16,16,16,16,16,16,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,17,17,17,17,17,17,17,17,17,17,17,17,17,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,

View File

@ -1,52 +1,75 @@
tileset green tileset green
bg 0 bg 0
hurryup 30 hurryup 248
endmaps endmaps
help help
Rolling logs will push you along.
endhelp endhelp
monsters monsters
1 1 14 1 2 25
r 27 9 P 21 1
r 33 9 Y 8 21
r 18 15 Y 31 21
r 21 19 Y 29 21
P 19 25 Y 27 21
P 20 25 Y 10 21
P 25 9 Y 12 21
P 24 9 P 18 1
@ 24 15 P 16 5
@ 15 15 P 23 5
@ 15 19 ? 6 21
@ 24 19 r 11 21
Y 36 9 r 19 5
Y 13 17
Y 14 17
Y 15 17
Y 26 17
Y 25 17
Y 24 17
@ 19 17
@ 20 17
@ 13 13
@ 15 13
@ 24 13
@ 27 13
@ 19 9
@ 20 9
Y 23 9
Y 24 9
Y 15 9
Y 16 9
C 20 1
r 22 9
r 26 13
r 16 17
endmonsters endmonsters
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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,19,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,1,1,1,1,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,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,18,19,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,18,19,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,18,19,0,0,0,0,4,
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,5,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,1,1,9,9,9,9,1,1,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,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,4,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,0,0,0,0,0,0,0,4,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,0,0,0,0,0,0,0,4,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,1,1,20,20,20,20,20,20,20,20,1,1,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,4,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,0,0,0,0,0,0,0,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,6,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,7,4, 4,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,10,10,10,10,10,10,1,1,1,1,1,1,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,7,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,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,1,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,7,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,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4, 4,0,0,0,0,0,0,0,1,20,20,20,20,20,1,1,1,1,1,1,1,1,1,1,1,1,20,20,20,20,20,1,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,7,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,9,9,9,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,10,10,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
4,4,4,4,9,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,10,4,4,4,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,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,9,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,10,4,4,4,4,4, 4,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,9,9,9,9,9,9,9,9,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,4,
4,4,4,4,4,4,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,10,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
4,4,4,4,4,4,4,4,4,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,10,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,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,9,9,9,9,0,0,0,0,0,0,0,0,10,10,10,10,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,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,4,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,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,16,16,16,16,16,16,16,16,16,16,16,16,16,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,0,0,0,1,1,0,0,0,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,17,17,17,17,17,17,17,17,17,17,17,17,17,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,0,0,0,0,0,0,0,0,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,11,11,11,11,11,11,11,11,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,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,

View File

@ -1,18 +1,13 @@
tileset green tileset green
bg 0 bg 0
hurryup 30 hurryup 60
endmaps endmaps
help help
endhelp endhelp
monsters monsters
1 1 2 1 1 2
r 30 5
r 33 7 r 33 7
r 13 10 r 13 10
r 29 16
S 12 28
S 12 28
P 30 19
@ 6 28 @ 6 28
@ 6 28 @ 6 28
@ 6 28 @ 6 28
@ -34,6 +29,11 @@ Y 21 2
Y 18 2 Y 18 2
Y 6 10 Y 6 10
Y 10 10 Y 10 10
r 11 18
C 9 28
S 30 5
S 30 5
S 30 5
endmonsters endmonsters
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,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,
@ -45,17 +45,17 @@ endmonsters
4,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,0,0,0,4,15,15,15,4, 4,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,0,0,0,4,15,15,15,4,
4,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,16,16,16,16,16,1,1,1,4,15,15,15,4, 4,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,16,16,16,16,16,1,1,1,4,15,15,15,4,
4,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,15,15,15,15,15,4,4,4,4,15,15,15,4, 4,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,15,15,15,15,15,4,4,4,4,15,15,15,4,
4,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,15,15,15,15,15,4,4,4,4,15,15,15,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,4,4,4,4,15,15,15,15,15,4,4,4,4,15,15,15,4,
4,1,1,8,1,1,1,1,1,1,1,1,1,1,1,1,1,16,16,16,16,16,16,4,4,4,4,15,15,15,15,15,4,4,4,4,15,15,15,4, 4,1,1,8,1,1,1,1,1,1,1,1,1,1,1,1,1,16,16,16,16,16,16,4,4,4,4,15,15,15,15,15,4,4,4,4,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,15,15,15,15,4,4,4,4,15,15,15,15,15,4,4,4,4,15,15,15,4, 4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,15,15,15,15,4,4,4,15,15,15,15,15,15,15,4,4,4,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4, 4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4, 4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4, 4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,1,1,1,1,1,1,15,15,15,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4, 4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,4,0,0,0,0,4,15,15,15,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,1,1,1,1,1,15,15,15,15,15,15,15,4, 4,4,4,7,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,15,15,15,15,15,15,4,0,0,0,0,4,15,15,15,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,4,12,0,0,4,15,15,15,15,15,15,15,4, 4,4,4,7,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,15,15,15,15,15,15,4,12,0,0,0,4,15,15,15,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,4,13,0,0,4,15,15,15,15,15,15,15,4, 4,4,4,8,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,15,15,15,15,15,15,4,13,0,0,0,4,15,15,15,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,4,1,16,1,4,15,15,15,15,15,15,15,4, 4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,4,1,16,16,16,4,15,15,15,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4, 4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4, 4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4,
4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4, 4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4,

42
world1/level99.dat Normal file
View File

@ -0,0 +1,42 @@
tileset green
bg 0
hurryup 30
endmaps
help
endhelp
monsters
1 7 12
Y 10 12
@ 17 17
P 25 21
endmonsters
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,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,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,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,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,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,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,1,1,1,1,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,1,1,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,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,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,20,20,20,20,20,20,20,20,20,20,20,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,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,0,0,0,0,20,20,20,20,20,20,20,20,20,20,20,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,