inline void scv_state::draw_sprite( bitmap_ind16 &bitmap, UINT8 x, UINT8 y, UINT8 tile_idx, UINT8 col, UINT8 left, UINT8 right, UINT8 top, UINT8 bottom, UINT8 clip_y, UINT8 screen_sprite_start_line ) { int j; y += clip_y * 2; for ( j = clip_y * 4; j < 32; j += 4 ) { UINT8 pat0 = m_videoram[ tile_idx * 32 + j + 0 ]; UINT8 pat1 = m_videoram[ tile_idx * 32 + j + 1 ]; UINT8 pat2 = m_videoram[ tile_idx * 32 + j + 2 ]; UINT8 pat3 = m_videoram[ tile_idx * 32 + j + 3 ]; if ( ( top && j < 16 ) || ( bottom && j >= 16 ) ) { if ( left ) { plot_sprite_part( bitmap, x , y, pat0 >> 4, col, screen_sprite_start_line ); plot_sprite_part( bitmap, x + 4, y, pat1 >> 4, col, screen_sprite_start_line ); } if ( right ) { plot_sprite_part( bitmap, x + 8, y, pat2 >> 4, col, screen_sprite_start_line ); plot_sprite_part( bitmap, x + 12, y, pat3 >> 4, col, screen_sprite_start_line ); } if ( left ) { plot_sprite_part( bitmap, x , y + 1, pat0 & 0x0f, col, screen_sprite_start_line ); plot_sprite_part( bitmap, x + 4, y + 1, pat1 & 0x0f, col, screen_sprite_start_line ); } if ( right ) { plot_sprite_part( bitmap, x + 8, y + 1, pat2 & 0x0f, col, screen_sprite_start_line ); plot_sprite_part( bitmap, x + 12, y + 1, pat3 & 0x0f, col, screen_sprite_start_line ); } } y += 2; } }
INLINE void draw_sprite( scv_state *state, bitmap_t *bitmap, UINT8 x, UINT8 y, UINT8 tile_idx, UINT8 col, UINT8 left, UINT8 right, UINT8 top, UINT8 bottom, UINT8 clip_y ) { int j; y += clip_y * 2; for ( j = clip_y * 4; j < 32; j += 4 ) { UINT8 pat0 = state->m_vram[ tile_idx * 32 + j + 0 ]; UINT8 pat1 = state->m_vram[ tile_idx * 32 + j + 1 ]; UINT8 pat2 = state->m_vram[ tile_idx * 32 + j + 2 ]; UINT8 pat3 = state->m_vram[ tile_idx * 32 + j + 3 ]; if ( ( top && j < 16 ) || ( bottom && j >= 16 ) ) { if ( left ) { plot_sprite_part( bitmap, x , y, pat0 >> 4, col ); plot_sprite_part( bitmap, x + 4, y, pat1 >> 4, col ); } if ( right ) { plot_sprite_part( bitmap, x + 8, y, pat2 >> 4, col ); plot_sprite_part( bitmap, x + 12, y, pat3 >> 4, col ); } if ( left ) { plot_sprite_part( bitmap, x , y + 1, pat0 & 0x0f, col ); plot_sprite_part( bitmap, x + 4, y + 1, pat1 & 0x0f, col ); } if ( right ) { plot_sprite_part( bitmap, x + 8, y + 1, pat2 & 0x0f, col ); plot_sprite_part( bitmap, x + 12, y + 1, pat3 & 0x0f, col ); } } y += 2; } }