trunk/src/mame/video/c45.c
| r29464 | r29465 | |
| 141 | 141 | |
| 142 | 142 | void namco_c45_road_device::draw(bitmap_ind16 &bitmap, const rectangle &cliprect, int pri) |
| 143 | 143 | { |
| 144 | | const UINT8 *clut = (const UINT8 *)memregion("clut")->base(); |
| 145 | 144 | bitmap_ind16 &source_bitmap = m_tilemap->pixmap(); |
| 146 | 145 | unsigned yscroll = m_lineram[0x3fe/2]; |
| 147 | 146 | |
| r29464 | r29465 | |
| 201 | 200 | int pen = source_gfx[sourcex >> 16]; |
| 202 | 201 | if (palette()->pen_indirect(pen) != m_transparent_color) |
| 203 | 202 | { |
| 204 | | if (clut != NULL) |
| 205 | | pen = (pen & ~0xff) | clut[pen & 0xff]; |
| 203 | if (m_clut != NULL) |
| 204 | pen = (pen & ~0xff) | m_clut[pen & 0xff]; |
| 206 | 205 | dest[screenx] = pen; |
| 207 | 206 | } |
| 208 | 207 | screenx++; |
| r29464 | r29465 | |
| 214 | 213 | while (numpixels-- > 0) |
| 215 | 214 | { |
| 216 | 215 | int pen = source_gfx[sourcex >> 16]; |
| 217 | | if (clut != NULL) |
| 218 | | pen = (pen & ~0xff) | clut[pen & 0xff]; |
| 216 | if (m_clut != NULL) |
| 217 | pen = (pen & ~0xff) | m_clut[pen & 0xff]; |
| 219 | 218 | dest[screenx++] = pen; |
| 220 | 219 | sourcex += dsourcex; |
| 221 | 220 | } |
| r29464 | r29465 | |
| 230 | 229 | |
| 231 | 230 | void namco_c45_road_device::device_start() |
| 232 | 231 | { |
| 232 | m_clut = memregion("clut")->base(); |
| 233 | |
| 233 | 234 | // create a tilemap for the road |
| 234 | 235 | m_tilemap = &machine().tilemap().create(*this, tilemap_get_info_delegate(FUNC(namco_c45_road_device::get_road_info), this), |
| 235 | 236 | TILEMAP_SCAN_ROWS, ROAD_TILE_SIZE, ROAD_TILE_SIZE, ROAD_COLS, ROAD_ROWS); |