summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/kills.cc
diff options
context:
space:
mode:
authorAdam Borowski <kilobyte@angband.pl>2010-07-30 15:09:59 +0200
committerAdam Borowski <kilobyte@angband.pl>2010-07-30 18:45:16 +0200
commit4817bb3d806b3156bea1d2bc2b648f04bb0e04e5 (patch)
tree54d5234b45870325645aa33199895f88bc35d92d /crawl-ref/source/kills.cc
parentb580da2a2d2bce87a2528ecd05a3ed7dfb50a480 (diff)
downloadcrawl-ref-4817bb3d806b3156bea1d2bc2b648f04bb0e04e5.tar.gz
crawl-ref-4817bb3d806b3156bea1d2bc2b648f04bb0e04e5.zip
Fix the lua kills report for monsters with non-ascii glyphs.
Diffstat (limited to 'crawl-ref/source/kills.cc')
-rw-r--r--crawl-ref/source/kills.cc18
1 files changed, 10 insertions, 8 deletions
diff --git a/crawl-ref/source/kills.cc b/crawl-ref/source/kills.cc
index 3e7e179da5..9feaffd9e3 100644
--- a/crawl-ref/source/kills.cc
+++ b/crawl-ref/source/kills.cc
@@ -20,6 +20,7 @@
#include "kills.h"
#include "clua.h"
#include "options.h"
+#include "viewchar.h"
#define KILLS_MAJOR_VERSION 4
#define KILLS_MINOR_VERSION 1
@@ -860,8 +861,8 @@ static int kill_lualc_symbol(lua_State *ls)
kill_exp *ke = static_cast<kill_exp*>( lua_touserdata(ls, 1) );
if (ke)
{
- unsigned char ch = ke->monnum != -1?
- mons_char(ke->monnum) :
+ wchar_t ch = ke->monnum != -1?
+ mons_char(ke->monnum) :
is_ghost(ke)? 'p' : '&';
if (ke->monnum == MONS_PROGRAM_BUG)
@@ -871,20 +872,21 @@ static int kill_lualc_symbol(lua_State *ls)
{
case kill_monster_desc::M_ZOMBIE:
case kill_monster_desc::M_SKELETON:
+ ch = mons_char(mons_zombie_size(ke->monnum) == Z_SMALL ?
+ MONS_ZOMBIE_SMALL : MONS_ZOMBIE_LARGE);
+ break;
case kill_monster_desc::M_SIMULACRUM:
- ch = mons_zombie_size(ke->monnum) == Z_SMALL ? 'z' : 'Z';
+ ch = mons_char(mons_zombie_size(ke->monnum) == Z_SMALL ?
+ MONS_SIMULACRUM_SMALL : MONS_SIMULACRUM_LARGE);
break;
case kill_monster_desc::M_SPECTRE:
- ch = 'W';
+ ch = mons_char(MONS_SPECTRAL_THING);
break;
default:
break;
}
- char s[2];
- s[0] = (char) ch;
- s[1] = 0;
- lua_pushstring(ls, s);
+ lua_pushstring(ls, stringize_glyph(ch).c_str());
return 1;
}
return 0;