From 11665e658145e02b4a77e90773eb6c19aa504a82 Mon Sep 17 00:00:00 2001 From: wushin Date: Sat, 22 Nov 2014 21:08:29 -0600 Subject: Script Builtin getitemlink * getitemlink("ItemName"); * returns [@@ItemId|Item Jname@@] --- src/map/script-fun.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src') diff --git a/src/map/script-fun.cpp b/src/map/script-fun.cpp index b9b581f..4e19d5d 100644 --- a/src/map/script-fun.cpp +++ b/src/map/script-fun.cpp @@ -2291,6 +2291,31 @@ void builtin_getitemname(ScriptState *st) push_str(st->stack, item_name); } +static +void builtin_getitemlink(ScriptState *st) +{ + struct script_data *data; + AString buf; + data = &AARG(0); + ZString name = conv_str(st, data); + + ItemNameId item_id; + Option> item_data_ = itemdb_searchname(name); + OMATCH_BEGIN (item_data_) + { + OMATCH_CASE_SOME (item_data) + { + buf = STRPRINTF("[@@%d|%s@@]"_fmt, item_data->nameid, item_data->jname); + } + OMATCH_CASE_NONE () + { + buf = STRPRINTF("Unknown Item: %s"_fmt, name); + } + } + OMATCH_END (); + push_str(st->stack, buf); +} + static void builtin_getspellinvocation(ScriptState *st) { @@ -3066,6 +3091,7 @@ BuiltinFunction builtin_functions[] = BUILTIN(marriage, "P"_s, 'i'), BUILTIN(divorce, ""_s, 'i'), BUILTIN(getitemname, "I"_s, 's'), + BUILTIN(getitemlink, "I"_s, 's'), BUILTIN(getspellinvocation, "s"_s, 's'), BUILTIN(getpartnerid2, ""_s, 'i'), BUILTIN(getinventorylist, ""_s, '\0'), -- cgit v1.2.3-60-g2f50