summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/lwings.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/lwings.c')
-rw-r--r--src/mame/video/lwings.c52
1 files changed, 24 insertions, 28 deletions
diff --git a/src/mame/video/lwings.c b/src/mame/video/lwings.c
index 5fb31ff9f98..a51110e0a12 100644
--- a/src/mame/video/lwings.c
+++ b/src/mame/video/lwings.c
@@ -15,61 +15,57 @@
***************************************************************************/
-static TILEMAP_MAPPER( get_bg2_memory_offset )
+TILEMAP_MAPPER_MEMBER(lwings_state::get_bg2_memory_offset)
{
return (row * 0x800) | (col * 2);
}
-static TILE_GET_INFO( get_fg_tile_info )
+TILE_GET_INFO_MEMBER(lwings_state::get_fg_tile_info)
{
- lwings_state *state = machine.driver_data<lwings_state>();
- int code = state->m_fgvideoram[tile_index];
- int color = state->m_fgvideoram[tile_index + 0x400];
- SET_TILE_INFO(
+ int code = m_fgvideoram[tile_index];
+ int color = m_fgvideoram[tile_index + 0x400];
+ SET_TILE_INFO_MEMBER(
0,
code + ((color & 0xc0) << 2),
color & 0x0f,
TILE_FLIPYX((color & 0x30) >> 4));
}
-static TILE_GET_INFO( lwings_get_bg1_tile_info )
+TILE_GET_INFO_MEMBER(lwings_state::lwings_get_bg1_tile_info)
{
- lwings_state *state = machine.driver_data<lwings_state>();
- int code = state->m_bg1videoram[tile_index];
- int color = state->m_bg1videoram[tile_index + 0x400];
- SET_TILE_INFO(
+ int code = m_bg1videoram[tile_index];
+ int color = m_bg1videoram[tile_index + 0x400];
+ SET_TILE_INFO_MEMBER(
1,
code + ((color & 0xe0) << 3),
color & 0x07,
TILE_FLIPYX((color & 0x18) >> 3));
}
-static TILE_GET_INFO( trojan_get_bg1_tile_info )
+TILE_GET_INFO_MEMBER(lwings_state::trojan_get_bg1_tile_info)
{
- lwings_state *state = machine.driver_data<lwings_state>();
- int code = state->m_bg1videoram[tile_index];
- int color = state->m_bg1videoram[tile_index + 0x400];
+ int code = m_bg1videoram[tile_index];
+ int color = m_bg1videoram[tile_index + 0x400];
code += (color & 0xe0)<<3;
- SET_TILE_INFO(
+ SET_TILE_INFO_MEMBER(
1,
code,
- state->m_bg2_avenger_hw ? ((color & 7) ^ 6) : (color & 7),
+ m_bg2_avenger_hw ? ((color & 7) ^ 6) : (color & 7),
((color & 0x10) ? TILE_FLIPX : 0));
tileinfo.group = (color & 0x08) >> 3;
}
-static TILE_GET_INFO( get_bg2_tile_info )
+TILE_GET_INFO_MEMBER(lwings_state::get_bg2_tile_info)
{
- lwings_state *state = machine.driver_data<lwings_state>();
int code, color;
- UINT8 *rom = state->memregion("gfx5")->base();
- int mask = state->memregion("gfx5")->bytes() - 1;
+ UINT8 *rom = memregion("gfx5")->base();
+ int mask = memregion("gfx5")->bytes() - 1;
- tile_index = (tile_index + state->m_bg2_image * 0x20) & mask;
+ tile_index = (tile_index + m_bg2_image * 0x20) & mask;
code = rom[tile_index];
color = rom[tile_index + 1];
- SET_TILE_INFO(
+ SET_TILE_INFO_MEMBER(
3,
code + ((color & 0x80) << 1),
color & 0x07,
@@ -86,8 +82,8 @@ VIDEO_START( lwings )
{
lwings_state *state = machine.driver_data<lwings_state>();
- state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_bg1_tilemap = tilemap_create(machine, lwings_get_bg1_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::lwings_get_bg1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32);
state->m_fg_tilemap->set_transparent_pen(3);
}
@@ -96,9 +92,9 @@ VIDEO_START( trojan )
{
lwings_state *state = machine.driver_data<lwings_state>();
- state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
- state->m_bg1_tilemap = tilemap_create(machine, trojan_get_bg1_tile_info,TILEMAP_SCAN_COLS, 16, 16, 32, 32);
- state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, get_bg2_memory_offset, 16, 16, 32, 16);
+ state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
+ state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::trojan_get_bg1_tile_info),state),TILEMAP_SCAN_COLS, 16, 16, 32, 32);
+ state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(lwings_state::get_bg2_memory_offset),state), 16, 16, 32, 16);
state->m_fg_tilemap->set_transparent_pen(3);
state->m_bg1_tilemap->set_transmask(0, 0xffff, 0x0001); /* split type 0 is totally transparent in front half */