summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-08-28 06:05:04 +0000
committertron <tron@openttd.org>2006-08-28 06:05:04 +0000
commit34def0290ada45487ed63f9a9dd73c988a5398da (patch)
tree4211b214d190be663f71d252b86b101e67742a70
parent89581cb5585d08b0aa0a86dd106adcff491a0710 (diff)
downloadopenttd-34def0290ada45487ed63f9a9dd73c988a5398da.tar.xz
(svn r6180) Use a switch instead of function pointers to choose the blitter
-rw-r--r--gfx.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/gfx.c b/gfx.c
index 705424e0b..09dddfe52 100644
--- a/gfx.c
+++ b/gfx.c
@@ -1380,19 +1380,6 @@ static void GfxMainBlitter(const Sprite *sprite, int x, int y, int mode)
BlitterParams bp;
int zoom_mask = ~((1 << dpi->zoom) - 1);
- static const BlitZoomFunc zf_tile[3] =
- {
- GfxBlitTileZoomIn,
- GfxBlitTileZoomMedium,
- GfxBlitTileZoomOut
- };
- static const BlitZoomFunc zf_uncomp[3] =
- {
- GfxBlitZoomInUncomp,
- GfxBlitZoomMediumUncomp,
- GfxBlitZoomOutUncomp
- };
-
/* decode sprite header */
x += sprite->x_offs;
y += sprite->y_offs;
@@ -1450,7 +1437,12 @@ static void GfxMainBlitter(const Sprite *sprite, int x, int y, int mode)
if (bp.width <= 0) return;
}
- zf_tile[dpi->zoom](&bp);
+ switch (dpi->zoom) {
+ default: NOT_REACHED();
+ case 0: GfxBlitTileZoomIn(&bp); break;
+ case 1: GfxBlitTileZoomMedium(&bp); break;
+ case 2: GfxBlitTileZoomOut(&bp); break;
+ }
} else {
bp.sprite += bp.width * (bp.height & ~zoom_mask);
bp.height &= zoom_mask;
@@ -1487,7 +1479,12 @@ static void GfxMainBlitter(const Sprite *sprite, int x, int y, int mode)
if (bp.width <= 0) return;
}
- zf_uncomp[dpi->zoom](&bp);
+ switch (dpi->zoom) {
+ default: NOT_REACHED();
+ case 0: GfxBlitZoomInUncomp(&bp); break;
+ case 1: GfxBlitZoomMediumUncomp(&bp); break;
+ case 2: GfxBlitZoomOutUncomp(&bp); break;
+ }
}
}