cleanup vtable/method macros

This commit is contained in:
Eric House 2024-12-02 19:10:12 -08:00
parent e1ebba4d24
commit 2a5fb95dac

View file

@ -230,100 +230,50 @@ struct DrawCtx {
};
/* Franklin's compiler is too old to support __VA_ARGS__... */
#ifdef DRAW_LINK_DIRECT
# define CALL_DRAW_NAME0(name,dc) linked##_draw_##name(dc)
# define CALL_DRAW_NAME1(name,dc,p1) linked##_draw_##name(dc,(p1))
# define CALL_DRAW_NAME2(name,dc,p1,p2) \
linked##_draw_##name(dc,(p1),(p2))
# define CALL_DRAW_NAME3(name,dc,p1,p2,p3) \
linked##_draw_##name(dc,(p1),(p2),(p3))
# define CALL_DRAW_NAME4(name,dc,p1,p2,p3,p4) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4))
# define CALL_DRAW_NAME5(name,dc,p1,p2,p3,p4,p5) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5))
# define CALL_DRAW_NAME6(name,dc,p1,p2,p3,p4,p5,p6) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6))
# define CALL_DRAW_NAME8(name,dc,p1,p2,p3,p4,p5,p6,p7,p8) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7),(p8))
# define CALL_DRAW_NAME9(name,dc,p1,p2,p3,p4,p5,p6,p7,p8,p9) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7),(p8),(p9))
# define CALL_DRAW_NAME10(name,dc,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) \
linked##_draw_##name(dc,(p1),(p2),(p3),(p4),(p5),(p6),(p7),\
(p8),(p9),(p10))
#else
# define CALL_DRAW_NAME0(name,dc,e) ((dc)->vtable->m_draw_##name)((dc), (e))
# define CALL_DRAW_NAME1(name,dc,e,p1) ((dc)->vtable->m_draw_##name)((dc),(e),(p1))
# define CALL_DRAW_NAME2(name,dc,e,p1,p2) \
((dc)->vtable->m_draw_##name)(dc,(e),(p1),(p2))
# define CALL_DRAW_NAME3(name,dc,e,p1,p2,p3) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3))
# define CALL_DRAW_NAME4(name,dc,e,p1,p2,p3,p4) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4))
# define CALL_DRAW_NAME5(name,dc,e,p1,p2,p3,p4,p5) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4),(p5))
# define CALL_DRAW_NAME6(name,dc,e,p1,p2,p3,p4,p5,p6) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4),(p5),(p6))
# define CALL_DRAW_NAME8(name,dc,e,p1,p2,p3,p4,p5,p6,p7,p8) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4),(p5),(p6),(p7), \
(p8))
# define CALL_DRAW_NAME9(name,dc,e,p1,p2,p3,p4,p5,p6,p7,p8,p9) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4),(p5),(p6),(p7), \
(p8),(p9))
# define CALL_DRAW_NAME10(name,dc,e,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) \
((dc)->vtable->m_draw_##name)((dc),(e),(p1),(p2),(p3),(p4),(p5),(p6),(p7), \
(p8),(p9),(p10))
#endif
# define DRAW_CALL(name, dc, ...) ((dc)->vtable->m_draw_##name)((dc), __VA_ARGS__)
#define draw_destroyCtxt(dc,e) CALL_DRAW_NAME0(destroyCtxt, (dc), (e))
#define draw_dictChanged( dc, e, n, d ) CALL_DRAW_NAME2(dictChanged, (dc),(e),(n),(d))
#define draw_beginDraw( dc,e ) CALL_DRAW_NAME0(beginDraw, (dc), (e))
#define draw_endDraw( dc,e ) CALL_DRAW_NAME0(endDraw, (dc), (e))
#define draw_boardBegin( dc,e,r,h,v,f,tvt ) CALL_DRAW_NAME5(boardBegin, (dc), (e), \
(r),(h),(v),(f), (tvt))
#define draw_objFinished( dc, e, t, r, d ) \
CALL_DRAW_NAME3(objFinished, (dc),(e), (t), (r), (d))
#define draw_trayBegin( dc, e, r, o, s, f ) \
CALL_DRAW_NAME4(trayBegin, dc, e, r, o, s, f)
#define draw_vertScrollBoard( dc, e, r, d, f ) \
CALL_DRAW_NAME3(vertScrollBoard, (dc),(e),(r),(d),(f))
#define draw_scoreBegin( dc, e, r, t, s, c, f ) \
CALL_DRAW_NAME5( scoreBegin,(dc),(e), (r), (t), (s), (c), (f))
#define draw_destroyCtxt(dc,...) DRAW_CALL(destroyCtxt, dc, __VA_ARGS__)
#define draw_dictChanged(dc, ...) DRAW_CALL(dictChanged, dc,__VA_ARGS__)
#define draw_beginDraw(dc,...) DRAW_CALL(beginDraw, dc, __VA_ARGS__)
#define draw_endDraw(dc, ...) DRAW_CALL(endDraw, dc, __VA_ARGS__)
#define draw_boardBegin(dc, ...) DRAW_CALL(boardBegin, dc, __VA_ARGS__)
#define draw_objFinished(dc, ...) DRAW_CALL(objFinished, dc, __VA_ARGS__)
#define draw_trayBegin(dc, ...) DRAW_CALL(trayBegin, dc, __VA_ARGS__)
#define draw_vertScrollBoard(dc, ...) DRAW_CALL(vertScrollBoard, (dc),__VA_ARGS__)
#define draw_scoreBegin(dc, ...) DRAW_CALL(scoreBegin,(dc), __VA_ARGS__)
#ifdef XWFEATURE_SCOREONEPASS
# define draw_drawRemText( dc, e, nt, f, ro ) \
CALL_DRAW_NAME3(drawRemText, (dc),(e), (nt), (f), (ro) )
# define draw_score_drawPlayers( dc, e, r, np, pd, pr ) \
CALL_DRAW_NAME4(score_drawPlayers, (dc),(e), (r), (np), (pd), (pr) )
# define draw_drawRemText(dc, ...) DRAW_CALL(drawRemText, dc,__VA_ARGS__)
# define draw_score_drawPlayers(dc, ...) DRAW_CALL(score_drawPlayers, dc,__VA_ARGS__)
#else
# define draw_measureRemText( dc, e, r, n, wp, hp ) \
CALL_DRAW_NAME4(measureRemText, (dc),(e), (r), (n), (wp), (hp) )
# define draw_drawRemText( dc, e, ri, ro, n, f ) \
CALL_DRAW_NAME4(drawRemText, (dc),(e), (ri), (ro), (n), (f) )
# define draw_measureScoreText(dc, e, r, dsi, wp, hp) \
CALL_DRAW_NAME4(measureScoreText,(dc),(e),(r),(dsi),(wp),(hp))
# define draw_score_drawPlayer(dc, e, ri, ro, gp, dsi) \
CALL_DRAW_NAME4(score_drawPlayer,(dc),(e),(ri),(ro),(gp),(dsi))
# define draw_measureRemText(dc, ...) \
DRAW_CALL(measureRemText, (dc),__VA_ARGS__)
# define draw_drawRemText(dc, ...) \
DRAW_CALL(drawRemText, (dc),__VA_ARGS__)
# define draw_measureScoreText(dc, ...) \
DRAW_CALL(measureScoreText,(dc),__VA_ARGS__)
# define draw_score_drawPlayer(dc, ...) \
DRAW_CALL(score_drawPlayer,(dc),__VA_ARGS__)
#endif
#define draw_score_pendingScore(dc, e, r, s, p, t, f ) \
CALL_DRAW_NAME5(score_pendingScore,(dc),(e), (r), (s), (p), (t), (f))
#define draw_drawTimer( dc, e, r, plyr, sec, dm ) \
CALL_DRAW_NAME4(drawTimer,(dc),(e),(r),(plyr),(sec), (dm))
#define draw_drawCell( dc, e, rect, txt, bmap, t, v,o, bon, hi, f ) \
CALL_DRAW_NAME9(drawCell,(dc),(e),(rect),(txt),(bmap),(t),(v),(o),(bon),(hi), \
(f))
#define draw_invertCell( dc, e, rect ) CALL_DRAW_NAME1(invertCell,(dc),(e),(rect))
#define draw_drawTile( dc, e, rect, text, bmp, val, hil ) \
CALL_DRAW_NAME5(drawTile,(dc),(e),(rect),(text),(bmp),(val),(hil))
#define draw_score_pendingScore(dc, ...) \
DRAW_CALL(score_pendingScore,(dc),__VA_ARGS__)
#define draw_drawTimer(dc, ...) \
DRAW_CALL(drawTimer,(dc),__VA_ARGS__)
#define draw_drawCell(dc, ...) DRAW_CALL(drawCell,(dc),__VA_ARGS__)
#define draw_invertCell(dc, ...) DRAW_CALL(invertCell,(dc),__VA_ARGS__)
#define draw_drawTile(dc, ...) \
DRAW_CALL(drawTile,(dc),__VA_ARGS__)
#ifdef POINTER_SUPPORT
#define draw_drawTileMidDrag( dc, e, rect, text, bmp, val, ownr, hil ) \
CALL_DRAW_NAME6(drawTileMidDrag,(dc),(e),(rect),(text),(bmp),(val),(ownr),(hil))
#define draw_drawTileMidDrag(dc, ...) \
DRAW_CALL(drawTileMidDrag,(dc),__VA_ARGS__)
#endif /* POINTER_SUPPORT */
#define draw_drawTileBack( dc, e, rect, f ) \
CALL_DRAW_NAME2(drawTileBack, (dc),(e), (rect), (f) )
#define draw_drawTrayDivider( dc, e, rect, s ) \
CALL_DRAW_NAME2(drawTrayDivider,(dc),(e),(rect), (s))
#define draw_clearRect( dc, e, rect ) CALL_DRAW_NAME1(clearRect,(dc),(e),(rect))
#define draw_drawBoardArrow( dc, e, r, b, v, h, f ) \
CALL_DRAW_NAME5(drawBoardArrow,(dc),(e),(r),(b), (v), (h), (f))
#define draw_drawTileBack(dc, ...) \
DRAW_CALL(drawTileBack, (dc),__VA_ARGS__)
#define draw_drawTrayDivider(dc, ...) \
DRAW_CALL(drawTrayDivider,(dc),__VA_ARGS__)
#define draw_clearRect(dc, ...) DRAW_CALL(clearRect,(dc),__VA_ARGS__)
#define draw_drawBoardArrow(dc, ...) \
DRAW_CALL(drawBoardArrow,(dc),__VA_ARGS__)
#ifdef XWFEATURE_MINIWIN
# define draw_getMiniWText(dc, e, b) CALL_DRAW_NAME1(getMiniWText, (dc),(e),(b))
@ -347,5 +297,4 @@ struct DrawCtx {
void InitDrawDefaults(DrawCtxVTable* vtable);
#endif /* DRAW_WITH_PRIMITIVES */
#endif