summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/tilemap.h
diff options
context:
space:
mode:
author MooglyGuy <therealmogminer@gmail.com>2019-07-02 20:30:21 +0200
committer MooglyGuy <therealmogminer@gmail.com>2019-07-02 20:30:37 +0200
commitb6ce2e16d867b21119ce36f6e108d0866f396089 (patch)
tree16c3b1bfd5d9011b366ded7f10baef32c440651c /src/emu/tilemap.h
parent0b8733206a1f6d3c931171c18f2200b2eb5a2b87 (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.h76
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;