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;