X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=f40c0475cb8bf97de3a1b876233a58626ed5a1b5;hb=c2641d60f5d3461bbd449dffe85251483f12e6b5;hp=046d47c47dbefe1fc26f3bb83f506fad67d82c04;hpb=f5356588a234e34e349c0b1eba02008655fdee87;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index 046d47c4..f40c0475 100644 --- a/src/tools.c +++ b/src/tools.c @@ -334,6 +334,17 @@ int getFontHeight(int font_size, int font_type) 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]; @@ -606,9 +617,14 @@ void DrawPlayer(struct PlayerInfo *player) 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) { @@ -2504,15 +2520,13 @@ int el2gfx(int element) 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; @@ -2561,6 +2575,28 @@ int el2gfx(int element) 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: {