-void DrawGameValue_Emeralds(int value)
-{
- struct TextPosInfo *pos = &game.panel.gems;
- int font_nr = pos->font;
- int font_width = getFontWidth(font_nr);
- int chars = pos->size;
-
-#if 1
- return; /* !!! USE NEW STUFF !!! */
-#endif
-
- if (PANEL_DEACTIVATED(pos))
- return;
-
- pos->width = chars * font_width;
-
- DrawText(PANEL_XPOS(pos), PANEL_YPOS(pos), int2str(value, chars), font_nr);
-}
-
-void DrawGameValue_Dynamite(int value)
-{
- struct TextPosInfo *pos = &game.panel.inventory_count;
- int font_nr = pos->font;
- int font_width = getFontWidth(font_nr);
- int chars = pos->size;
-
-#if 1
- return; /* !!! USE NEW STUFF !!! */
-#endif
-
- if (PANEL_DEACTIVATED(pos))
- return;
-
- pos->width = chars * font_width;
-
- DrawText(PANEL_XPOS(pos), PANEL_YPOS(pos), int2str(value, chars), font_nr);
-}
-
-void DrawGameValue_Score(int value)
-{
- struct TextPosInfo *pos = &game.panel.score;
- int font_nr = pos->font;
- int font_width = getFontWidth(font_nr);
- int chars = pos->size;
-
-#if 1
- return; /* !!! USE NEW STUFF !!! */
-#endif
-
- if (PANEL_DEACTIVATED(pos))
- return;
-
- pos->width = chars * font_width;
-
- DrawText(PANEL_XPOS(pos), PANEL_YPOS(pos), int2str(value, chars), font_nr);
-}
-
-void DrawGameValue_Time(int value)
-{
- struct TextPosInfo *pos = &game.panel.time;
- static int last_value = -1;
- int chars1 = 3;
- int chars2 = 4;
- int chars = pos->size;
- int font1_nr = pos->font;
- int font2_nr = pos->font_alt;
- int font_nr = font1_nr;
- boolean use_dynamic_chars = (chars == -1 ? TRUE : FALSE);
-
-#if 1
- return; /* !!! USE NEW STUFF !!! */
-#endif
-
- if (PANEL_DEACTIVATED(pos))
- return;
-
- if (use_dynamic_chars) /* use dynamic number of chars */
- {
- chars = (value < 1000 ? chars1 : chars2);
- font_nr = (value < 1000 ? font1_nr : font2_nr);
- }
-
- /* clear background if value just changed its size (dynamic chars only) */
- if (use_dynamic_chars && (last_value < 1000) != (value < 1000))
- {
- int width1 = chars1 * getFontWidth(font1_nr);
- int width2 = chars2 * getFontWidth(font2_nr);
- int max_width = MAX(width1, width2);
- int max_height = MAX(getFontHeight(font1_nr), getFontHeight(font2_nr));
-
- pos->width = max_width;
-
- ClearRectangleOnBackground(drawto, PANEL_XPOS(pos), PANEL_YPOS(pos),
- max_width, max_height);
- }
-
- pos->width = chars * getFontWidth(font_nr);
-
- DrawText(PANEL_XPOS(pos), PANEL_YPOS(pos), int2str(value, chars), font_nr);
-
- last_value = value;
-}
-
-void DrawGameValue_Level(int value)
-{
- struct TextPosInfo *pos = &game.panel.level_number;
- int chars1 = 2;
- int chars2 = 3;
- int chars = pos->size;
- int font1_nr = pos->font;
- int font2_nr = pos->font_alt;
- int font_nr = font1_nr;
- boolean use_dynamic_chars = (chars == -1 ? TRUE : FALSE);
-
-#if 1
- return; /* !!! USE NEW STUFF !!! */
-#endif
-
- if (PANEL_DEACTIVATED(pos))
- return;
-
- if (use_dynamic_chars) /* use dynamic number of chars */
- {
- chars = (level_nr < 100 ? chars1 : chars2);
- font_nr = (level_nr < 100 ? font1_nr : font2_nr);
- }
-
- pos->width = chars * getFontWidth(font_nr);
-
- DrawText(PANEL_XPOS(pos), PANEL_YPOS(pos), int2str(value, chars), font_nr);
-}
-
-void DrawGameValue_Keys(int key[MAX_NUM_KEYS])
-{
- int i;
-
-#if 1
- return; /* !!! USE NEW STUFF !!! */
-#endif
-
- for (i = 0; i < MAX_NUM_KEYS; i++)
- {
- struct TextPosInfo *pos = &game.panel.key[i];
- int src_x = DOOR_GFX_PAGEX5 + 18 + (i % 4) * MINI_TILEX;
- int src_y = DOOR_GFX_PAGEY1 + 123;
- int dst_x = PANEL_XPOS(pos);
- int dst_y = PANEL_YPOS(pos);
-
- int element = (i >= STD_NUM_KEYS ? EL_EMC_KEY_5 - 4 :
- level.game_engine_type == GAME_ENGINE_TYPE_EM ? EL_EM_KEY_1 :
- EL_KEY_1) + i;
- int graphic = el2edimg(element);
-
- if (PANEL_DEACTIVATED(pos))
- continue;
-
-#if 0
- /* masked blit with tiles from half-size scaled bitmap does not work yet
- (no mask bitmap created for these sizes after loading and scaling) --
- solution: load without creating mask, scale, then create final mask */
-
- BlitBitmap(graphic_info[IMG_GLOBAL_DOOR].bitmap, drawto, src_x, src_y,
- MINI_TILEX, MINI_TILEY, dst_x, dst_y);
-
- if (key[i])
- {
- Bitmap *src_bitmap;
- int src_x, src_y;
-
- getMiniGraphicSource(graphic, &src_bitmap, &src_x, &src_y);
-
- SetClipOrigin(src_bitmap, src_bitmap->stored_clip_gc,
- dst_x - src_x, dst_y - src_y);
- BlitBitmapMasked(src_bitmap, drawto, src_x, src_y, MINI_TILEX, MINI_TILEY,
- dst_x, dst_y);
- }
-#else
- if (key[i])
- DrawMiniGraphicExt(drawto, dst_x, dst_y, graphic);
- else
- BlitBitmap(graphic_info[IMG_GLOBAL_DOOR].bitmap, drawto, src_x, src_y,
- MINI_TILEX, MINI_TILEY, dst_x, dst_y);
-#endif
- }
-}
-
-void DrawAllGameValues(int emeralds, int dynamite, int score, int time,
- int key_bits)
-{
- int key[MAX_NUM_KEYS];
- int i;
-
- /* prevent EM engine from updating time/score values parallel to GameWon() */
- if (level.game_engine_type == GAME_ENGINE_TYPE_EM &&
- local_player->LevelSolved)
- return;
-
- for (i = 0; i < MAX_NUM_KEYS; i++)
- key[i] = key_bits & (1 << i);
-
- DrawGameValue_Level(level_nr);
-
- DrawGameValue_Emeralds(emeralds);
- DrawGameValue_Dynamite(dynamite);
- DrawGameValue_Score(score);
- DrawGameValue_Time(time);
-
- DrawGameValue_Keys(key);
-}
-