diff options
author | mekolat <mekolat@gmail.com> | 2015-03-28 16:20:20 -0400 |
---|---|---|
committer | mekolat <mekolat@gmail.com> | 2015-04-04 09:02:21 -0400 |
commit | a630bc2d97148e8a32769a5f1e0e2df475d4720a (patch) | |
tree | 476b53f4723a4690274d15f14652eab02ab55b03 | |
parent | e5471b1890bae50c36ccf8a8c7e1fee868c156b1 (diff) | |
download | tmwa-a630bc2d97148e8a32769a5f1e0e2df475d4720a.tar.gz tmwa-a630bc2d97148e8a32769a5f1e0e2df475d4720a.tar.bz2 tmwa-a630bc2d97148e8a32769a5f1e0e2df475d4720a.tar.xz tmwa-a630bc2d97148e8a32769a5f1e0e2df475d4720a.zip |
add strnpcinfo
-rw-r--r-- | src/map/script-fun.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/map/script-fun.cpp b/src/map/script-fun.cpp index eea8797..25c7736 100644 --- a/src/map/script-fun.cpp +++ b/src/map/script-fun.cpp @@ -2984,6 +2984,35 @@ void builtin_getmap(ScriptState *st) push_str<ScriptDataStr>(st->stack, sd->bl_m->name_); } +/* + * Get the NPC's info + */ +static +void builtin_strnpcinfo(ScriptState *st) +{ + dumb_ptr<npc_data> nd = map_id_is_npc(st->oid); + int num = conv_num(st, &AARG(0)); + RString name; + + switch(num) + { + case 0: + name = nd->name; + break; + case 1: + name = nd->name.xislice_h(std::find(nd->name.begin(), nd->name.end(), '#')); + break; + case 2: + name = nd->name.xislice_t(std::find(nd->name.begin(), nd->name.end(), '#')); + break; + case 3: + name = nd->bl_m->name_; + break; + } + + push_str<ScriptDataStr>(st->stack, name); +} + /*============================ * Gets the NPC's x pos *---------------------------- @@ -3138,6 +3167,7 @@ BuiltinFunction builtin_functions[] = BUILTIN(gety, ""_s, 'i'), BUILTIN(getnpcx, ""_s, 'i'), BUILTIN(getnpcy, ""_s, 'i'), + BUILTIN(strnpcinfo, "i"_s, 's'), BUILTIN(getmap, ""_s, 's'), BUILTIN(mapexit, ""_s, '\0'), BUILTIN(freeloop, "i"_s, '\0'), |