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; } }
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); } }
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); } }
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); }