void frontnet_draw_small_scroll_selection_box(struct GuiButton *gbtn, long font_idx, const char *text) { struct TbSprite *spr; int pos_x, pos_y; pos_x = gbtn->scr_pos_x; pos_y = gbtn->scr_pos_y; spr = &frontend_sprite[55]; int fs_units_per_px; fs_units_per_px = gbtn->height * 16 / spr->SHeight; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr = &frontend_sprite[56]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr = &frontend_sprite[60]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); if (text != NULL) { LbTextSetFont(frontend_font[font_idx]); lbDisplay.DrawFlags = 0; int tx_units_per_px; tx_units_per_px = (gbtn->height*13/14) * 16 / LbTextLineHeight(); int height; height = LbTextLineHeight() * tx_units_per_px / 16; LbTextSetWindow(gbtn->scr_pos_x + 13*fs_units_per_px/16, gbtn->scr_pos_y, gbtn->width - 26*fs_units_per_px/16, height); LbTextDrawResized(0, 0, tx_units_per_px, text); } }
void draw_lit_bar64k(long pos_x, long pos_y, int units_per_px, long width) { long body_end; long x; if (width < 32*units_per_px/16) { ERRORLOG("Bar is too small"); return; } // opening sprite struct TbSprite *spr; x = pos_x; spr = &button_sprite[7]; LbSpriteDrawResized(x, pos_y, units_per_px, spr); x += (spr->SWidth * units_per_px + 8) / 16; // body body_end = pos_x + width - 2 * ((32*units_per_px+8) / 16); while (x < body_end) { spr = &button_sprite[8]; LbSpriteDrawResized(x, pos_y, units_per_px, spr); x += (spr->SWidth * units_per_px + 8) / 16; } x = body_end; spr = &button_sprite[8]; LbSpriteDrawResized(x, pos_y, units_per_px, spr); x += (spr->SWidth * units_per_px + 8) / 16; // ending sprite spr = &button_sprite[9]; LbSpriteDrawResized(x, pos_y, units_per_px, spr); }
void draw_bar64k(long pos_x, long pos_y, int units_per_px, long width) { long body_end; long x; if (width < 72*units_per_px/16) { ERRORLOG("Bar is too small"); return; } // Button opening sprite struct TbSprite *spr; spr = &button_sprite[1]; x = pos_x; LbSpriteDrawResized(x, pos_y, units_per_px, spr); x += (spr->SWidth * units_per_px + 8) / 16; // Button body body_end = pos_x + width - 2 * ((32*units_per_px+8) / 16); while (x < body_end) { spr = &button_sprite[2]; LbSpriteDrawResized(x/pixel_size, pos_y/pixel_size, units_per_px, spr); x += spr->SWidth * units_per_px / 16; } x = body_end; spr = &button_sprite[2]; LbSpriteDrawResized(x/pixel_size, pos_y/pixel_size, units_per_px, spr); x += (spr->SWidth * units_per_px + 8) / 16; // Button ending sprite spr = &button_sprite[3]; LbSpriteDrawResized(x/pixel_size, pos_y/pixel_size, units_per_px, spr); }
void frontnet_draw_text_cont_bar(struct GuiButton *gbtn) { int units_per_px; units_per_px = (gbtn->width * 16 + 165/2) / 165; int pos_x, pos_y; pos_y = gbtn->scr_pos_y; struct TbSprite *spr; int netplyr_idx; pos_x = gbtn->scr_pos_x; spr = &frontend_sprite[80]; int fs_units_per_px; fs_units_per_px = spr->SHeight * units_per_px / 28; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth*fs_units_per_px/16; spr = &frontend_sprite[81]; for (netplyr_idx=0; netplyr_idx < NET_PLAYERS_COUNT; netplyr_idx++) { LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth*fs_units_per_px/16; } spr = &frontend_sprite[82]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); }
void draw_scroll_box(struct GuiButton *gbtn, int units_per_px, int num_rows) { struct TbSprite *spr; int pos_x,pos_y; int spridx; int delta; int i; lbDisplay.DrawFlags = 0; pos_y = gbtn->scr_pos_y; { // First row pos_x = gbtn->scr_pos_x; spr = &frontend_sprite[25]; for (i = 6; i > 0; i--) { LbSpriteDrawResized(pos_x, pos_y, units_per_px, spr); pos_x += spr->SWidth * units_per_px / 16; spr++; } spr = &frontend_sprite[25]; pos_y += spr->SHeight * units_per_px / 16; } // Further rows while (num_rows > 0) { spridx = 40; if (num_rows < 3) spridx = 33; spr = &frontend_sprite[spridx]; pos_x = gbtn->scr_pos_x; for (i = 6; i > 0; i--) { LbSpriteDrawResized(pos_x, pos_y, units_per_px, spr); pos_x += spr->SWidth * units_per_px / 16; spr++; } spr = &frontend_sprite[spridx]; pos_y += spr->SHeight * units_per_px / 16; delta = 3; if (num_rows < 3) delta = 1; num_rows -= delta; } // Last row spr = &frontend_sprite[47]; pos_x = gbtn->scr_pos_x; for (i = 6; i > 0; i--) { LbSpriteDrawResized(pos_x, pos_y, units_per_px, spr); pos_x += spr->SWidth * units_per_px / 16; spr++; } }
void draw_slab64k(long pos_x, long pos_y, int units_per_px, long width, long height) { // Draw one pixel more, to make sure we won't get empty area after scaling draw_slab64k_background(pos_x, pos_y, width+1, height+1); struct TbSprite *spr; spr = &button_sprite[206]; int bs_units_per_spr = 16*units_per_px/spr->SWidth; int border_shift = 6*units_per_px/16; int i; for (i=16*units_per_px/16 - border_shift; i < width-2*border_shift; i += 16*units_per_px/16) { spr = &button_sprite[210]; LbSpriteDrawResized(pos_x + i, pos_y - border_shift, bs_units_per_spr, spr); spr = &button_sprite[211]; LbSpriteDrawResized(pos_x + i, pos_y + height, bs_units_per_spr, spr); } for (i=16*units_per_px/16 - border_shift; i < height-2*border_shift; i += 16*units_per_px/16) { spr = &button_sprite[212]; LbSpriteDrawResized(pos_x - border_shift, pos_y + i, bs_units_per_spr, spr); spr = &button_sprite[213]; LbSpriteDrawResized(pos_x + width, pos_y + i, bs_units_per_spr, spr); } spr = &button_sprite[206]; LbSpriteDrawResized(pos_x - border_shift, pos_y - border_shift, bs_units_per_spr, spr); spr = &button_sprite[207]; LbSpriteDrawResized(pos_x + width - 2*border_shift, pos_y - border_shift, bs_units_per_spr, spr); spr = &button_sprite[208]; LbSpriteDrawResized(pos_x - border_shift, pos_y + height - 2*border_shift, bs_units_per_spr, spr); spr = &button_sprite[209]; LbSpriteDrawResized(pos_x + width - 2*border_shift, pos_y + height - 2*border_shift, bs_units_per_spr, spr); }
TbBool fronttorture_draw(void) { struct TbSprite *spr; const int img_width = 640; const int img_height = 480; int w,h,i; int spx,spy; // Only 8bpp supported for now if (LbGraphicsScreenBPP() != 8) return false; int units_per_px; units_per_px = min(units_per_pixel,units_per_pixel_min*16/10); w = img_width * units_per_px / 16; h = img_height * units_per_px / 16; // Starting point coords spx = (LbScreenWidth() - w) >> 1; spy = (LbScreenHeight() - h) >> 1; copy_raw8_image_buffer(lbDisplay.WScreen,LbGraphicsScreenWidth(),LbGraphicsScreenHeight(), w,h,spx,spy,torture_background,img_width,img_height); for (i=0; i < torture_doors_available; i++) { if (i == torture_door_selected) { spr = &doors[i].sprites[torture_sprite_frame]; } else { spr = &doors[i].sprites[1]; } LbSpriteDrawResized(spx + doors[i].pos_spr_x*units_per_px/16, spy + doors[i].pos_spr_y*units_per_px/16, units_per_px, spr); } return true; }
void frontnet_draw_net_session_players(struct GuiButton *gbtn) { int i; i = frontend_button_caption_font(gbtn, 0); lbDisplay.DrawFlags = 0; LbTextSetFont(frontend_font[i]); int tx_units_per_px; tx_units_per_px = gbtn->height * 16 / (2*LbTextLineHeight()); const struct TbSprite *spr; spr = &frontend_sprite[21]; int fs_units_per_px; fs_units_per_px = gbtn->height * 16 / (2*(spr->SHeight*13/8)); int height; height = LbTextLineHeight() * tx_units_per_px / 16; long netplyr_idx; int shift_y; netplyr_idx = net_player_scroll_offset; for (shift_y=0; shift_y < gbtn->height; shift_y += height, netplyr_idx++) { const char *text; text = net_player[netplyr_idx].name; if (netplyr_idx >= net_number_of_enum_players) break; spr = &frontend_sprite[21+netplyr_idx]; i = height - spr->SHeight * fs_units_per_px / 16; LbSpriteDrawResized(gbtn->scr_pos_x, gbtn->scr_pos_y + shift_y + abs(i)/2, fs_units_per_px, spr); LbTextSetWindow(gbtn->scr_pos_x, shift_y + gbtn->scr_pos_y, gbtn->width - spr->SWidth * fs_units_per_px / 16, height); LbTextDrawResized(spr->SWidth * fs_units_per_px / 16, 0, tx_units_per_px, text); } }
void draw_frontend_sprite_left(long x, long y, int units_per_px, long spridx) { struct TbSprite *spr; spr = &frontend_sprite[spridx]; if ((spr <= frontend_sprite) || (spr >= frontend_end_sprite)) return; LbSpriteDrawResized(x, y, units_per_px, spr); }
void draw_button_sprite_left(long x, long y, int units_per_px, long spridx) { struct TbSprite *spr; spr = &button_sprite[spridx]; if ((spr <= button_sprite) || (spr >= end_button_sprites)) return; LbSpriteDrawResized(x, y, units_per_px, spr); }
void draw_gui_panel_sprite_left(long x, long y, int units_per_px, long spridx) { struct TbSprite *spr; if ((spridx <= 0) || (spridx > GUI_PANEL_SPRITES_COUNT)) return; spr = &gui_panel_sprites[spridx]; LbSpriteDrawResized(x, y, units_per_px, spr); }
void frontnet_draw_alliance_grid(struct GuiButton *gbtn) { //_DK_frontnet_draw_alliance_grid(gbtn); int pos_x, pos_y; pos_y = gbtn->scr_pos_y; struct TbSprite *spr; int netplyr_idx; int units_per_px; units_per_px = gbtn->height * 16 / (22*4); pos_x = gbtn->scr_pos_x; spr = &frontend_sprite[83]; for (netplyr_idx=0; netplyr_idx < NET_PLAYERS_COUNT; netplyr_idx++) { LbSpriteDrawResized(pos_x / pixel_size, pos_y / pixel_size, units_per_px, spr); pos_x += spr->SWidth * units_per_px / 16; } pos_y += spr->SHeight * units_per_px / 16; pos_x = gbtn->scr_pos_x; spr = &frontend_sprite[84]; for (netplyr_idx=0; netplyr_idx < NET_PLAYERS_COUNT; netplyr_idx++) { LbSpriteDrawResized(pos_x / pixel_size, pos_y / pixel_size, units_per_px, spr); pos_x += spr->SWidth * units_per_px / 16; } pos_y += spr->SHeight * units_per_px / 16; pos_x = gbtn->scr_pos_x; spr = &frontend_sprite[85]; for (netplyr_idx=0; netplyr_idx < NET_PLAYERS_COUNT; netplyr_idx++) { LbSpriteDrawResized(pos_x / pixel_size, pos_y / pixel_size, units_per_px, spr); pos_x += spr->SWidth * units_per_px / 16; } pos_y += spr->SHeight * units_per_px / 16; pos_x = gbtn->scr_pos_x; spr = &frontend_sprite[85]; for (netplyr_idx=0; netplyr_idx < NET_PLAYERS_COUNT; netplyr_idx++) { LbSpriteDrawResized(pos_x / pixel_size, pos_y / pixel_size, units_per_px, spr); pos_x += spr->SWidth * units_per_px / 16; } pos_y += spr->SHeight * units_per_px / 16; }
void draw_gui_panel_sprite_centered(long x, long y, int units_per_px, long spridx) { struct TbSprite *spr; if ((spridx <= 0) || (spridx > GUI_PANEL_SPRITES_COUNT)) return; spr = &gui_panel_sprites[spridx]; x -= ((spr->SWidth*units_per_px/16) >> 1); y -= ((spr->SHeight*units_per_px/16) >> 1); LbSpriteDrawResized(x, y, units_per_px, spr); }
void frontnet_draw_text_bar(struct GuiButton *gbtn) { struct TbSprite *spr; int i; long pos_x, pos_y; pos_x = gbtn->scr_pos_x; pos_y = gbtn->scr_pos_y; int fs_units_per_px; fs_units_per_px = simple_frontend_sprite_height_units_per_px(gbtn, 72, 100); spr = &frontend_sprite[71]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr = &frontend_sprite[72]; for (i=0; i < 4; i++) { LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; } spr = &frontend_sprite[73]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); }
void frontnet_draw_small_scroll_box_tab(struct GuiButton *gbtn) { long pos_x, pos_y; struct TbSprite *spr; pos_x = gbtn->scr_pos_x; pos_y = gbtn->scr_pos_y; spr = &frontend_sprite[75]; int fs_units_per_px; fs_units_per_px = gbtn->height * 16 / spr->SHeight; spr = &frontend_sprite[74]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr = &frontend_sprite[75]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr = &frontend_sprite[77]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr = &frontend_sprite[76]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); }
void frontnet_draw_alliance_button(struct GuiButton *gbtn) { int plyr1_idx, plyr2_idx; struct TbSprite *spr; plyr2_idx = gbtn->btype_value; plyr1_idx = (long)gbtn->content - 74; if ((plyr1_idx == plyr2_idx) || (frontend_alliances & alliance_grid[plyr1_idx][plyr2_idx])) spr = &frontend_sprite[87]; else spr = &frontend_sprite[84]; int units_per_px; units_per_px = gbtn->height * 16 / spr->SHeight; LbSpriteDrawResized(gbtn->scr_pos_x, gbtn->scr_pos_y, units_per_px, spr); }
void frontnet_draw_bottom_scroll_box_tab(struct GuiButton *gbtn) { int units_per_px; units_per_px = (gbtn->width * 16 + 240/2) / 240; long pos_x, pos_y; struct TbSprite *spr; pos_x = gbtn->scr_pos_x; pos_y = gbtn->scr_pos_y; lbDisplay.DrawFlags = Lb_SPRITE_FLIP_VERTIC; spr = &frontend_sprite[74]; int fs_units_per_px; fs_units_per_px = spr->SHeight * units_per_px / 26; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth*fs_units_per_px/16; spr = &frontend_sprite[75]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth*fs_units_per_px/16; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth*fs_units_per_px/16; spr = &frontend_sprite[76]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); lbDisplay.DrawFlags = 0; }
void draw_round_slab64k(long pos_x, long pos_y, int units_per_px, long width, long height) { unsigned short drwflags_mem; drwflags_mem = lbDisplay.DrawFlags; lbDisplay.DrawFlags &= ~Lb_SPRITE_OUTLINE; lbDisplay.DrawFlags |= Lb_SPRITE_TRANSPAR4; LbDrawBox(pos_x + 4*units_per_px/16, pos_y + 4*units_per_px/16, width - 8*units_per_px/16, height - 8*units_per_px/16, 1); lbDisplay.DrawFlags &= ~Lb_SPRITE_TRANSPAR4; int x,y; struct TbSprite *spr; spr = &gui_panel_sprites[242]; int ps_units_per_spr = 26*units_per_px/spr->SWidth; long i; for (i = 0; i < width - 68*units_per_px/16; i += 26*units_per_px/16) { x = pos_x + i + 34*units_per_px/16; y = pos_y; spr = &gui_panel_sprites[242]; LbSpriteDrawResized(x, y, ps_units_per_spr, spr); y += height - 4*units_per_px/16; spr = &gui_panel_sprites[248]; LbSpriteDrawResized(x, y, ps_units_per_spr, spr); } for (i = 0; i < height - 56*units_per_px/16; i += 20*units_per_px/16) { x = pos_x; y = pos_y + i + 28*units_per_px/16; spr = &gui_panel_sprites[244]; LbSpriteDrawResized(x, y, ps_units_per_spr, spr); x += width - 4*units_per_px/16; spr = &gui_panel_sprites[246]; LbSpriteDrawResized(x, y, ps_units_per_spr, spr); } x = pos_x + width - 34*units_per_px/16; y = pos_y + height - 28*units_per_px/16; spr = &gui_panel_sprites[241]; LbSpriteDrawResized(pos_x, pos_y, ps_units_per_spr, spr); spr = &gui_panel_sprites[243]; LbSpriteDrawResized(x, pos_y, ps_units_per_spr, spr); spr = &gui_panel_sprites[247]; LbSpriteDrawResized(pos_x, y, ps_units_per_spr, spr); spr = &gui_panel_sprites[249]; LbSpriteDrawResized(x, y, ps_units_per_spr, spr); lbDisplay.DrawFlags = drwflags_mem; }
void frontnet_draw_alliance_box_tab(struct GuiButton *gbtn) { int units_per_px; units_per_px = (gbtn->width * 16 + 100/2) / 100; const struct TbSprite *spr; int pos_x, pos_y; pos_x = gbtn->scr_pos_x; pos_y = gbtn->scr_pos_y; spr = &frontend_sprite[74]; int fs_units_per_px; fs_units_per_px = spr->SHeight * units_per_px / 26; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth*fs_units_per_px/16; spr = &frontend_sprite[77]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth*fs_units_per_px/16; spr = &frontend_sprite[76]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_y += 5; pos_x = gbtn->scr_pos_x; spr = &frontend_sprite[74]; pos_x += spr->SWidth*fs_units_per_px/16 - 1; if (net_number_of_enum_players > 0) { spr = &frontend_sprite[21]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth*fs_units_per_px/16; } if (net_number_of_enum_players > 1) { spr = &frontend_sprite[22]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth*fs_units_per_px/16; } if (net_number_of_enum_players > 2) { spr = &frontend_sprite[23]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth*fs_units_per_px/16; } if (net_number_of_enum_players > 3) { spr = &frontend_sprite[24]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); } }
void frontnet_draw_session_selected(struct GuiButton *gbtn) { //_DK_frontnet_draw_session_selected(gbtn); struct TbSprite *spr; long pos_x, pos_y; int i; pos_x = gbtn->scr_pos_x; pos_y = gbtn->scr_pos_y; int fs_units_per_px; fs_units_per_px = simple_frontend_sprite_height_units_per_px(gbtn, 56, 100); spr = &frontend_sprite[55]; for (i=0; i < 6; i++) { LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr++; } if (net_session_index_active >= 0) { const char *text; text = net_session[net_session_index_active]->text; i = frontend_button_caption_font(gbtn, 0); if (text != NULL) { lbDisplay.DrawFlags = 0; LbTextSetFont(frontend_font[i]); // Set drawing window and draw the text int tx_units_per_px; tx_units_per_px = (gbtn->height*13/14) * 16 / LbTextLineHeight(); int h; h = LbTextLineHeight()*tx_units_per_px/16; LbTextSetWindow(gbtn->scr_pos_x + 13*fs_units_per_px/16, gbtn->scr_pos_y, gbtn->width - 26*fs_units_per_px/16, h); LbTextDrawResized(0, 0, tx_units_per_px, text); } } }
void frontend_draw_high_score_table(struct GuiButton *gbtn) { struct TbSprite *spr; struct TbSprite *swpspr; long pos_x,pos_y; long col1_width,col2_width,col3_width,col4_width; long i,k; // Detect scaling factor is quite complicated for this item int fs_units_per_px; { int orig_size; orig_size = 0; spr = &frontend_sprite[33]; for (i=0; i < 6; i++) { orig_size += spr->SWidth; spr++; } fs_units_per_px = (gbtn->width * 16 + orig_size/2) / orig_size; } // Draw the high scores area - top pos_x = gbtn->scr_pos_x; pos_y = gbtn->scr_pos_y; spr = &frontend_sprite[25]; swpspr = spr; for (i=6; i > 0; i--) { LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, swpspr); pos_x += swpspr->SWidth * fs_units_per_px / 16; swpspr++; } pos_y += spr->SHeight * fs_units_per_px / 16; // Draw the high scores area - filling k = 12; while (k > 0) { if (k < 3) i = 33; else i = 40; spr = &frontend_sprite[i]; pos_x = gbtn->scr_pos_x; swpspr = spr; for (i=6; i > 0; i--) { LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, swpspr); pos_x += swpspr->SWidth * fs_units_per_px / 16; swpspr++; } pos_y += spr->SHeight * fs_units_per_px / 16; if (k < 3) k--; else k -= 3; } // Draw the high scores area - bottom pos_x = gbtn->scr_pos_x; spr = &frontend_sprite[47]; swpspr = spr; for (i=6; i > 0; i--) { LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, swpspr); pos_x += swpspr->SWidth * fs_units_per_px / 16; swpspr++; } LbTextSetFont(frontend_font[1]); lbDisplay.DrawFlags = 0; spr = &frontend_sprite[33]; pos_x = gbtn->scr_pos_x + spr->SWidth * fs_units_per_px / 16; spr = &frontend_sprite[25]; pos_y = gbtn->scr_pos_y + (spr->SHeight + 3) * fs_units_per_px / 16; int tx_units_per_px; // The GUI item height should be 11 lines of text tx_units_per_px = gbtn->height * 16 / (11*(LbTextLineHeight())); col1_width = LbTextStringWidth("99") * tx_units_per_px / 16; col2_width = LbTextStringWidth(" 99999") * tx_units_per_px / 16; col3_width = LbTextStringWidth(" 999") * tx_units_per_px / 16; col4_width = LbTextCharWidth('-') * tx_units_per_px / 16; for (k=0; k < VISIBLE_HIGH_SCORES_COUNT-1; k++) { draw_high_score_entry(k, pos_x, pos_y, col1_width, col2_width, col3_width, col4_width, tx_units_per_px); pos_y += LbTextLineHeight() * tx_units_per_px / 16; } if (high_score_entry_input_active > k) draw_high_score_entry(high_score_entry_input_active, pos_x, pos_y, col1_width, col2_width, col3_width, col4_width, tx_units_per_px); else draw_high_score_entry(k, pos_x, pos_y, col1_width, col2_width, col3_width, col4_width, tx_units_per_px); }
void draw_ornate_slab_outline64k(long pos_x, long pos_y, int units_per_px, long width, long height) { long x, y; struct TbSprite *spr; spr = &button_sprite[10]; int bs_units_per_spr = 128*units_per_px/spr->SWidth; x = pos_x; y = pos_y; int i; for (i=10*units_per_px/16; i < width - 12*units_per_px/16; i+=32*units_per_px/16) { spr = &button_sprite[13]; LbSpriteDrawResized(pos_x + i, pos_y - 4*units_per_px/16, bs_units_per_spr, spr); spr = &button_sprite[18]; LbSpriteDrawResized(pos_x + i, pos_y + height, bs_units_per_spr, spr); } spr = button_sprite; for (i=10*units_per_px/16; i < height - 16*units_per_px/16; i+=32*units_per_px/16) { spr = &button_sprite[15]; LbSpriteDrawResized(x - 4*units_per_px/16, y + i, bs_units_per_spr, spr); spr = &button_sprite[16]; LbSpriteDrawResized(x + width, y + i, bs_units_per_spr, spr); } spr = &button_sprite[12]; LbSpriteDrawResized(x - 4*units_per_px/16, y - 4*units_per_px/16, bs_units_per_spr, spr); spr = &button_sprite[14]; LbSpriteDrawResized(x + width - 28*units_per_px/16, y - 4*units_per_px/16, bs_units_per_spr, spr); spr = &button_sprite[17]; LbSpriteDrawResized(x - 4*units_per_px/16, y + height - 28*units_per_px/16, bs_units_per_spr, spr); spr = &button_sprite[19]; LbSpriteDrawResized(x + width - 28*units_per_px/16, y + height - 28*units_per_px/16, bs_units_per_spr, spr); spr = &button_sprite[10]; LbSpriteDrawResized(x - 32*units_per_px/16, y - 14*units_per_px/16, bs_units_per_spr, spr); spr = &button_sprite[11]; LbSpriteDrawResized(x - 34*units_per_px/16, y + height - 78*units_per_px/16, bs_units_per_spr, spr); lbDisplay.DrawFlags |= Lb_SPRITE_FLIP_HORIZ; spr = &button_sprite[10]; LbSpriteDrawResized(x + width - 96*units_per_px/16, y - 14*units_per_px/16, bs_units_per_spr, spr); spr = &button_sprite[11]; LbSpriteDrawResized(x + width - 92*units_per_px/16, y + height - 78*units_per_px/16, bs_units_per_spr, spr); lbDisplay.DrawFlags &= ~Lb_SPRITE_FLIP_HORIZ; }
void frontnet_draw_small_scroll_box(struct GuiButton *gbtn) { long pos_x, pos_y; struct TbSprite *spr; pos_x = gbtn->scr_pos_x; pos_y = gbtn->scr_pos_y; int fs_units_per_px; fs_units_per_px = small_scroll_box_get_units_per_px(gbtn); int btn_type; int len; btn_type = (long)gbtn->content; if (btn_type == 24) { len = 2; } else if (btn_type == 25) { len = 3; } else if (btn_type == 26) { len = 7; } else { ERRORLOG("Unknown button type %d",(int)btn_type); return; } spr = &frontend_sprite[25]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr++; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr++; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr += 3; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr++; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); int dlen; dlen = 3; spr = &frontend_sprite[25]; pos_y += spr->SHeight * fs_units_per_px / 16; for ( ; len > 0; len -= dlen) { pos_x = gbtn->scr_pos_x; int spr_idx; if (len < 3) spr_idx = 33; else spr_idx = 40; spr = &frontend_sprite[spr_idx]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr++; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr++; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr += 3; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; if (len < 3) spr_idx = 39; else spr_idx = 46; spr = &frontend_sprite[spr_idx]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_y += spr->SHeight * fs_units_per_px / 16; if (len < 3) dlen = 1; else dlen = 3; } pos_x = gbtn->scr_pos_x; spr = &frontend_sprite[47]; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr++; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr++; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr += 3; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); pos_x += spr->SWidth * fs_units_per_px / 16; spr++; LbSpriteDrawResized(pos_x, pos_y, fs_units_per_px, spr); }
void draw_message_box_at(long startx, long starty, long box_width, long box_height, long spritesx, long spritesy) { struct TbSprite *spr; long x,y; long n; // Draw top line of sprites x = startx; y = starty; { spr = &frontend_sprite[25]; LbSpriteDrawResized(x, y, units_per_pixel, spr); x += spr->SWidth * units_per_pixel / 16; } for (n=0; n < spritesx; n++) { spr = &frontend_sprite[(n % 4) + 26]; LbSpriteDrawResized(x, y, units_per_pixel, spr); x += spr->SWidth * units_per_pixel / 16; } x = startx; { spr = &frontend_sprite[25]; x += spr->SWidth * units_per_pixel / 16; } for (n=0; n < spritesx; n++) { spr = &frontend_sprite[(n % 4) + 26]; LbSpriteDrawResized(x, y, units_per_pixel, spr); x += spr->SWidth * units_per_pixel / 16; } { spr = &frontend_sprite[30]; LbSpriteDrawResized(x, y, units_per_pixel, spr); } // Draw centered line of sprites spr = &frontend_sprite[25]; x = startx; y += spr->SHeight * units_per_pixel / 16; { spr = &frontend_sprite[40]; LbSpriteDrawResized(x, y, units_per_pixel, spr); x += spr->SWidth * units_per_pixel / 16; } for (n=0; n < spritesx; n++) { spr = &frontend_sprite[(n % 4) + 41]; LbSpriteDrawResized(x, y, units_per_pixel, spr); x += spr->SWidth * units_per_pixel / 16; } { spr = &frontend_sprite[45]; LbSpriteDrawResized(x, y, units_per_pixel, spr); } // Draw bottom line of sprites spr = &frontend_sprite[40]; x = startx; y += spr->SHeight * units_per_pixel / 16; { spr = &frontend_sprite[47]; LbSpriteDrawResized(x, y, units_per_pixel, spr); x += spr->SWidth * units_per_pixel / 16; } for (n=0; n < spritesx; n++) { spr = &frontend_sprite[(n % 4) + 48]; LbSpriteDrawResized(x, y, units_per_pixel, spr); x += spr->SWidth * units_per_pixel / 16; } { spr = &frontend_sprite[52]; LbSpriteDrawResized(x, y, units_per_pixel, spr); } }