コード例 #1
0
void frontcredits_draw(void)
{
    struct CreditsItem *credit;
    TbBool did_draw;
    int fontid;
    long i;
    long h;
    const char *text;
    credits_offset -= credits_scroll_speed;
    frontend_copy_background();

    lbDisplay.DrawFlags = Lb_SPRITE_OUTLINE | Lb_TEXT_HALIGN_CENTER;
    LbTextSetWindow(0, 0, lbDisplay.PhysicalScreenWidth, lbDisplay.PhysicalScreenHeight);
    fontid = 1;
    LbTextSetFont(frontend_font[fontid]);
    h = credits_offset;
    did_draw = h > 0;
    for (i = 0; campaign.credits[i].kind != CIK_None; i++)
    {
        if (h >= lbDisplay.PhysicalScreenHeight)
          break;
        credit = &campaign.credits[i];
        if (credit->font != fontid)
        {
          fontid = credit->font;
          LbTextSetFont(frontend_font[fontid]);
        }
        int ln_height;
        ln_height = -LbTextLineHeight() * units_per_pixel / 16;
        if (h > ln_height)
        {
            switch (credit->kind)
            {
            case CIK_GStringId:
                text = gui_string(credit->num);
                break;
            case CIK_CStringId:
                text = cmpgn_string(credit->num);
                break;
            case CIK_DirectText:
                text = credit->str;
                break;
            default:
                text = "";
                break;
            }
            LbTextDrawResized(0, h, units_per_pixel, text);
            did_draw = 1;
        }
        h += ln_height + 2 * units_per_pixel / 16;
    }
    if (!did_draw)
    {
        credits_end = 1;
        credits_offset = lbDisplay.PhysicalScreenHeight;
    }
}
コード例 #2
0
void update_loadsave_input_strings(struct CatalogueEntry *game_catalg)
{
    struct CatalogueEntry *centry;
    long slot_num;
    const char *text;
    SYNCDBG(6,"Starting");
    for (slot_num=0; slot_num < TOTAL_SAVE_SLOTS_COUNT; slot_num++)
    {
        centry = &game_catalg[slot_num];
        if ((centry->flags & CEF_InUse) != 0)
          text = centry->textname;
        else
          text = gui_string(GUIStr_SlotUnused);
        strncpy(input_string[slot_num], text, SAVE_TEXTNAME_LEN);
    }
}
コード例 #3
0
void frontbirthday_draw(void)
{
    frontend_copy_background();
    LbTextSetWindow(70, 70, 500, 340);
    LbTextSetFont(frontstory_font);
    lbDisplay.DrawFlags = Lb_SPRITE_OUTLINE;
    const char *name=get_team_birthday();
    if ( name != NULL )
    {
        unsigned short line_pos;
        line_pos = LbTextLineHeight();
        LbTextDraw(0, 170-line_pos, gui_string(GUIStr_HappyBirthday));
        LbTextDraw(0, 170, name);
    } else
    {
        frontend_set_state(FeSt_INTRO);
    }
}
コード例 #4
0
void gui_save_game(struct GuiButton *gbtn)
{
  struct PlayerInfo *player;
  long slot_num;
  player = get_my_player();
  if (strcasecmp((char *)gbtn->content, gui_string(GUIStr_SlotUnused)) != 0)
  {
      slot_num = gbtn->field_1B%TOTAL_SAVE_SLOTS_COUNT;
      fill_game_catalogue_slot(slot_num,(char *)gbtn->content);
      if (save_game(slot_num))
      {
          output_message(SMsg_GameSaved, 0, true);
      } else
      {
          ERRORLOG("Error in save!");
          create_error_box(GUIStr_ErrorSaving);
      }
  }
  set_players_packet_action(player, PckA_TogglePause, 0, 0, 0, 0);
}