void DrawInitText(char *text, int ypos, int color)
{
+#ifdef USE_SDL_LIBRARY
+ if (sdl_window && sdl_pix[PIX_SMALLFONT])
+ {
+ SDLFillRectangle(sdl_window, 0, ypos, WIN_XSIZE, FONT2_YSIZE, 0x000000);
+ DrawTextExt(window, gc, (WIN_XSIZE - strlen(text) * FONT2_XSIZE)/2,
+ ypos,text,FS_SMALL,color);
+ SDL_Flip(sdl_window);
+ }
+#else
if (display && window && pix[PIX_SMALLFONT])
{
XFillRectangle(display, window, gc, 0, ypos, WIN_XSIZE, FONT2_YSIZE);
ypos,text,FS_SMALL,color);
XFlush(display);
}
+#endif
}
void DrawTextFCentered(int y, int font_type, char *format, ...)
0, 0, font_width, font_height, dest_x, dest_y);
}
else
+ {
+#ifdef USE_SDL_LIBRARY
+ SDLCopyArea(sdl_pix[font_pixmap], sdl_window,
+ src_x, src_y, font_width, font_height, dest_x, dest_y);
+#else
XCopyArea(display, pix[font_pixmap], d, gc,
src_x, src_y, font_width, font_height, dest_x, dest_y);
+#endif
+ }
}
x += font_width;
graphic = GFX_MURPHY_GO_LEFT;
else if (player->MovDir & (MV_UP | MV_DOWN) && last_dir == MV_RIGHT)
graphic = GFX_MURPHY_GO_RIGHT;
+ else
+ graphic = GFX_MURPHY_GO_LEFT;
graphic += getGraphicAnimationPhase(3, 2, ANIM_OSCILLATE);
}
int element = Feld[next_jx][next_jy];
int graphic = el2gfx(element);
- if ((element == EL_FELSBROCKEN || element == EL_SP_ZONK) && sxx)
+ if ((element == EL_FELSBROCKEN ||
+ element == EL_SP_ZONK ||
+ element == EL_BD_ROCK) && sxx)
{
int phase = (player->GfxPos / (TILEX / 4));
*x = MINI_DC_STARTX + (graphic % MINI_DC_PER_LINE) * MINI_TILEX;
*y = MINI_DC_STARTY + (graphic / MINI_DC_PER_LINE) * MINI_TILEY;
}
+ else if (graphic >= GFX_START_ROCKSMORE && graphic <= GFX_END_ROCKSMORE)
+ {
+ graphic -= GFX_START_ROCKSMORE;
+ *pixmap = pix[PIX_MORE];
+ *x = MINI_MORE_STARTX + (graphic % MINI_MORE_PER_LINE) * MINI_TILEX;
+ *y = MINI_MORE_STARTY + (graphic / MINI_MORE_PER_LINE) * MINI_TILEY;
+ }
else if (graphic >= GFX_START_ROCKSFONT && graphic <= GFX_END_ROCKSFONT)
{
graphic -= GFX_START_ROCKSFONT;
{
graphic += phase4;
}
- else if ((element == EL_FELSBROCKEN || element == EL_SP_ZONK ||
+ else if ((element == EL_FELSBROCKEN ||
+ element == EL_SP_ZONK ||
+ element == EL_BD_ROCK ||
IS_GEM(element)) && !cut_mode)
{
if (uy >= lev_fieldy-1 || !IS_BELT(Feld[ux][uy+1]))
{
- if (element == EL_FELSBROCKEN || element == EL_SP_ZONK)
+ if (element == EL_FELSBROCKEN ||
+ element == EL_SP_ZONK ||
+ element == EL_BD_ROCK)
{
if (dir == MV_LEFT)
graphic += (4 - phase4) % 4;
graphic += phase2;
}
}
- else if (element == EL_SIEB_LEER || element == EL_SIEB2_LEER ||
- element == EL_SIEB_VOLL || element == EL_SIEB2_VOLL)
+ else if (element == EL_MAGIC_WALL_EMPTY ||
+ element == EL_MAGIC_WALL_BD_EMPTY ||
+ element == EL_MAGIC_WALL_FULL ||
+ element == EL_MAGIC_WALL_BD_FULL)
{
graphic += 3 + getGraphicAnimationPhase(4, 4, ANIM_REVERSE);
}
element = Feld[ux][uy];
- if (element == EL_ERDREICH || element == EL_LANDMINE)
+ if (element == EL_ERDREICH ||
+ element == EL_LANDMINE ||
+ element == EL_TRAP_INACTIVE ||
+ element == EL_TRAP_ACTIVE)
{
if (!IN_SCR_FIELD(x, y))
return;
else
element = Feld[uxx][uyy];
- if (element == EL_ERDREICH || element == EL_LANDMINE)
+ if (element == EL_ERDREICH ||
+ element == EL_LANDMINE ||
+ element == EL_TRAP_INACTIVE ||
+ element == EL_TRAP_ACTIVE)
continue;
if (i == 1 || i == 2)
uyy = uy + xy[i][1];
if (!IN_LEV_FIELD(uxx, uyy) ||
- (Feld[uxx][uyy] != EL_ERDREICH && Feld[uxx][uyy] != EL_LANDMINE) ||
+ (Feld[uxx][uyy] != EL_ERDREICH &&
+ Feld[uxx][uyy] != EL_LANDMINE &&
+ Feld[uxx][uyy] != EL_TRAP_INACTIVE &&
+ Feld[uxx][uyy] != EL_TRAP_ACTIVE) ||
!IN_SCR_FIELD(xx, yy))
continue;
boolean cut_mode = NO_CUTTING;
if (Store[ux][uy] == EL_MORAST_LEER ||
- Store[ux][uy] == EL_SIEB_LEER ||
- Store[ux][uy] == EL_SIEB2_LEER ||
+ Store[ux][uy] == EL_MAGIC_WALL_EMPTY ||
+ Store[ux][uy] == EL_MAGIC_WALL_BD_EMPTY ||
Store[ux][uy] == EL_AMOEBE_NASS)
cut_mode = CUT_ABOVE;
else if (Store[ux][uy] == EL_MORAST_VOLL ||
- Store[ux][uy] == EL_SIEB_VOLL ||
- Store[ux][uy] == EL_SIEB2_VOLL)
+ Store[ux][uy] == EL_MAGIC_WALL_FULL ||
+ Store[ux][uy] == EL_MAGIC_WALL_BD_FULL)
cut_mode = CUT_BELOW;
if (cut_mode == CUT_ABOVE)
MovDir[oldx][oldy] == MV_RIGHT);
if (Store[oldx][oldy] == EL_MORAST_LEER ||
- Store[oldx][oldy] == EL_SIEB_LEER ||
- Store[oldx][oldy] == EL_SIEB2_LEER ||
+ Store[oldx][oldy] == EL_MAGIC_WALL_EMPTY ||
+ Store[oldx][oldy] == EL_MAGIC_WALL_BD_EMPTY ||
Store[oldx][oldy] == EL_AMOEBE_NASS)
cut_mode = CUT_ABOVE;
MICRO_DC_STARTY + (graphic / MICRO_DC_PER_LINE) * MICRO_TILEY,
MICRO_TILEX, MICRO_TILEY, xpos, ypos);
}
+ else if (graphic >= GFX_START_ROCKSMORE && graphic <= GFX_END_ROCKSMORE)
+ {
+ graphic -= GFX_START_ROCKSMORE;
+ XCopyArea(display, pix[PIX_MORE], drawto, gc,
+ MICRO_MORE_STARTX + (graphic % MICRO_MORE_PER_LINE) *MICRO_TILEX,
+ MICRO_MORE_STARTY + (graphic / MICRO_MORE_PER_LINE) *MICRO_TILEY,
+ MICRO_TILEX, MICRO_TILEY, xpos, ypos);
+ }
else
XCopyArea(display, pix[PIX_BACK], drawto, gc,
MICRO_GFX_STARTX + (graphic % MICRO_GFX_PER_LINE) * MICRO_TILEX,
case EL_MORAST_VOLL: return GFX_MORAST_VOLL;
case EL_TROPFEN: return GFX_TROPFEN;
case EL_BOMBE: return GFX_BOMBE;
- case EL_SIEB_INAKTIV: return GFX_SIEB_INAKTIV;
- case EL_SIEB_LEER: return GFX_SIEB_LEER;
- case EL_SIEB_VOLL: return GFX_SIEB_VOLL;
- case EL_SIEB_TOT: return GFX_SIEB_TOT;
+ case EL_MAGIC_WALL_OFF: return GFX_MAGIC_WALL_OFF;
+ case EL_MAGIC_WALL_EMPTY: return GFX_MAGIC_WALL_EMPTY;
+ case EL_MAGIC_WALL_FULL: return GFX_MAGIC_WALL_FULL;
+ case EL_MAGIC_WALL_DEAD: return GFX_MAGIC_WALL_DEAD;
case EL_SALZSAEURE: return GFX_SALZSAEURE;
case EL_AMOEBE_TOT: return GFX_AMOEBE_TOT;
case EL_AMOEBE_NASS: return GFX_AMOEBE_NASS;
case EL_ERZ_EDEL_ROT: return GFX_ERZ_EDEL_ROT;
case EL_ERZ_EDEL_LILA: return GFX_ERZ_EDEL_LILA;
case EL_MAMPFER2: return GFX_MAMPFER2;
- case EL_SIEB2_INAKTIV: return GFX_SIEB2_INAKTIV;
- case EL_SIEB2_LEER: return GFX_SIEB2_LEER;
- case EL_SIEB2_VOLL: return GFX_SIEB2_VOLL;
- case EL_SIEB2_TOT: return GFX_SIEB2_TOT;
+ case EL_MAGIC_WALL_BD_OFF: return GFX_MAGIC_WALL_BD_OFF;
+ case EL_MAGIC_WALL_BD_EMPTY:return GFX_MAGIC_WALL_BD_EMPTY;
+ case EL_MAGIC_WALL_BD_FULL: return GFX_MAGIC_WALL_BD_FULL;
+ case EL_MAGIC_WALL_BD_DEAD: return GFX_MAGIC_WALL_BD_DEAD;
case EL_DYNABOMB_ACTIVE_1: return GFX_DYNABOMB;
case EL_DYNABOMB_ACTIVE_2: return GFX_DYNABOMB;
case EL_DYNABOMB_ACTIVE_3: return GFX_DYNABOMB;
case EL_EMC_WALL_6: return GFX_EMC_WALL_6;
case EL_EMC_WALL_7: return GFX_EMC_WALL_7;
case EL_EMC_WALL_8: return GFX_EMC_WALL_8;
+ case EL_TUBE_CROSS: return GFX_TUBE_CROSS;
+ case EL_TUBE_VERTICAL: return GFX_TUBE_VERTICAL;
+ case EL_TUBE_HORIZONTAL: return GFX_TUBE_HORIZONTAL;
+ case EL_TUBE_VERT_LEFT: return GFX_TUBE_VERT_LEFT;
+ case EL_TUBE_VERT_RIGHT: return GFX_TUBE_VERT_RIGHT;
+ case EL_TUBE_HORIZ_UP: return GFX_TUBE_HORIZ_UP;
+ case EL_TUBE_HORIZ_DOWN: return GFX_TUBE_HORIZ_DOWN;
+ case EL_TUBE_LEFT_UP: return GFX_TUBE_LEFT_UP;
+ case EL_TUBE_LEFT_DOWN: return GFX_TUBE_LEFT_DOWN;
+ case EL_TUBE_RIGHT_UP: return GFX_TUBE_RIGHT_UP;
+ case EL_TUBE_RIGHT_DOWN: return GFX_TUBE_RIGHT_DOWN;
+ case EL_SPRING: return GFX_SPRING;
+ case EL_SPRING_MOVING: return GFX_SPRING;
+ case EL_TRAP_INACTIVE: return GFX_TRAP_INACTIVE;
+ case EL_TRAP_ACTIVE: return GFX_TRAP_ACTIVE;
+ case EL_BD_WALL: return GFX_BD_WALL;
+ case EL_BD_ROCK: return GFX_BD_ROCK;
+ case EL_DX_SUPABOMB: return GFX_DX_SUPABOMB;
+ case EL_SP_MURPHY_CLONE: return GFX_SP_MURPHY_CLONE;
default:
{