summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/vsystem_spr2.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/vsystem_spr2.h')
-rw-r--r--src/mame/video/vsystem_spr2.h14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/mame/video/vsystem_spr2.h b/src/mame/video/vsystem_spr2.h
index e25e07c0d32..13bcc4d9acd 100644
--- a/src/mame/video/vsystem_spr2.h
+++ b/src/mame/video/vsystem_spr2.h
@@ -6,23 +6,13 @@
typedef device_delegate<uint32_t (uint32_t)> vsystem_tile2_indirection_delegate;
-#define MCFG_VSYSTEM_SPR2_SET_TILE_INDIRECT(_class, _method) \
- downcast<vsystem_spr2_device &>(*device).set_tile_indirect_cb(vsystem_tile2_indirection_delegate(&_class::_method, #_class "::" #_method, nullptr, (_class *)nullptr));
-#define MCFG_VSYSTEM_SPR2_SET_PRITYPE(_val) \
- downcast<vsystem_spr2_device &>(*device).set_pritype(_val);
-#define MCFG_VSYSTEM_SPR2_SET_GFXREGION(_rgn) \
- downcast<vsystem_spr2_device &>(*device).set_gfx_region(_rgn);
-#define MCFG_VSYSTEM_SPR2_SET_OFFSETS(_xoffs, _yoffs) \
- downcast<vsystem_spr2_device &>(*device).set_offsets(_xoffs,_yoffs);
-#define MCFG_VSYSTEM_SPR2_GFXDECODE(_gfxtag) \
- downcast<vsystem_spr2_device &>(*device).set_gfxdecode_tag(_gfxtag);
class vsystem_spr2_device : public device_t
{
public:
// configuration
- void set_gfxdecode_tag(const char *tag) { m_gfxdecode.set_tag(tag); }
- template <typename Object> void set_tile_indirect_cb(Object &&cb) { m_newtilecb = std::forward<Object>(cb); }
+ template <typename T> void set_gfxdecode_tag(T &&tag) { m_gfxdecode.set_tag(std::forward<T>(tag)); }
+ template <typename... T> void set_tile_indirect_cb(T &&... args) { m_newtilecb = vsystem_tile2_indirection_delegate(std::forward<T>(args)...); }
void set_pritype(int pritype) { m_pritype = pritype; }
void set_gfx_region(int gfx_region) { m_gfx_region = gfx_region; }
void set_offsets(int xoffs, int yoffs)