diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2a2f43 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +*.app +*.zip +.bash_history +.svn +*.dSYM +*.swp +.DS_Store +scripts/level*.png + +# Local work dirs +staging/ +orig/ + +# binaries +rc +edit + + diff --git a/Makefile b/Makefile index 1316b9a..76681c2 100644 --- a/Makefile +++ b/Makefile @@ -3,10 +3,10 @@ LIBS = libs/libSDL-1.2.0.dylib libs/libSDL_image-1.2.0.dylib libs/libSDL_mixer-1 all: rc edit rc: rc.c shared.c rc.h shared.h globals.h defs.h - gcc -Wall -DREV=`./getsvnrev.sh` -o rc -g rc.c shared.c `sdl-config --cflags --libs` -lsqlite3 -lSDLmain -lSDL -lSDL_image -lSDL_gfx -lSDL_ttf -lSDL_Mixer + gcc -Wall -DREV=\"`git rev-parse HEAD`\" -o rc -g rc.c shared.c `sdl-config --cflags --libs` -lsqlite3 -lSDLmain -lSDL -lSDL_image -lSDL_gfx -lSDL_ttf -lSDL_Mixer edit: edit.c shared.c edit.h shared.h globals.h defs.h - gcc -DREV=`./getsvnrev.sh` -D__EDITOR -Wall -o edit -g edit.c shared.c `sdl-config --cflags --libs` -lSDLmain -lSDL -lSDL_image -lSDL_gfx -lSDL_ttf + gcc -DREV=\"`git rev-parse HEAD`\" -D__EDITOR -Wall -o edit -g edit.c shared.c `sdl-config --cflags --libs` -lSDLmain -lSDL -lSDL_image -lSDL_gfx -lSDL_ttf app: rc if [ `uname -s` != "Darwin" ]; then echo "Mac .app bundle generation is only available under OSX."; exit 1; fi; diff --git a/data/hiscores.db b/data/hiscores.db index b35ef9b..091ed91 100644 Binary files a/data/hiscores.db and b/data/hiscores.db differ diff --git a/data/levels/mountaineering.dat b/data/levels/mountaineering.dat index eaeddb3..93f6898 100644 --- a/data/levels/mountaineering.dat +++ b/data/levels/mountaineering.dat @@ -12,7 +12,6 @@ monsters 1 27 4 1 4 8 18 28 27 -7 10 1 6 17 3 16 22 17 16 18 17 diff --git a/data/levels/platformsandladders.dat b/data/levels/platformsandladders.dat index c92e9e1..668e8ff 100644 --- a/data/levels/platformsandladders.dat +++ b/data/levels/platformsandladders.dat @@ -49,7 +49,7 @@ exitdir 1 4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4, 4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4, 4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4, -4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,11,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4, +4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,102,102,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,35,1,1,1,1,1,1,1,1,1,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4, 4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4, 4,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,4, diff --git a/data/levels/slitheringcliffs.dat b/data/levels/slitheringcliffs.dat index e529b3d..52fabc7 100644 --- a/data/levels/slitheringcliffs.dat +++ b/data/levels/slitheringcliffs.dat @@ -6,7 +6,7 @@ endhelp monsters 0 4 28 134 35 28 -23 33 28 +23 20 28 12 9 3 12 34 3 1 3 8 @@ -77,7 +77,7 @@ exitdir 1 4,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,30,0,0,102,102,102,0,0,102,102,102,0,0,30,0,0,0,0,0,0,0,0,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,1,1,38, layer2 12,13,94,layer3 diff --git a/data/levels/undergroundlake.dat b/data/levels/undergroundlake.dat index e85ec8c..ea3836d 100644 --- a/data/levels/undergroundlake.dat +++ b/data/levels/undergroundlake.dat @@ -69,15 +69,15 @@ exitdir 1 4,4,4,7,0,0,0,0,0,0,0,0,0,0,18,4,4,4,4,4,4,15,15,15,15,15,15,4,0,0,0,0,4,15,15,15,15,15,15,4, 4,4,4,7,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,15,15,15,15,15,15,4,0,0,0,0,4,15,15,15,15,15,15,4, 4,4,4,1,1,1,40,40,40,1,1,40,40,40,40,38,4,4,4,4,4,15,15,15,15,15,15,4,12,0,0,0,4,15,15,15,15,15,15,4, -4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,4,13,0,0,0,4,15,15,15,15,15,15,4, -4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,4,1,16,16,16,4,15,15,15,15,15,15,4, -4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4, -4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4, -4,4,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1,4, -4,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,1,4,4, -4,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,1,4,4,4, -4,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,1,4,4,4,4, -4,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,1,4,4,4,4,4, +4,4,4,7,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,4,13,0,0,0,4,15,15,15,15,15,15,4, +4,4,4,7,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,4,1,16,16,16,4,15,15,15,15,15,15,4, +4,4,4,7,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4, +4,4,4,7,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4, +4,4,4,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,1,4,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,1,4,4,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,1,4,4,4,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,1,4,4,4,4,4, 39,1,1,40,40,40,1,1,1,1,40,40,40,40,40,1,1,40,1,38,4,4,4,4,4,4,4,1,1,1,1,1,1,1,4,4,4,4,4,4, layer2 22,4,37 diff --git a/data/tiledefs.dat b/data/tiledefs.dat index edf7481..0166737 100644 --- a/data/tiledefs.dat +++ b/data/tiledefs.dat @@ -669,3 +669,12 @@ solid 2 slippery 1 file newtiles/icebridgethick.png end + +tile animspike +id 28 +solid 0 +dir newtiles +file !animspike1.png ^animspike2.png x10 animspike2.png animspike3.png animspike4.png animspike5.png animspike6.png animspike7.png animspike8.png animspike9.png x20 +animspeed 3 +animsync +end diff --git a/defs.h b/defs.h index 6e7fab0..4b97d49 100644 --- a/defs.h +++ b/defs.h @@ -355,7 +355,7 @@ enum SPELL { #define MAXLETTERHEIGHT 100 #define MAXFRAMES 18 // max number of frames for sprites #define MAXHELP 5 -#define MAXTILEFRAMES 10 // max number of frames for animated tiles +#define MAXTILEFRAMES 100 // max number of frames for animated tiles #define MAXCARDS 5 // how many cards a player can have @@ -862,6 +862,7 @@ enum SPELL { #define T_WARP 25 // hidden warp point - jump to reveal #define T_ICEBRIDGE 26 // like land but you can drop down through it #define T_ICEBRIDGETH 27 // thicker version of ice bridge which doesn't melt +#define T_ANIMSPIKE 28 // death states #define D_INITIAL (1) // Need to trigger death sequence @@ -923,6 +924,8 @@ typedef struct tiletype_s { int slippery; int walkvanish; // -1 means 'don't vanish' SDL_Surface *img[MAXTILEFRAMES]; + int killframe[MAXTILEFRAMES]; + int spikeframe[MAXTILEFRAMES]; int numframes; int animspeed; int animsync; diff --git a/doco/original_music b/doco/original_music index 65027d6..12ce7b7 100644 --- a/doco/original_music +++ b/doco/original_music @@ -1,4 +1,11 @@ -this_wonderful_life.mod -bonus.mod +snorewalk.mod = in-game music + by Deelite + +this_wonderful_life.mod = boss music + by Teo / Fatal Rage + +prosynt6.mod = hiscores music + by Jess + (http://amp.dascene.net/detail.php?detail=modules&view=8491) Original font: bluestone diff --git a/edit.c b/edit.c index be8cb32..1890d2e 100644 --- a/edit.c +++ b/edit.c @@ -166,7 +166,7 @@ int main (int argc, char **argv) { } // set title bar - sprintf(progname, "Rat Catcher Level Editor v0.%d", REV); + sprintf(progname, "Rat Catcher Level Editor"); SDL_WM_SetCaption(progname, progname); /* load fonts */ diff --git a/getsvnrev.sh b/getsvnrev.sh index f28148b..3d915f5 100755 --- a/getsvnrev.sh +++ b/getsvnrev.sh @@ -1,3 +1,8 @@ #!/bin/sh #svn info | grep Revision | cut -d " " -f 2 -svnversion . | cut -d: -f2 | sed -e 's/M//g' +VER=`svnversion . 2>/dev/null` +if [ $? -ne 0 ]; then + echo "1" +else + echo $VER | cut -d: -f2 | sed -e 's/M//g' +fi diff --git a/rc.c b/rc.c index ff5c3f2..6193b96 100644 --- a/rc.c +++ b/rc.c @@ -1,5 +1,7 @@ #include #include +#include +#include #include #include #include @@ -256,7 +258,7 @@ int main (int argc, char **argv) { // set program name (including version string) - sprintf(progname, "Rat Catcher v0.%d", REV); + sprintf(progname, "Rat Catcher"); /* handle arguments */ if (argc >= 2) { @@ -350,8 +352,11 @@ int main (int argc, char **argv) { datadir = strdup("data"); } - initsdl(); + + + + if (TTF_Init()) { printf("TTF_Init: %s\n", TTF_GetError()); } @@ -3569,7 +3574,7 @@ int movesprite(sprite_t *s) { } } else if (s->id == P_DRIP) { // water drip from melting tile // fall downwards - if (isinwater(s) && !s->iced && isongroundpoint(s, s->x, s->y+1)) { + if (isinwater(s) || isongroundpoint(s, s->x, s->y+1)) { s->dead = D_FINAL; } else { s->y += s->fallspeed; @@ -6908,10 +6913,23 @@ void dotileeffects(sprite_t *s) { } break; } + if (isdeadly(tt, tilex, tiley)) { + if (!isfruit(s->id) ) { + if (!s->invuln) { + if ((s->id != P_BLACKCLOUD) && (s->id != P_KINGSNAIL) && (s->id != P_KINGCAT)) { + die(s); + printf("DB: killed by deadly tile\n"); fflush(stdout); + } + } + } + finished = B_TRUE; + } - /* check under us */ - tt = gettileat(s->x,s->y+3,&tilex,&tiley); + if (!finished) { + /* check under us */ + tt = gettileat(s->x,s->y+3,&tilex,&tiley); + } // CHECKS WHICH COULD APPLY TO TILES UNDER AND SLIGHTLY LEFT/RIGHT OF US while (!finished) { @@ -6954,7 +6972,7 @@ void dotileeffects(sprite_t *s) { } } finished = B_TRUE; - } else if (tt->spikes) { + } else if (isspikes(tt, tilex, tiley)) { if (!isfruit(s->id) ) { if (!s->invuln) { if ((s->id != P_BLACKCLOUD) && (s->id != P_KINGSNAIL) && (s->id != P_KINGCAT)) { @@ -8512,6 +8530,29 @@ int isladderbelow(sprite_t *s) { return B_FALSE; } +int isdeadly(tiletype_t *tt, int tx, int ty) { + int curframe; + + curframe = curlevel->tileframe[ty*LEVELW+tx]; + if (tt->killframe[curframe]) { + return B_TRUE; + } + + return B_FALSE; +} + +int isspikes(tiletype_t *tt, int tx, int ty) { + int curframe; + if (tt->spikes) return B_TRUE; + + curframe = curlevel->tileframe[ty*LEVELW+tx]; + if (tt->spikeframe[curframe]) { + return B_TRUE; + } + + return B_FALSE; +} + int isinwater(sprite_t *s) { return isinwaterpoint(s->x, s->y - s->img->h/2); } @@ -10687,7 +10728,7 @@ int initsound(void) { sprintf(filename, "%s/music/main.mod",datadir); normalmusic = Mix_LoadMUS(filename); if (!normalmusic) { - printf("can't load music\n"); + printf("can't load music: %s\n", Mix_GetError()); return B_TRUE; } @@ -13101,7 +13142,7 @@ void dotitlescreen(void) { helpoff = TTF_RenderText_Solid(font[TEXTSIZE_TITLE], "Off", green2); helpon = TTF_RenderText_Solid(font[TEXTSIZE_TITLE], "On", green2); - sprintf(svnver, "v0.%d",REV); + sprintf(svnver, "%s", REV); ver = TTF_RenderText_Solid(font[TEXTSIZE_VER], svnver, greenish); @@ -13169,7 +13210,8 @@ void dotitlescreen(void) { if (titlemode != TS_HISCORES) { // version number - area.x = 640 - (ver->w) - 10; + //area.x = 640 - (ver->w) - 10; + area.x = (640/2) - (ver->w/2) - 10; area.y = 150; SDL_SetColors(ver, &black, 1, 1); SDL_BlitSurface(ver, NULL, screen, &area); diff --git a/rc.h b/rc.h index 333205d..9caac38 100644 --- a/rc.h +++ b/rc.h @@ -17,6 +17,7 @@ void dotileeffects(sprite_t *s); int movex(sprite_t *s,double amt,int onpurpose); void bouncesprite(sprite_t *s); int movesprite(sprite_t *s); +int isdeadly(tiletype_t *tt, int tx, int ty); int isinwater(sprite_t *s); int isinwaterpoint(int x, int y); int isroofabove(sprite_t *s); @@ -27,6 +28,7 @@ int isonladder(sprite_t *s); int isonbridge(sprite_t *s); int isladderabove(sprite_t *s); int isladderbelow(sprite_t *s); +int isspikes(tiletype_t *tt, int tx, int ty); int dofruiteffect(sprite_t *pp, sprite_t *s); void checkcollide(sprite_t *s); void checkcollideplatform(sprite_t *s); diff --git a/shared.c b/shared.c index 4d5ecdd..742bbbc 100644 --- a/shared.c +++ b/shared.c @@ -1147,6 +1147,7 @@ int loadtiletypes(char *filename) { char *p,*pp; int uniq = 0 ; + strcpy(imagefile, ""); /* clear tiletype linked list */ while (tiletype != NULL) { @@ -1213,6 +1214,8 @@ int loadtiletypes(char *filename) { } for (i = 0; i < MAXTILEFRAMES; i++) { t->img[i] = NULL; + t->killframe[i] = B_FALSE; + t->spikeframe[i] = B_FALSE; } t->next = NULL; state = 1; @@ -1280,7 +1283,7 @@ int loadtiletypes(char *filename) { p = strtok(buf, " "); p = strtok(NULL, " "); t->water = atoi(p); - } else if (strstr(buf, "file") == buf) { + } else if (strstr(buf, "file") == buf) { // ! means 'killframe', ^ is 'spikeframe' int frame; /* strip newline */ @@ -1292,27 +1295,67 @@ int loadtiletypes(char *filename) { frame = 0; p = strtok(NULL, " "); while (p) { + if (frame >= MAXTILEFRAMES) { + printf("FATAL error - tile %s frame #%d is greater than MAXTILEFRAMES\n",t->name,frame); + } if (t->img[frame]) { + printf("...already an img for frame #%d - freeing it.\n",frame); SDL_FreeSurface(t->img[frame]); t->img[frame] = NULL; } - sprintf(imagefile, "%s/%s/%s",datadir,dirname,p); - //strcpy(imagefile, dirname); - //strcat(imagefile, "/"); - //strcat(imagefile, p); - //t->img[frame] = IMG_Load(imagefile); - t->img[frame] = IMG_Load(imagefile); - if (!t->img[frame]) { - printf("cannot load tile image file: '%s'\n",imagefile); - fclose(f); - return B_TRUE; - } - // black is transparent - SDL_SetColorKey(t->img[frame], SDL_SRCCOLORKEY, SDL_MapRGB(screen->format, 0, 0, 0)); + if (strstr(p, "x") && !strchr(p, '.')) { // ie. x10, x1, etc + if (frame == 0) { + printf("FATAL ERROR: first frame can't be a repeat.\n"); + exit(1); + } else { + int n,repeatcount,baseframe; + // use previous one 'x' times + p++; + repeatcount = atoi(p); + baseframe = frame-1; + for (n = 0; n < repeatcount; n++) { + if (!strlen(imagefile)) { + printf("FATAL ERROR: no previous imagefile to repeat.\n"); + exit(1); + } + t->img[frame] = IMG_Load(imagefile); + if (!t->img[frame]) { + printf("cannot load tile image file: '%s'\n",imagefile); + fclose(f); + return B_TRUE; + } + t->killframe[frame] = t->killframe[baseframe]; + frame++; + } + } + } else { + // exclamation mark indicates this is a 'killframe' (ie. if you stand + // on this tile when it hits this frame, you die) + if (*p == '!') { + t->killframe[frame] = B_TRUE; + p++; + } else if (*p == '^') { + t->spikeframe[frame] = B_TRUE; + p++; + } + sprintf(imagefile, "%s/%s/%s",datadir,dirname,p); + //strcpy(imagefile, dirname); + //strcat(imagefile, "/"); + //strcat(imagefile, p); + + //t->img[frame] = IMG_Load(imagefile); + t->img[frame] = IMG_Load(imagefile); + if (!t->img[frame]) { + printf("cannot load tile image file: '%s'\n",imagefile); + fclose(f); + return B_TRUE; + } + // black is transparent + SDL_SetColorKey(t->img[frame], SDL_SRCCOLORKEY, SDL_MapRGB(screen->format, 0, 0, 0)); + frame++; + } - // get next one - frame++; p = strtok(NULL, " "); } t->numframes = frame; @@ -1758,6 +1801,7 @@ int loadimagesets(void) { } imageset[P_STAR].numimages = STARFRAMES; + loadspriteimage(P_UFO,F_WALK1, "sprites/ufo.png"); imageset[P_UFO].numimages = 1; @@ -1979,18 +2023,24 @@ int loadimagesets(void) { for (i = 1; i <= 13; i++) { SDL_Surface *letter; SDL_Rect area; - char str[2]; + char str[3]; // HEARTS loadspriteimage(P_FIRSTHEART+i-1, F_WALK1, "sprites/cardh.png"); //sprintf(str, "%s",getcardletter(i)); strcpy(str, getcardletter(i)); letter = TTF_RenderText_Blended(cardfont, str, red ); + + area.x = CARDFONTX; area.y = CARDFONTY; area.w = 0; area.h = 0; if (i == 10) area.x -= 3; + + SDL_BlitSurface(letter, NULL, imageset[P_FIRSTHEART + i-1].img[F_WALK1], &area); imageset[P_FIRSTHEART + i-1].numimages = 1; SDL_FreeSurface(letter); + + // DIAMONDS loadspriteimage(P_FIRSTDIAMOND+i-1, F_WALK1, "sprites/cardd.png"); //sprintf(str, "%s",getcardletter(i)); @@ -2001,6 +2051,8 @@ int loadimagesets(void) { SDL_BlitSurface(letter, NULL, imageset[P_FIRSTDIAMOND + i-1].img[F_WALK1], &area); imageset[P_FIRSTDIAMOND + i-1].numimages = 1; SDL_FreeSurface(letter); + + // SPADES loadspriteimage(P_FIRSTSPADE+i-1, F_WALK1, "sprites/cards.png"); //sprintf(str, "%s",getcardletter(i)); @@ -2008,9 +2060,12 @@ int loadimagesets(void) { letter = TTF_RenderText_Blended(cardfont, str, black ); area.x = CARDFONTX; area.y = CARDFONTY; area.w = 0; area.h = 0; if (i == 10) area.x -= 3; + SDL_BlitSurface(letter, NULL, imageset[P_FIRSTSPADE + i-1].img[F_WALK1], &area); imageset[P_FIRSTSPADE + i-1].numimages = 1; SDL_FreeSurface(letter); + + // CLUBS loadspriteimage(P_FIRSTCLUB+i-1, F_WALK1, "sprites/cardc.png"); //sprintf(str, "%s",getcardletter(i)); @@ -2021,6 +2076,7 @@ int loadimagesets(void) { SDL_BlitSurface(letter, NULL, imageset[P_FIRSTCLUB + i-1].img[F_WALK1], &area); imageset[P_FIRSTCLUB + i-1].numimages = 1; SDL_FreeSurface(letter); + } @@ -3926,9 +3982,9 @@ int isnettable(sprite_t *s) { // return starting health for a given boss type int getbosshealth(int mid) { - if (cheat) { +/* if (cheat) { return 1; - } + } */ switch (mid) { case P_KINGRAT: return 8;