|
|
@ -774,6 +774,8 @@ gfx_copyscreen (SDL_Rect * wnd)
|
|
|
|
SDL_BlitSurface (gfx.screen, wnd, res, &dest);
|
|
|
|
SDL_BlitSurface (gfx.screen, wnd, res, &dest);
|
|
|
|
return res;
|
|
|
|
return res;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* load the tileset or if not present the files from the default folder */
|
|
|
|
void
|
|
|
|
void
|
|
|
|
gfx_load_tileset (char *tilesetname)
|
|
|
|
gfx_load_tileset (char *tilesetname)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -781,11 +783,13 @@ gfx_load_tileset (char *tilesetname)
|
|
|
|
r,
|
|
|
|
r,
|
|
|
|
g,
|
|
|
|
g,
|
|
|
|
b;
|
|
|
|
b;
|
|
|
|
char filename[LEN_PATHFILENAME];
|
|
|
|
char fullname[LEN_PATHFILENAME];
|
|
|
|
|
|
|
|
char filename[LEN_FILENAME];
|
|
|
|
char tileset[LEN_TILESETNAME];
|
|
|
|
char tileset[LEN_TILESETNAME];
|
|
|
|
SDL_Surface *tmpimage,
|
|
|
|
SDL_Surface *tmpimage,
|
|
|
|
*tmpimage1;
|
|
|
|
*tmpimage1;
|
|
|
|
float sfkt;
|
|
|
|
float sfkt;
|
|
|
|
|
|
|
|
|
|
|
|
d_printf ("Loading Tileset: %s\n", tilesetname);
|
|
|
|
d_printf ("Loading Tileset: %s\n", tilesetname);
|
|
|
|
strncpy (tileset, tilesetname, LEN_TILESETNAME);
|
|
|
|
strncpy (tileset, tilesetname, LEN_TILESETNAME);
|
|
|
|
|
|
|
|
|
|
|
@ -794,7 +798,6 @@ gfx_load_tileset (char *tilesetname)
|
|
|
|
gfx.block.y = (gfx.res.y - 80) / (bman.fieldsize.y + 1);
|
|
|
|
gfx.block.y = (gfx.res.y - 80) / (bman.fieldsize.y + 1);
|
|
|
|
if (gfx.block.x < gfx.block.y)
|
|
|
|
if (gfx.block.x < gfx.block.y)
|
|
|
|
gfx.block.y = gfx.block.x;
|
|
|
|
gfx.block.y = gfx.block.x;
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
gfx.block.x = gfx.block.y;
|
|
|
|
gfx.block.x = gfx.block.y;
|
|
|
|
|
|
|
|
|
|
|
@ -807,27 +810,16 @@ gfx_load_tileset (char *tilesetname)
|
|
|
|
gfx.offset.y = gfx.res.y - (gfx.block.y * bman.fieldsize.y);
|
|
|
|
gfx.offset.y = gfx.res.y - (gfx.block.y * bman.fieldsize.y);
|
|
|
|
|
|
|
|
|
|
|
|
/* load the fire */
|
|
|
|
/* load the fire */
|
|
|
|
sprintf (filename, "%s/tileset/%s/fire.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (fullname, "%s/tileset/%s/fire.bmp", bman.datapath, tileset);
|
|
|
|
tmpimage = SDL_LoadBMP (filename);
|
|
|
|
tmpimage = SDL_LoadBMP (fullname);
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
|
|
|
|
|
|
|
|
/* file could not be load, so load teh default tileset */
|
|
|
|
/* file could not be load, so load teh default tileset */
|
|
|
|
printf ("Can't load tileset: %s\n", SDL_GetError ());
|
|
|
|
sprintf (fullname, "%s/tileset/default/fire.bmp", bman.datapath);
|
|
|
|
if (strcmp (tileset, "default") != 0) {
|
|
|
|
tmpimage = SDL_LoadBMP (fullname);
|
|
|
|
strcpy (tileset, "default");
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
sprintf (filename, "%s/tileset/%s/fire.bmp", bman.datapath, tileset);
|
|
|
|
printf ("default tileset could not be loaded.\n");
|
|
|
|
tmpimage = SDL_LoadBMP (filename);
|
|
|
|
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
|
|
|
|
printf ("default tileset could not be loaded.\n");
|
|
|
|
|
|
|
|
exit (1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
printf ("switching to default tileset.\n");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
exit (1);
|
|
|
|
exit (1);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
gfx.fire.frames = tmpimage->h / GFX_IMGSIZE;
|
|
|
|
gfx.fire.frames = tmpimage->h / GFX_IMGSIZE;
|
|
|
|
tmpimage1 =
|
|
|
|
tmpimage1 =
|
|
|
@ -840,11 +832,16 @@ gfx_load_tileset (char *tilesetname)
|
|
|
|
SDL_FreeSurface (tmpimage1);
|
|
|
|
SDL_FreeSurface (tmpimage1);
|
|
|
|
|
|
|
|
|
|
|
|
/* load the bomb */
|
|
|
|
/* load the bomb */
|
|
|
|
sprintf (filename, "%s/tileset/%s/bomb.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (fullname, "%s/tileset/%s/bomb.bmp", bman.datapath, tileset);
|
|
|
|
tmpimage = SDL_LoadBMP (filename);
|
|
|
|
tmpimage = SDL_LoadBMP (fullname);
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
printf ("Can't load image: %s\n", SDL_GetError ());
|
|
|
|
/* file could not be load, so load teh default tileset */
|
|
|
|
exit (1);
|
|
|
|
sprintf (fullname, "%s/tileset/default/bomb.bmp", bman.datapath);
|
|
|
|
|
|
|
|
tmpimage = SDL_LoadBMP (fullname);
|
|
|
|
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
|
|
|
|
printf ("default tileset could not be loaded.\n");
|
|
|
|
|
|
|
|
exit (1);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
gfx.bomb.frames = tmpimage->h / GFX_IMGSIZE;
|
|
|
|
gfx.bomb.frames = tmpimage->h / GFX_IMGSIZE;
|
|
|
|
tmpimage1 =
|
|
|
|
tmpimage1 =
|
|
|
@ -856,41 +853,62 @@ gfx_load_tileset (char *tilesetname)
|
|
|
|
SDL_FreeSurface (tmpimage);
|
|
|
|
SDL_FreeSurface (tmpimage);
|
|
|
|
SDL_FreeSurface (tmpimage1);
|
|
|
|
SDL_FreeSurface (tmpimage1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* load the powerup image */
|
|
|
|
|
|
|
|
sprintf (fullname, "%s/tileset/%s/powerup.bmp", bman.datapath, tileset);
|
|
|
|
|
|
|
|
tmpimage = SDL_LoadBMP (fullname);
|
|
|
|
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
|
|
|
|
/* file could not be load, so load teh default tileset */
|
|
|
|
|
|
|
|
sprintf (fullname, "%s/tileset/default/powerup.bmp", bman.datapath);
|
|
|
|
|
|
|
|
tmpimage = SDL_LoadBMP (fullname);
|
|
|
|
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
|
|
|
|
printf ("default tileset could not be loaded.\n");
|
|
|
|
|
|
|
|
exit (1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
gfx.powerup.frames = tmpimage->h / GFX_IMGSIZE;
|
|
|
|
|
|
|
|
tmpimage1 =
|
|
|
|
|
|
|
|
scale_image (tmpimage, (tmpimage->w / GFX_IMGSIZE) * gfx.block.x,
|
|
|
|
|
|
|
|
gfx.bomb.frames * gfx.block.y);
|
|
|
|
|
|
|
|
SDL_SetColorKey (tmpimage1, SDL_SRCCOLORKEY, SDL_MapRGB (tmpimage1->format, 255, 0, 255));
|
|
|
|
|
|
|
|
gfx.powerup.image = SDL_DisplayFormat (tmpimage1);
|
|
|
|
|
|
|
|
SDL_FreeSurface (tmpimage);
|
|
|
|
|
|
|
|
SDL_FreeSurface (tmpimage1);
|
|
|
|
|
|
|
|
|
|
|
|
/* loading the field images */
|
|
|
|
/* loading the field images */
|
|
|
|
for (i = 0; i < FT_max; i++) {
|
|
|
|
for (i = 0; i < FT_max; i++) {
|
|
|
|
switch (i) {
|
|
|
|
switch (i) {
|
|
|
|
case (FT_nothing):
|
|
|
|
case (FT_nothing):
|
|
|
|
sprintf (filename, "%s/tileset/%s/background.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (filename, "background.bmp");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (FT_stone):
|
|
|
|
case (FT_stone):
|
|
|
|
sprintf (filename, "%s/tileset/%s/stone.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (filename, "stone.bmp");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (FT_block):
|
|
|
|
case (FT_block):
|
|
|
|
sprintf (filename, "%s/tileset/%s/block.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (filename, "block.bmp");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (FT_death):
|
|
|
|
case (FT_death):
|
|
|
|
sprintf (filename, "%s/tileset/%s/fielddeath.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (filename, "pwdeath.bmp");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (FT_bomb):
|
|
|
|
case (FT_bomb):
|
|
|
|
sprintf (filename, "%s/tileset/%s/fieldbomb.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (filename, "pwbomb.bmp");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (FT_fire):
|
|
|
|
case (FT_fire):
|
|
|
|
sprintf (filename, "%s/tileset/%s/fieldfire.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (filename, "pwfire.bmp");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (FT_shoe):
|
|
|
|
case (FT_shoe):
|
|
|
|
sprintf (filename, "%s/tileset/%s/fieldshoe.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (filename, "pwshoe.bmp");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (FT_sp_trigger):
|
|
|
|
case (FT_sp_trigger):
|
|
|
|
sprintf (filename, "%s/tileset/%s/fieldstrigger.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (filename, "sptrigger.bmp");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (FT_sp_row):
|
|
|
|
case (FT_sp_row):
|
|
|
|
sprintf (filename, "%s/tileset/%s/fieldsrow.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (filename, "sprow.bmp");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (FT_sp_push):
|
|
|
|
case (FT_sp_push):
|
|
|
|
sprintf (filename, "%s/tileset/%s/fieldspush.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (filename, "sppush.bmp");
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case (FT_sp_kick):
|
|
|
|
case (FT_sp_kick):
|
|
|
|
sprintf (filename, "%s/tileset/%s/fieldskick.bmp", bman.datapath, tileset);
|
|
|
|
sprintf (filename, "spkick.bmp");
|
|
|
|
continue; // remove this if you find a kick image
|
|
|
|
continue; // remove this if you find a kick image
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -901,16 +919,24 @@ gfx_load_tileset (char *tilesetname)
|
|
|
|
gfx.field[i].image = SDL_DisplayFormat (tmpimage);
|
|
|
|
gfx.field[i].image = SDL_DisplayFormat (tmpimage);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
tmpimage = SDL_LoadBMP (filename);
|
|
|
|
sprintf (fullname, "%s/tileset/%s/%s", bman.datapath, tileset, filename);
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
tmpimage = SDL_LoadBMP (fullname);
|
|
|
|
printf ("Can't load image: %s\n", SDL_GetError ());
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
exit (1);
|
|
|
|
sprintf (fullname, "%s/tileset/default/%s", bman.datapath, filename);
|
|
|
|
}
|
|
|
|
tmpimage = SDL_LoadBMP (fullname);
|
|
|
|
|
|
|
|
if (tmpimage == NULL) {
|
|
|
|
|
|
|
|
printf ("Can't load image: %s\n", SDL_GetError ());
|
|
|
|
|
|
|
|
exit (1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
gfx.field[i].frames = tmpimage->h / GFX_IMGSIZE;
|
|
|
|
gfx.field[i].frames = tmpimage->h / GFX_IMGSIZE;
|
|
|
|
tmpimage1 = scale_image (tmpimage, (tmpimage->w / GFX_IMGSIZE) * gfx.block.x,
|
|
|
|
tmpimage1 = scale_image (tmpimage, (tmpimage->w / GFX_IMGSIZE) * gfx.block.x,
|
|
|
|
gfx.field[i].frames * gfx.block.y);
|
|
|
|
gfx.field[i].frames * gfx.block.y);
|
|
|
|
SDL_SetColorKey (tmpimage1, SDL_SRCCOLORKEY,
|
|
|
|
if (i == FT_nothing || i == FT_block || i == FT_stone)
|
|
|
|
SDL_MapRGB (tmpimage1->format, 255, 255, 255));
|
|
|
|
r = g = b = 255;
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
getRGBpixel (tmpimage1, 0, 0, &r, &g, &b);
|
|
|
|
|
|
|
|
SDL_SetColorKey (tmpimage1, SDL_SRCCOLORKEY, SDL_MapRGB (tmpimage1->format, r, g, b));
|
|
|
|
gfx.field[i].image = SDL_DisplayFormat (tmpimage1);
|
|
|
|
gfx.field[i].image = SDL_DisplayFormat (tmpimage1);
|
|
|
|
SDL_FreeSurface (tmpimage);
|
|
|
|
SDL_FreeSurface (tmpimage);
|
|
|
|
SDL_FreeSurface (tmpimage1);
|
|
|
|
SDL_FreeSurface (tmpimage1);
|
|
|
|