From 3f998785f2c6219c75b6f3940774e230e32d1038 Mon Sep 17 00:00:00 2001 From: "p.kosyh" Date: Sat, 18 Jun 2011 07:20:10 +0000 Subject: [PATCH] sprites fix --- debian/changelog | 1 + src/sdl-instead/instead.c | 17 ++++++++++------- stead/sprites.lua | 28 ++++++++++++++-------------- 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/debian/changelog b/debian/changelog index 6b44875..a804119 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ instead (1.4.3) unstable; urgency=low * bug fix in nopara logic; * ukranian translation and tutorial; * multilang tutorial3; + * sprites small fix (predefined handles); -- Peter Kosyh Thu, 15 Jun 2011 16:56:00 +0400 diff --git a/src/sdl-instead/instead.c b/src/sdl-instead/instead.c index fd05f2a..0c45281 100644 --- a/src/sdl-instead/instead.c +++ b/src/sdl-instead/instead.c @@ -836,6 +836,8 @@ static int luaB_text_sprite(lua_State *L) { char txtkey[32]; const char *color = luaL_optstring(L, 3, NULL); int style = luaL_optnumber(L, 4, 0); + const char *desc = luaL_optstring(L, 5, NULL); + color_t col = { .r = game_theme.fgcol.r, .g = game_theme.fgcol.g, .b = game_theme.fgcol.b }; if (!font) @@ -858,14 +860,15 @@ static int luaB_text_sprite(lua_State *L) { if (!img) return 0; - - key = sname; - - strncpy(txtkey, text, sizeof(txtkey)); - txtkey[sizeof(txtkey) - 1] = 0; - sprite_name(text, sname, sizeof(sname)); - + if (!desc || sprite_lookup(desc)) { + key = sname; + strncpy(txtkey, text, sizeof(txtkey)); + txtkey[sizeof(txtkey) - 1] = 0; + sprite_name(txtkey, sname, sizeof(sname)); + } else + key = desc; + sp = sprite_new(key, img); if (!sp) diff --git a/stead/sprites.lua b/stead/sprites.lua index 8a85e0f..d289db3 100644 --- a/stead/sprites.lua +++ b/stead/sprites.lua @@ -33,8 +33,8 @@ sprite = { font_scaled_size = function(size) return stead.font_scaled_size(size); end; - font = function(font, size) - return stead.font_load(font, size); + font = function(font, size, ...) + return stead.font_load(font, size, ...); end; free_font = function(font) return stead.font_free(key); @@ -43,20 +43,20 @@ sprite = { local w,h = stead.sprite_text_size(font) return h end; - alpha = function(name, alpha) - return stead.sprite_alpha(name, alpha); + alpha = function(name, alpha, ...) + return stead.sprite_alpha(name, alpha, ...); end; - dup = function(name) - return stead.sprite_dup(name); + dup = function(name, ...) + return stead.sprite_dup(name, ...); end; - scale = function(name, xs, ys) - return stead.sprite_scale(name, xs, ys); + scale = function(name, xs, ys, ...) + return stead.sprite_scale(name, xs, ys, ...); end; - rotate = function(name, angle) - return stead.sprite_rotate(name, angle); + rotate = function(name, angle, ...) + return stead.sprite_rotate(name, angle, ...); end; - text = function(font, text, col, style) - return stead.sprite_text(font, text, col, style); + text = function(font, text, col, style, ...) + return stead.sprite_text(font, text, col, style, ...); end; size = function(spr) return stead.sprite_size(spr); @@ -85,8 +85,8 @@ sprite = { pixel = function(d, x, y, col, alpha) return stead.sprite_pixel(d, x, y, col, alpha) end; - load = function(fname) - return stead.sprite_load(fname); + load = function(fname, ...) + return stead.sprite_load(fname, ...); end; free = function(key) return stead.sprite_free(key);