int getFontWidth(int font_size, int font_type)
{
return (font_size == FS_BIG ? FONT1_XSIZE :
+ font_size == FS_MEDIUM ? FONT6_XSIZE :
font_type == FC_SPECIAL1 ? FONT3_XSIZE :
font_type == FC_SPECIAL2 ? FONT4_XSIZE :
font_type == FC_SPECIAL3 ? FONT5_XSIZE :
int getFontHeight(int font_size, int font_type)
{
return (font_size == FS_BIG ? FONT1_YSIZE :
+ font_size == FS_MEDIUM ? FONT6_YSIZE :
font_type == FC_SPECIAL1 ? FONT3_YSIZE :
font_type == FC_SPECIAL2 ? FONT4_YSIZE :
font_type == FC_SPECIAL3 ? FONT5_YSIZE :
FONT2_YSIZE);
}
+void DrawInitText(char *text, int ypos, int color)
+{
+ if (display && window && pix[PIX_SMALLFONT])
+ {
+ XFillRectangle(display, window, gc, 0, ypos, WIN_XSIZE, FONT2_YSIZE);
+ DrawTextExt(window, gc, (WIN_XSIZE - strlen(text) * FONT2_XSIZE)/2,
+ ypos,text,FS_SMALL,color);
+ XFlush(display);
+ }
+}
+
void DrawTextFCentered(int y, int font_type, char *format, ...)
{
char buffer[FULL_SXSIZE / FONT5_XSIZE + 10];
int font_pixmap;
boolean print_inverse = FALSE;
- if (font_size != FS_SMALL && font_size != FS_BIG)
+ if (font_size != FS_SMALL && font_size != FS_BIG && font_size != FS_MEDIUM)
font_size = FS_SMALL;
if (font_type < FC_RED || font_type > FC_SPECIAL3)
font_type = FC_RED;
font_width = getFontWidth(font_size, font_type);
font_height = getFontHeight(font_size, font_type);
- font_pixmap = (font_size == FS_BIG ? PIX_BIGFONT : PIX_SMALLFONT);
- font_start = (font_type * (font_size == FS_BIG ? FONT1_YSIZE : FONT2_YSIZE) *
+ font_pixmap = (font_size == FS_BIG ? PIX_BIGFONT :
+ font_size == FS_MEDIUM ? PIX_MEDIUMFONT :
+ PIX_SMALLFONT);
+ font_start = (font_type * (font_size == FS_BIG ? FONT1_YSIZE :
+ font_size == FS_MEDIUM ? FONT6_YSIZE :
+ FONT2_YSIZE) *
FONT_LINES_PER_FONT);
if (font_type == FC_SPECIAL3)
DrawGraphicShiftedThruMask(sx, sy, sxx, syy, graphic, NO_CUTTING);
- if (FORCE_FIELD_ON(player))
- DrawGraphicAnimationShiftedThruMask(sx, sy, sxx, syy, GFX_FUNKELN_BLAU,
+ if (SHIELD_ON(player))
+ {
+ int graphic = (player->shield_active_time_left ? GFX2_SHIELD_ACTIVE :
+ GFX2_SHIELD_PASSIVE);
+
+ DrawGraphicAnimationShiftedThruMask(sx, sy, sxx, syy, graphic,
3, 8, ANIM_OSCILLATE);
+ }
if (player->Pushing && player->GfxPos)
{
case EL_DOOR_WHITE: return GFX_DOOR_WHITE;
case EL_DOOR_WHITE_GRAY: return GFX_DOOR_WHITE_GRAY;
case EL_KEY_WHITE: return GFX_KEY_WHITE;
- case EL_FORCE_FIELD_PASSIVE:return GFX_FORCE_FIELD_PASSIVE;
- case EL_FORCE_FIELD_ACTIVE: return GFX_FORCE_FIELD_ACTIVE;
+ case EL_SHIELD_PASSIVE: return GFX_SHIELD_PASSIVE;
+ case EL_SHIELD_ACTIVE: return GFX_SHIELD_ACTIVE;
case EL_EXTRA_TIME: return GFX_EXTRA_TIME;
case EL_SWITCHGATE_OPEN: return GFX_SWITCHGATE_OPEN;
case EL_SWITCHGATE_CLOSED: return GFX_SWITCHGATE_CLOSED;
case EL_SWITCHGATE_SWITCH_1:return GFX_SWITCHGATE_SWITCH_1;
case EL_SWITCHGATE_SWITCH_2:return GFX_SWITCHGATE_SWITCH_2;
- case EL_TIME_GATE: return GFX_TIME_GATE;
- case EL_TIME_GATE_WHEEL: return GFX_TIME_GATE_WHEEL;
case EL_BELT1_LEFT: return GFX_BELT1_LEFT;
case EL_BELT1_MIDDLE: return GFX_BELT1_MIDDLE;
case EL_BELT1_RIGHT: return GFX_BELT1_RIGHT;
case EL_SAND_INVISIBLE: return GFX_SAND_INVISIBLE;
case EL_DX_UNKNOWN_15: return GFX_DX_UNKNOWN_15;
case EL_DX_UNKNOWN_42: return GFX_DX_UNKNOWN_42;
+ case EL_TIMEGATE_OPEN: return GFX_TIMEGATE_OPEN;
+ case EL_TIMEGATE_CLOSED: return GFX_TIMEGATE_CLOSED;
+ case EL_TIMEGATE_SWITCH_ON: return GFX_TIMEGATE_SWITCH;
+ case EL_TIMEGATE_SWITCH_OFF:return GFX_TIMEGATE_SWITCH;
+ case EL_BALLOON: return GFX_BALLOON;
+ case EL_BALLOON_SEND_LEFT: return GFX_BALLOON_SEND_LEFT;
+ case EL_BALLOON_SEND_RIGHT: return GFX_BALLOON_SEND_RIGHT;
+ case EL_BALLOON_SEND_UP: return GFX_BALLOON_SEND_UP;
+ case EL_BALLOON_SEND_DOWN: return GFX_BALLOON_SEND_DOWN;
+ case EL_BALLOON_SEND_ANY: return GFX_BALLOON_SEND_ANY;
+ case EL_EMC_STEEL_WALL_1: return GFX_EMC_STEEL_WALL_1;
+ case EL_EMC_STEEL_WALL_2: return GFX_EMC_STEEL_WALL_2;
+ case EL_EMC_STEEL_WALL_3: return GFX_EMC_STEEL_WALL_3;
+ case EL_EMC_STEEL_WALL_4: return GFX_EMC_STEEL_WALL_4;
+ case EL_EMC_WALL_1: return GFX_EMC_WALL_1;
+ case EL_EMC_WALL_2: return GFX_EMC_WALL_2;
+ case EL_EMC_WALL_3: return GFX_EMC_WALL_3;
+ case EL_EMC_WALL_4: return GFX_EMC_WALL_4;
+ case EL_EMC_WALL_5: return GFX_EMC_WALL_5;
+ 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;
default:
{