From e2b5e39868190f3594d1d7d17617d6dbaa4c7039 Mon Sep 17 00:00:00 2001 From: "p.kosyh@gmail.com" Date: Tue, 12 Apr 2011 04:36:58 +0000 Subject: [PATCH] cleanups --- src/sdl-instead/instead.c | 48 ++++++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/src/sdl-instead/instead.c b/src/sdl-instead/instead.c index 52d50d9..a425a71 100644 --- a/src/sdl-instead/instead.c +++ b/src/sdl-instead/instead.c @@ -816,26 +816,6 @@ err: return 0; } -static int luaB_sprite_size(lua_State *L) { - img_t s = NULL; - float v; - int w, h; - const char *src = luaL_optstring(L, 1, NULL); - if (!src) - return 0; - s = cache_lookup(gfx_image_cache(), src); - if (!s) - return 0; - - v = game_theme.scale; - - w = gfx_img_w(s) / v; - h = gfx_img_h(s) / v; - lua_pushnumber(L, w); - lua_pushnumber(L, h); - return 2; -} - static img_t grab_sprite(const char *dst, int *xoff, int *yoff) { img_t d; @@ -843,11 +823,37 @@ static img_t grab_sprite(const char *dst, int *xoff, int *yoff) d = gfx_screen(NULL); *xoff = game_theme.xoff; *yoff = game_theme.yoff; - } else + } else { + *xoff = 0; + *yoff = 0; d = cache_lookup(gfx_image_cache(), dst); + } return d; } + +static int luaB_sprite_size(lua_State *L) { + img_t s = NULL; + float v; + int w, h; + int xoff, yoff; + const char *src = luaL_optstring(L, 1, NULL); + if (!src) + return 0; + s = grab_sprite(src, &xoff, &yoff); + if (!s) + return 0; + + v = game_theme.scale; + + w = (gfx_img_w(s) - xoff * 2)/ v; + h = (gfx_img_h(s) - yoff * 2)/ v; + + lua_pushnumber(L, w); + lua_pushnumber(L, h); + return 2; +} + static int luaB_draw_sprite(lua_State *L) { img_t s, d; img_t img2 = NULL;