/* Draw a character at x, y in the dest frame. */ static void gfx_draw_char_sprite(int x, int y, unsigned int c, int color, int shadow, frame_t *dest) { static const int sprite_offset_from_ascii[] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, 40, 39, -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, -1, -1, -1, -1, 42, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; int s = sprite_offset_from_ascii[c]; if (s < 0) return; if (shadow) { sdl_draw_transp_sprite(data_get_object(DATA_FONT_SHADOW_BASE + s, NULL), x, y, 0, 0, shadow, dest); } sdl_draw_transp_sprite(data_get_object(DATA_FONT_BASE + s, NULL), x, y, 0, 0, color, dest); }
static void draw_minimap_rect(minimap_t *minimap, frame_t *frame) { sprite_t *sprite = (sprite_t*)data_get_object(354, NULL); int y = minimap->obj.height/2; int x = minimap->obj.width/2; sdl_draw_transp_sprite(sprite, x, y, 1, 0, 0, frame); }
/* Select the color palette that is location at the given data file index. */ void gfx_set_palette(int palette) { uint8_t *pal = reinterpret_cast<uint8_t*>(data_get_object(palette, NULL)); sdl_set_palette(pal); }
/* Draw the transparent sprite with data file index of sprite at x, y in dest frame.*/ void gfx_draw_transp_sprite(int x, int y, int sprite, frame_t *dest) { sprite_t *spr = data_get_object(sprite, NULL); if (spr != NULL) sdl_draw_transp_sprite(spr, x, y, 0, 0, 0, dest); }