GAME:
- bugfix: bomb wasn't decrementing netcaught - bugfix: Fixed mask on red "angry" overlay - bugfix: Ice from snowman now extends on to edge tiles - bugfix: dotileeffect() no longer affects bullets/effects - bugfix: fixed bug where invulnerability wouldn't cause flashing - tweaked difficulty on "look out above!" - Added pink cloud on which player travels to the next level - Added boss: King Rat - Added powerup: fly spray (slows monsters) - Added powerup: fusion cannon EDITOR: - Added status bar containing various info - Can now move level position via the editor - Now quit using 'q', not 'esc' - Inactive layers are now dimmers, toggle this with 't' - Remove 'endmaps' and all mapping code from level files - Removed monstertochar() and chartomonster() functions - Removed old inline monster code in level files
96
defs.h
|
@ -83,13 +83,41 @@
|
||||||
#define NETSPEED 9 // how fast the player's net moves
|
#define NETSPEED 9 // how fast the player's net moves
|
||||||
#define POWERUPTIME 15 // # secs before a powerup appears
|
#define POWERUPTIME 15 // # secs before a powerup appears
|
||||||
|
|
||||||
|
|
||||||
|
#define CANNONSIZE 10
|
||||||
|
|
||||||
#define ICESPEED 2 // how fast a level turns to ice
|
#define ICESPEED 2 // how fast a level turns to ice
|
||||||
|
|
||||||
|
#define MONJUMPSPEED 5 // how high monsters jump
|
||||||
|
|
||||||
|
#define BOMBSHAKETIME 100 // time for screen will shake after a bomb
|
||||||
|
#define RATSHAKETIME 50 // shake time when king rat is stunned
|
||||||
|
|
||||||
|
#define BOSSFLASHTIME 15 // how long bosses flash white for when hit
|
||||||
|
#define BOSSDIETIME 150 // how long bosses flash when dead
|
||||||
|
|
||||||
|
|
||||||
#define BELLTIME 20 // how long the bell flash lasts
|
#define BELLTIME 20 // how long the bell flash lasts
|
||||||
#define CLOCKTIME 10 // how many seconds a clock lasts
|
#define CLOCKTIME 10 // how many seconds a clock lasts
|
||||||
|
|
||||||
|
|
||||||
|
// king rat
|
||||||
|
#define KR_WALKTIME 100
|
||||||
|
#define KR_STUNTIME 150
|
||||||
|
//#define KR_WALKTIME 30
|
||||||
|
#define KR_MAXJUMP 15 // max initial jumpspeed
|
||||||
|
#define KR_NUMJUMPS 5
|
||||||
|
#define KR_CHARGESPEED 8
|
||||||
|
// king rat states
|
||||||
|
#define KRS_WALK 0
|
||||||
|
#define KRS_JUMP 1
|
||||||
|
#define KRS_WAITFORTOP 2
|
||||||
|
#define KRS_FALL 3
|
||||||
|
#define KRS_CHARGEWAIT 4
|
||||||
|
#define KRS_CHARGE 5
|
||||||
|
#define KRS_STUN 6
|
||||||
|
|
||||||
|
|
||||||
// bell states
|
// bell states
|
||||||
#define BELL_DONESOUND 1
|
#define BELL_DONESOUND 1
|
||||||
#define BELL_DONEFLASH 2
|
#define BELL_DONEFLASH 2
|
||||||
|
@ -124,7 +152,7 @@
|
||||||
/* enums */
|
/* enums */
|
||||||
|
|
||||||
/* sounds */
|
/* sounds */
|
||||||
#define MAXFX 26
|
#define MAXFX 33
|
||||||
#define FX_SHOOT 0
|
#define FX_SHOOT 0
|
||||||
#define FX_SLAM 1
|
#define FX_SLAM 1
|
||||||
#define FX_KILL 2
|
#define FX_KILL 2
|
||||||
|
@ -151,6 +179,13 @@
|
||||||
#define FX_ARMOR 23
|
#define FX_ARMOR 23
|
||||||
#define FX_FREEZE 24
|
#define FX_FREEZE 24
|
||||||
#define FX_ICEBREAK 25
|
#define FX_ICEBREAK 25
|
||||||
|
#define FX_BOSSWINDUP 26
|
||||||
|
#define FX_BOSSCHARGE 27
|
||||||
|
#define FX_BOSSDIE 28
|
||||||
|
#define FX_BOSSHIT 29
|
||||||
|
#define FX_BOSSWALL 30
|
||||||
|
#define FX_SPRAY 31
|
||||||
|
#define FX_CANNON 32
|
||||||
|
|
||||||
// Slope types
|
// Slope types
|
||||||
#define S_NOTSOLID 0
|
#define S_NOTSOLID 0
|
||||||
|
@ -158,7 +193,7 @@
|
||||||
#define S_SLOPE 2
|
#define S_SLOPE 2
|
||||||
|
|
||||||
// Sprite types
|
// Sprite types
|
||||||
#define MAXPTYPES 44
|
#define MAXPTYPES 49
|
||||||
#define P_PLAYER 0
|
#define P_PLAYER 0
|
||||||
#define P_RAT 1
|
#define P_RAT 1
|
||||||
#define P_CHEESE 2
|
#define P_CHEESE 2
|
||||||
|
@ -167,7 +202,7 @@
|
||||||
#define P_BIGNET 5
|
#define P_BIGNET 5
|
||||||
#define P_BEE 6
|
#define P_BEE 6
|
||||||
#define P_SPIDER 7
|
#define P_SPIDER 7
|
||||||
#define P_CLOUD 8
|
#define P_BLACKCLOUD 8
|
||||||
#define P_ICECREAM 9
|
#define P_ICECREAM 9
|
||||||
#define P_CHIPS 10
|
#define P_CHIPS 10
|
||||||
#define P_BURGER 11
|
#define P_BURGER 11
|
||||||
|
@ -203,6 +238,11 @@
|
||||||
#define P_BELL 41
|
#define P_BELL 41
|
||||||
#define P_CLOCK 42
|
#define P_CLOCK 42
|
||||||
#define P_SNOWMAN 43
|
#define P_SNOWMAN 43
|
||||||
|
#define P_PINKCLOUD 44
|
||||||
|
#define P_KINGRAT 45
|
||||||
|
#define P_SPRAY 46
|
||||||
|
#define P_CANNONPOWERUP 47
|
||||||
|
#define P_CANNON 48
|
||||||
|
|
||||||
// powerups
|
// powerups
|
||||||
#define PW_NONE 0
|
#define PW_NONE 0
|
||||||
|
@ -212,6 +252,12 @@
|
||||||
#define PW_RINGWALK 4 // points for walking
|
#define PW_RINGWALK 4 // points for walking
|
||||||
#define PW_RINGJUMP 5 // points for jumping
|
#define PW_RINGJUMP 5 // points for jumping
|
||||||
#define PW_CLOCK 6 // freeze time
|
#define PW_CLOCK 6 // freeze time
|
||||||
|
#define PW_SPRAYUP 7 // fly spray
|
||||||
|
#define PW_SPRAYDOWN 8 // fly spray
|
||||||
|
#define PW_CANNON 9 // fusion cannon
|
||||||
|
#define PW_CANNONFIRE 10 // fusion cannon firing
|
||||||
|
// "virtual" powerup for bosses
|
||||||
|
#define PW_RATSHAKE 20 // shake screen horizontally
|
||||||
|
|
||||||
// Frame names
|
// Frame names
|
||||||
#define F_WALK1 0
|
#define F_WALK1 0
|
||||||
|
@ -240,8 +286,10 @@
|
||||||
#define LV_CLEAR 1 // all monsters dead
|
#define LV_CLEAR 1 // all monsters dead
|
||||||
#define LV_WAIT 2 // LEVEL COMPLETE displayed, delay to collect fruits
|
#define LV_WAIT 2 // LEVEL COMPLETE displayed, delay to collect fruits
|
||||||
#define LV_FINAL 3 // delay 5 seconds more...
|
#define LV_FINAL 3 // delay 5 seconds more...
|
||||||
#define LV_NEXTLEV 4 // end of delay, nextlevel() in 5 seconds
|
#define LV_CLOUD 4 // cloud appearing
|
||||||
#define LV_GAMEOVER 6 // No lives left.
|
#define LV_CLOUDLOOP 6 // cloud looping
|
||||||
|
#define LV_NEXTLEV 7 // cloud done , nextlevel() in 5 seconds
|
||||||
|
#define LV_GAMEOVER 8 // No lives left.
|
||||||
|
|
||||||
// movement types
|
// movement types
|
||||||
#define MV_NONE 0 // didn't move
|
#define MV_NONE 0 // didn't move
|
||||||
|
@ -280,6 +328,12 @@
|
||||||
#define D_FINAL (4) // ACTUALLY dead, remove the sprite
|
#define D_FINAL (4) // ACTUALLY dead, remove the sprite
|
||||||
|
|
||||||
|
|
||||||
|
/// pink cloud
|
||||||
|
#define PCGROWSPEED (0.02) // how much to grow each turn (0.1 - 0.999)
|
||||||
|
#define PCSHRINKSPEED (0.06) // how much to shrink each turn (0.1 - 0.999)
|
||||||
|
#define PCTURN (5) // turn speed while looping
|
||||||
|
|
||||||
|
|
||||||
// teleporting states
|
// teleporting states
|
||||||
#define TP_SHRINKING (1) // entering teleporter
|
#define TP_SHRINKING (1) // entering teleporter
|
||||||
|
|
||||||
|
@ -293,6 +347,15 @@
|
||||||
#define D_UP (-2)
|
#define D_UP (-2)
|
||||||
#define D_DOWN (2)
|
#define D_DOWN (2)
|
||||||
|
|
||||||
|
// boss health bar
|
||||||
|
#define HEALTHBARY 480-100 // y position of health bar
|
||||||
|
#define HEALTHBARGAP 2 // gap between health bars
|
||||||
|
// frames of the bar
|
||||||
|
#define HEALTHFRAMES 3
|
||||||
|
#define HF_GREEN 0
|
||||||
|
#define HF_YELLOW 1
|
||||||
|
#define HF_RED 2
|
||||||
|
|
||||||
|
|
||||||
/* data structures */
|
/* data structures */
|
||||||
typedef struct mapping_s {
|
typedef struct mapping_s {
|
||||||
|
@ -342,7 +405,8 @@ typedef struct level_s {
|
||||||
int id;
|
int id;
|
||||||
int bgtileid;
|
int bgtileid;
|
||||||
char bgfile[MIDBUFLEN];
|
char bgfile[MIDBUFLEN];
|
||||||
char name[SMALLBUFLEN];
|
char name[MIDBUFLEN];
|
||||||
|
char filename[MIDBUFLEN];
|
||||||
int map[LEVELW*LEVELH];
|
int map[LEVELW*LEVELH];
|
||||||
int map2[LEVELW*LEVELH]; // second map layer
|
int map2[LEVELW*LEVELH]; // second map layer
|
||||||
int tileframe[LEVELW*LEVELH]; // tracks frame numbers for tiles
|
int tileframe[LEVELW*LEVELH]; // tracks frame numbers for tiles
|
||||||
|
@ -366,8 +430,8 @@ level_t *level;
|
||||||
|
|
||||||
typedef struct levelentry_s {
|
typedef struct levelentry_s {
|
||||||
int id;
|
int id;
|
||||||
char *filename;
|
char filename[MIDBUFLEN];
|
||||||
char *desc;
|
char desc[MIDBUFLEN];
|
||||||
} levelentry_t;
|
} levelentry_t;
|
||||||
|
|
||||||
typedef struct sprite_s {
|
typedef struct sprite_s {
|
||||||
|
@ -381,7 +445,6 @@ typedef struct sprite_s {
|
||||||
// CURRENT STATE
|
// CURRENT STATE
|
||||||
|
|
||||||
// player only
|
// player only
|
||||||
int lives;
|
|
||||||
int recoiling; // this happens after you get hit while wearing armour
|
int recoiling; // this happens after you get hit while wearing armour
|
||||||
int slamming; // are we slamming our net (player only)
|
int slamming; // are we slamming our net (player only)
|
||||||
double slamangle;// are what point around is our net?
|
double slamangle;// are what point around is our net?
|
||||||
|
@ -412,17 +475,27 @@ typedef struct sprite_s {
|
||||||
SDL_Surface *iceimg; // Image to blit for ice
|
SDL_Surface *iceimg; // Image to blit for ice
|
||||||
int willbecome; // what fruit this will become when dead
|
int willbecome; // what fruit this will become when dead
|
||||||
int angry; // is this sprite in ANGRY mode for its AI?
|
int angry; // is this sprite in ANGRY mode for its AI?
|
||||||
|
// normally this is a bool, but for monsters we
|
||||||
|
// it for flashing them when they are hit. in this
|
||||||
|
// case it will be a number.
|
||||||
struct sprite_s *caughtby; // who has us in their net? NULL if nobody
|
struct sprite_s *caughtby; // who has us in their net? NULL if nobody
|
||||||
int quickdie; // die without bouncing?
|
int quickdie; // die without bouncing?
|
||||||
int caughtstate; // are we caught by a net? being pulled in or caught?
|
int caughtstate; // are we caught by a net? being pulled in or caught?
|
||||||
int jumptimer; // delay before we will jump
|
int jumptimer; // delay before we will jump
|
||||||
|
int willjumpspeed; // how fast we'll jump when jumptimer expires
|
||||||
int flies; // can we fly?
|
int flies; // can we fly?
|
||||||
double xs,ys; // bounce direction after death
|
double xs,ys; // bounce direction after death
|
||||||
struct sprite_s *bullet; // pointer to our bullet
|
struct sprite_s *bullet; // pointer to our bullet
|
||||||
struct sprite_s *owner; // if we ARE a bullet, pointer to the sprite who made us
|
struct sprite_s *owner; // if we ARE a bullet, pointer to the sprite who made us
|
||||||
char name[MIDBUFLEN]; // Help text for help icons, otherwise not really used outside of debugging
|
char name[MIDBUFLEN]; // Help text for help icons, otherwise not really used outside of debugging
|
||||||
|
|
||||||
|
// pinkcloud only
|
||||||
|
double size;
|
||||||
|
double rotated;
|
||||||
|
double angle;
|
||||||
|
|
||||||
// player and monster
|
// player and monster
|
||||||
|
int lives; // only for player and bosses
|
||||||
int swimming; // are we in the water?
|
int swimming; // are we in the water?
|
||||||
int falling; // are we falling?
|
int falling; // are we falling?
|
||||||
int dropping; // are we purposely dropping through solid ground?
|
int dropping; // are we purposely dropping through solid ground?
|
||||||
|
@ -461,7 +534,9 @@ imageset_t imageset[MAXPTYPES];
|
||||||
/* external globals */
|
/* external globals */
|
||||||
extern SDL_Color black;
|
extern SDL_Color black;
|
||||||
extern SDL_Surface *screen, *temps, *levelbg, *head, *headsmall, *icecube;
|
extern SDL_Surface *screen, *temps, *levelbg, *head, *headsmall, *icecube;
|
||||||
extern sprite_t *sprite, *lastsprite, *player;
|
extern SDL_Surface *healthbar[];
|
||||||
|
extern SDL_Surface *greenbox;
|
||||||
|
extern sprite_t *sprite, *lastsprite, *player, *boss;
|
||||||
extern level_t *curlevel;
|
extern level_t *curlevel;
|
||||||
extern tiletype_t fakeblock;
|
extern tiletype_t fakeblock;
|
||||||
extern int gtime;
|
extern int gtime;
|
||||||
|
@ -485,6 +560,7 @@ extern int cheat;
|
||||||
extern int nexthurryup;
|
extern int nexthurryup;
|
||||||
extern levelentry_t levelentry[];
|
extern levelentry_t levelentry[];
|
||||||
extern int numlevels;
|
extern int numlevels;
|
||||||
|
extern int maxlevid;
|
||||||
extern char *deathtext[];
|
extern char *deathtext[];
|
||||||
extern char *bifftext[];
|
extern char *bifftext[];
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,12 @@
|
||||||
- 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: IF NOT AN EFFECT: add entry to monstertochar
|
|
||||||
- in shared.c: IF NOT AN EFFECT: add entry to chartomonster
|
|
||||||
- in shared.c: update isflower(), isfruit(), isbullet(), iseffect();
|
- in shared.c: update isflower(), isfruit(), isbullet(), iseffect();
|
||||||
|
- in shared.c: update isnettable()
|
||||||
- in shared.c: IF A GEM: update flowertogem()
|
- in shared.c: IF A GEM: update flowertogem()
|
||||||
- in edit.c: update isplacable()
|
- in edit.c: update isplacable()
|
||||||
- in rc.c: update ismonster()
|
- in shared.c: update ismonster()
|
||||||
- in rc.c: add monster/effect movement
|
- in rc.c: add monster/effect movement
|
||||||
|
|
||||||
|
for bosses:
|
||||||
|
updated getbosshealth(),isboss()
|
||||||
|
|
524
edit.c
|
@ -33,6 +33,29 @@ int curlevelnum;
|
||||||
int skipto = -1;
|
int skipto = -1;
|
||||||
|
|
||||||
int layer = 1; // which layer we are editting, either 1 or 2
|
int layer = 1; // which layer we are editting, either 1 or 2
|
||||||
|
int layertransparent = B_TRUE;
|
||||||
|
|
||||||
|
SDL_Surface *whitebox;
|
||||||
|
|
||||||
|
SDL_Color red = {255, 0, 0, 0};
|
||||||
|
SDL_Color black = {0, 0, 0, 0};
|
||||||
|
SDL_Color blue = {0, 0, 255, 0};
|
||||||
|
SDL_Color cyan = {0, 255, 255, 0};
|
||||||
|
SDL_Color white = {255, 255, 255, 0};
|
||||||
|
SDL_Color grey = {210, 210, 210, 0};
|
||||||
|
SDL_Color grey2 = {70, 70, 70, 0};
|
||||||
|
SDL_Color green = {0, 255, 0, 0};
|
||||||
|
SDL_Color yellow = {255, 255, 0, 0};
|
||||||
|
|
||||||
|
int state;
|
||||||
|
|
||||||
|
char tempm[BUFLEN];
|
||||||
|
|
||||||
|
char statustext[BUFLEN];
|
||||||
|
SDL_Color *statustextcol = &white;
|
||||||
|
|
||||||
|
// for level list mode
|
||||||
|
int oldy = -1;
|
||||||
|
|
||||||
int main (int argc, char **argv) {
|
int main (int argc, char **argv) {
|
||||||
Uint8 *keys;
|
Uint8 *keys;
|
||||||
|
@ -88,6 +111,7 @@ int main (int argc, char **argv) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
atexit(cleanup);
|
atexit(cleanup);
|
||||||
|
|
||||||
#ifdef OPENGL
|
#ifdef OPENGL
|
||||||
|
@ -109,6 +133,9 @@ int main (int argc, char **argv) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
strcpy(statustext, "");
|
||||||
|
statustextcol = &white;
|
||||||
|
|
||||||
fakeblock.id = T_LAND;
|
fakeblock.id = T_LAND;
|
||||||
strcpy(fakeblock.name,"Fake");
|
strcpy(fakeblock.name,"Fake");
|
||||||
for (i = 0; i < TILEW; i++) {
|
for (i = 0; i < TILEW; i++) {
|
||||||
|
@ -121,9 +148,19 @@ int main (int argc, char **argv) {
|
||||||
fakeblock.prev = NULL;
|
fakeblock.prev = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
// coloured box surface (for tiles on non-active layer)
|
||||||
|
whitebox = SDL_CreateRGBSurface(SDL_SWSURFACE,
|
||||||
|
TILEW,TILEH,
|
||||||
|
screen->format->BitsPerPixel, screen->format->Rmask,
|
||||||
|
screen->format->Gmask,screen->format->Bmask, 0);
|
||||||
|
SDL_FillRect(whitebox, NULL, SDL_MapRGB(whitebox->format, 0, 0, 255));
|
||||||
|
SDL_SetAlpha(whitebox, SDL_SRCALPHA,100);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* load fonts */
|
/* load fonts */
|
||||||
TTF_Init();
|
TTF_Init();
|
||||||
sprintf(filename, "gamefont.ttf");
|
sprintf(filename, "editfont.ttf");
|
||||||
for (i = 1; i < MAXLETTERHEIGHT; i++) {
|
for (i = 1; i < MAXLETTERHEIGHT; i++) {
|
||||||
font[i] = TTF_OpenFont(filename,i);
|
font[i] = TTF_OpenFont(filename,i);
|
||||||
if (!font[i]) {
|
if (!font[i]) {
|
||||||
|
@ -133,6 +170,8 @@ int main (int argc, char **argv) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
state = LS_EDIT;
|
||||||
|
|
||||||
if (loadlevel(curworld,curlevelnum)) {
|
if (loadlevel(curworld,curlevelnum)) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -157,6 +196,7 @@ int main (int argc, char **argv) {
|
||||||
/* check for mouse actions */
|
/* check for mouse actions */
|
||||||
mb = SDL_GetMouseState(&mx,&my);
|
mb = SDL_GetMouseState(&mx,&my);
|
||||||
if (mb & SDL_BUTTON(1)) { // lmb
|
if (mb & SDL_BUTTON(1)) { // lmb
|
||||||
|
if (state == LS_EDIT) {
|
||||||
if ((mx >= PALX) && (my < SPALY)) { // over tile palette
|
if ((mx >= PALX) && (my < SPALY)) { // over tile palette
|
||||||
tiletype_t *tt;
|
tiletype_t *tt;
|
||||||
int x = PALX,y = PALY;
|
int x = PALX,y = PALY;
|
||||||
|
@ -181,6 +221,7 @@ int main (int argc, char **argv) {
|
||||||
}
|
}
|
||||||
// redraw palette with new selection
|
// redraw palette with new selection
|
||||||
drawpalette();
|
drawpalette();
|
||||||
|
setstatustext("", &white);
|
||||||
} else if ((mx >= PALX) && (my > SPALY)) { // over sprite palette
|
} else if ((mx >= PALX) && (my > SPALY)) { // over sprite palette
|
||||||
int p;
|
int p;
|
||||||
int x = SPALX, y = SPALY;
|
int x = SPALX, y = SPALY;
|
||||||
|
@ -217,6 +258,7 @@ int main (int argc, char **argv) {
|
||||||
}
|
}
|
||||||
// redraw palette with new selection
|
// redraw palette with new selection
|
||||||
drawpalette();
|
drawpalette();
|
||||||
|
setstatustext("", &white);
|
||||||
} else if (mx < PALX) { // over map
|
} else if (mx < PALX) { // over map
|
||||||
int x,y;
|
int x,y;
|
||||||
if (seltile != NULL) {
|
if (seltile != NULL) {
|
||||||
|
@ -237,10 +279,11 @@ int main (int argc, char **argv) {
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
// redraw tile and sprites
|
// redraw tile and sprites
|
||||||
drawtile(screen,x,y);
|
draweditortile(screen,x,y);
|
||||||
drawsprites();
|
drawsprites();
|
||||||
|
|
||||||
modified = B_TRUE;
|
setmod(B_TRUE);
|
||||||
|
setstatustext("", &white);
|
||||||
} else if (selsprite >= 0) {
|
} else if (selsprite >= 0) {
|
||||||
int placed = B_FALSE;
|
int placed = B_FALSE;
|
||||||
|
|
||||||
|
@ -258,7 +301,7 @@ int main (int argc, char **argv) {
|
||||||
s->x = x*TILEW+(TILEW/2);
|
s->x = x*TILEW+(TILEW/2);
|
||||||
s->y = y*TILEH+TILEH;
|
s->y = y*TILEH+TILEH;
|
||||||
placed = B_TRUE;
|
placed = B_TRUE;
|
||||||
modified = B_TRUE;
|
setmod(B_TRUE);
|
||||||
// get rid of old sprite
|
// get rid of old sprite
|
||||||
draweditorlevel();
|
draweditorlevel();
|
||||||
drawsprites();
|
drawsprites();
|
||||||
|
@ -286,16 +329,62 @@ int main (int argc, char **argv) {
|
||||||
} else {
|
} else {
|
||||||
addsprite(selsprite, x*TILEW+(TILEW/2),y*TILEH+TILEH,"something" );
|
addsprite(selsprite, x*TILEW+(TILEW/2),y*TILEH+TILEH,"something" );
|
||||||
}
|
}
|
||||||
printf("added a sprite\n");
|
|
||||||
toggletimer = 30;
|
toggletimer = 30;
|
||||||
modified = B_TRUE;
|
setmod(B_TRUE);
|
||||||
drawsprites();
|
drawsprites();
|
||||||
|
sprintf(tempm, "Sprite added at %d,%d",x,y);
|
||||||
|
setstatustext(tempm, &white);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (state == LS_SAVE) {
|
||||||
|
// get pos
|
||||||
|
int i;
|
||||||
|
int lev;
|
||||||
|
// get level # at mouse posj
|
||||||
|
lev = (my / (EDITTEXT + LLISTPADY));
|
||||||
|
|
||||||
|
if (curlevelnum != lev) {
|
||||||
|
|
||||||
|
// REMOVE CURRENT LEVEL FROM LIST
|
||||||
|
for (i = curlevelnum; i < (numlevels-1); i++) {
|
||||||
|
levelentry[i] = levelentry[i+1];
|
||||||
}
|
}
|
||||||
|
numlevels--;
|
||||||
|
if (lev > curlevelnum) {
|
||||||
|
lev--;
|
||||||
|
}
|
||||||
|
|
||||||
|
// shuffle
|
||||||
|
for (i = numlevels; i > lev+1; i--) {
|
||||||
|
levelentry[i] = levelentry[i-1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// insert current level at correct position (after where we clicked)
|
||||||
|
levelentry[lev+1].id = curlevel->id;
|
||||||
|
|
||||||
|
strncpy(levelentry[lev+1].desc, curlevel->name, MIDBUFLEN);
|
||||||
|
strncpy(levelentry[lev+1].filename, curlevel->filename, MIDBUFLEN);
|
||||||
|
|
||||||
|
numlevels++;
|
||||||
|
|
||||||
|
curlevelnum = lev + 1;
|
||||||
|
|
||||||
|
|
||||||
|
/* save out level list */
|
||||||
|
savelevellist();
|
||||||
|
|
||||||
|
// redraw
|
||||||
|
drawlevellist();
|
||||||
|
|
||||||
|
sprintf(tempm, "Level moved to position %d",curlevelnum);
|
||||||
|
setstatustext(tempm, &white);
|
||||||
|
}
|
||||||
|
}// end if LS_EDIT/LS_SAVE etc
|
||||||
|
} // end if LMB
|
||||||
|
|
||||||
|
|
||||||
/* check for keys */
|
/* check for keys */
|
||||||
SDL_PumpEvents();
|
SDL_PumpEvents();
|
||||||
|
@ -303,13 +392,28 @@ int main (int argc, char **argv) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (state == LS_EDIT) {
|
||||||
if (keys[SDLK_1] || keys[SDLK_2]) { // toggle layer
|
if (keys[SDLK_1] || keys[SDLK_2]) { // toggle layer
|
||||||
if (toggletimer == 0) {
|
if (toggletimer == 0) {
|
||||||
layer = 3 - layer;
|
layer = 3 - layer;
|
||||||
printf("Now editting layer %d\n",layer);
|
draweditorlevel();
|
||||||
|
drawsprites();
|
||||||
|
sprintf(tempm, "Now editting layer %d",layer);
|
||||||
|
setstatustext(tempm, &green);
|
||||||
toggletimer = 30;
|
toggletimer = 30;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (keys[SDLK_t]) {
|
||||||
|
if (toggletimer == 0) {
|
||||||
|
if (layertransparent) layertransparent = B_FALSE;
|
||||||
|
else layertransparent = B_TRUE;
|
||||||
|
draweditorlevel();
|
||||||
|
drawsprites();
|
||||||
|
sprintf(tempm, "Transparent layers now %s",layertransparent ? "ON" : "OFF");
|
||||||
|
setstatustext(tempm, &green);
|
||||||
|
toggletimer = 15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (keys[SDLK_x]) { // delete monster
|
if (keys[SDLK_x]) { // delete monster
|
||||||
int donesomething = B_FALSE;
|
int donesomething = B_FALSE;
|
||||||
|
@ -331,7 +435,7 @@ int main (int argc, char **argv) {
|
||||||
if (donesomething) {
|
if (donesomething) {
|
||||||
draweditorlevel();
|
draweditorlevel();
|
||||||
drawsprites();
|
drawsprites();
|
||||||
modified = B_TRUE;
|
setmod(B_TRUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (keys[SDLK_c]) {
|
if (keys[SDLK_c]) {
|
||||||
|
@ -346,64 +450,72 @@ int main (int argc, char **argv) {
|
||||||
/* exit direction */
|
/* exit direction */
|
||||||
if (toggletimer == 0) {
|
if (toggletimer == 0) {
|
||||||
if (keys[SDLK_h]) {
|
if (keys[SDLK_h]) {
|
||||||
printf("Exit direction set to LEFT.\n");
|
|
||||||
curlevel->exitdir = D_LEFT;
|
curlevel->exitdir = D_LEFT;
|
||||||
toggletimer = 30;
|
toggletimer = 30;
|
||||||
modified = B_TRUE;
|
setmod(B_TRUE);
|
||||||
|
sprintf(tempm, "Exit direction set to DOWN");
|
||||||
|
setstatustext(tempm, &white);
|
||||||
}
|
}
|
||||||
if (keys[SDLK_j]) {
|
if (keys[SDLK_j]) {
|
||||||
printf("Exit direction set to DOWN.\n");
|
|
||||||
curlevel->exitdir = D_DOWN;
|
curlevel->exitdir = D_DOWN;
|
||||||
toggletimer = 30;
|
toggletimer = 30;
|
||||||
modified = B_TRUE;
|
setmod(B_TRUE);
|
||||||
|
sprintf(tempm, "Exit direction set to DOWN");
|
||||||
|
setstatustext(tempm, &white);
|
||||||
}
|
}
|
||||||
if (keys[SDLK_k]) {
|
if (keys[SDLK_k]) {
|
||||||
printf("Exit direction set to UP.\n");
|
|
||||||
curlevel->exitdir = D_UP;
|
curlevel->exitdir = D_UP;
|
||||||
toggletimer = 30;
|
toggletimer = 30;
|
||||||
modified = B_TRUE;
|
setmod(B_TRUE);
|
||||||
|
sprintf(tempm, "Exit direction set to DOWN");
|
||||||
|
setstatustext(tempm, &white);
|
||||||
}
|
}
|
||||||
if (keys[SDLK_l]) {
|
if (keys[SDLK_l]) {
|
||||||
printf("Exit direction set to RIGHT.\n");
|
|
||||||
curlevel->exitdir = D_RIGHT;
|
curlevel->exitdir = D_RIGHT;
|
||||||
toggletimer = 30;
|
toggletimer = 30;
|
||||||
modified = B_TRUE;
|
setmod(B_TRUE);
|
||||||
|
sprintf(tempm, "Exit direction set to DOWN");
|
||||||
|
setstatustext(tempm, &white);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* new level */
|
||||||
|
if (keys[SDLK_n]) {
|
||||||
|
if (toggletimer == 0) {
|
||||||
|
newlevel();
|
||||||
|
draweditorlevel();
|
||||||
|
drawsprites();
|
||||||
|
toggletimer = 30;
|
||||||
|
setmod(B_FALSE);
|
||||||
|
setstatustext("Created new level.", &white);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* next level */
|
/* next level */
|
||||||
if (keys[SDLK_RIGHT]) {
|
if (keys[SDLK_RIGHT]) {
|
||||||
if (toggletimer == 0) {
|
if (toggletimer == 0) {
|
||||||
printf("Skipping to next level.\n");
|
if (curlevelnum < (numlevels-1)) {
|
||||||
curlevelnum++;
|
curlevelnum++;
|
||||||
if ((curlevelnum >= numlevels) || loadlevel(curworld,curlevelnum)) {
|
loadlevel(curworld, curlevelnum);
|
||||||
char tempbuf[BUFLEN];
|
|
||||||
clearlevel();
|
|
||||||
numlevels++;
|
|
||||||
sprintf(tempbuf,"new_level%d.dat",curlevelnum);
|
|
||||||
levelentry[curlevelnum].filename = strdup(tempbuf);
|
|
||||||
sprintf(tempbuf,"NEW LEVEL");
|
|
||||||
levelentry[curlevelnum].desc = strdup(tempbuf);
|
|
||||||
printf("created new level '%s'\n",levelentry[curlevelnum].filename);
|
|
||||||
}
|
|
||||||
draweditorlevel();
|
draweditorlevel();
|
||||||
drawsprites();
|
drawsprites();
|
||||||
toggletimer = 30;
|
toggletimer = 30;
|
||||||
|
setmod(B_FALSE);
|
||||||
|
setstatustext("Skipping to next level.", &white);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* prev level */
|
/* prev level */
|
||||||
if (keys[SDLK_LEFT]) {
|
if (keys[SDLK_LEFT]) {
|
||||||
if (toggletimer == 0) {
|
if (toggletimer == 0) {
|
||||||
if (curlevelnum > 1) {
|
if (curlevelnum > 1) {
|
||||||
printf("Skipping to previous level.\n");
|
|
||||||
curlevelnum--;
|
curlevelnum--;
|
||||||
if (loadlevel(curworld,curlevelnum)) {
|
loadlevel(curworld, curlevelnum);
|
||||||
printf("creating new level\n");
|
|
||||||
clearlevel();
|
|
||||||
}
|
|
||||||
draweditorlevel();
|
draweditorlevel();
|
||||||
drawsprites();
|
drawsprites();
|
||||||
toggletimer = 30;
|
toggletimer = 30;
|
||||||
|
setmod(B_FALSE);
|
||||||
|
setstatustext("Skipping to previous level.", &white);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -414,19 +526,65 @@ int main (int argc, char **argv) {
|
||||||
toggletimer = 50;
|
toggletimer = 50;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (keys[SDLK_ESCAPE]) {
|
if (keys[SDLK_q]) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
} else if (state == LS_SAVE) {
|
||||||
|
if (keys[SDLK_ESCAPE]) {
|
||||||
|
state = LS_EDIT;
|
||||||
|
draweditorlevel();
|
||||||
|
drawsprites();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* levellist */
|
||||||
|
if (keys[SDLK_z]) {
|
||||||
|
state = LS_SAVE;
|
||||||
|
drawlevellist();
|
||||||
|
}
|
||||||
|
|
||||||
/* SAVE LEVEL */
|
/* SAVE LEVEL */
|
||||||
if (keys[SDLK_s]) {
|
if (keys[SDLK_s]) {
|
||||||
if (modified) {
|
if (modified) {
|
||||||
savelevel(curworld,curlevelnum);
|
savelevel(curworld,curlevelnum);
|
||||||
modified = B_FALSE;
|
setmod(B_FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// line to selected position
|
||||||
|
if (state == LS_SAVE) {
|
||||||
|
char temps[MIDBUFLEN];
|
||||||
|
int lev, ypos;
|
||||||
|
// get level # at mouse posj
|
||||||
|
lev = my / (EDITTEXT + LLISTPADY);
|
||||||
|
ypos = lev * (EDITTEXT + LLISTPADY);
|
||||||
|
|
||||||
|
if (oldy != ypos) {
|
||||||
|
int textx = EDITMAPW - 200;
|
||||||
|
|
||||||
|
sprintf(temps, "Insert level here");
|
||||||
|
|
||||||
|
// clear old line
|
||||||
|
if (oldy != -1) {
|
||||||
|
drawline16(screen, LLISTX, oldy, EDITMAPW-LLISTX, oldy, black );
|
||||||
|
}
|
||||||
|
|
||||||
|
// clear old text
|
||||||
|
writetext(screen, textx, oldy-EDITTEXT, temps, EDITTEXT, &black);
|
||||||
|
|
||||||
|
// draw new line
|
||||||
|
drawline16(screen, LLISTX, ypos, EDITMAPW-LLISTX, ypos, green );
|
||||||
|
oldy = ypos;
|
||||||
|
|
||||||
|
// draw new text
|
||||||
|
writetext(screen, textx, ypos-EDITTEXT, temps, EDITTEXT, &green);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
flip();
|
flip();
|
||||||
if (++timer == 100) timer = 0;
|
if (++timer == 100) timer = 0;
|
||||||
|
@ -448,6 +606,94 @@ void cleanup(void) {
|
||||||
SDL_Quit();
|
SDL_Quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void drawstatus(void) {
|
||||||
|
char temps[MIDBUFLEN];
|
||||||
|
SDL_Rect area;
|
||||||
|
int wid;
|
||||||
|
SDL_Color *col;
|
||||||
|
|
||||||
|
// clear status
|
||||||
|
area.x = STATUSX;
|
||||||
|
area.y = STATUSY;
|
||||||
|
area.w = EDITORW;
|
||||||
|
area.h = EDITORH-STATUSY;
|
||||||
|
SDL_FillRect(screen, &area, SDL_MapRGB(screen->format, 0, 0, 0));
|
||||||
|
|
||||||
|
// show level num
|
||||||
|
sprintf(temps, "Level %d",curlevelnum);
|
||||||
|
wid = writetext(screen, area.x, area.y, temps, EDITTEXT, &white);
|
||||||
|
area.x += (wid + STATUSPAD);
|
||||||
|
// show level name
|
||||||
|
sprintf(temps, "%s",curlevel->filename);
|
||||||
|
wid = writetext(screen, area.x, area.y, temps, EDITTEXT, &white);
|
||||||
|
area.x += (wid + STATUSPAD);
|
||||||
|
// show level desc
|
||||||
|
sprintf(temps, "\"%s\"",curlevel->name);
|
||||||
|
wid = writetext(screen, area.x, area.y, temps, EDITTEXT, &blue);
|
||||||
|
area.x += (wid + STATUSPAD);
|
||||||
|
// show bg file
|
||||||
|
sprintf(temps, "bgfile: %s",curlevel->bgfile);
|
||||||
|
wid = writetext(screen, area.x, area.y, temps, EDITTEXT, &white);
|
||||||
|
area.x += (wid + STATUSPAD);
|
||||||
|
// show exit dir
|
||||||
|
sprintf(temps, "Exit dir: ");
|
||||||
|
switch (curlevel->exitdir) {
|
||||||
|
case D_RIGHT: strcat(temps, "RIGHT"); break;
|
||||||
|
case D_LEFT: strcat(temps, "LEFT"); break;
|
||||||
|
case D_UP: strcat(temps, "UP"); break;
|
||||||
|
case D_DOWN: strcat(temps, "DOWN"); break;
|
||||||
|
default: strcat(temps, "???"); break;
|
||||||
|
}
|
||||||
|
wid = writetext(screen, area.x, area.y, temps, EDITTEXT, &white);
|
||||||
|
area.x += (wid + STATUSPAD);
|
||||||
|
|
||||||
|
// show layer
|
||||||
|
///area.x = (EDITMAPW/4)*3; // 3/4 across
|
||||||
|
area.x = 0;
|
||||||
|
area.y += (EDITTEXT );
|
||||||
|
|
||||||
|
if (layer == 1) {
|
||||||
|
col = &green;
|
||||||
|
} else {
|
||||||
|
if (layertransparent) {
|
||||||
|
col = &grey2;
|
||||||
|
} else {
|
||||||
|
col = &white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sprintf(temps, "Layer 1");
|
||||||
|
wid = writetext(screen, area.x, area.y, temps, EDITTEXT, col);
|
||||||
|
|
||||||
|
if (layer == 2) {
|
||||||
|
col = &green;
|
||||||
|
} else {
|
||||||
|
if (layertransparent) {
|
||||||
|
col = &grey2;
|
||||||
|
} else {
|
||||||
|
col = &white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
area.x += (wid + STATUSPAD);
|
||||||
|
sprintf(temps, "Layer 2");
|
||||||
|
wid = writetext(screen, area.x, area.y, temps, EDITTEXT, col);
|
||||||
|
|
||||||
|
// show modified status
|
||||||
|
area.x = EDITMAPW - 50;
|
||||||
|
sprintf(temps, "MODIFIED");
|
||||||
|
if (modified) {
|
||||||
|
col = &red;
|
||||||
|
} else {
|
||||||
|
col = &grey2;
|
||||||
|
}
|
||||||
|
wid = writetext(screen, area.x, area.y, temps, EDITTEXT, col);
|
||||||
|
|
||||||
|
// Move down
|
||||||
|
area.y += (EDITTEXT);
|
||||||
|
area.x = 0;
|
||||||
|
|
||||||
|
// status text
|
||||||
|
wid = writetext(screen, area.x, area.y, statustext, EDITTEXT, statustextcol);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void draweditorlevel(void) {
|
void draweditorlevel(void) {
|
||||||
|
@ -458,17 +704,19 @@ void draweditorlevel(void) {
|
||||||
temps = NULL;
|
temps = NULL;
|
||||||
}
|
}
|
||||||
temps = SDL_CreateRGBSurface(SDL_SWSURFACE,
|
temps = SDL_CreateRGBSurface(SDL_SWSURFACE,
|
||||||
640, 480,
|
640, 480 + EDITTEXT*4,
|
||||||
screen->format->BitsPerPixel, screen->format->Rmask,
|
screen->format->BitsPerPixel, screen->format->Rmask,
|
||||||
screen->format->Gmask,screen->format->Bmask,
|
screen->format->Gmask,screen->format->Bmask,
|
||||||
screen->format->Amask);
|
screen->format->Amask);
|
||||||
|
|
||||||
for (x = 0; x < LEVELW; x++) {
|
for (x = 0; x < LEVELW; x++) {
|
||||||
for (y = 0; y < LEVELH; y++) {
|
for (y = 0; y < LEVELH; y++) {
|
||||||
drawtile(screen,x,y);
|
draweditortile(screen,x,y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
drawstatus();
|
||||||
|
|
||||||
SDL_UpdateRect(screen, 0, 0, EDITORW, EDITORH);
|
SDL_UpdateRect(screen, 0, 0, EDITORW, EDITORH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -615,7 +863,7 @@ int savelevel(int wnum, int lnum) {
|
||||||
fprintf(f, "hurryup %d\n",level->hurryuptime);
|
fprintf(f, "hurryup %d\n",level->hurryuptime);
|
||||||
|
|
||||||
/* no mappings */
|
/* no mappings */
|
||||||
fprintf(f, "endmaps\n");
|
//fprintf(f, "endmaps\n");
|
||||||
|
|
||||||
/* help text */
|
/* help text */
|
||||||
fprintf(f, "help\n");
|
fprintf(f, "help\n");
|
||||||
|
@ -631,10 +879,11 @@ int savelevel(int wnum, int lnum) {
|
||||||
for (s = sprite; s ; s = s->next) {
|
for (s = sprite; s ; s = s->next) {
|
||||||
int mx,my;
|
int mx,my;
|
||||||
char mid;
|
char mid;
|
||||||
mid = monstertochar(s->id);
|
//mid = monstertochar(s->id);
|
||||||
|
mid = s->id;
|
||||||
mx = (s->x - (TILEW/2)) / TILEW;
|
mx = (s->x - (TILEW/2)) / TILEW;
|
||||||
my = (s->y - TILEH/2) / TILEH;
|
my = (s->y - TILEH/2) / TILEH;
|
||||||
fprintf(f,"%c %d %d\n",mid,mx,my);
|
fprintf(f,"%d %d %d\n",mid,mx,my);
|
||||||
}
|
}
|
||||||
fprintf(f, "endmonsters\n");
|
fprintf(f, "endmonsters\n");
|
||||||
|
|
||||||
|
@ -662,7 +911,8 @@ int savelevel(int wnum, int lnum) {
|
||||||
|
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
||||||
printf("Level saved to '%s'\n",filename);
|
sprintf(tempm,"Level saved to '%s'",filename);
|
||||||
|
setstatustext(tempm, &green);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -688,10 +938,11 @@ void clearlevel(void) {
|
||||||
curlevel->map[offset] = T_BLANK;
|
curlevel->map[offset] = T_BLANK;
|
||||||
}
|
}
|
||||||
curlevel->map2[offset] = T_BLANK;
|
curlevel->map2[offset] = T_BLANK;
|
||||||
drawtile(screen,x,y);
|
draweditortile(screen,x,y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
modified = B_TRUE;
|
modified = B_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -708,7 +959,8 @@ int isplacablesprite(int sid) {
|
||||||
case P_SPEED:
|
case P_SPEED:
|
||||||
case P_NUMNETS:
|
case P_NUMNETS:
|
||||||
case P_BIGNET:
|
case P_BIGNET:
|
||||||
case P_CLOUD:
|
case P_BLACKCLOUD:
|
||||||
|
case P_PINKCLOUD:
|
||||||
case P_SPIT:
|
case P_SPIT:
|
||||||
case P_PUFF:
|
case P_PUFF:
|
||||||
case P_SMASH:
|
case P_SMASH:
|
||||||
|
@ -724,7 +976,195 @@ int isplacablesprite(int sid) {
|
||||||
case P_GEMRED:
|
case P_GEMRED:
|
||||||
case P_GEMYELLOW:
|
case P_GEMYELLOW:
|
||||||
case P_GEMPURPLE:
|
case P_GEMPURPLE:
|
||||||
|
case P_SPRAY:
|
||||||
|
case P_CANNONPOWERUP:
|
||||||
|
case P_CANNON:
|
||||||
return B_FALSE;
|
return B_FALSE;
|
||||||
}
|
}
|
||||||
return B_TRUE;
|
return B_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// like drawtile but adjusts transparncy based on current layer
|
||||||
|
void draweditortile(SDL_Surface *where, int x, int y) {
|
||||||
|
SDL_Rect area;
|
||||||
|
tiletype_t *tt;
|
||||||
|
int frame;
|
||||||
|
int offset;
|
||||||
|
SDL_Surface *greyim, *temps;
|
||||||
|
|
||||||
|
if ((x < 0) || (y < 0) || (x >= LEVELW) || (y >= LEVELH)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
area.x = x * TILEW;
|
||||||
|
area.y = y * TILEH;
|
||||||
|
area.w = TILEW;
|
||||||
|
area.h = TILEH;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* draw blank tile first */
|
||||||
|
tt = gettile(curlevel->bgtileid);
|
||||||
|
SDL_BlitSurface(levelbg, &area, where, &area);
|
||||||
|
|
||||||
|
/* figure out what the layer1 tile is */
|
||||||
|
offset = y*LEVELW+x;
|
||||||
|
tt = gettile(curlevel->map[offset]);
|
||||||
|
frame = curlevel->tileframe[offset];
|
||||||
|
|
||||||
|
|
||||||
|
// get greyimnal layer1 image
|
||||||
|
temps = rotozoomSurfaceXY(tt->img[frame], 0, 1, 1, 0);
|
||||||
|
// paste grey one on top
|
||||||
|
//SDL_BlitSurface(whitebox, NULL, greyim, NULL);
|
||||||
|
SDL_SetAlpha(temps, SDL_SRCALPHA, 50);
|
||||||
|
greyim = SDL_DisplayFormat(temps);
|
||||||
|
SDL_FreeSurface(temps);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* now draw real one */
|
||||||
|
if (tt->id != curlevel->bgtileid) {
|
||||||
|
if (layertransparent && (layer == 2)) { // greyed one
|
||||||
|
SDL_BlitSurface(greyim, NULL, where, &area);
|
||||||
|
} else {
|
||||||
|
SDL_BlitSurface(tt->img[frame], NULL, where, &area);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_FreeSurface(greyim);
|
||||||
|
|
||||||
|
/* now draw layer2 if it exists */
|
||||||
|
if (curlevel->map2[offset] != T_BLANK) {
|
||||||
|
tt = gettile(curlevel->map2[offset]);
|
||||||
|
if (tt->id != curlevel->bgtileid) {
|
||||||
|
|
||||||
|
// there is a second layer.
|
||||||
|
// generate greyed version...
|
||||||
|
// get greyimnal layer2 image
|
||||||
|
temps = rotozoomSurfaceXY(tt->img[frame], 0, 1, 1, 0);
|
||||||
|
// paste grey one on top
|
||||||
|
//SDL_BlitSurface(whitebox, NULL, greyim, NULL);
|
||||||
|
SDL_SetAlpha(temps, SDL_SRCALPHA, 50);
|
||||||
|
greyim = SDL_DisplayFormat(temps);
|
||||||
|
SDL_FreeSurface(temps);
|
||||||
|
|
||||||
|
if (layertransparent && (layer == 1)) { // greyed one
|
||||||
|
SDL_BlitSurface(greyim, NULL, where, &area);
|
||||||
|
} else {
|
||||||
|
SDL_BlitSurface(tt->img[frame], NULL, where, &area);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_FreeSurface(greyim);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int writetext(SDL_Surface *where, int x, int y, char *text, int size, SDL_Color *col) {
|
||||||
|
SDL_Surface *temps;
|
||||||
|
SDL_Rect area;
|
||||||
|
int wid;
|
||||||
|
|
||||||
|
if (strlen(text) <= 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
temps = TTF_RenderText_Solid(font[size], text, *col);
|
||||||
|
area.x = x;
|
||||||
|
area.y = y;
|
||||||
|
area.w = 0;
|
||||||
|
area.h = 0;
|
||||||
|
|
||||||
|
SDL_BlitSurface(temps, NULL, where, &area);
|
||||||
|
|
||||||
|
wid = temps->w;
|
||||||
|
|
||||||
|
SDL_FreeSurface(temps);
|
||||||
|
return wid;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void setmod(int yesno) {
|
||||||
|
int oldmod;
|
||||||
|
|
||||||
|
oldmod = modified;
|
||||||
|
if (yesno) {
|
||||||
|
modified = B_TRUE;
|
||||||
|
} else {
|
||||||
|
modified = B_FALSE;
|
||||||
|
}
|
||||||
|
// update status bar
|
||||||
|
if (oldmod != modified) {
|
||||||
|
drawstatus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void drawlevellist(void) {
|
||||||
|
int i;
|
||||||
|
char temps[MIDBUFLEN];
|
||||||
|
SDL_Rect area;
|
||||||
|
SDL_Color *col;
|
||||||
|
|
||||||
|
// clear map
|
||||||
|
area.x = 0;
|
||||||
|
area.y = 0;
|
||||||
|
area.w = EDITMAPW;
|
||||||
|
area.h = EDITMAPH;
|
||||||
|
SDL_FillRect(screen, &area, SDL_MapRGB(screen->format, 0, 0, 0));
|
||||||
|
|
||||||
|
// draw level list
|
||||||
|
area.x = LLISTX;
|
||||||
|
area.y = 0;
|
||||||
|
area.w = 0;
|
||||||
|
area.h = 0;
|
||||||
|
for (i =1; i < numlevels; i++) {
|
||||||
|
if (i == curlevelnum) {
|
||||||
|
col = &green;
|
||||||
|
} else {
|
||||||
|
col = &white;
|
||||||
|
}
|
||||||
|
sprintf(temps, "%d. %s (%s)",levelentry[i].id, levelentry[i].desc, levelentry[i].filename);
|
||||||
|
writetext(screen, area.x, area.y, temps, EDITTEXT, col);
|
||||||
|
area.y += (EDITTEXT + LLISTPADY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void newlevel(void) {
|
||||||
|
char tempbuf[BUFLEN];
|
||||||
|
|
||||||
|
curlevelnum = numlevels;
|
||||||
|
|
||||||
|
clearlevel();
|
||||||
|
|
||||||
|
maxlevid++;
|
||||||
|
sprintf(tempbuf,"level%d.dat",maxlevid);
|
||||||
|
sprintf(curlevel->filename, tempbuf);
|
||||||
|
strncpy(levelentry[curlevelnum].filename, tempbuf, MIDBUFLEN);
|
||||||
|
sprintf(tempbuf,"NEW LEVEL");
|
||||||
|
sprintf(curlevel->name, tempbuf);
|
||||||
|
strncpy(levelentry[curlevelnum].desc, tempbuf, MIDBUFLEN);
|
||||||
|
curlevel->id = maxlevid;
|
||||||
|
levelentry[curlevelnum].id = maxlevid;
|
||||||
|
|
||||||
|
|
||||||
|
sprintf(tempm,"Made new level '%s'\n",levelentry[curlevelnum].filename);
|
||||||
|
setstatustext(tempm, &green);
|
||||||
|
|
||||||
|
numlevels++;
|
||||||
|
|
||||||
|
// save list
|
||||||
|
savelevellist();
|
||||||
|
}
|
||||||
|
|
||||||
|
void setstatustext(char *text, SDL_Color *col) {
|
||||||
|
strncpy(statustext, text, BUFLEN);
|
||||||
|
statustextcol = col;
|
||||||
|
drawstatus();
|
||||||
|
}
|
||||||
|
|
44
edit.h
|
@ -1,21 +1,45 @@
|
||||||
// Editor specific macros
|
|
||||||
#define EDITORW 800
|
|
||||||
#define EDITORH 480
|
|
||||||
|
|
||||||
// location of tile palette in editor
|
// location of tile palette in editor
|
||||||
#define PALX 640
|
#define PALX 640
|
||||||
#define PALY 0
|
#define PALY 0
|
||||||
#define PALW (EDITORW-PALX)
|
#define PALW (EDITMAPW-PALX)
|
||||||
#define PALH (EDITORH/2)-1
|
#define PALH (EDITMAPH/2)-1
|
||||||
|
|
||||||
|
#define EDITTEXT 12
|
||||||
|
#define EDITLINE (EDITTEXT + 1)
|
||||||
|
|
||||||
|
|
||||||
|
// MAP
|
||||||
|
#define EDITMAPW 640 // TODO: fix
|
||||||
|
#define EDITMAPH 480
|
||||||
|
|
||||||
|
//
|
||||||
|
#define EDITORW 800
|
||||||
|
#define EDITORH EDITMAPH + (EDITTEXT*4)
|
||||||
|
|
||||||
// location of sprite palette in editor
|
// location of sprite palette in editor
|
||||||
#define SPALX 640
|
#define SPALX 640
|
||||||
#define SPALY (EDITORH/2)
|
#define SPALY PALH
|
||||||
#define SPALW (EDITORW-PALX)
|
#define SPALW (EDITORW-PALX)
|
||||||
#define SPALH (EDITORH/2)-1
|
#define SPALH (EDITORH/2)-1
|
||||||
|
|
||||||
|
|
||||||
|
#define STATUSX 0
|
||||||
|
#define STATUSY EDITMAPH
|
||||||
|
|
||||||
|
#define STATUSPAD 10
|
||||||
|
|
||||||
|
#define LLISTPADY 2
|
||||||
|
#define LLISTX 50
|
||||||
|
|
||||||
|
|
||||||
|
// level states
|
||||||
|
#define LS_EDIT 0
|
||||||
|
#define LS_SAVE 1
|
||||||
|
|
||||||
|
|
||||||
// Editor specific functions
|
// Editor specific functions
|
||||||
void draweditorlevel(void);
|
void draweditorlevel(void);
|
||||||
|
void draweditortile(SDL_Surface *where, int x, int y);
|
||||||
void drawpalette(void);
|
void drawpalette(void);
|
||||||
void drawsprites(void);
|
void drawsprites(void);
|
||||||
int savelevel(int wnum, int lnum);
|
int savelevel(int wnum, int lnum);
|
||||||
|
@ -25,3 +49,9 @@ void clearlevel(void);
|
||||||
|
|
||||||
int isplacabletile(int tid);
|
int isplacabletile(int tid);
|
||||||
int isplacablesprite(int sid);
|
int isplacablesprite(int sid);
|
||||||
|
int writetext(SDL_Surface *where, int x, int y, char *text, int size, SDL_Color *col);
|
||||||
|
void drawstatus(void);
|
||||||
|
void setmod(int yesno);
|
||||||
|
void drawlevellist(void);
|
||||||
|
void newlevel(void);
|
||||||
|
void setstatustext(char *text, SDL_Color *col);
|
||||||
|
|
|
@ -7,14 +7,20 @@ int musicplaying;
|
||||||
levelentry_t levelentry[MAXLEVELS]; // level filenames etc
|
levelentry_t levelentry[MAXLEVELS]; // level filenames etc
|
||||||
int numlevels;
|
int numlevels;
|
||||||
|
|
||||||
|
int maxlevid;
|
||||||
|
|
||||||
|
|
||||||
SDL_Surface *levelbg; // level background image
|
SDL_Surface *levelbg; // level background image
|
||||||
SDL_Surface *temps; // temporary surface
|
SDL_Surface *temps; // temporary surface
|
||||||
SDL_Surface *screen; // the actual video screen
|
SDL_Surface *screen; // the actual video screen
|
||||||
SDL_Surface *head,*headsmall; // img in corner showing number of lives
|
SDL_Surface *head,*headsmall; // img in corner showing number of lives
|
||||||
SDL_Surface *icecube; // overlaid on frozen monsters
|
SDL_Surface *icecube; // overlaid on frozen monsters
|
||||||
|
SDL_Surface *greenbox; // for fly spray effect
|
||||||
|
SDL_Surface *healthbar[HEALTHFRAMES]; // for boss health
|
||||||
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
|
||||||
|
sprite_t *boss; // point to current boss on level (normally NULL)
|
||||||
|
|
||||||
Mix_Music *music, *fastmusic, *normalmusic;
|
Mix_Music *music, *fastmusic, *normalmusic;
|
||||||
Mix_Chunk *sfx[MAXFX];
|
Mix_Chunk *sfx[MAXFX];
|
||||||
|
|
|
@ -17,4 +17,5 @@
|
||||||
16,level14.dat,The Chimney
|
16,level14.dat,The Chimney
|
||||||
19,level21.dat,Island
|
19,level21.dat,Island
|
||||||
18,level8.5.dat,Look out above...
|
18,level8.5.dat,Look out above...
|
||||||
|
20,level20.dat,King Rat
|
||||||
99,level99.dat,TEST LEVEL
|
99,level99.dat,TEST LEVEL
|
||||||
|
|
4
rc.h
|
@ -2,6 +2,7 @@ void cleanup(void);
|
||||||
int addtext(int x, int y, int size, char *string, SDL_Color *c, int delay);
|
int addtext(int x, int y, int size, char *string, SDL_Color *c, int delay);
|
||||||
void addoutlinetext(int x, int y, int size, char *msg, SDL_Color *col, SDL_Color *bgcol, int delay);
|
void addoutlinetext(int x, int y, int size, char *msg, SDL_Color *col, SDL_Color *bgcol, int delay);
|
||||||
void drawscore(void);
|
void drawscore(void);
|
||||||
|
void drawbosshealth(void);
|
||||||
void drawtext(void);
|
void drawtext(void);
|
||||||
void movetext(void);
|
void movetext(void);
|
||||||
void removeall(void);
|
void removeall(void);
|
||||||
|
@ -44,10 +45,11 @@ void channeldone(int channel);
|
||||||
void movetostart(sprite_t *p, int dstx, int dsty, double xspeed,double yspeed);
|
void movetostart(sprite_t *p, int dstx, int dsty, double xspeed,double yspeed);
|
||||||
SDL_Surface *grabbehind(sprite_t *s, SDL_Surface *surf);
|
SDL_Surface *grabbehind(sprite_t *s, SDL_Surface *surf);
|
||||||
void dumpsprites(void);
|
void dumpsprites(void);
|
||||||
void countmonsters(void);
|
int countmonsters(void);
|
||||||
int getpoints(int id);
|
int getpoints(int id);
|
||||||
int isladder(int tid);
|
int isladder(int tid);
|
||||||
char *addcommas(char *buffer, int num);
|
char *addcommas(char *buffer, int num);
|
||||||
void addscore(sprite_t *s, int amt);
|
void addscore(sprite_t *s, int amt);
|
||||||
void doice(void);
|
void doice(void);
|
||||||
|
void checklevelend(void);
|
||||||
|
|
||||||
|
|
274
shared.c
|
@ -34,9 +34,9 @@ int loadlevel(int wnum, int lnum) {
|
||||||
int tileid;
|
int tileid;
|
||||||
int i;
|
int i;
|
||||||
//int *ii;
|
//int *ii;
|
||||||
mapping_t mapping[MAXMAPPINGS];
|
//mapping_t mapping[MAXMAPPINGS];
|
||||||
int nmappings = 0;
|
//int nmappings = 0;
|
||||||
tiletype_t *lasttile;
|
//tiletype_t *lasttile;
|
||||||
int newversion;
|
int newversion;
|
||||||
int numanim = 0;
|
int numanim = 0;
|
||||||
int leveldone;
|
int leveldone;
|
||||||
|
@ -69,6 +69,8 @@ int loadlevel(int wnum, int lnum) {
|
||||||
|
|
||||||
if (!level) level = malloc(sizeof(level_t));
|
if (!level) level = malloc(sizeof(level_t));
|
||||||
|
|
||||||
|
sprintf(level->filename, levelentry[lnum].filename);
|
||||||
|
|
||||||
/* set current level pointer */
|
/* set current level pointer */
|
||||||
curlevel = level;
|
curlevel = level;
|
||||||
|
|
||||||
|
@ -76,7 +78,7 @@ int loadlevel(int wnum, int lnum) {
|
||||||
|
|
||||||
level->id = levelentry[lnum].id;
|
level->id = levelentry[lnum].id;
|
||||||
//sprintf(level->name, "Level %d-%d",wnum,lnum);
|
//sprintf(level->name, "Level %d-%d",wnum,lnum);
|
||||||
sprintf(level->name, "\"%s\"",levelentry[lnum].desc);
|
sprintf(level->name, "%s",levelentry[lnum].desc);
|
||||||
level->prev = NULL;
|
level->prev = NULL;
|
||||||
level->next = NULL;
|
level->next = NULL;
|
||||||
|
|
||||||
|
@ -195,6 +197,7 @@ int loadlevel(int wnum, int lnum) {
|
||||||
|
|
||||||
/* read tile defs */
|
/* read tile defs */
|
||||||
// TODO: remove all of this, don't need it with new level format
|
// TODO: remove all of this, don't need it with new level format
|
||||||
|
/*
|
||||||
nmappings = 0;
|
nmappings = 0;
|
||||||
fgets(buf, BUFLEN, f);
|
fgets(buf, BUFLEN, f);
|
||||||
while (!strstr(buf, "endmaps")) {
|
while (!strstr(buf, "endmaps")) {
|
||||||
|
@ -216,6 +219,7 @@ int loadlevel(int wnum, int lnum) {
|
||||||
fgets(buf, BUFLEN, f);
|
fgets(buf, BUFLEN, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
fgets(buf, BUFLEN, f);
|
fgets(buf, BUFLEN, f);
|
||||||
/* read help messages if present */
|
/* read help messages if present */
|
||||||
if (strstr(buf, "help")) {
|
if (strstr(buf, "help")) {
|
||||||
|
@ -237,7 +241,7 @@ int loadlevel(int wnum, int lnum) {
|
||||||
if (strstr(buf, "monsters")) {
|
if (strstr(buf, "monsters")) {
|
||||||
fgets(buf, BUFLEN, f);
|
fgets(buf, BUFLEN, f);
|
||||||
while (!strstr(buf, "endmonsters")) {
|
while (!strstr(buf, "endmonsters")) {
|
||||||
char ch;
|
//char ch;
|
||||||
int monid;
|
int monid;
|
||||||
int x,y;
|
int x,y;
|
||||||
// strip newline
|
// strip newline
|
||||||
|
@ -249,8 +253,10 @@ int loadlevel(int wnum, int lnum) {
|
||||||
printf("invalid monster definition (missing type): '%s'\n",buf);
|
printf("invalid monster definition (missing type): '%s'\n",buf);
|
||||||
return B_TRUE;
|
return B_TRUE;
|
||||||
}
|
}
|
||||||
ch = p[0]; // type of monster
|
//ch = p[0]; // type of monster
|
||||||
monid = chartomonster(ch);
|
//monid = chartomonster(ch);
|
||||||
|
// type of monster
|
||||||
|
monid = atoi(p);
|
||||||
if (monid < 0) {
|
if (monid < 0) {
|
||||||
printf("invalid monster definition (invalid type): '%s'\n",buf);
|
printf("invalid monster definition (invalid type): '%s'\n",buf);
|
||||||
return B_TRUE;
|
return B_TRUE;
|
||||||
|
@ -393,10 +399,10 @@ int loadlevel(int wnum, int lnum) {
|
||||||
p = strtok(NULL, ",");
|
p = strtok(NULL, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
} else { /* old level data version */
|
} /*else { // old level data version
|
||||||
for (p = buf; *p; p++) {
|
for (p = buf; *p; p++) {
|
||||||
int n,found = 0;
|
int n,found = 0;
|
||||||
/* search mappings */
|
// search mappings
|
||||||
for (n = 0; n < nmappings; n++) {
|
for (n = 0; n < nmappings; n++) {
|
||||||
if (mapping[n].ch == *p) {
|
if (mapping[n].ch == *p) {
|
||||||
tileid = mapping[n].tnum;
|
tileid = mapping[n].tnum;
|
||||||
|
@ -428,10 +434,10 @@ int loadlevel(int wnum, int lnum) {
|
||||||
tileid = level->bgtileid;
|
tileid = level->bgtileid;
|
||||||
level->initm[level->nummonsters].startx = x*TILEW+(TILEW/2);
|
level->initm[level->nummonsters].startx = x*TILEW+(TILEW/2);
|
||||||
level->initm[level->nummonsters].starty = y*TILEH+(TILEH-2);
|
level->initm[level->nummonsters].starty = y*TILEH+(TILEH-2);
|
||||||
level->initm[level->nummonsters].id = P_CLOUD;
|
level->initm[level->nummonsters].id = P_BLACKCLOUD;
|
||||||
level->nummonsters++;
|
level->nummonsters++;
|
||||||
} else if (*p == 'r') {
|
} else if (*p == 'r') {
|
||||||
/* figure out background type */
|
// figure out background type
|
||||||
if (lasttile->solid) {
|
if (lasttile->solid) {
|
||||||
tileid = level->map[(y-1)*LEVELW+x];
|
tileid = level->map[(y-1)*LEVELW+x];
|
||||||
} else {
|
} else {
|
||||||
|
@ -445,7 +451,7 @@ int loadlevel(int wnum, int lnum) {
|
||||||
level->nummonsters++;
|
level->nummonsters++;
|
||||||
|
|
||||||
} else if (*p == 'S') {
|
} else if (*p == 'S') {
|
||||||
/* figure out background type */
|
// figure out background type
|
||||||
if (lasttile->solid) {
|
if (lasttile->solid) {
|
||||||
tileid = level->map[(y-1)*LEVELW+x];
|
tileid = level->map[(y-1)*LEVELW+x];
|
||||||
} else {
|
} else {
|
||||||
|
@ -458,7 +464,7 @@ int loadlevel(int wnum, int lnum) {
|
||||||
level->initm[level->nummonsters].id = P_SNAKE;
|
level->initm[level->nummonsters].id = P_SNAKE;
|
||||||
level->nummonsters++;
|
level->nummonsters++;
|
||||||
} else if (*p == 'a') {
|
} else if (*p == 'a') {
|
||||||
/* figure out background type */
|
// figure out background type
|
||||||
if (lasttile->solid) {
|
if (lasttile->solid) {
|
||||||
tileid = level->map[(y-1)*LEVELW+x];
|
tileid = level->map[(y-1)*LEVELW+x];
|
||||||
} else {
|
} else {
|
||||||
|
@ -470,7 +476,7 @@ int loadlevel(int wnum, int lnum) {
|
||||||
level->initm[level->nummonsters].id = P_BEE;
|
level->initm[level->nummonsters].id = P_BEE;
|
||||||
level->nummonsters++;
|
level->nummonsters++;
|
||||||
} else if (*p == 's') {
|
} else if (*p == 's') {
|
||||||
/* figure out background type */
|
// figure out background type
|
||||||
if (lasttile->solid) {
|
if (lasttile->solid) {
|
||||||
tileid = level->map[(y-1)*LEVELW+x];
|
tileid = level->map[(y-1)*LEVELW+x];
|
||||||
} else {
|
} else {
|
||||||
|
@ -482,7 +488,7 @@ int loadlevel(int wnum, int lnum) {
|
||||||
level->initm[level->nummonsters].id = P_SPIDER;
|
level->initm[level->nummonsters].id = P_SPIDER;
|
||||||
level->nummonsters++;
|
level->nummonsters++;
|
||||||
} else if (*p == '?') {
|
} else if (*p == '?') {
|
||||||
/* figure out background type */
|
// figure out background type
|
||||||
if (lasttile->solid) {
|
if (lasttile->solid) {
|
||||||
tileid = level->map[(y-1)*LEVELW+x];
|
tileid = level->map[(y-1)*LEVELW+x];
|
||||||
} else {
|
} else {
|
||||||
|
@ -516,7 +522,7 @@ int loadlevel(int wnum, int lnum) {
|
||||||
} else if (*p == '\\') {
|
} else if (*p == '\\') {
|
||||||
tileid = T_SLOPEDOWN;
|
tileid = T_SLOPEDOWN;
|
||||||
} else if (*p == '1') {
|
} else if (*p == '1') {
|
||||||
/* figure out background type */
|
// figure out background type
|
||||||
if (lasttile->solid) {
|
if (lasttile->solid) {
|
||||||
tileid = level->map[(y-1)*LEVELW+x];
|
tileid = level->map[(y-1)*LEVELW+x];
|
||||||
} else {
|
} else {
|
||||||
|
@ -548,7 +554,8 @@ int loadlevel(int wnum, int lnum) {
|
||||||
lasttile = gettile(tileid);
|
lasttile = gettile(tileid);
|
||||||
x++;
|
x++;
|
||||||
}
|
}
|
||||||
} /* if newversion */
|
} // if newversion
|
||||||
|
*/
|
||||||
|
|
||||||
/* make sure enough data was found */
|
/* make sure enough data was found */
|
||||||
if (x < LEVELW+1) {
|
if (x < LEVELW+1) {
|
||||||
|
@ -664,6 +671,7 @@ int loadlevel(int wnum, int lnum) {
|
||||||
} else {
|
} else {
|
||||||
delay = 0;
|
delay = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __EDITOR
|
#ifdef __EDITOR
|
||||||
addsprite(level->initm[i].id,
|
addsprite(level->initm[i].id,
|
||||||
level->initm[i].startx, level->initm[i].starty, name );
|
level->initm[i].startx, level->initm[i].starty, name );
|
||||||
|
@ -675,6 +683,8 @@ int loadlevel(int wnum, int lnum) {
|
||||||
gtime = 0;
|
gtime = 0;
|
||||||
nexthurryup = level->hurryuptime;
|
nexthurryup = level->hurryuptime;
|
||||||
|
|
||||||
|
boss = NULL;
|
||||||
|
|
||||||
printf("Done.\n");
|
printf("Done.\n");
|
||||||
/*
|
/*
|
||||||
for (ii = level->animtiles ; ii && *ii != -1; ii++) {
|
for (ii = level->animtiles ; ii && *ii != -1; ii++) {
|
||||||
|
@ -725,6 +735,7 @@ void setdefaults(sprite_t *s) {
|
||||||
s->dead = 0;
|
s->dead = 0;
|
||||||
s->angry = 0;
|
s->angry = 0;
|
||||||
s->jumptimer = 0;
|
s->jumptimer = 0;
|
||||||
|
s->willjumpspeed = 0;
|
||||||
s->iced = B_FALSE;
|
s->iced = B_FALSE;
|
||||||
if (s->iceimg) {
|
if (s->iceimg) {
|
||||||
SDL_FreeSurface(s->iceimg);
|
SDL_FreeSurface(s->iceimg);
|
||||||
|
@ -736,9 +747,29 @@ void setdefaults(sprite_t *s) {
|
||||||
|
|
||||||
s->willbecome = P_CHEESE;
|
s->willbecome = P_CHEESE;
|
||||||
|
|
||||||
|
// special
|
||||||
|
if (s->id == P_PINKCLOUD) {
|
||||||
|
s->size = 0.1;
|
||||||
|
} else {
|
||||||
|
// not used
|
||||||
|
s->size = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// special for bosses
|
||||||
|
if (s->id == P_KINGRAT) {
|
||||||
|
s->timer1 = 0;
|
||||||
|
s->timer2 = KR_WALKTIME;
|
||||||
|
s->timer3 = 0;
|
||||||
|
}
|
||||||
|
if (isboss(s->id)) {
|
||||||
|
s->lives = getbosshealth(s->id); // health
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// flying
|
||||||
switch (s->id) {
|
switch (s->id) {
|
||||||
case P_BEE:
|
case P_BEE:
|
||||||
case P_CLOUD:
|
case P_BLACKCLOUD:
|
||||||
case P_SPIDER:
|
case P_SPIDER:
|
||||||
s->flies = B_TRUE;
|
s->flies = B_TRUE;
|
||||||
break;
|
break;
|
||||||
|
@ -781,8 +812,10 @@ sprite_t *addsprite(int id, int x, int y, char *name ) {
|
||||||
s->id = id;
|
s->id = id;
|
||||||
s->x = x;
|
s->x = x;
|
||||||
s->y = y;
|
s->y = y;
|
||||||
if (s->id == P_CLOUD) {
|
if (s->id == P_BLACKCLOUD) {
|
||||||
s->img = rotozoomSurfaceXY(imageset[id].img[F_WALK1],0,1,1,0);
|
s->img = rotozoomSurfaceXY(imageset[id].img[F_WALK1],0,1,1,0);
|
||||||
|
} else if (s->id == P_PINKCLOUD) {
|
||||||
|
s->img = rotozoomSurfaceXY(imageset[id].img[F_WALK1],0,(double)PCGROWSPEED,(double)PCGROWSPEED,0);
|
||||||
} else {
|
} else {
|
||||||
s->img = imageset[id].img[F_WALK1];
|
s->img = imageset[id].img[F_WALK1];
|
||||||
}
|
}
|
||||||
|
@ -1020,9 +1053,24 @@ int loadimagesets(void) {
|
||||||
SDL_Surface *tempimg;
|
SDL_Surface *tempimg;
|
||||||
SDL_Surface *reds;
|
SDL_Surface *reds;
|
||||||
|
|
||||||
|
|
||||||
head = IMG_Load("sprites/dwarfhead.png");
|
head = IMG_Load("sprites/dwarfhead.png");
|
||||||
headsmall = IMG_Load("sprites/dwarfhead-small.png");
|
headsmall = IMG_Load("sprites/dwarfhead-small.png");
|
||||||
icecube = IMG_Load("sprites/icecube.png");
|
icecube = IMG_Load("sprites/icecube.png");
|
||||||
|
healthbar[HF_GREEN] = IMG_Load("sprites/health.png");
|
||||||
|
healthbar[HF_YELLOW] = IMG_Load("sprites/healthyellow.png");
|
||||||
|
healthbar[HF_RED] = IMG_Load("sprites/healthred.png");
|
||||||
|
|
||||||
|
// green square for flyspray effect
|
||||||
|
|
||||||
|
greenbox = SDL_CreateRGBSurface(SDL_SWSURFACE,
|
||||||
|
screen->w,
|
||||||
|
screen->h,
|
||||||
|
screen->format->BitsPerPixel, screen->format->Rmask,
|
||||||
|
screen->format->Gmask,screen->format->Bmask, 0);
|
||||||
|
SDL_FillRect(greenbox, NULL, SDL_MapRGB(greenbox->format, 0, 150, 0));
|
||||||
|
SDL_SetAlpha(greenbox, SDL_SRCALPHA,80);
|
||||||
|
|
||||||
|
|
||||||
loadspriteimage(P_PLAYER,F_WALK1, "sprites/pdwarf.png");
|
loadspriteimage(P_PLAYER,F_WALK1, "sprites/pdwarf.png");
|
||||||
loadspriteimage(P_PLAYER,F_JUMP, "sprites/pdwarfjump.png");
|
loadspriteimage(P_PLAYER,F_JUMP, "sprites/pdwarfjump.png");
|
||||||
|
@ -1094,12 +1142,16 @@ int loadimagesets(void) {
|
||||||
/* next 3 are auto generated */
|
/* next 3 are auto generated */
|
||||||
imageset[P_SPIDER].numimages = 8;
|
imageset[P_SPIDER].numimages = 8;
|
||||||
|
|
||||||
loadspriteimage(P_CLOUD,F_WALK1, "sprites/cloud.png");
|
loadspriteimage(P_BLACKCLOUD,F_WALK1, "sprites/cloud.png");
|
||||||
loadspriteimage(P_CLOUD,F_JUMP, "sprites/cloud.png");
|
loadspriteimage(P_BLACKCLOUD,F_JUMP, "sprites/cloud.png");
|
||||||
loadspriteimage(P_CLOUD,F_FALL, "sprites/cloud.png");
|
loadspriteimage(P_BLACKCLOUD,F_FALL, "sprites/cloud.png");
|
||||||
loadspriteimage(P_CLOUD,F_CAUGHT, "sprites/cloud.png");
|
loadspriteimage(P_BLACKCLOUD,F_CAUGHT, "sprites/cloud.png");
|
||||||
loadspriteimage(P_CLOUD,F_DEAD, "sprites/cloud.png");
|
loadspriteimage(P_BLACKCLOUD,F_DEAD, "sprites/cloud.png");
|
||||||
imageset[P_CLOUD].numimages = 2;
|
imageset[P_BLACKCLOUD].numimages = 2;
|
||||||
|
|
||||||
|
loadspriteimage(P_PINKCLOUD,F_WALK1, "sprites/pinkcloud.png");
|
||||||
|
imageset[P_PINKCLOUD].numimages = 1;
|
||||||
|
|
||||||
|
|
||||||
loadspriteimage(P_COKE,F_WALK1, "sprites/coke.png");
|
loadspriteimage(P_COKE,F_WALK1, "sprites/coke.png");
|
||||||
loadspriteimage(P_COKE,F_JUMP, "sprites/cokejump.png");
|
loadspriteimage(P_COKE,F_JUMP, "sprites/cokejump.png");
|
||||||
|
@ -1108,6 +1160,14 @@ int loadimagesets(void) {
|
||||||
loadspriteimage(P_COKE,F_DEAD, "sprites/cokedead.png");
|
loadspriteimage(P_COKE,F_DEAD, "sprites/cokedead.png");
|
||||||
imageset[P_COKE].numimages = 8;
|
imageset[P_COKE].numimages = 8;
|
||||||
|
|
||||||
|
loadspriteimage(P_KINGRAT,F_WALK1, "sprites/kingrat.png");
|
||||||
|
loadspriteimage(P_KINGRAT,F_JUMP, "sprites/kingratjump.png");
|
||||||
|
loadspriteimage(P_KINGRAT,F_FALL, "sprites/kingratjump.png");
|
||||||
|
loadspriteimage(P_KINGRAT,F_CAUGHT, "sprites/kingratcaught.png");
|
||||||
|
loadspriteimage(P_KINGRAT,F_DEAD, "sprites/kingratdead.png");
|
||||||
|
/* next 3 are auto generated */
|
||||||
|
imageset[P_KINGRAT].numimages = 8;
|
||||||
|
|
||||||
/* fruits / powerups */
|
/* fruits / powerups */
|
||||||
loadspriteimage(P_CHEESE,F_WALK1, "sprites/cheese.png");
|
loadspriteimage(P_CHEESE,F_WALK1, "sprites/cheese.png");
|
||||||
imageset[P_CHEESE].numimages = 1;
|
imageset[P_CHEESE].numimages = 1;
|
||||||
|
@ -1207,6 +1267,15 @@ int loadimagesets(void) {
|
||||||
loadspriteimage(P_SNOWMAN,F_WALK1, "sprites/snowman.png");
|
loadspriteimage(P_SNOWMAN,F_WALK1, "sprites/snowman.png");
|
||||||
imageset[P_SNOWMAN].numimages = 1;
|
imageset[P_SNOWMAN].numimages = 1;
|
||||||
|
|
||||||
|
loadspriteimage(P_SPRAY,F_WALK1, "sprites/spray.png");
|
||||||
|
imageset[P_SPRAY].numimages = 1;
|
||||||
|
|
||||||
|
loadspriteimage(P_CANNONPOWERUP,F_WALK1, "sprites/cannonpowerup.png");
|
||||||
|
imageset[P_CANNONPOWERUP].numimages = 1;
|
||||||
|
|
||||||
|
loadspriteimage(P_CANNON,F_WALK1, "sprites/cannon.png");
|
||||||
|
imageset[P_CANNON].numimages = 1;
|
||||||
|
|
||||||
// puffs and mace smashes
|
// puffs and mace smashes
|
||||||
for (i = 0; i < PUFFFRAMES; i++) {
|
for (i = 0; i < PUFFFRAMES; i++) {
|
||||||
char name[SMALLBUFLEN];
|
char name[SMALLBUFLEN];
|
||||||
|
@ -1269,7 +1338,16 @@ int loadimagesets(void) {
|
||||||
|
|
||||||
/* angry image */
|
/* angry image */
|
||||||
|
|
||||||
// create semi-transparent red square
|
// create semi-transparent red square (white for bosses)
|
||||||
|
if (isboss(p)) {
|
||||||
|
reds = SDL_CreateRGBSurface(SDL_SWSURFACE,
|
||||||
|
origi->w,
|
||||||
|
origi->h,
|
||||||
|
origi->format->BitsPerPixel, origi->format->Rmask,
|
||||||
|
origi->format->Gmask,origi->format->Bmask, 0);
|
||||||
|
SDL_FillRect(reds, NULL, SDL_MapRGB(reds->format, 255, 255, 255));
|
||||||
|
SDL_SetAlpha(reds, SDL_SRCALPHA,100);
|
||||||
|
} else {
|
||||||
reds = SDL_CreateRGBSurface(SDL_SWSURFACE,
|
reds = SDL_CreateRGBSurface(SDL_SWSURFACE,
|
||||||
origi->w,
|
origi->w,
|
||||||
origi->h,
|
origi->h,
|
||||||
|
@ -1277,6 +1355,7 @@ int loadimagesets(void) {
|
||||||
origi->format->Gmask,origi->format->Bmask, 0);
|
origi->format->Gmask,origi->format->Bmask, 0);
|
||||||
SDL_FillRect(reds, NULL, SDL_MapRGB(reds->format, 255, 0, 0));
|
SDL_FillRect(reds, NULL, SDL_MapRGB(reds->format, 255, 0, 0));
|
||||||
SDL_SetAlpha(reds, SDL_SRCALPHA,100);
|
SDL_SetAlpha(reds, SDL_SRCALPHA,100);
|
||||||
|
}
|
||||||
|
|
||||||
// take a copy of the original image
|
// take a copy of the original image
|
||||||
imageset[p].img[MAXFRAMES*2+i] = rotozoomSurfaceXY(origi, 0, 1,1,0);
|
imageset[p].img[MAXFRAMES*2+i] = rotozoomSurfaceXY(origi, 0, 1,1,0);
|
||||||
|
@ -1292,8 +1371,16 @@ int loadimagesets(void) {
|
||||||
imageset[p].img[MAXFRAMES*2+i] = temps;
|
imageset[p].img[MAXFRAMES*2+i] = temps;
|
||||||
|
|
||||||
// Make the background red bits completely transparent
|
// Make the background red bits completely transparent
|
||||||
|
if (isboss(p)) {
|
||||||
SDL_SetColorKey(imageset[p].img[MAXFRAMES*2+i],
|
SDL_SetColorKey(imageset[p].img[MAXFRAMES*2+i],
|
||||||
SDL_SRCCOLORKEY, SDL_MapRGB(imageset[p].img[MAXFRAMES*2+i]->format, 101, 0, 0));
|
SDL_SRCCOLORKEY, SDL_MapRGB(imageset[p].img[MAXFRAMES*2+i]->format, 99, 97, 99));
|
||||||
|
} else {
|
||||||
|
///SDL_Color tempcol;
|
||||||
|
///getpixelrgb(imageset[p].img[MAXFRAMES*2+i], 0, 0, &tempcol);
|
||||||
|
//printf("for spriteid %d, rgb is %d,%d,%d\n",p,tempcol.r,tempcol.g,tempcol.b);
|
||||||
|
SDL_SetColorKey(imageset[p].img[MAXFRAMES*2+i],
|
||||||
|
SDL_SRCCOLORKEY, SDL_MapRGB(imageset[p].img[MAXFRAMES*2+i]->format, 99, 0, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* flipped angry image */
|
/* flipped angry image */
|
||||||
|
@ -1336,6 +1423,11 @@ void drawsprite(sprite_t *s) {
|
||||||
|
|
||||||
if ((s == player) && (levelcomplete == LV_NEXTLEV)) {
|
if ((s == player) && (levelcomplete == LV_NEXTLEV)) {
|
||||||
frame = F_SHOOT;
|
frame = F_SHOOT;
|
||||||
|
if (curlevel->exitdir == D_RIGHT) {
|
||||||
|
player->dir = 1;
|
||||||
|
} else if (curlevel->exitdir == D_LEFT) {
|
||||||
|
player->dir = -1;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
/* select frame */
|
/* select frame */
|
||||||
if (isfruit(s->id)) {
|
if (isfruit(s->id)) {
|
||||||
|
@ -1356,10 +1448,14 @@ void drawsprite(sprite_t *s) {
|
||||||
frame = F_WALK1;
|
frame = F_WALK1;
|
||||||
} else if (s->id == P_MACE) {
|
} else if (s->id == P_MACE) {
|
||||||
frame = F_WALK1;
|
frame = F_WALK1;
|
||||||
|
} else if (s->id == P_CANNON) {
|
||||||
|
frame = F_WALK1;
|
||||||
}
|
}
|
||||||
} else if (s->dead) {
|
} else if (s->dead) {
|
||||||
if (s == player) {
|
if (s == player) {
|
||||||
frame = F_DEAD;
|
frame = F_DEAD;
|
||||||
|
} else if (s == boss) {
|
||||||
|
frame = F_DEAD;
|
||||||
} else {
|
} else {
|
||||||
frame = F_DEAD + ((timer/2) % 4);
|
frame = F_DEAD + ((timer/2) % 4);
|
||||||
}
|
}
|
||||||
|
@ -1435,7 +1531,7 @@ void drawsprite(sprite_t *s) {
|
||||||
frame += (MAXFRAMES*2);
|
frame += (MAXFRAMES*2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((s->id != P_CLOUD) && (!s->teleporting)) {
|
if ((s->id != P_BLACKCLOUD) && (s->id != P_PINKCLOUD) && (!s->teleporting)) {
|
||||||
s->img = imageset[s->id].img[frame];
|
s->img = imageset[s->id].img[frame];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1468,6 +1564,10 @@ void drawsprite(sprite_t *s) {
|
||||||
if (timer % 2 == 0) {
|
if (timer % 2 == 0) {
|
||||||
SDL_BlitSurface(s->img, NULL, screen, &area);
|
SDL_BlitSurface(s->img, NULL, screen, &area);
|
||||||
}
|
}
|
||||||
|
} else if (s == boss && s->dead) {
|
||||||
|
if ((timer / 10) % 2 == 0) {
|
||||||
|
SDL_BlitSurface(s->img, NULL, screen, &area);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// draw the sprite
|
// draw the sprite
|
||||||
SDL_BlitSurface(s->img, NULL, screen, &area);
|
SDL_BlitSurface(s->img, NULL, screen, &area);
|
||||||
|
@ -1510,6 +1610,11 @@ void killsprite(sprite_t *s) {
|
||||||
sprite_t *nextone, *lastone;
|
sprite_t *nextone, *lastone;
|
||||||
sprite_t *s2;
|
sprite_t *s2;
|
||||||
|
|
||||||
|
// remove boss pointer
|
||||||
|
if (boss == s) {
|
||||||
|
boss = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* remove references to this sprite before removing it */
|
/* remove references to this sprite before removing it */
|
||||||
for (s2 = sprite ; s2 ; s2 = s2->next) {
|
for (s2 = sprite ; s2 ; s2 = s2->next) {
|
||||||
if (s2->owner == s) {
|
if (s2->owner == s) {
|
||||||
|
@ -1618,6 +1723,8 @@ int isfruit(int id) {
|
||||||
case P_RINGGOLD:
|
case P_RINGGOLD:
|
||||||
case P_CLOCK:
|
case P_CLOCK:
|
||||||
case P_SNOWMAN:
|
case P_SNOWMAN:
|
||||||
|
case P_SPRAY:
|
||||||
|
case P_CANNONPOWERUP:
|
||||||
/* flowers */
|
/* flowers */
|
||||||
case P_FLOWERYELLOW:
|
case P_FLOWERYELLOW:
|
||||||
case P_FLOWERRED:
|
case P_FLOWERRED:
|
||||||
|
@ -1648,6 +1755,8 @@ int iseffect(int id) {
|
||||||
if (id == P_POWERUPPOS) return B_TRUE;
|
if (id == P_POWERUPPOS) return B_TRUE;
|
||||||
if (id == P_GLOVE) return B_TRUE;
|
if (id == P_GLOVE) return B_TRUE;
|
||||||
if (id == P_MACE) return B_TRUE;
|
if (id == P_MACE) return B_TRUE;
|
||||||
|
if (id == P_PINKCLOUD) return B_TRUE;
|
||||||
|
if (id == P_CANNON) return B_TRUE;
|
||||||
|
|
||||||
return B_FALSE;
|
return B_FALSE;
|
||||||
}
|
}
|
||||||
|
@ -1823,9 +1932,10 @@ int getcolor(SDL_Surface *dest, int x, int y, SDL_Color *col) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
int chartomonster(char ch) {
|
int chartomonster(char ch) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case 'c': return P_CLOUD;
|
case 'c': return P_BLACKCLOUD;
|
||||||
case 'r': return P_RAT;
|
case 'r': return P_RAT;
|
||||||
case 'S': return P_SNAKE;
|
case 'S': return P_SNAKE;
|
||||||
case 'a': return P_BEE;
|
case 'a': return P_BEE;
|
||||||
|
@ -1844,7 +1954,7 @@ int chartomonster(char ch) {
|
||||||
}
|
}
|
||||||
char monstertochar(int id ) {
|
char monstertochar(int id ) {
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case P_CLOUD: return 'c';
|
case P_BLACKCLOUD: return 'c';
|
||||||
case P_RAT: return 'r';
|
case P_RAT: return 'r';
|
||||||
case P_SNAKE: return 'S';
|
case P_SNAKE: return 'S';
|
||||||
case P_BEE: return 'a';
|
case P_BEE: return 'a';
|
||||||
|
@ -1861,6 +1971,7 @@ char monstertochar(int id ) {
|
||||||
|
|
||||||
return '\0';
|
return '\0';
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
tiletype_t *gettile(int uniqid) {
|
tiletype_t *gettile(int uniqid) {
|
||||||
tiletype_t *t;
|
tiletype_t *t;
|
||||||
|
@ -1898,7 +2009,6 @@ void drawtile(SDL_Surface *where, int x, int y) {
|
||||||
area.h = TILEH;
|
area.h = TILEH;
|
||||||
/* draw blank tile first */
|
/* draw blank tile first */
|
||||||
tt = gettile(curlevel->bgtileid);
|
tt = gettile(curlevel->bgtileid);
|
||||||
//SDL_BlitSurface(tt->img[0], NULL, where, &area);
|
|
||||||
SDL_BlitSurface(levelbg, &area, where, &area);
|
SDL_BlitSurface(levelbg, &area, where, &area);
|
||||||
|
|
||||||
/* now draw real one */
|
/* now draw real one */
|
||||||
|
@ -1966,8 +2076,9 @@ int ismonster(int id) {
|
||||||
if (id == P_BEE) return B_TRUE;
|
if (id == P_BEE) return B_TRUE;
|
||||||
if (id == P_SPIDER) return B_TRUE;
|
if (id == P_SPIDER) return B_TRUE;
|
||||||
if (id == P_SNAKE) return B_TRUE;
|
if (id == P_SNAKE) return B_TRUE;
|
||||||
if (id == P_CLOUD) return B_TRUE;
|
if (id == P_BLACKCLOUD) return B_TRUE;
|
||||||
if (id == P_COKE) return B_TRUE;
|
if (id == P_COKE) return B_TRUE;
|
||||||
|
if (id == P_KINGRAT) return B_TRUE;
|
||||||
|
|
||||||
return B_FALSE;
|
return B_FALSE;
|
||||||
}
|
}
|
||||||
|
@ -2084,6 +2195,24 @@ int getpoints(int id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int savelevellist(void) {
|
||||||
|
FILE *f;
|
||||||
|
int i;
|
||||||
|
f = fopen("levels.dat","w");
|
||||||
|
if (!f) {
|
||||||
|
printf("error writing to levels.dat\n");
|
||||||
|
return B_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 1; i < numlevels; i++) {
|
||||||
|
fprintf(f, "%d,%s,%s\n",levelentry[i].id, levelentry[i].filename, levelentry[i].desc);
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(f);
|
||||||
|
|
||||||
|
return B_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
int loadlevellist(void) {
|
int loadlevellist(void) {
|
||||||
int lev;
|
int lev;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
@ -2095,6 +2224,7 @@ int loadlevellist(void) {
|
||||||
//
|
//
|
||||||
// id,filename,description,
|
// id,filename,description,
|
||||||
lev = 1;
|
lev = 1;
|
||||||
|
maxlevid = -99;
|
||||||
fgets(buf, BUFLEN, f);
|
fgets(buf, BUFLEN, f);
|
||||||
while (!feof(f)) {
|
while (!feof(f)) {
|
||||||
p = strtok(buf, ",");
|
p = strtok(buf, ",");
|
||||||
|
@ -2103,19 +2233,27 @@ int loadlevellist(void) {
|
||||||
return B_TRUE;
|
return B_TRUE;
|
||||||
}
|
}
|
||||||
levelentry[lev].id = atoi(p);
|
levelentry[lev].id = atoi(p);
|
||||||
|
|
||||||
|
// track max levelid
|
||||||
|
if (levelentry[lev].id > maxlevid) {
|
||||||
|
maxlevid = levelentry[lev].id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
p = strtok(NULL, ",");
|
p = strtok(NULL, ",");
|
||||||
if (!p) {
|
if (!p) {
|
||||||
printf("invalid level filename - line %d\n",lev);
|
printf("invalid level filename - line %d\n",lev);
|
||||||
return B_TRUE;
|
return B_TRUE;
|
||||||
}
|
}
|
||||||
levelentry[lev].filename = strdup(p);
|
strncpy(levelentry[lev].filename, p, MIDBUFLEN);
|
||||||
p = strtok(NULL, ",");
|
p = strtok(NULL, ",");
|
||||||
if (!p) {
|
if (!p) {
|
||||||
printf("invalid level description - line %d\n",lev);
|
printf("invalid level description - line %d\n",lev);
|
||||||
return B_TRUE;
|
return B_TRUE;
|
||||||
}
|
}
|
||||||
p[strlen(p)-1] = '\0'; // strip newline
|
p[strlen(p)-1] = '\0'; // strip newline
|
||||||
levelentry[lev].desc = strdup(p);
|
//LEVELENTry[lev].desc = strdup(p);
|
||||||
|
strncpy(levelentry[lev].desc, p, MIDBUFLEN);
|
||||||
lev++;
|
lev++;
|
||||||
fgets(buf, BUFLEN, f);
|
fgets(buf, BUFLEN, f);
|
||||||
}
|
}
|
||||||
|
@ -2129,7 +2267,7 @@ int loadlevellist(void) {
|
||||||
|
|
||||||
int randompowerup(void) {
|
int randompowerup(void) {
|
||||||
int num;
|
int num;
|
||||||
num = rand() % 17;
|
num = rand() % 19;
|
||||||
|
|
||||||
switch (num) {
|
switch (num) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -2167,6 +2305,10 @@ int randompowerup(void) {
|
||||||
return P_CLOCK;
|
return P_CLOCK;
|
||||||
case 16:
|
case 16:
|
||||||
return P_SNOWMAN;
|
return P_SNOWMAN;
|
||||||
|
case 17:
|
||||||
|
return P_SPRAY;
|
||||||
|
case 18:
|
||||||
|
return P_CANNONPOWERUP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2185,3 +2327,65 @@ int ispermenant(int pid) {
|
||||||
}
|
}
|
||||||
return B_FALSE;
|
return B_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int isbosslevel(int lev) {
|
||||||
|
if (lev % 20 == 0) {
|
||||||
|
return B_TRUE;
|
||||||
|
}
|
||||||
|
return B_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int isboss(int monid) {
|
||||||
|
switch (monid) {
|
||||||
|
case P_KINGRAT:
|
||||||
|
return B_TRUE;
|
||||||
|
default:
|
||||||
|
return B_FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int isnettable(int monid) {
|
||||||
|
if (ismonster(monid)) {
|
||||||
|
switch (monid) {
|
||||||
|
case P_BLACKCLOUD:
|
||||||
|
case P_KINGRAT:
|
||||||
|
return B_FALSE;
|
||||||
|
default:
|
||||||
|
return B_TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return B_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// return starting health for a given boss type
|
||||||
|
int getbosshealth(int mid) {
|
||||||
|
switch (mid) {
|
||||||
|
case P_KINGRAT:
|
||||||
|
return 10;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void getpixelrgb(SDL_Surface *where, int x, int y, SDL_Color *clr) {
|
||||||
|
Uint32 col;
|
||||||
|
|
||||||
|
//determine position
|
||||||
|
char* pPosition = ( char* ) where->pixels ;
|
||||||
|
|
||||||
|
//offset by y
|
||||||
|
pPosition += ( where->pitch * y ) ;
|
||||||
|
|
||||||
|
//offset by x
|
||||||
|
pPosition += ( where->format->BytesPerPixel * x ) ;
|
||||||
|
|
||||||
|
//copy pixel data
|
||||||
|
memcpy ( &col , pPosition , where->format->BytesPerPixel ) ;
|
||||||
|
|
||||||
|
//convert color
|
||||||
|
SDL_GetRGB ( col , where->format , &clr->r , &clr->g , &clr->b ) ;
|
||||||
|
//*r = color.r;
|
||||||
|
//*g = color.g;
|
||||||
|
//*b = color.b;
|
||||||
|
}
|
||||||
|
|
8
shared.h
|
@ -27,8 +27,10 @@ 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);
|
||||||
void drawline16(SDL_Surface *screen, int x1, int y1, int x2, int y2, SDL_Color c);
|
void drawline16(SDL_Surface *screen, int x1, int y1, int x2, int y2, SDL_Color c);
|
||||||
int getcolor(SDL_Surface *dest, int x, int y, SDL_Color *col);
|
int getcolor(SDL_Surface *dest, int x, int y, SDL_Color *col);
|
||||||
|
/*
|
||||||
int chartomonster(char ch);
|
int chartomonster(char ch);
|
||||||
char monstertochar(int id);
|
char monstertochar(int id);
|
||||||
|
*/
|
||||||
tiletype_t *gettile(int uniqid);
|
tiletype_t *gettile(int uniqid);
|
||||||
int getuniq(int tileid);
|
int getuniq(int tileid);
|
||||||
void drawtile(SDL_Surface *s, int x, int y);
|
void drawtile(SDL_Surface *s, int x, int y);
|
||||||
|
@ -40,6 +42,12 @@ SDL_Surface *loadspriteimage(int spriteid, int frame, char *filename);
|
||||||
int getpoints(int id);
|
int getpoints(int id);
|
||||||
int randompowerup(void);
|
int randompowerup(void);
|
||||||
int loadlevellist(void);
|
int loadlevellist(void);
|
||||||
|
int savelevellist(void);
|
||||||
int ispermenant(int pid);
|
int ispermenant(int pid);
|
||||||
|
int isbosslevel(int lev);
|
||||||
|
int isnettable(int monid);
|
||||||
|
int isboss(int monid);
|
||||||
|
int getbosshealth(int mid);
|
||||||
|
void getpixelrgb(SDL_Surface *where, int x, int y, SDL_Color *clr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 130 KiB |
After Width: | Height: | Size: 249 B |
After Width: | Height: | Size: 232 B |
After Width: | Height: | Size: 241 B |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 516 B |
|
@ -1,7 +1,6 @@
|
||||||
tileset green
|
tileset green
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 30
|
hurryup 30
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
|
|
|
@ -1,32 +1,31 @@
|
||||||
bgfile backgrounds/forest.png
|
bgfile backgrounds/forest.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 30
|
hurryup 30
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
Use X to jump, Z to catch the rat.
|
Use X to jump, Z to catch the rat.
|
||||||
Then use Down+Z to slam and kill a monster!
|
Then use Down+Z to slam and kill a monster!
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 3 19
|
0 3 19
|
||||||
? 7 19
|
14 7 19
|
||||||
? 12 19
|
14 12 19
|
||||||
@ 30 15
|
16 30 15
|
||||||
@ 31 15
|
16 31 15
|
||||||
P 21 15
|
17 21 15
|
||||||
@ 22 15
|
16 22 15
|
||||||
@ 20 15
|
16 20 15
|
||||||
Y 23 15
|
15 23 15
|
||||||
Y 19 15
|
15 19 15
|
||||||
Y 2 15
|
15 2 15
|
||||||
Y 1 15
|
15 1 15
|
||||||
Y 24 19
|
15 24 19
|
||||||
Y 22 19
|
15 22 19
|
||||||
Y 20 19
|
15 20 19
|
||||||
r 27 15
|
1 27 15
|
||||||
P 36 14
|
17 36 14
|
||||||
Y 34 19
|
15 34 19
|
||||||
@ 35 19
|
16 35 19
|
||||||
P 36 19
|
17 36 19
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||||
|
|
|
@ -1,39 +1,38 @@
|
||||||
bgfile backgrounds/forest2.png
|
bgfile backgrounds/forest2.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 60
|
hurryup 60
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 3 28
|
0 3 28
|
||||||
! 37 15
|
23 37 15
|
||||||
C 33 7
|
18 33 7
|
||||||
C 11 13
|
18 11 13
|
||||||
r 13 5
|
1 13 5
|
||||||
r 7 17
|
1 7 17
|
||||||
s 23 1
|
7 23 1
|
||||||
@ 7 5
|
16 7 5
|
||||||
@ 25 9
|
16 25 9
|
||||||
P 25 5
|
17 25 5
|
||||||
P 7 9
|
17 7 9
|
||||||
Y 2 7
|
15 2 7
|
||||||
Y 1 7
|
15 1 7
|
||||||
Y 2 12
|
15 2 12
|
||||||
Y 1 12
|
15 1 12
|
||||||
Y 38 7
|
15 38 7
|
||||||
Y 30 7
|
15 30 7
|
||||||
Y 35 15
|
15 35 15
|
||||||
Y 38 15
|
15 38 15
|
||||||
Y 32 18
|
15 32 18
|
||||||
Y 9 21
|
15 9 21
|
||||||
Y 7 21
|
15 7 21
|
||||||
@ 18 17
|
16 18 17
|
||||||
@ 4 17
|
16 4 17
|
||||||
P 36 24
|
17 36 24
|
||||||
P 38 24
|
17 38 24
|
||||||
S 31 24
|
12 31 24
|
||||||
r 20 21
|
1 20 21
|
||||||
s 37 9
|
7 37 9
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||||
|
@ -88,19 +87,8 @@ layer2
|
||||||
23,6,28
|
23,6,28
|
||||||
24,6,28
|
24,6,28
|
||||||
26,6,34
|
26,6,34
|
||||||
15,7,27
|
|
||||||
16,7,27
|
|
||||||
17,7,27
|
|
||||||
18,7,27
|
|
||||||
19,7,27
|
|
||||||
29,8,35
|
29,8,35
|
||||||
1,9,19
|
1,9,19
|
||||||
15,9,27
|
|
||||||
16,9,27
|
|
||||||
17,9,27
|
|
||||||
18,9,27
|
|
||||||
19,9,27
|
|
||||||
20,9,27
|
|
||||||
38,9,18
|
38,9,18
|
||||||
6,10,35
|
6,10,35
|
||||||
8,10,28
|
8,10,28
|
||||||
|
@ -143,13 +131,6 @@ layer2
|
||||||
25,14,28
|
25,14,28
|
||||||
26,14,28
|
26,14,28
|
||||||
30,14,34
|
30,14,34
|
||||||
13,15,27
|
|
||||||
15,15,27
|
|
||||||
17,15,27
|
|
||||||
18,15,27
|
|
||||||
19,15,27
|
|
||||||
22,15,27
|
|
||||||
23,15,27
|
|
||||||
35,16,35
|
35,16,35
|
||||||
38,17,18
|
38,17,18
|
||||||
4,18,35
|
4,18,35
|
||||||
|
@ -167,10 +148,6 @@ layer2
|
||||||
16,18,28
|
16,18,28
|
||||||
17,18,28
|
17,18,28
|
||||||
18,18,34
|
18,18,34
|
||||||
13,19,27
|
|
||||||
14,19,27
|
|
||||||
15,19,27
|
|
||||||
16,19,27
|
|
||||||
7,22,35
|
7,22,35
|
||||||
10,22,28
|
10,22,28
|
||||||
11,22,28
|
11,22,28
|
||||||
|
@ -217,9 +194,4 @@ layer2
|
||||||
34,25,28
|
34,25,28
|
||||||
35,25,28
|
35,25,28
|
||||||
1,26,19
|
1,26,19
|
||||||
26,26,27
|
|
||||||
27,26,27
|
|
||||||
28,26,27
|
|
||||||
29,26,27
|
|
||||||
30,26,27
|
|
||||||
38,26,18
|
38,26,18
|
||||||
|
|
|
@ -1,55 +1,54 @@
|
||||||
bgfile backgrounds/forest2.png
|
bgfile backgrounds/forest2.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 136
|
hurryup 136
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 1 2
|
0 1 2
|
||||||
! 19 2
|
23 19 2
|
||||||
r 33 7
|
1 33 7
|
||||||
r 13 10
|
1 13 10
|
||||||
@ 6 28
|
16 6 28
|
||||||
@ 6 28
|
16 6 28
|
||||||
@ 6 28
|
16 6 28
|
||||||
@ 6 28
|
16 6 28
|
||||||
@ 2 28
|
16 2 28
|
||||||
@ 2 28
|
16 2 28
|
||||||
@ 2 28
|
16 2 28
|
||||||
@ 2 28
|
16 2 28
|
||||||
@ 2 28
|
16 2 28
|
||||||
@ 15 28
|
16 15 28
|
||||||
@ 15 28
|
16 15 28
|
||||||
@ 15 28
|
16 15 28
|
||||||
@ 15 28
|
16 15 28
|
||||||
@ 15 28
|
16 15 28
|
||||||
Y 35 5
|
15 35 5
|
||||||
Y 28 5
|
15 28 5
|
||||||
@ 20 2
|
16 20 2
|
||||||
Y 21 2
|
15 21 2
|
||||||
Y 18 2
|
15 18 2
|
||||||
Y 6 10
|
15 6 10
|
||||||
Y 10 10
|
15 10 10
|
||||||
r 11 18
|
1 11 18
|
||||||
C 9 28
|
18 9 28
|
||||||
S 30 5
|
12 30 5
|
||||||
S 30 5
|
12 30 5
|
||||||
S 30 5
|
12 30 5
|
||||||
P 30 28
|
17 30 28
|
||||||
P 31 28
|
17 31 28
|
||||||
@ 28 14
|
16 28 14
|
||||||
@ 31 14
|
16 31 14
|
||||||
Y 20 15
|
15 20 15
|
||||||
@ 19 12
|
16 19 12
|
||||||
P 11 18
|
17 11 18
|
||||||
P 7 18
|
17 7 18
|
||||||
@ 9 18
|
16 9 18
|
||||||
@ 13 18
|
16 13 18
|
||||||
Y 4 2
|
15 4 2
|
||||||
Y 6 2
|
15 6 2
|
||||||
P 8 10
|
17 8 10
|
||||||
P 12 10
|
17 12 10
|
||||||
Y 14 10
|
15 14 10
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||||
|
|
|
@ -1,59 +1,58 @@
|
||||||
tileset green
|
bgfile backgrounds/forest2.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 56
|
hurryup 328
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
Jump onto trampolines to bounce high...
|
Jump onto trampolines to bounce high...
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 17 28
|
0 17 28
|
||||||
! 19 19
|
23 19 19
|
||||||
a 23 18
|
6 23 18
|
||||||
a 14 10
|
6 14 10
|
||||||
a 21 7
|
6 21 7
|
||||||
r 36 12
|
1 36 12
|
||||||
r 2 16
|
1 2 16
|
||||||
r 2 8
|
1 2 8
|
||||||
r 38 4
|
1 38 4
|
||||||
r 35 20
|
1 35 20
|
||||||
C 23 1
|
18 23 1
|
||||||
C 7 1
|
18 7 1
|
||||||
P 24 28
|
17 24 28
|
||||||
P 23 28
|
17 23 28
|
||||||
P 25 28
|
17 25 28
|
||||||
P 25 19
|
17 25 19
|
||||||
@ 16 19
|
16 16 19
|
||||||
@ 18 19
|
16 18 19
|
||||||
@ 20 19
|
16 20 19
|
||||||
@ 22 19
|
16 22 19
|
||||||
Y 36 16
|
15 36 16
|
||||||
Y 37 16
|
15 37 16
|
||||||
Y 3 12
|
15 3 12
|
||||||
Y 2 12
|
15 2 12
|
||||||
Y 3 20
|
15 3 20
|
||||||
Y 2 20
|
15 2 20
|
||||||
Y 36 8
|
15 36 8
|
||||||
Y 37 8
|
15 37 8
|
||||||
@ 37 20
|
16 37 20
|
||||||
@ 36 20
|
16 36 20
|
||||||
@ 2 16
|
16 2 16
|
||||||
@ 3 16
|
16 3 16
|
||||||
@ 37 12
|
16 37 12
|
||||||
@ 36 12
|
16 36 12
|
||||||
@ 3 8
|
16 3 8
|
||||||
@ 2 4
|
16 2 4
|
||||||
@ 2 8
|
16 2 8
|
||||||
@ 3 4
|
16 3 4
|
||||||
@ 36 4
|
16 36 4
|
||||||
@ 37 4
|
16 37 4
|
||||||
@ 17 1
|
16 17 1
|
||||||
@ 23 1
|
16 23 1
|
||||||
P 20 1
|
17 20 1
|
||||||
P 19 1
|
17 19 1
|
||||||
P 21 1
|
17 21 1
|
||||||
? 15 28
|
14 15 28
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 2
|
exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,20,20,20,20,20,20,20,20,20,20,20,25,25,25,25,25,25,25,25,25,25,25,20,20,20,20,20,20,20,20,20,20,0,0,0,4,
|
4,0,0,0,20,20,20,20,20,20,20,20,20,20,20,25,25,25,25,25,25,25,25,25,25,25,20,20,20,20,20,20,20,20,20,20,0,0,0,4,
|
||||||
|
|
|
@ -1,38 +1,37 @@
|
||||||
tileset green
|
bgfile backgrounds/forest2.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 60
|
hurryup 60
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 19 18
|
0 19 18
|
||||||
! 19 21
|
23 19 21
|
||||||
a 13 9
|
6 13 9
|
||||||
a 23 9
|
6 23 9
|
||||||
a 27 17
|
6 27 17
|
||||||
a 8 18
|
6 8 18
|
||||||
a 13 24
|
6 13 24
|
||||||
a 23 23
|
6 23 23
|
||||||
a 32 24
|
6 32 24
|
||||||
a 3 23
|
6 3 23
|
||||||
C 22 11
|
18 22 11
|
||||||
C 12 11
|
18 12 11
|
||||||
P 26 7
|
17 26 7
|
||||||
P 10 7
|
17 10 7
|
||||||
@ 31 14
|
16 31 14
|
||||||
@ 6 14
|
16 6 14
|
||||||
Y 2 21
|
15 2 21
|
||||||
Y 34 21
|
15 34 21
|
||||||
Y 7 21
|
15 7 21
|
||||||
Y 29 21
|
15 29 21
|
||||||
@ 25 21
|
16 25 21
|
||||||
@ 20 21
|
16 20 21
|
||||||
@ 11 21
|
16 11 21
|
||||||
@ 16 21
|
16 16 21
|
||||||
Y 25 14
|
15 25 14
|
||||||
Y 12 14
|
15 12 14
|
||||||
P 21 14
|
17 21 14
|
||||||
P 16 14
|
17 16 14
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
|
|
|
@ -1,58 +1,57 @@
|
||||||
bgfile
|
bgfile
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 232
|
hurryup 232
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 2 24
|
0 2 24
|
||||||
! 28 6
|
23 28 6
|
||||||
a 11 12
|
6 11 12
|
||||||
a 28 24
|
6 28 24
|
||||||
a 29 18
|
6 29 18
|
||||||
a 6 11
|
6 6 11
|
||||||
C 9 5
|
18 9 5
|
||||||
C 31 23
|
18 31 23
|
||||||
S 24 28
|
12 24 28
|
||||||
a 21 2
|
6 21 2
|
||||||
a 37 10
|
6 37 10
|
||||||
P 8 5
|
17 8 5
|
||||||
P 9 5
|
17 9 5
|
||||||
P 10 5
|
17 10 5
|
||||||
P 11 5
|
17 11 5
|
||||||
P 27 15
|
17 27 15
|
||||||
P 28 15
|
17 28 15
|
||||||
P 30 15
|
17 30 15
|
||||||
P 29 15
|
17 29 15
|
||||||
@ 35 27
|
16 35 27
|
||||||
@ 37 25
|
16 37 25
|
||||||
Y 36 26
|
15 36 26
|
||||||
Y 34 28
|
15 34 28
|
||||||
Y 4 26
|
15 4 26
|
||||||
@ 3 25
|
16 3 25
|
||||||
Y 9 25
|
15 9 25
|
||||||
@ 10 25
|
16 10 25
|
||||||
Y 7 14
|
15 7 14
|
||||||
Y 12 14
|
15 12 14
|
||||||
P 14 12
|
17 14 12
|
||||||
P 5 12
|
17 5 12
|
||||||
@ 13 13
|
16 13 13
|
||||||
@ 6 13
|
16 6 13
|
||||||
@ 28 11
|
16 28 11
|
||||||
@ 28 7
|
16 28 7
|
||||||
@ 5 7
|
16 5 7
|
||||||
@ 3 9
|
16 3 9
|
||||||
Y 6 6
|
15 6 6
|
||||||
Y 4 8
|
15 4 8
|
||||||
Y 13 6
|
15 13 6
|
||||||
Y 15 8
|
15 15 8
|
||||||
@ 16 8
|
16 16 8
|
||||||
@ 14 7
|
16 14 7
|
||||||
@ 30 11
|
16 30 11
|
||||||
@ 30 7
|
16 30 7
|
||||||
Y 29 11
|
15 29 11
|
||||||
Y 29 7
|
15 29 7
|
||||||
S 32 7
|
12 32 7
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,
|
24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,
|
||||||
|
|
|
@ -1,43 +1,42 @@
|
||||||
bgfile
|
bgfile
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 232
|
hurryup 232
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 20 28
|
0 20 28
|
||||||
! 16 4
|
23 16 4
|
||||||
a 22 22
|
6 22 22
|
||||||
a 17 19
|
6 17 19
|
||||||
a 21 17
|
6 21 17
|
||||||
a 19 20
|
6 19 20
|
||||||
a 24 20
|
6 24 20
|
||||||
C 4 13
|
18 4 13
|
||||||
C 37 13
|
18 37 13
|
||||||
a 17 23
|
6 17 23
|
||||||
Y 26 13
|
15 26 13
|
||||||
Y 14 13
|
15 14 13
|
||||||
Y 12 13
|
15 12 13
|
||||||
Y 28 13
|
15 28 13
|
||||||
Y 31 13
|
15 31 13
|
||||||
Y 9 13
|
15 9 13
|
||||||
@ 36 13
|
16 36 13
|
||||||
@ 3 13
|
16 3 13
|
||||||
@ 7 13
|
16 7 13
|
||||||
@ 33 13
|
16 33 13
|
||||||
P 30 20
|
17 30 20
|
||||||
P 10 20
|
17 10 20
|
||||||
P 24 4
|
17 24 4
|
||||||
P 17 4
|
17 17 4
|
||||||
P 16 4
|
17 16 4
|
||||||
P 23 4
|
17 23 4
|
||||||
@ 25 5
|
16 25 5
|
||||||
@ 15 5
|
16 15 5
|
||||||
@ 18 8
|
16 18 8
|
||||||
@ 22 8
|
16 22 8
|
||||||
P 20 23
|
17 20 23
|
||||||
P 23 23
|
17 23 23
|
||||||
P 17 23
|
17 17 23
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,
|
24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
bgfile xx
|
bgfile xx
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 80
|
hurryup 80
|
||||||
endmaps
|
|
||||||
help
|
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...
|
||||||
|
@ -9,20 +8,19 @@ Stand on this ledge then slam!
|
||||||
Collect all flowers for a bonus!
|
Collect all flowers for a bonus!
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 4 10
|
0 4 10
|
||||||
? 6 10
|
14 6 10
|
||||||
? 12 10
|
14 12 10
|
||||||
? 25 10
|
14 25 10
|
||||||
r 34 9
|
1 34 9
|
||||||
r 17 10
|
1 17 10
|
||||||
Y 15 8
|
15 15 8
|
||||||
Y 19 8
|
15 19 8
|
||||||
Y 32 8
|
15 32 8
|
||||||
Y 36 8
|
15 28 9
|
||||||
Y 28 9
|
1 9 4
|
||||||
r 9 4
|
14 27 4
|
||||||
? 27 4
|
15 20 4
|
||||||
Y 20 4
|
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,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,
|
||||||
|
@ -30,13 +28,13 @@ exitdir 1
|
||||||
4,4,4,4,4,4,4,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,4,4,4,4,4,4,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,4,4,4,4,4,4,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,4,4,4,4,4,4,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,4,4,4,4,4,4,27,27,27,27,27,27,35,34,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,4,4,4,4,4,4,27,27,27,27,27,27,35,34,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,4,4,4,4,4,39,1,1,1,1,1,1,38,39,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,39,1,1,1,1,1,1,38,39,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,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,37,3,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,1,1,1,1,1,1,1,1,34,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,41,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,1,1,1,38,
|
||||||
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,41,6,0,0,39,1,1,1,38,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,41,6,0,0,39,1,1,1,4,4,4,4,
|
||||||
39,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,38,4,39,1,1,38,4,4,4,39,1,1,38,
|
39,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,38,4,39,1,1,38,4,4,4,4,4,4,4,
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,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,46 +1,43 @@
|
||||||
tileset green
|
bgfile backgrounds/forest.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 30
|
hurryup 30
|
||||||
endmaps
|
help
|
||||||
|
Slam monsters into King Rat to damage it!
|
||||||
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
a 19 5
|
0 6 8
|
||||||
a 7 6
|
14 11 8
|
||||||
r 27 7
|
45 16 20
|
||||||
s 10 9
|
|
||||||
s 23 9
|
|
||||||
r 19 13
|
|
||||||
s 4 15
|
|
||||||
s 20 15
|
|
||||||
s 28 15
|
|
||||||
1 2 28
|
|
||||||
endmonsters
|
endmonsters
|
||||||
*00000000000000000000000000000000000000*
|
exitdir 1
|
||||||
*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,
|
||||||
*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,
|
||||||
*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,
|
||||||
*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,
|
||||||
*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,
|
||||||
*00000000000000000000000000000000000000*
|
4,23,23,23,23,23,23,23,23,23,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,0,23,23,23,23,23,23,23,23,4,
|
||||||
*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,
|
||||||
***********000*******************000000*
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
*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,
|
||||||
*00000000000000000000000000000000000000*
|
4,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,4,
|
||||||
*0000000000000000000000000000000000~~~~*
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
*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,
|
||||||
*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,
|
||||||
**-********000*******************000000*
|
4,23,23,23,23,23,23,23,23,23,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,23,23,23,23,23,23,23,23,23,4,
|
||||||
*0=00000*000000*0000000*0000000*0000000*
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
*0=000000000000000000000000000000000000*
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
*0=000000000000000000000000000000000000*
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
*0=000000000000000000000000000000000000*
|
4,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,4,
|
||||||
*0=000000000000000000000000000000000000*
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
*0=000000000000000000000000000000000000*
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
*0=000000000000000000000000000000000000*
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
*0=000000000000000000000000000000^^^000*
|
4,23,23,23,23,23,23,23,23,23,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,23,23,23,23,23,23,23,23,23,4,
|
||||||
*~~~~~~~~~0000~~~~~~~~~~000~~00~~~~~~-~*
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
*000000000000000000000000000000000000=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,
|
||||||
*000000000000000000000000000000000000=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,
|
||||||
*000000000000000000000000000000000000=0*
|
4,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,23,23,23,23,23,23,23,23,23,23,23,23,23,23,0,0,0,4,
|
||||||
*000000000000000000000000000000000000=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,
|
||||||
*0000000^^^^^^^^000000000000000000000=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,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,
|
||||||
|
layer2
|
||||||
|
|
|
@ -1,50 +1,49 @@
|
||||||
bgfile
|
bgfile
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 90
|
hurryup 90
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 32 7
|
0 32 7
|
||||||
r 33 23
|
1 33 23
|
||||||
r 4 23
|
1 4 23
|
||||||
P 34 23
|
17 34 23
|
||||||
P 33 23
|
17 33 23
|
||||||
P 6 23
|
17 6 23
|
||||||
P 5 23
|
17 5 23
|
||||||
Y 35 23
|
15 35 23
|
||||||
Y 32 23
|
15 32 23
|
||||||
Y 7 23
|
15 7 23
|
||||||
Y 4 23
|
15 4 23
|
||||||
@ 24 18
|
16 24 18
|
||||||
@ 16 18
|
16 16 18
|
||||||
@ 15 18
|
16 15 18
|
||||||
@ 23 18
|
16 23 18
|
||||||
P 27 16
|
17 27 16
|
||||||
P 12 16
|
17 12 16
|
||||||
Y 26 17
|
15 26 17
|
||||||
Y 25 17
|
15 25 17
|
||||||
Y 14 17
|
15 14 17
|
||||||
Y 13 17
|
15 13 17
|
||||||
a 23 17
|
6 23 17
|
||||||
a 25 14
|
6 25 14
|
||||||
a 12 15
|
6 12 15
|
||||||
a 17 13
|
6 17 13
|
||||||
r 35 28
|
1 35 28
|
||||||
r 7 28
|
1 7 28
|
||||||
r 10 7
|
1 10 7
|
||||||
P 20 6
|
17 20 6
|
||||||
P 19 6
|
17 19 6
|
||||||
@ 22 6
|
16 22 6
|
||||||
@ 17 6
|
16 17 6
|
||||||
Y 27 7
|
15 27 7
|
||||||
Y 12 7
|
15 12 7
|
||||||
Y 28 7
|
15 28 7
|
||||||
Y 11 7
|
15 11 7
|
||||||
s 29 22
|
7 29 22
|
||||||
s 12 22
|
7 12 22
|
||||||
S 10 20
|
12 10 20
|
||||||
S 30 20
|
12 30 20
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
|
|
|
@ -1,39 +1,38 @@
|
||||||
bgfile backgrounds/forest2.png
|
bgfile backgrounds/forest2.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 40
|
hurryup 40
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
You can walk through spikes safely.
|
You can walk through spikes safely.
|
||||||
But don't fall on them!
|
But don't fall on them!
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 4 27
|
0 4 27
|
||||||
! 20 15
|
23 20 15
|
||||||
r 19 15
|
1 19 15
|
||||||
r 5 7
|
1 5 7
|
||||||
r 35 7
|
1 35 7
|
||||||
r 35 23
|
1 35 23
|
||||||
r 4 23
|
16 26 11
|
||||||
@ 26 11
|
16 27 11
|
||||||
@ 27 11
|
16 28 11
|
||||||
@ 28 11
|
16 28 19
|
||||||
@ 28 19
|
16 27 19
|
||||||
@ 27 19
|
16 26 19
|
||||||
@ 26 19
|
16 12 11
|
||||||
@ 12 11
|
16 13 11
|
||||||
@ 13 11
|
16 14 11
|
||||||
@ 14 11
|
16 14 19
|
||||||
@ 14 19
|
16 13 19
|
||||||
@ 13 19
|
16 12 19
|
||||||
@ 12 19
|
16 2 7
|
||||||
@ 2 7
|
16 37 7
|
||||||
@ 37 7
|
16 37 23
|
||||||
@ 37 23
|
16 2 23
|
||||||
@ 2 23
|
14 10 19
|
||||||
? 10 19
|
14 16 19
|
||||||
? 16 19
|
1 8 23
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir -2
|
exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,38 +1,37 @@
|
||||||
bgfile backgrounds/forest2.png
|
bgfile backgrounds/forest2.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 120
|
hurryup 120
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
Drop through bridges with Down+X
|
Drop through bridges with Down+X
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 24 8
|
0 24 8
|
||||||
! 20 8
|
23 20 8
|
||||||
r 10 4
|
1 10 4
|
||||||
r 11 12
|
1 11 12
|
||||||
r 33 12
|
1 33 12
|
||||||
r 25 16
|
1 25 16
|
||||||
r 12 20
|
1 12 20
|
||||||
r 25 24
|
1 25 24
|
||||||
Y 23 12
|
15 23 12
|
||||||
Y 25 12
|
15 25 12
|
||||||
@ 25 20
|
16 25 20
|
||||||
@ 23 20
|
16 23 20
|
||||||
Y 32 20
|
15 32 20
|
||||||
P 34 20
|
17 34 20
|
||||||
@ 7 16
|
16 7 16
|
||||||
P 5 16
|
17 5 16
|
||||||
@ 16 16
|
16 16 16
|
||||||
Y 14 16
|
15 14 16
|
||||||
Y 15 24
|
15 15 24
|
||||||
@ 16 24
|
16 16 24
|
||||||
@ 14 24
|
16 14 24
|
||||||
@ 5 24
|
16 5 24
|
||||||
@ 7 24
|
16 7 24
|
||||||
Y 6 24
|
15 6 24
|
||||||
P 8 4
|
17 8 4
|
||||||
@ 26 8
|
16 26 8
|
||||||
? 21 8
|
14 21 8
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
|
@ -52,7 +51,7 @@ exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,35,1,1,1,34,0,0,0,0,35,1,1,1,34,0,0,0,0,35,20,20,20,20,20,20,20,20,20,20,20,20,34,0,0,0,4,
|
4,0,0,0,35,1,1,1,34,0,0,0,0,35,1,1,1,34,0,0,0,0,35,20,20,21,21,21,21,21,21,21,21,20,20,34,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,34 +1,33 @@
|
||||||
bgfile backgrounds/forest2.png
|
bgfile backgrounds/forest2.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 30
|
hurryup 30
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 1 17
|
0 1 17
|
||||||
! 20 15
|
23 20 15
|
||||||
Y 36 9
|
15 36 9
|
||||||
s 29 1
|
7 29 1
|
||||||
r 17 16
|
1 17 16
|
||||||
r 21 20
|
1 21 20
|
||||||
Y 15 16
|
15 15 16
|
||||||
Y 24 16
|
15 24 16
|
||||||
@ 23 20
|
16 23 20
|
||||||
@ 16 20
|
16 16 20
|
||||||
P 25 12
|
17 25 12
|
||||||
P 14 12
|
17 14 12
|
||||||
@ 23 6
|
16 23 6
|
||||||
@ 16 6
|
16 16 6
|
||||||
r 21 12
|
1 21 12
|
||||||
C 33 9
|
18 33 9
|
||||||
C 26 9
|
18 26 9
|
||||||
C 4 9
|
18 4 9
|
||||||
s 13 1
|
7 13 1
|
||||||
P 27 9
|
17 27 9
|
||||||
@ 32 9
|
16 32 9
|
||||||
@ 7 9
|
16 7 9
|
||||||
Y 3 9
|
15 3 9
|
||||||
P 12 9
|
17 12 9
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,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,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||||
|
@ -59,10 +58,18 @@ exitdir 1
|
||||||
4,4,4,4,4,4,4,4,4,4,4,39,1,40,40,34,0,0,0,0,0,0,0,0,35,1,1,1,38,4,4,4,4,4,4,4,4,4,4,4,
|
4,4,4,4,4,4,4,4,4,4,4,39,1,40,40,34,0,0,0,0,0,0,0,0,35,1,1,1,38,4,4,4,4,4,4,4,4,4,4,4,
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,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,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,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,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,0,11,11,11,11,11,11,11,11,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,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,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,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,
|
||||||
layer2
|
layer2
|
||||||
1,10,8
|
1,10,8
|
||||||
38,10,8
|
38,10,8
|
||||||
15,28,11
|
15,28,11
|
||||||
|
16,28,11
|
||||||
|
17,28,11
|
||||||
|
18,28,11
|
||||||
|
19,28,11
|
||||||
|
20,28,11
|
||||||
|
21,28,11
|
||||||
|
22,28,11
|
||||||
|
23,28,11
|
||||||
24,28,11
|
24,28,11
|
||||||
|
|
|
@ -1,46 +1,45 @@
|
||||||
bgfile
|
bgfile
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 30
|
hurryup 30
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 4 27
|
0 4 27
|
||||||
! 18 16
|
23 18 16
|
||||||
r 10 4
|
1 10 4
|
||||||
r 23 8
|
1 23 8
|
||||||
r 23 16
|
1 23 16
|
||||||
r 12 20
|
1 12 20
|
||||||
r 28 20
|
1 28 20
|
||||||
r 25 24
|
1 25 24
|
||||||
r 30 28
|
1 30 28
|
||||||
P 20 12
|
17 20 12
|
||||||
@ 19 12
|
16 19 12
|
||||||
@ 21 12
|
16 21 12
|
||||||
Y 19 4
|
15 19 4
|
||||||
Y 8 4
|
15 8 4
|
||||||
@ 5 24
|
16 5 24
|
||||||
@ 7 24
|
16 7 24
|
||||||
Y 34 24
|
15 34 24
|
||||||
Y 32 24
|
15 32 24
|
||||||
P 26 28
|
17 26 28
|
||||||
P 26 28
|
17 26 28
|
||||||
P 26 28
|
17 26 28
|
||||||
P 26 28
|
17 26 28
|
||||||
P 27 28
|
17 27 28
|
||||||
P 27 28
|
17 27 28
|
||||||
P 27 28
|
17 27 28
|
||||||
P 27 28
|
17 27 28
|
||||||
P 27 28
|
17 27 28
|
||||||
P 27 28
|
17 27 28
|
||||||
Y 15 8
|
15 15 8
|
||||||
Y 26 8
|
15 26 8
|
||||||
@ 14 8
|
16 14 8
|
||||||
@ 27 8
|
16 27 8
|
||||||
@ 33 16
|
16 33 16
|
||||||
Y 7 16
|
15 7 16
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir -2
|
exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,50 +1,49 @@
|
||||||
bgfile
|
bgfile
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 248
|
hurryup 248
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
Rolling logs will push you along.
|
Rolling logs will push you along.
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 5 25
|
0 5 25
|
||||||
! 19 1
|
23 19 1
|
||||||
P 21 1
|
17 21 1
|
||||||
Y 8 21
|
15 8 21
|
||||||
Y 31 21
|
15 31 21
|
||||||
Y 29 21
|
15 29 21
|
||||||
Y 27 21
|
15 27 21
|
||||||
Y 10 21
|
15 10 21
|
||||||
Y 12 21
|
15 12 21
|
||||||
P 18 1
|
17 18 1
|
||||||
P 16 5
|
17 16 5
|
||||||
P 23 5
|
17 23 5
|
||||||
? 6 21
|
14 6 21
|
||||||
r 11 21
|
1 11 21
|
||||||
r 19 5
|
1 19 5
|
||||||
Y 13 17
|
15 13 17
|
||||||
Y 14 17
|
15 14 17
|
||||||
Y 15 17
|
15 15 17
|
||||||
Y 26 17
|
15 26 17
|
||||||
Y 25 17
|
15 25 17
|
||||||
Y 24 17
|
15 24 17
|
||||||
@ 19 17
|
16 19 17
|
||||||
@ 20 17
|
16 20 17
|
||||||
@ 13 13
|
16 13 13
|
||||||
@ 15 13
|
16 15 13
|
||||||
@ 24 13
|
16 24 13
|
||||||
@ 27 13
|
16 27 13
|
||||||
@ 19 9
|
16 19 9
|
||||||
@ 20 9
|
16 20 9
|
||||||
Y 23 9
|
15 23 9
|
||||||
Y 24 9
|
15 24 9
|
||||||
Y 15 9
|
15 15 9
|
||||||
Y 16 9
|
15 16 9
|
||||||
C 20 1
|
18 20 1
|
||||||
r 22 9
|
1 22 9
|
||||||
r 26 13
|
1 26 13
|
||||||
r 16 17
|
1 16 17
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir -2
|
exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,1,1,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,1,1,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
|
|
|
@ -1,52 +1,51 @@
|
||||||
bgfile backgrounds/forest2.png
|
bgfile backgrounds/forest2.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 30
|
hurryup 30
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 4 28
|
0 4 28
|
||||||
! 33 28
|
23 33 28
|
||||||
S 9 3
|
12 9 3
|
||||||
S 34 3
|
12 34 3
|
||||||
r 3 8
|
1 3 8
|
||||||
r 37 8
|
1 37 8
|
||||||
r 9 13
|
1 9 13
|
||||||
S 30 13
|
12 30 13
|
||||||
S 3 18
|
12 3 18
|
||||||
r 11 23
|
1 11 23
|
||||||
S 35 23
|
12 35 23
|
||||||
Y 28 23
|
15 28 23
|
||||||
Y 11 23
|
15 11 23
|
||||||
Y 30 23
|
15 30 23
|
||||||
Y 9 23
|
15 9 23
|
||||||
Y 7 23
|
15 7 23
|
||||||
Y 5 23
|
15 5 23
|
||||||
Y 3 23
|
15 3 23
|
||||||
Y 32 23
|
15 32 23
|
||||||
Y 34 23
|
15 34 23
|
||||||
Y 36 23
|
15 36 23
|
||||||
@ 30 18
|
16 30 18
|
||||||
@ 32 18
|
16 32 18
|
||||||
@ 36 18
|
16 36 18
|
||||||
@ 34 18
|
16 34 18
|
||||||
r 37 18
|
1 37 18
|
||||||
@ 3 18
|
16 3 18
|
||||||
@ 5 18
|
16 5 18
|
||||||
@ 7 18
|
16 7 18
|
||||||
@ 9 18
|
16 9 18
|
||||||
P 32 13
|
17 32 13
|
||||||
P 34 13
|
17 34 13
|
||||||
P 36 13
|
17 36 13
|
||||||
P 7 13
|
17 7 13
|
||||||
P 5 13
|
17 5 13
|
||||||
P 3 13
|
17 3 13
|
||||||
@ 34 8
|
16 34 8
|
||||||
@ 36 8
|
16 36 8
|
||||||
@ 3 8
|
16 3 8
|
||||||
@ 5 8
|
16 5 8
|
||||||
P 36 3
|
17 36 3
|
||||||
P 3 3
|
17 3 3
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
|
|
|
@ -1,31 +1,30 @@
|
||||||
bgfile backgrounds/forest2.png
|
bgfile backgrounds/forest2.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 30
|
hurryup 30
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 2 28
|
0 2 28
|
||||||
! 27 10
|
23 27 10
|
||||||
a 21 4
|
6 21 4
|
||||||
r 7 8
|
1 7 8
|
||||||
r 32 13
|
1 32 13
|
||||||
r 17 18
|
1 17 18
|
||||||
r 28 22
|
1 28 22
|
||||||
P 17 10
|
17 17 10
|
||||||
P 18 10
|
17 18 10
|
||||||
@ 19 10
|
16 19 10
|
||||||
@ 16 10
|
16 16 10
|
||||||
Y 20 10
|
15 20 10
|
||||||
Y 15 10
|
15 15 10
|
||||||
Y 10 18
|
15 10 18
|
||||||
Y 23 22
|
15 23 22
|
||||||
Y 30 22
|
15 30 22
|
||||||
Y 30 13
|
15 30 13
|
||||||
Y 38 13
|
15 38 13
|
||||||
Y 9 8
|
15 9 8
|
||||||
Y 2 8
|
15 2 8
|
||||||
a 4 8
|
6 4 8
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
|
|
|
@ -1,18 +1,17 @@
|
||||||
bgfile
|
bgfile
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 30
|
hurryup 30
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 1 23
|
6 36 7
|
||||||
! 21 23
|
6 2 9
|
||||||
a 36 7
|
6 21 15
|
||||||
a 2 9
|
7 28 1
|
||||||
a 21 15
|
23 37 20
|
||||||
a 12 23
|
0 1 20
|
||||||
a 29 23
|
6 30 19
|
||||||
s 28 1
|
6 8 20
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||||
|
@ -36,12 +35,12 @@ exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,23,23,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,23,23,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,9,9,9,9,9,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,9,9,9,9,0,0,1,1,4,
|
|
||||||
4,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,4,
|
4,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,20,4,
|
||||||
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,4,
|
4,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,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,
|
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,
|
||||||
|
|
|
@ -1,52 +1,51 @@
|
||||||
bgfile backgrounds/forest2.png
|
bgfile backgrounds/forest2.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 60
|
hurryup 60
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 20 12
|
0 20 12
|
||||||
! 20 12
|
23 20 12
|
||||||
@ 11 5
|
16 11 5
|
||||||
@ 12 9
|
16 12 9
|
||||||
@ 27 9
|
16 27 9
|
||||||
@ 28 5
|
16 28 5
|
||||||
@ 31 28
|
16 31 28
|
||||||
@ 32 15
|
16 32 15
|
||||||
@ 34 15
|
16 34 15
|
||||||
@ 5 15
|
16 5 15
|
||||||
@ 5 28
|
16 5 28
|
||||||
@ 7 15
|
16 7 15
|
||||||
P 10 19
|
17 10 19
|
||||||
P 11 15
|
17 11 15
|
||||||
P 19 5
|
17 19 5
|
||||||
P 20 5
|
17 20 5
|
||||||
P 21 5
|
17 21 5
|
||||||
P 28 15
|
17 28 15
|
||||||
P 29 19
|
17 29 19
|
||||||
P 30 15
|
17 30 15
|
||||||
P 9 15
|
17 9 15
|
||||||
S 7 5
|
12 7 5
|
||||||
Y 11 9
|
15 11 9
|
||||||
Y 13 9
|
15 13 9
|
||||||
Y 26 9
|
15 26 9
|
||||||
Y 28 9
|
15 28 9
|
||||||
Y 3 15
|
15 3 15
|
||||||
Y 30 28
|
15 30 28
|
||||||
Y 32 28
|
15 32 28
|
||||||
Y 36 15
|
15 36 15
|
||||||
Y 4 28
|
15 4 28
|
||||||
Y 6 28
|
15 6 28
|
||||||
a 31 3
|
6 31 3
|
||||||
a 7 19
|
6 7 19
|
||||||
r 27 5
|
1 27 5
|
||||||
r 16 5
|
1 16 5
|
||||||
r 10 12
|
1 10 12
|
||||||
r 29 12
|
1 29 12
|
||||||
r 6 15
|
1 6 15
|
||||||
r 31 15
|
1 31 15
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 2
|
exitdir 1
|
||||||
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
|
@ -60,7 +59,7 @@ exitdir 2
|
||||||
4,0,0,0,7,0,0,0,0,22,20,20,20,20,20,22,0,0,0,0,0,0,0,0,22,20,20,20,20,20,22,0,0,0,0,7,0,0,0,4,
|
4,0,0,0,7,0,0,0,0,22,20,20,20,20,20,22,0,0,0,0,0,0,0,0,22,20,20,20,20,20,22,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,35,1,1,1,34,0,0,0,0,20,20,20,0,0,0,35,1,1,1,34,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,35,1,40,40,34,0,0,0,0,20,20,20,0,0,0,35,1,40,40,34,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,25,25,25,25,25,0,0,0,0,0,10,10,10,10,10,10,10,10,10,0,0,4,
|
4,0,0,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,25,25,25,25,25,0,0,0,0,0,10,10,10,10,10,10,10,10,10,0,0,4,
|
||||||
|
@ -76,14 +75,10 @@ exitdir 2
|
||||||
4,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,4,
|
4,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,4,
|
||||||
4,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,12,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,4,
|
4,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,12,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,4,
|
||||||
4,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,13,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,4,
|
4,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,13,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,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,
|
0,1,1,1,1,1,1,1,1,1,1,40,40,40,40,1,1,1,40,40,40,40,1,40,40,40,1,1,1,1,40,40,40,40,40,1,40,40,1,4,
|
||||||
layer2
|
layer2
|
||||||
4,6,8
|
4,6,8
|
||||||
35,6,8
|
35,6,8
|
||||||
12,13,40
|
|
||||||
13,13,40
|
|
||||||
27,13,40
|
|
||||||
28,13,40
|
|
||||||
10,20,41
|
10,20,41
|
||||||
29,20,41
|
29,20,41
|
||||||
10,21,42
|
10,21,42
|
||||||
|
@ -93,25 +88,4 @@ layer2
|
||||||
15,23,42
|
15,23,42
|
||||||
24,23,43
|
24,23,43
|
||||||
0,29,39
|
0,29,39
|
||||||
3,29,40
|
|
||||||
4,29,40
|
|
||||||
5,29,40
|
|
||||||
6,29,40
|
|
||||||
7,29,40
|
|
||||||
11,29,40
|
|
||||||
12,29,40
|
|
||||||
13,29,40
|
|
||||||
18,29,40
|
|
||||||
19,29,40
|
|
||||||
20,29,40
|
|
||||||
23,29,40
|
|
||||||
24,29,40
|
|
||||||
25,29,40
|
|
||||||
30,29,40
|
|
||||||
31,29,40
|
|
||||||
32,29,40
|
|
||||||
33,29,40
|
|
||||||
34,29,40
|
|
||||||
36,29,40
|
|
||||||
37,29,40
|
|
||||||
39,29,38
|
39,29,38
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
tileset green
|
tileset green
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 60
|
hurryup 60
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
tileset green
|
tileset green
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 90
|
hurryup 90
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
|
|
|
@ -1,59 +1,58 @@
|
||||||
bgfile backgrounds/forest2.png
|
bgfile backgrounds/forest2.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 616
|
hurryup 616
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 5 26
|
0 5 26
|
||||||
! 27 6
|
23 27 6
|
||||||
C 28 26
|
18 28 26
|
||||||
C 35 3
|
18 35 3
|
||||||
C 16 14
|
18 16 14
|
||||||
r 36 9
|
1 36 9
|
||||||
S 17 22
|
12 17 22
|
||||||
Y 11 18
|
15 11 18
|
||||||
Y 12 18
|
15 12 18
|
||||||
Y 15 18
|
15 15 18
|
||||||
Y 13 18
|
15 13 18
|
||||||
Y 14 18
|
15 14 18
|
||||||
Y 28 18
|
15 28 18
|
||||||
Y 26 18
|
15 26 18
|
||||||
Y 25 18
|
15 25 18
|
||||||
Y 27 18
|
15 27 18
|
||||||
Y 24 18
|
15 24 18
|
||||||
@ 16 18
|
16 16 18
|
||||||
@ 17 18
|
16 17 18
|
||||||
@ 19 18
|
16 19 18
|
||||||
@ 23 18
|
16 23 18
|
||||||
@ 22 18
|
16 22 18
|
||||||
@ 20 18
|
16 20 18
|
||||||
Y 21 18
|
15 21 18
|
||||||
Y 18 18
|
15 18 18
|
||||||
P 3 3
|
17 3 3
|
||||||
P 1 3
|
17 1 3
|
||||||
@ 25 6
|
16 25 6
|
||||||
@ 22 6
|
16 22 6
|
||||||
@ 21 13
|
16 21 13
|
||||||
@ 20 13
|
16 20 13
|
||||||
@ 33 9
|
16 33 9
|
||||||
@ 32 3
|
16 32 3
|
||||||
Y 20 6
|
15 20 6
|
||||||
Y 15 9
|
15 15 9
|
||||||
Y 11 9
|
15 11 9
|
||||||
Y 23 26
|
15 23 26
|
||||||
Y 15 26
|
15 15 26
|
||||||
Y 24 22
|
15 24 22
|
||||||
@ 21 22
|
16 21 22
|
||||||
@ 11 22
|
16 11 22
|
||||||
@ 20 26
|
16 20 26
|
||||||
@ 38 9
|
16 38 9
|
||||||
a 28 14
|
6 28 14
|
||||||
a 10 2
|
6 10 2
|
||||||
Y 3 12
|
15 3 12
|
||||||
r 2 3
|
1 2 3
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 2
|
exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,
|
||||||
|
@ -132,7 +131,7 @@ layer2
|
||||||
28,23,28
|
28,23,28
|
||||||
29,23,28
|
29,23,28
|
||||||
34,23,37
|
34,23,37
|
||||||
37,23,7
|
37,23,8
|
||||||
30,24,42
|
30,24,42
|
||||||
36,24,43
|
36,24,43
|
||||||
37,24,7
|
37,24,7
|
||||||
|
|
|
@ -1,16 +1,15 @@
|
||||||
bgfile backgrounds/snow1.png
|
bgfile backgrounds/snow1.png
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 30
|
hurryup 30
|
||||||
endmaps
|
|
||||||
help
|
help
|
||||||
endhelp
|
endhelp
|
||||||
monsters
|
monsters
|
||||||
1 26 13
|
0 26 13
|
||||||
P 1 13
|
23 31 13
|
||||||
P 7 13
|
17 1 13
|
||||||
r 17 13
|
17 7 13
|
||||||
r 37 12
|
1 17 13
|
||||||
! 31 13
|
1 37 12
|
||||||
endmonsters
|
endmonsters
|
||||||
exitdir 1
|
exitdir 1
|
||||||
1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,
|
1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,
|
||||||
|
@ -27,17 +26,17 @@ exitdir 1
|
||||||
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,4,
|
||||||
4,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,1,1,0,0,0,4,
|
4,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,1,1,0,0,0,4,
|
||||||
4,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,1,1,1,1,1,4,
|
4,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,1,1,1,1,1,4,
|
||||||
4,1,1,1,1,1,1,1,16,16,16,16,16,16,16,1,1,1,1,1,1,16,16,16,16,1,1,1,1,1,1,1,1,1,1,1,0,0,0,4,
|
4,1,1,1,1,1,1,1,16,16,16,16,16,16,16,1,1,1,1,1,1,16,16,16,16,23,23,23,23,23,23,23,23,23,23,23,0,0,0,4,
|
||||||
4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,1,15,15,15,15,4,4,4,4,4,4,4,4,4,4,4,0,0,0,4,
|
4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,1,15,15,15,15,4,4,0,0,0,0,0,4,4,4,4,0,0,0,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,4,4,4,4,4,4,4,4,4,4,4,1,1,1,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,4,4,0,0,0,0,0,4,4,4,4,1,1,1,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,4,4,4,4,4,4,4,4,4,4,4,0,0,0,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,4,4,0,0,0,0,0,4,4,4,4,0,0,0,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,4,4,4,4,4,4,4,4,4,4,4,0,0,0,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,4,4,0,0,0,0,0,4,4,4,4,0,0,0,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,4,4,4,4,4,4,4,4,4,4,4,1,1,1,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,4,4,0,0,0,0,0,4,4,4,4,1,1,1,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,4,4,4,4,4,4,4,4,4,4,4,0,0,0,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,4,4,0,0,0,0,0,4,4,4,4,0,0,0,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,4,4,4,4,4,4,4,4,4,4,4,0,0,0,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,4,4,0,0,0,0,0,4,4,4,4,0,0,0,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,4,4,4,4,4,4,4,4,4,4,4,1,1,1,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,4,4,0,0,0,0,0,4,4,4,4,1,1,1,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,4,4,4,4,4,4,4,4,4,4,4,0,0,0,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,4,4,0,0,0,0,0,4,4,4,4,0,0,0,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,4,4,4,4,4,4,4,4,4,4,4,0,0,0,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,4,4,11,11,11,11,11,4,4,4,4,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,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,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,
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
tileset green
|
tileset green
|
||||||
bg 0
|
bg 0
|
||||||
hurryup 30
|
hurryup 30
|
||||||
endmaps
|
|
||||||
~~00000000000000000000000000000000000000
|
~~00000000000000000000000000000000000000
|
||||||
~~00000000000000000000000000000000000000
|
~~00000000000000000000000000000000000000
|
||||||
~~00000000000000000000000000000000000000
|
~~00000000000000000000000000000000000000
|
||||||
|
|