- Redrew slope and ladder tiles

- Added flower sprites - they just give you points
- Added support for animated tiles
- Changed left/right conveyor graphics to be rolling logs
This commit is contained in:
Rob Pearce 2008-09-17 11:16:19 +00:00
parent 88600eecbf
commit 1047c268b7
35 changed files with 465 additions and 240 deletions

13
defs.h
View File

@ -42,6 +42,7 @@
#define MAXLETTERHEIGHT 100
#define MAXFRAMES 10
#define MAXHELP 5
#define MAXTILEFRAMES 5 // max number of frames for animated tiles
// Fixed text buffer sizes
#define BUFLEN 512
@ -65,7 +66,7 @@
#define S_SLOPE 2
// Sprite types
#define MAXPTYPES 15
#define MAXPTYPES 16
#define P_PLAYER 0
#define P_RAT 1
#define P_CHEESE 2
@ -81,6 +82,7 @@
#define P_SNAKE 12
#define P_SPIT 13
#define P_HELP 14
#define P_FLOWERRED 15
// Frame names
#define F_WALK1 0
@ -146,7 +148,9 @@ typedef struct tiletype_s {
int solid;
int water;
int spikes;
SDL_Surface *img;
SDL_Surface *img[MAXTILEFRAMES];
int numframes;
int animspeed;
struct tiletype_s *next;
struct tiletype_s *prev;
} tiletype_t;
@ -177,8 +181,11 @@ typedef struct text_s {
typedef struct level_s {
int id;
int bgtileid;
char *tileset;
char name[SMALLBUFLEN];
int map[LEVELW*LEVELH];
int tileframe[LEVELW*LEVELH]; // tracks frame numbers for tiles
int *animtiles; // array of offsets to map positions which are animated
struct level_s *next;
struct level_s *prev;
int p1x; /* player 1 start pos */
@ -231,7 +238,7 @@ typedef struct sprite_s {
int falling; // are we falling?
int fallspeed; // how fast are we falling?
int jumping; // are we jumping?
int jumpdir; //which way are we jumping? (monsters only)
int jumpdir; //which way are we jumping?
int jumpspeed; // how fast we are moving upwards
int teleporting;// are we inside a teleporter? >0 is entering, <0 is exitting
int dead; // is this sprite dead? if so, what dying state?

6
doco/adding_a_sprite.txt Normal file
View File

@ -0,0 +1,6 @@
- in defs.h: increment MAXPTYPES
- in defs.h: add P_ entry
- in shared.c: add score value in setdefaults if applicable
- in shared.c: add loadspriteimage() line(s) in loadimagesets()
- in shared.c: add entry to monstertochar
- in shared.c: add entry to chartomonster

11
edit.c
View File

@ -89,7 +89,8 @@ int main (int argc, char **argv) {
fakeblock.lowness[i] = 0;
}
fakeblock.solid = S_SOLID;
fakeblock.img = IMG_Load("land.bmp");
fakeblock.img[0] = IMG_Load("land.bmp");
fakeblock.numframes = 1;
fakeblock.next = NULL;
fakeblock.prev = NULL;
@ -194,6 +195,7 @@ int main (int argc, char **argv) {
x = (mx / TILEW);
y = (my / TILEH);
curlevel->map[y*LEVELW+x] = seltile->uniqid;
curlevel->tileframe[y*LEVELW+x] = 0;
// redraw tile and sprites
drawtile(screen,x,y);
drawsprites();
@ -404,9 +406,9 @@ void drawpalette(void) {
area.h = TILEH;
for (tt = tiletype; tt != NULL; tt = tt->next) {
/* draw background */
SDL_BlitSurface(bg->img, NULL, screen, &area);
SDL_BlitSurface(bg->img[0], NULL, screen, &area);
/* draw tile */
SDL_BlitSurface(tt->img, NULL, screen, &area);
SDL_BlitSurface(tt->img[0], NULL, screen, &area);
/* draw selector box */
if (seltile == tt) {
drawbox16(screen,area.x,area.y,area.x+area.w-1,area.y+area.h-1,&red,NULL);
@ -475,8 +477,7 @@ int savelevel(int wnum, int lnum) {
return B_TRUE;
}
/* TODO: don't hardcode */
fprintf(f, "tileset green\n");
fprintf(f, "tileset %s\n",level->tileset);
fprintf(f, "bg %d\n",level->bgtileid);
fprintf(f, "hurryup %d\n",level->hurryuptime);

BIN
newtiles/ORIG.cloudleft Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 B

BIN
newtiles/ORIG.full.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

BIN
newtiles/bridge.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 B

BIN
newtiles/bridge2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

BIN
newtiles/bridge3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 B

After

Width:  |  Height:  |  Size: 587 B

BIN
newtiles/cloudmid.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 751 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 733 B

After

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 672 B

After

Width:  |  Height:  |  Size: 645 B

BIN
newtiles/ladder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 B

BIN
newtiles/laddertop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 822 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 627 B

After

Width:  |  Height:  |  Size: 644 B

BIN
newtiles/log1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

BIN
newtiles/log2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 729 B

BIN
newtiles/log3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 735 B

BIN
newtiles/log4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 732 B

BIN
newtiles/right1.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 822 B

BIN
newtiles/slopedown.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

BIN
newtiles/slopeup.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

BIN
rc

Binary file not shown.

35
rc.c
View File

@ -82,6 +82,7 @@ int main (int argc, char **argv) {
sprite_t *s,*nextsprite;
char filename[BUFLEN];
int i;
int *animtile;
curlevelnum = 1;
@ -132,7 +133,8 @@ int main (int argc, char **argv) {
fakeblock.lowness[i] = 0;
}
fakeblock.solid = S_SOLID;
fakeblock.img = IMG_Load("land.bmp");
fakeblock.img[0] = IMG_Load("land.bmp");
fakeblock.numframes = 1;
fakeblock.next = NULL;
fakeblock.prev = NULL;
@ -224,6 +226,9 @@ int main (int argc, char **argv) {
/* check for keys */
SDL_PumpEvents();
keys = SDL_GetKeyState(NULL);
if (keys[SDLK_q]) {
gtime = curlevel->hurryuptime -1;
}
@ -323,6 +328,32 @@ int main (int argc, char **argv) {
}
}
// for each animated tile on the level...
for (animtile = curlevel->animtiles; animtile && *animtile != -1; animtile++) {
int offset,numframes;
tiletype_t *tt;
offset = *animtile;
tt = gettile(curlevel->map[offset]);
numframes = tt->numframes;
// is it time to change frames?
if ((timer % tt->animspeed) == 0) {
// change its frame
curlevel->tileframe[offset]++;
if (curlevel->tileframe[offset] >= numframes) {
curlevel->tileframe[offset] = 0;
}
// redraw it
drawtile(temps, offset%LEVELW,offset/LEVELW);
}
}
// move sprites
for (s = sprite; s ; s = s->next) {
movesprite(s);
}
@ -1283,9 +1314,11 @@ int addtext(int x, int y, int size, char *string, SDL_Color *c, int delay) {
}
/* copy background buffer (ie. tiles) to screen, erasing sprites */
void removeall(void) {
SDL_BlitSurface(temps, NULL, screen, NULL);
}
void removetext(void) {
SDL_Rect sarea;
text_t *t;

222
shared.c
View File

@ -32,13 +32,18 @@ int loadlevel(int wnum, int lnum) {
char *p;
int tileid;
int i;
int *ii;
mapping_t mapping[MAXMAPPINGS];
int nmappings = 0;
tiletype_t *lasttile;
int newversion;
int numanim = 0;
int tempanim[LEVELW*LEVELH];
level = malloc(sizeof(level_t));
if (!level) level = malloc(sizeof(level_t));
if (level->animtiles) free(level->animtiles);
level->id = 0;
sprintf(level->name, "Level %d-%d",wnum,lnum);
@ -60,17 +65,20 @@ int loadlevel(int wnum, int lnum) {
/* clear tiletype linked list */
while (tiletype != NULL) {
int i;
tiletype_t *tt;
/* kill first tile */
if (tiletype->img) {
SDL_FreeSurface(tiletype->img);
tiletype->img = NULL;
for (i = 0; i < tiletype->numframes; i++) {
if (tiletype->img[i]) {
SDL_FreeSurface(tiletype->img[i]);
tiletype->img[i] = NULL;
}
}
tt = tiletype->next;
free(tiletype);
tiletype = tt;
}
}
/* clear player linked list */
if (sprite != NULL) {
@ -88,6 +96,11 @@ int loadlevel(int wnum, int lnum) {
/* strip newline */
p[strlen(p)-1] = '\0';
if ( level->tileset) free(level->tileset);
level->tileset = strdup(p);
strcat(p, ".tiles");
if (loadtiletypes(p)) {
@ -256,6 +269,7 @@ int loadlevel(int wnum, int lnum) {
strncpy(buf2, buf, BUFLEN);
p = strtok(buf2, ",");
while (p) {
int numframes;
tileid = atoi(p);
/* validate it */
if (!gettile(tileid)) {
@ -276,6 +290,17 @@ int loadlevel(int wnum, int lnum) {
/* all okay */
level->map[y*LEVELW+x] = tileid;
numframes = gettileframecount(tileid);
if (numframes == 1) {
// not animated
level->tileframe[y*LEVELW+x] = 0;
} else {
// animated
level->tileframe[y*LEVELW+x] = rand() % numframes;
tempanim[numanim] = y*LEVELW+x;
numanim++;
}
x++;
p = strtok(NULL, ",");
}
@ -451,6 +476,14 @@ int loadlevel(int wnum, int lnum) {
}
fclose(f);
// copy from our temp buffer into the real one
level->animtiles = malloc(sizeof(int) * (numanim+1));
memcpy(level->animtiles,tempanim,numanim*sizeof(int));
level->animtiles[numanim] = -1;
//level->animtiles = realloc(level->animtiles, (numanim+2) * sizeof(int)); // leave space for terminator
if ((numhelp > 0) && (curhelp != numhelp)) {
printf("WARNING: Unused help text. First unused is '%s'\n",help[curhelp]);
}
@ -498,6 +531,12 @@ int loadlevel(int wnum, int lnum) {
gtime = 0;
printf("Loaded level. Animated tiles: ");
for (ii = level->animtiles ; ii && *ii != -1; ii++) {
printf("%d ",*ii);
}
printf(".\n");
return B_FALSE;
}
@ -552,6 +591,9 @@ void setdefaults(sprite_t *s) {
case P_BURGER:
s->score = 4000;
break;
case P_FLOWERRED:
s->score = 5;
break;
default:
s->score = 0;
break;
@ -679,13 +721,17 @@ int loadtiletypes(char *filename) {
/* defaults */
t->id = 0;
t->animspeed = 0; // not animated
t->numframes = 1; // not animated
t->water = B_FALSE;
t->spikes = B_FALSE;
t->solid = B_TRUE;
for (i = 0; i < TILEW; i++) {
t->lowness[i] = 0;
}
t->img = NULL;
for (i = 0; i < MAXTILEFRAMES; i++) {
t->img[i] = NULL;
}
t->next = NULL;
state = 1;
@ -695,12 +741,18 @@ int loadtiletypes(char *filename) {
}
} else if (state == 1) { /* inside a definition */
if (strstr(buf, "end") == buf) {
//printf("got tile %d: %s (solid=%d)\n",t->id,t->name,t->solid);
/* check */
state = 0;
} else if (strstr(buf, "id") == buf) {
p = strtok(buf, " ");
p = strtok(NULL, " ");
t->id = atoi(p);
} else if (strstr(buf, "animspeed") == buf) {
p = strtok(buf, " ");
p = strtok(NULL, " ");
t->animspeed = atoi(p);
} else if (strstr(buf, "lowness") == buf) {
p = strtok(buf, " ");
p = strtok(NULL, " ");
@ -722,21 +774,37 @@ int loadtiletypes(char *filename) {
p = strtok(NULL, " ");
t->water = atoi(p);
} else if (strstr(buf, "file") == buf) {
p = strtok(buf, " ");
p = strtok(NULL, " ");
if (t->img) {
SDL_FreeSurface(t->img);
t->img = NULL;
}
int frame;
/* strip newline */
p[strlen(p)-1] = '\0';
t->img = IMG_Load(p);
if (!t->img) {
buf[strlen(buf)-1] = '\0';
p = strtok(buf, " ");
// read all images
frame = 0;
p = strtok(NULL, " ");
while (p) {
if (t->img[frame]) {
SDL_FreeSurface(t->img[frame]);
t->img[frame] = NULL;
}
t->img[frame] = IMG_Load(p);
if (!t->img[frame]) {
printf("cannot load tile image file: '%s'\n",p);
fclose(f);
return B_TRUE;
}
SDL_SetColorKey(t->img, SDL_SRCCOLORKEY, SDL_MapRGB(screen->format, 0, 0, 0));
// black is transparent
SDL_SetColorKey(t->img[frame], SDL_SRCCOLORKEY, SDL_MapRGB(screen->format, 0, 0, 0));
// get next one
frame++;
p = strtok(NULL, " ");
}
t->numframes = frame;
// default animation speed
t->animspeed = 20;
}
}
@ -754,82 +822,85 @@ int loadimagesets(void) {
SDL_Surface *reds;
imageset[P_PLAYER].img[F_WALK1] = IMG_Load("sprites/pdwarf.png");
imageset[P_PLAYER].img[F_JUMP] = IMG_Load("sprites/pdwarfjump.png");
imageset[P_PLAYER].img[F_FALL] = IMG_Load("sprites/pdwarffall.png");
imageset[P_PLAYER].img[F_CAUGHT] = IMG_Load("sprites/pdwarf.png");
imageset[P_PLAYER].img[F_DEAD] = IMG_Load("sprites/dwarfdie.png");
loadspriteimage(P_PLAYER,F_WALK1, "sprites/pdwarf.png");
loadspriteimage(P_PLAYER,F_JUMP, "sprites/pdwarfjump.png");
loadspriteimage(P_PLAYER,F_FALL, "sprites/pdwarffall.png");
loadspriteimage(P_PLAYER,F_CAUGHT, "sprites/pdwarf.png");
loadspriteimage(P_PLAYER,F_DEAD, "sprites/dwarfdie.png");
/* next 3 are auto generated */
imageset[P_PLAYER].img[F_CLIMB1] = IMG_Load("sprites/dclimb1.png");
imageset[P_PLAYER].img[F_CLIMB2] = IMG_Load("sprites/dclimb2.png");
loadspriteimage(P_PLAYER,F_CLIMB1, "sprites/dclimb1.png");
loadspriteimage(P_PLAYER,F_CLIMB2, "sprites/dclimb2.png");
imageset[P_PLAYER].numimages = 10;
imageset[P_SNAKE].img[F_WALK1] = IMG_Load("sprites/snake.bmp");
imageset[P_SNAKE].img[F_JUMP] = IMG_Load("sprites/snakejump.bmp");
imageset[P_SNAKE].img[F_FALL] = IMG_Load("sprites/snakejump.bmp");
imageset[P_SNAKE].img[F_CAUGHT] = IMG_Load("sprites/snakecaught.bmp");
imageset[P_SNAKE].img[F_DEAD] = IMG_Load("sprites/snakedead.bmp");
loadspriteimage(P_SNAKE,F_WALK1, "sprites/snake.bmp");
loadspriteimage(P_SNAKE,F_JUMP, "sprites/snakejump.bmp");
loadspriteimage(P_SNAKE,F_FALL, "sprites/snakejump.bmp");
loadspriteimage(P_SNAKE,F_CAUGHT, "sprites/snakecaught.bmp");
loadspriteimage(P_SNAKE,F_DEAD, "sprites/snakedead.bmp");
/* next 3 are auto generated */
imageset[P_SNAKE].numimages = 8;
imageset[P_RAT].img[F_WALK1] = IMG_Load("sprites/rat.bmp");
imageset[P_RAT].img[F_JUMP] = IMG_Load("sprites/ratjump.bmp");
imageset[P_RAT].img[F_FALL] = IMG_Load("sprites/ratjump.bmp");
imageset[P_RAT].img[F_CAUGHT] = IMG_Load("sprites/ratcaught.bmp");
imageset[P_RAT].img[F_DEAD] = IMG_Load("sprites/ratdead.bmp");
loadspriteimage(P_RAT,F_WALK1, "sprites/rat.bmp");
loadspriteimage(P_RAT,F_JUMP, "sprites/ratjump.bmp");
loadspriteimage(P_RAT,F_FALL, "sprites/ratjump.bmp");
loadspriteimage(P_RAT,F_CAUGHT, "sprites/ratcaught.bmp");
loadspriteimage(P_RAT,F_DEAD, "sprites/ratdead.bmp");
/* next 3 are auto generated */
imageset[P_RAT].numimages = 8;
imageset[P_BEE].img[F_WALK1] = IMG_Load("sprites/bee.bmp");
imageset[P_BEE].img[F_JUMP] = IMG_Load("sprites/beejump.bmp");
imageset[P_BEE].img[F_FALL] = IMG_Load("sprites/beejump.bmp");
imageset[P_BEE].img[F_CAUGHT] = IMG_Load("sprites/beecaught.bmp");
imageset[P_BEE].img[F_DEAD] = IMG_Load("sprites/beedead.bmp");
loadspriteimage(P_BEE,F_WALK1, "sprites/bee.bmp");
loadspriteimage(P_BEE,F_JUMP, "sprites/beejump.bmp");
loadspriteimage(P_BEE,F_FALL, "sprites/beejump.bmp");
loadspriteimage(P_BEE,F_CAUGHT, "sprites/beecaught.bmp");
loadspriteimage(P_BEE,F_DEAD, "sprites/beedead.bmp");
/* next 3 are auto generated */
imageset[P_BEE].numimages = 8;
imageset[P_SPIDER].img[F_WALK1] = IMG_Load("sprites/spider.bmp");
imageset[P_SPIDER].img[F_JUMP] = IMG_Load("sprites/spiderjump.bmp");
imageset[P_SPIDER].img[F_FALL] = IMG_Load("sprites/spiderfall.bmp");
imageset[P_SPIDER].img[F_CAUGHT] = IMG_Load("sprites/spidercaught.bmp");
imageset[P_SPIDER].img[F_DEAD] = IMG_Load("sprites/spiderdead.bmp");
loadspriteimage(P_SPIDER,F_WALK1, "sprites/spider.bmp");
loadspriteimage(P_SPIDER,F_JUMP, "sprites/spiderjump.bmp");
loadspriteimage(P_SPIDER,F_FALL, "sprites/spiderfall.bmp");
loadspriteimage(P_SPIDER,F_CAUGHT, "sprites/spidercaught.bmp");
loadspriteimage(P_SPIDER,F_DEAD, "sprites/spiderdead.bmp");
/* next 3 are auto generated */
imageset[P_SPIDER].numimages = 8;
imageset[P_CLOUD].img[F_WALK1] = IMG_Load("sprites/cloud.bmp");
imageset[P_CLOUD].img[F_JUMP] = IMG_Load("sprites/cloud.bmp");
imageset[P_CLOUD].img[F_FALL] = IMG_Load("sprites/cloud.bmp");
imageset[P_CLOUD].img[F_CAUGHT] = IMG_Load("sprites/cloud.bmp");
imageset[P_CLOUD].img[F_DEAD] = IMG_Load("sprites/cloud.bmp");
loadspriteimage(P_CLOUD,F_WALK1, "sprites/cloud.bmp");
loadspriteimage(P_CLOUD,F_JUMP, "sprites/cloud.bmp");
loadspriteimage(P_CLOUD,F_FALL, "sprites/cloud.bmp");
loadspriteimage(P_CLOUD,F_CAUGHT, "sprites/cloud.bmp");
loadspriteimage(P_CLOUD,F_DEAD, "sprites/cloud.bmp");
imageset[P_CLOUD].numimages = 2;
imageset[P_CHEESE].img[F_WALK1] = IMG_Load("sprites/cheese.bmp");
loadspriteimage(P_CHEESE,F_WALK1, "sprites/cheese.bmp");
imageset[P_CHEESE].numimages = 1;
imageset[P_ICECREAM].img[F_WALK1] = IMG_Load("sprites/icecream.bmp");
loadspriteimage(P_ICECREAM,F_WALK1, "sprites/icecream.bmp");
imageset[P_ICECREAM].numimages = 1;
imageset[P_CHIPS].img[F_WALK1] = IMG_Load("sprites/chips.bmp");
loadspriteimage(P_CHIPS,F_WALK1, "sprites/chips.bmp");
imageset[P_CHIPS].numimages = 1;
imageset[P_BURGER].img[F_WALK1] = IMG_Load("sprites/burger.bmp");
loadspriteimage(P_BURGER,F_WALK1, "sprites/burger.bmp");
imageset[P_BURGER].numimages = 1;
imageset[P_SPEED].img[F_WALK1] = IMG_Load("sprites/speed.bmp");
loadspriteimage(P_SPEED,F_WALK1, "sprites/speed.bmp");
imageset[P_SPEED].numimages = 1;
imageset[P_NUMNETS].img[F_WALK1] = IMG_Load("sprites/numnets.bmp");
loadspriteimage(P_NUMNETS,F_WALK1, "sprites/numnets.bmp");
imageset[P_NUMNETS].numimages = 1;
imageset[P_BIGNET].img[F_WALK1] = IMG_Load("sprites/bignet.bmp");
loadspriteimage(P_BIGNET,F_WALK1, "sprites/bignet.bmp");
imageset[P_BIGNET].numimages = 1;
imageset[P_HELP].img[F_WALK1] = IMG_Load("sprites/help.bmp");
loadspriteimage(P_HELP,F_WALK1, "sprites/help.bmp");
imageset[P_HELP].numimages = 1;
loadspriteimage(P_FLOWERRED,F_WALK1, "sprites/flower-red.png");
imageset[P_FLOWERRED].numimages = 1;
/* bullets */
imageset[P_SPIT].img[F_WALK1] = IMG_Load("sprites/spit.bmp");
loadspriteimage(P_SPIT,F_WALK1, "sprites/spit.bmp");
imageset[P_SPIT].numimages = 1;
@ -1065,6 +1136,14 @@ void flip(void) {
#endif
}
// returns 0 if tile isn't animated, else the number of frames
int gettileframecount(int tid) {
tiletype_t *tt;
tt = gettile(tid);
return tt->numframes;
}
int isfruit(int id) {
switch (id) {
case P_CHEESE:
@ -1075,6 +1154,7 @@ int isfruit(int id) {
case P_NUMNETS:
case P_BIGNET:
case P_HELP:
case P_FLOWERRED:
return B_TRUE;
}
@ -1240,6 +1320,7 @@ int chartomonster(char ch) {
case 's': return P_SPIDER;
case '?': return P_HELP;
case '1': return P_PLAYER;
case '@': return P_FLOWERRED;
}
return -1;
@ -1253,6 +1334,7 @@ char monstertochar(int id ) {
case P_SPIDER: return 's';
case P_HELP: return '?';
case P_PLAYER: return '1';
case P_FLOWERRED: return '@';
}
return '\0';
@ -1271,6 +1353,8 @@ tiletype_t *gettile(int tid) {
void drawtile(SDL_Surface *where, int x, int y) {
SDL_Rect area;
tiletype_t *tt;
int frame;
int offset;
if ((x < 0) || (y < 0) || (x >= LEVELW) || (y >= LEVELH)) {
return;
@ -1282,17 +1366,23 @@ void drawtile(SDL_Surface *where, int x, int y) {
area.h = 0;
/* draw blank tile first */
tt = gettile(curlevel->bgtileid);
SDL_BlitSurface(tt->img, NULL, where, &area);
SDL_BlitSurface(tt->img[0], NULL, where, &area);
tt = gettile(curlevel->map[y*LEVELW+x]);
/* now draw real one */
offset = y*LEVELW+x;
tt = gettile(curlevel->map[offset]);
frame = curlevel->tileframe[offset];
if (tt->id != curlevel->bgtileid) {
SDL_BlitSurface(tt->img, NULL, where, &area);
SDL_BlitSurface(tt->img[frame], NULL, where, &area);
}
}
void initglobals(void) {
sprite = NULL;
level = NULL;
vidargs = 0;
/* timers */
@ -1307,3 +1397,15 @@ void initglobals(void) {
green.r = 0; green.g = 255; green.b = 0;
yellow.r = 255; yellow.g = 255; yellow.b = 0;
}
SDL_Surface *loadspriteimage(int spriteid, int frame, char *filename) {
imageset[spriteid].img[frame] = IMG_Load(filename);
if (imageset[spriteid].img[frame] == NULL) {
printf("Error loading image file: %s\n",filename);
exit(1);
}
return imageset[spriteid].img[frame];
}

View File

@ -15,6 +15,7 @@ int isbullet(int id);
void flip(void);
void killsprite(sprite_t *s);
void drawsprite(sprite_t *s);
int gettileframecount(int tid);
int isfruit(int id);
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);
@ -26,5 +27,7 @@ char monstertochar(int id);
tiletype_t *gettile(int tid);
void drawtile(SDL_Surface *s, int x, int y);
void initglobals(void);
SDL_Surface *loadspriteimage(int spriteid, int frame, char *filename);
#endif

BIN
sprites/flower-red.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 B

View File

@ -11,6 +11,14 @@ monsters
r 27 15
? 7 19
? 12 19
@ 16 14
@ 36 14
@ 2 15
@ 1 15
@ 22 15
@ 23 15
@ 30 15
@ 31 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,
@ -27,12 +35,12 @@ 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,1,1,1,1,1,1,1,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,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4,
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,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,4,4,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,4,4,1,1,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,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,9,9,9,10,10,10,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,

View File

@ -9,11 +9,11 @@ Stand on this ledge then slam!
endhelp
monsters
1 4 10
r 33 9
r 16 10
? 6 10
? 12 10
? 25 10
r 34 9
r 17 10
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,
@ -24,8 +24,8 @@ 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,0,0,0,4,
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,0,0,0,0,0,0,0,0,1,0,0,0,0,4,4,4,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,4,0,0,0,4,0,0,0,0,0,0,0,1,0,0,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,4,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,

View File

@ -11,34 +11,91 @@ r 5 7
r 35 7
r 35 23
r 4 23
@ 26 11
@ 27 11
@ 28 11
@ 28 19
@ 27 19
@ 26 19
@ 12 11
@ 13 11
@ 14 11
@ 14 19
@ 13 19
@ 12 19
@ 2 7
@ 37 7
@ 37 23
@ 2 23
@ 18 28
@ 18 28
@ 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
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*~~~~~~~~~~000000000000000000~~~~~~~~~~*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*0000000~~~~~~~~~~0000~~~~~~~~~~0000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000~~~~~~~~~~00000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*0000000~~~~~~~~~~0000~~~~~~~~~~0000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*~~~~~~~~~~000000000000000000~~~~~~~~~~*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,
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

@ -2,7 +2,10 @@ tileset green
bg 0
hurryup 30
endmaps
help
endhelp
monsters
1 3 28
r 10 4
r 23 8
r 23 16
@ -10,35 +13,34 @@ r 12 20
r 28 20
r 25 24
r 30 28
1 3 28
endmonsters
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*000000~~~~~~~~~~~~**000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*000000000000~~~~~~~~~~~~~~~00000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000/~~~~~~~~~\0000000000000*
*0000000000000/***********\000000000000*
*000000000000/**000000000**\00000000000*
*00000000000/***000000000***\0000000000*
*000~~~~~~~~~~~~~~0000~~~~~~~~~~~~~~000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*000000000~~~~0000000000000~~~~00000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*000~~~~~0000~~~~~0000~~~~~~~~~~~~~~000*
*0000000000000000*0000*0000000000000000*
*0000000000000000*0000*0000000000000000*
*0000000000000000*^^^^*0000000000000000*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,4,4,0,0,0,0,0,0,0,0,0,0,0,18,19,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,1,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,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,2,20,20,21,21,21,21,21,20,20,3,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,2,4,0,0,0,0,0,0,0,0,0,4,3,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,2,4,4,0,0,0,0,0,0,0,0,0,4,4,3,0,0,0,0,0,0,0,0,0,0,0,4,
4,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,0,0,0,0,0,0,0,0,0,4,4,4,3,0,0,0,0,0,0,0,0,0,0,4,
4,0,0,0,1,1,1,1,1,1,1,1,4,4,4,4,1,1,1,0,0,0,1,1,1,4,4,4,4,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,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,0,0,0,0,0,0,0,0,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,1,0,0,0,0,0,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,4,0,0,0,0,0,0,0,4,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,4,0,0,0,0,0,0,0,4,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,4,11,11,11,11,11,11,11,4,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

@ -2,40 +2,42 @@ tileset green
bg 0
hurryup 30
endmaps
help
endhelp
monsters
1 1 14
r 27 9
r 33 9
1 1 14
r 18 15
r 21 19
endmonsters
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*0000000000000000000000*000000000000000*
*0000000000000000000000*000000000000000*
*0000000000000000000000*000000000000000*
*0000000000000000000000*000000000000000*
*0000000000000000000000*~~~~~~~~~~~~~~-*
*0000000000000000000000000000000000000=*
*0000000000000000000000000000000000000=*
*0000000000000000000000000000000000000=*
*0000000000000000000000000000000000000=*
*~000000000000000000000000000000000000=*
*00000000000000~~~~~~~~~~0000000000000=*
*0000000000000000000000000000000000000=*
*>>>00000000000000000000000000000000<<~*
****>000000000000000000000000000000<000*
*****>000000000~~~~~~~~~~000000000<0000*
******>>>0000000000000000000000<<<00000*
*********>>>0000000000000000<<<00000000*
************>>>>00000000<<<<00000000000*
****************00000000*00000000000000*
****************00000000*00000000000000*
****************000**000*00000000000000*
****************00000000*00000000000000*
****************^^^^^^^^*00000000000000*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,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,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,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,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,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,7,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,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,0,0,0,0,0,0,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,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,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,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,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,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,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,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,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,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,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,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

@ -2,41 +2,43 @@ tileset green
bg 0
hurryup 30
endmaps
help
endhelp
monsters
1 2 28
a 21 4
r 7 8
r 32 13
r 17 18
r 28 22
1 2 28
endmonsters
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*0~~-~~~~~00000000000000000000000000000*
*000=0000000000000000000000000000000000*
*000=0000000000~~~~~~000000000000000000*
*000=0000000000000000000000000000000000*
*000=0000000000000000000000000000000000*
*000=0000000000000000000000000~~~~~-~~~*
*000=000000000000000000000000000000=000*
*000=000000000000000000000000000000=000*
*000=000000000000000000000000000000=000*
*000=0000000000000^^000000000000000=000*
*000=00000~~~~~-~~~~~00000000000000=000*
*000=0000000000=0000000000000000000=000*
*000=0000000000=0000000000000000000=000*
*000=0000000000=0000000000000000000=000*
*000=0000000000=0000000~~~-~~~~0000=000*
*000=0000000000=0000000000=00000000=000*
*000=0000000000=0000000000=00000000=000*
*000=0000000000=0000000000=00000000=000*
*000=0000000000=0000000000=00000000=000*
*000=0000000000=0000000000=00000000=000*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,8,1,1,1,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,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,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,7,0,0,0,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,0,0,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,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,7,0,0,0,0,0,0,0,0,0,0,0,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,7,0,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,1,8,1,1,1,4,
4,0,0,0,7,0,0,0,0,0,0,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,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,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,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,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,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,1,1,1,1,1,8,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,1,1,1,8,1,1,1,1,0,0,0,0,7,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,7,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,7,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,7,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,7,0,0,0,4,
4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,7,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

@ -2,43 +2,45 @@ tileset castle
bg 0
hurryup 30
endmaps
help
endhelp
monsters
1 1 21
a 10 3
a 35 3
r 19 6
r 3 7
r 37 8
1 1 21
s 14 23
s 26 23
s 14 24
s 26 24
endmonsters
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*00000000000000000000000000000000000000*
*0000000000000000000000=000000000000000*
*0000000000000000000000=000000000000000*
*000000000000000~~~~~~~-~~~~00000000000*
*~~~~~~\000000000000000=000000000000000*
********\00000000000000=000000000~~~~~~*
*********00000000000000=000000000000000*
*0000000000000000000000=000000000000000*
*00000000000~~~-~0000~~~~~000-~~~~~0000*
*00000000000000=0000000000000=000000000*
*00000000000000=0000000000000=000000000*
*00000000000000=0000000000000=000000000*
*00000000000000=0000000000000=000000000*
*00000000000000=0000000000000=000000000*
*00000000000000=000/~~~\00000=000000000*
*00000000000000=00/*****\0000=000000000*
*00000000/~~\00=0/*******\00/~\00000000*
*0000000/****~~~~*********~~***\0000000*
*~~{{{~~************************{{{{{{{*
*}}}}}}}}}}}}}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,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,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,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,1,1,1,1,1,1,1,7,1,1,1,1,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,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
4,4,4,4,4,4,4,4,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,4,
4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,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,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,1,1,1,7,1,0,0,0,0,1,1,1,1,1,0,0,0,7,1,1,1,1,1,0,0,0,0,4,
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,6,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,6,0,0,0,0,0,0,0,0,0,0,0,0,0,6,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,6,0,0,0,0,0,0,0,0,0,0,0,0,0,6,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,6,0,0,0,0,0,0,0,0,0,0,0,0,0,6,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,6,0,0,0,0,0,0,0,0,0,0,0,0,0,6,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,6,0,0,0,2,1,1,1,3,0,0,0,0,0,6,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,6,0,0,2,4,4,4,4,4,3,0,0,0,0,6,0,0,0,0,0,0,0,0,0,4,
4,0,0,0,0,0,0,0,0,2,1,1,3,0,0,6,0,2,4,4,4,4,4,4,4,3,0,0,2,1,3,0,0,0,0,0,0,0,0,4,
4,0,0,0,0,0,0,0,2,4,4,4,4,1,1,1,1,4,4,4,4,4,4,4,4,4,1,1,4,4,4,3,0,0,0,0,0,0,0,4,
4,1,1,15,15,15,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,15,15,15,15,15,15,15,4,
4,14,14,14,14,14,14,14,14,14,14,14,14,14,1,14,14,14,14,14,4,14,14,14,14,14,1,14,14,14,14,14,14,14,14,14,14,14,14,4,
4,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,4,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,4,
4,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,4,
4,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,4,
4,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,4,
4,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,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,