diff options
author | 2019-07-02 20:30:21 +0200 | |
---|---|---|
committer | 2019-07-02 20:30:37 +0200 | |
commit | b6ce2e16d867b21119ce36f6e108d0866f396089 (patch) | |
tree | 16c3b1bfd5d9011b366ded7f10baef32c440651c /src/emu/tilemap.h | |
parent | 0b8733206a1f6d3c931171c18f2200b2eb5a2b87 (diff) |
-core: Removed almost all MCFG defines, and removed all remaining MACHINE_CONFIG_START/END uses. [Ryan Holtz]
Diffstat (limited to 'src/emu/tilemap.h')
-rw-r--r-- | src/emu/tilemap.h | 76 |
1 files changed, 14 insertions, 62 deletions
diff --git a/src/emu/tilemap.h b/src/emu/tilemap.h index 23b75362f0e..15794247a4f 100644 --- a/src/emu/tilemap.h +++ b/src/emu/tilemap.h @@ -360,68 +360,6 @@ enum tilemap_standard_mapper TILEMAP_STANDARD_COUNT }; - - -//************************************************************************** -// DEVICE CONFIGURATION MACROS -//************************************************************************** - -// primitives -#define MCFG_TILEMAP_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, TILEMAP) -#define MCFG_TILEMAP_GFXDECODE(_gfxtag) \ - downcast<tilemap_device &>(*device).set_gfxdecode(_gfxtag); -#define MCFG_TILEMAP_BYTES_PER_ENTRY(_bpe) \ - downcast<tilemap_device &>(*device).set_bytes_per_entry(_bpe); -#define MCFG_TILEMAP_INFO_CB_DRIVER(_class, _method) \ - downcast<tilemap_device &>(*device).set_info_callback(tilemap_get_info_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr)); -#define MCFG_TILEMAP_INFO_CB_DEVICE(_device, _class, _method) \ - downcast<tilemap_device &>(*device).set_info_callback(tilemap_get_info_delegate(&_class::_method, #_class "::" #_method, _device, (_class *)nullptr)); -#define MCFG_TILEMAP_LAYOUT_STANDARD(_standard, _columns, _rows) \ - downcast<tilemap_device &>(*device).set_layout(TILEMAP_##_standard, _columns, _rows); -#define MCFG_TILEMAP_LAYOUT_CB_DRIVER(_class, _method, _columns, _rows) \ - downcast<tilemap_device &>(*device).set_layout(tilemap_mapper_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr), _columns, _rows); -#define MCFG_TILEMAP_LAYOUT_CB_DEVICE(_device, _class, _method, _columns, _rows) \ - downcast<tilemap_device &>(*device).set_layout(tilemap_mapper_delegate(&_class::_method, #_class "::" #_method, _device, (_class *)nullptr), _columns, _rows); -#define MCFG_TILEMAP_TILE_SIZE(_width, _height) \ - downcast<tilemap_device &>(*device).set_tile_size(_width, _height); -#define MCFG_TILEMAP_TRANSPARENT_PEN(_pen) \ - downcast<tilemap_device &>(*device).set_configured_transparent_pen(_pen); - -// common cases -#define MCFG_TILEMAP_ADD_STANDARD(_tag, _gfxtag, _bytes_per_entry, _class, _method, _tilewidth, _tileheight, _mapper, _columns, _rows) \ - MCFG_TILEMAP_ADD(_tag) \ - MCFG_TILEMAP_GFXDECODE(_gfxtag) \ - MCFG_TILEMAP_BYTES_PER_ENTRY(_bytes_per_entry) \ - MCFG_TILEMAP_INFO_CB_DRIVER(_class, _method) \ - MCFG_TILEMAP_LAYOUT_STANDARD(_mapper, _columns, _rows) \ - MCFG_TILEMAP_TILE_SIZE(_tilewidth, _tileheight) -#define MCFG_TILEMAP_ADD_CUSTOM(_tag, _gfxtag, _bytes_per_entry, _class, _method, _tilewidth, _tileheight, _mapper, _columns, _rows) \ - MCFG_TILEMAP_ADD(_tag) \ - MCFG_TILEMAP_GFXDECODE(_gfxtag) \ - MCFG_TILEMAP_BYTES_PER_ENTRY(_bytes_per_entry) \ - MCFG_TILEMAP_INFO_CB_DRIVER(_class, _method) \ - MCFG_TILEMAP_LAYOUT_CB_DRIVER(_class, _mapper, _columns, _rows) \ - MCFG_TILEMAP_TILE_SIZE(_tilewidth, _tileheight) -#define MCFG_TILEMAP_ADD_STANDARD_TRANSPEN(_tag, _gfxtag, _bytes_per_entry, _class, _method, _tilewidth, _tileheight, _mapper, _columns, _rows, _transpen) \ - MCFG_TILEMAP_ADD(_tag) \ - MCFG_TILEMAP_GFXDECODE(_gfxtag) \ - MCFG_TILEMAP_BYTES_PER_ENTRY(_bytes_per_entry) \ - MCFG_TILEMAP_INFO_CB_DRIVER(_class, _method) \ - MCFG_TILEMAP_LAYOUT_STANDARD(_mapper, _columns, _rows) \ - MCFG_TILEMAP_TILE_SIZE(_tilewidth, _tileheight) \ - MCFG_TILEMAP_TRANSPARENT_PEN(_transpen) -#define MCFG_TILEMAP_ADD_CUSTOM_TRANSPEN(_tag, _gfxtag, _bytes_per_entry, _class, _method, _tilewidth, _tileheight, _mapper, _columns, _rows, _transpen) \ - MCFG_TILEMAP_ADD(_tag) \ - MCFG_TILEMAP_GFXDECODE(_gfxtag) \ - MCFG_TILEMAP_BYTES_PER_ENTRY(_bytes_per_entry) \ - MCFG_TILEMAP_INFO_CB_DRIVER(_class, _method) \ - MCFG_TILEMAP_LAYOUT_CB_DRIVER(_columns, _mapper, _rows, _class) \ - MCFG_TILEMAP_TILE_SIZE(_tilewidth, _tileheight) \ - MCFG_TILEMAP_TRANSPARENT_PEN(_transpen) - - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -741,6 +679,15 @@ public: set_tile_size(tilewidth, tileheight); } + template <typename T> + tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&gfxtag, int entrybytes, u16 tilewidth, u16 tileheight) + : tilemap_device(mconfig, tag, owner, (u32)0) + { + set_gfxdecode(std::forward<T>(gfxtag)); + set_bytes_per_entry(entrybytes); + set_tile_size(tilewidth, tileheight); + } + tilemap_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0); template <typename T> void set_gfxdecode(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); } @@ -756,6 +703,11 @@ public: set_info_callback(tilemap_get_info_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr))); } + template <class FunctionClass> void set_layout(tilemap_memory_index (FunctionClass::*callback)(u32, u32, u32, u32), const char *name, u32 columns, u32 rows) + { + set_layout(tilemap_mapper_delegate(callback, name, nullptr, static_cast<FunctionClass *>(nullptr)), columns, rows); + } + void set_layout(tilemap_standard_mapper mapper, u32 columns, u32 rows) { m_standard_mapper = mapper; m_num_columns = columns; |