summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <salese_corp_ltd@email.it>2017-08-15 22:11:19 +0200
committer angelosa <salese_corp_ltd@email.it>2017-08-15 22:13:55 +0200
commitb05f124f084f823a7106a1de701b3cdb2e013c02 (patch)
treec77262b41eedfbee2b9eb3322dbd0ff49fd13507
parent39773fadc6a32059682736a3a2f8cb0b9635a8d3 (diff)
labyrunr.cpp: fixed tile-sprite priorities, mostly visible when exiting an area in most stages. [Angelo Salese]
-rw-r--r--src/mame/video/labyrunr.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/mame/video/labyrunr.cpp b/src/mame/video/labyrunr.cpp
index 9f6bcb1deed..33fab6ada7c 100644
--- a/src/mame/video/labyrunr.cpp
+++ b/src/mame/video/labyrunr.cpp
@@ -73,6 +73,7 @@ TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info0)
code + bank * 256,
((ctrl_6 & 0x30) * 2 + 16)+(attr & 7),
0);
+ tileinfo.category = (attr & 0x40) >> 6;
}
TILE_GET_INFO_MEMBER(labyrunr_state::get_tile_info1)
@@ -161,7 +162,7 @@ uint32_t labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_in
address_space &space = machine().dummy_space();
uint8_t ctrl_0 = m_k007121->ctrlram_r(space, 0);
rectangle finalclip0, finalclip1;
-
+
screen.priority().fill(0, cliprect);
bitmap.fill(m_palette->black_pen(), cliprect);
@@ -187,8 +188,9 @@ uint32_t labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_in
m_layer0->set_scrolly((i + 2) & 0x1f, m_k007121->ctrlram_r(space, 2));
}
- m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_OPAQUE, 0);
+ m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_CATEGORY(0), 0);
m_k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(0), *m_palette, m_spriteram,(m_k007121->ctrlram_r(space, 6) & 0x30) * 2, 40,0,screen.priority(),(m_k007121->ctrlram_r(space, 3) & 0x40) >> 5);
+ m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_CATEGORY(1), 0);
/* we ignore the transparency because layer1 is drawn only at the top of the screen also covering sprites */
m_layer1->draw(screen, bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0);
}
@@ -250,15 +252,20 @@ uint32_t labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_in
m_layer0->set_scrollx(0, ctrl_0 - 40);
m_layer1->set_scrollx(0, ctrl_0 - 40);
- m_layer0->draw(screen, bitmap, finalclip0, 0, 1);
+ m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_CATEGORY(0), 0);
if(use_clip3[0])
- m_layer0->draw(screen, bitmap, finalclip3, 0, 1);
+ m_layer0->draw(screen, bitmap, finalclip3, TILEMAP_DRAW_CATEGORY(0), 0);
+
+ m_k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(0), *m_palette, m_spriteram, (m_k007121->ctrlram_r(space, 6) & 0x30) * 2,40,0,screen.priority(),(m_k007121->ctrlram_r(space, 3) & 0x40) >> 5);
- m_layer1->draw(screen, bitmap, finalclip1, 0, 1);
+ m_layer0->draw(screen, bitmap, finalclip0, TILEMAP_DRAW_CATEGORY(1), 0);
+ if(use_clip3[0])
+ m_layer0->draw(screen, bitmap, finalclip3, TILEMAP_DRAW_CATEGORY(1), 0);
+
+ m_layer1->draw(screen, bitmap, finalclip1, 0, 0);
if(use_clip3[1])
- m_layer1->draw(screen, bitmap, finalclip3, 0, 1);
+ m_layer1->draw(screen, bitmap, finalclip3, 0, 0);
- m_k007121->sprites_draw(bitmap, cliprect, m_gfxdecode->gfx(0), *m_palette, m_spriteram, (m_k007121->ctrlram_r(space, 6) & 0x30) * 2,40,0,screen.priority(),(m_k007121->ctrlram_r(space, 3) & 0x40) >> 5);
}
return 0;
}