mirror of
https://github.com/holub/mame
synced 2025-10-08 09:30:17 +03:00
neogeo: simplify sprite_on_scanline calculation (nw)
This commit is contained in:
parent
5d7f380540
commit
c7baadaa7c
@ -298,23 +298,10 @@ static const int zoom_x_tables[][16] =
|
||||
};
|
||||
|
||||
|
||||
inline int neosprite_base_device::rows_to_height(int rows)
|
||||
|
||||
inline bool neosprite_base_device::sprite_on_scanline(int scanline, int y, int rows)
|
||||
{
|
||||
if ((rows == 0) || (rows > 0x20))
|
||||
rows = 0x20;
|
||||
|
||||
return rows * 0x10;
|
||||
}
|
||||
|
||||
|
||||
inline int neosprite_base_device::sprite_on_scanline(int scanline, int y, int rows)
|
||||
{
|
||||
/* check if the current scanline falls inside this sprite,
|
||||
two possible scenerios, wrap around or not */
|
||||
int max_y = (y + rows_to_height(rows) - 1) & 0x1ff;
|
||||
|
||||
return (((max_y >= y) && (scanline >= y) && (scanline <= max_y)) ||
|
||||
((max_y < y) && ((scanline >= y) || (scanline <= max_y))));
|
||||
return (rows == 0) || (rows >= 0x20) || ((scanline - y) & 0x1ff) < (rows * 0x10);
|
||||
}
|
||||
|
||||
|
||||
|
@ -36,8 +36,7 @@ public:
|
||||
void create_auto_animation_timer( );
|
||||
void start_auto_animation_timer( );
|
||||
void neogeo_set_fixed_layer_source( UINT8 data );
|
||||
inline int rows_to_height(int rows);
|
||||
inline int sprite_on_scanline(int scanline, int y, int rows);
|
||||
inline bool sprite_on_scanline(int scanline, int y, int rows);
|
||||
virtual void draw_pixel(int romaddr, UINT32* dst, pen_t *line_pens) = 0;
|
||||
void draw_sprites( bitmap_rgb32 &bitmap, int scanline );
|
||||
void parse_sprites( int scanline );
|
||||
|
Loading…
Reference in New Issue
Block a user