summaryrefslogtreecommitdiff
path: root/src/map/magic-stmt.cpp
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2014-02-24 22:06:23 -0800
committerBen Longbons <b.r.longbons@gmail.com>2014-03-15 09:47:46 -0700
commit42631b502b3446d71cfe2745045436d9497ee0ed (patch)
tree827b83a084be86604010425a38ba4cd4a9eea9a9 /src/map/magic-stmt.cpp
parentcab317277a7adcdd5c44389b9e0deb521d56ca4b (diff)
downloadtmwa-42631b502b3446d71cfe2745045436d9497ee0ed.tar.gz
tmwa-42631b502b3446d71cfe2745045436d9497ee0ed.tar.bz2
tmwa-42631b502b3446d71cfe2745045436d9497ee0ed.tar.xz
tmwa-42631b502b3446d71cfe2745045436d9497ee0ed.zip
Allow any script variable to be accessed from magic (mostly)
Diffstat (limited to 'src/map/magic-stmt.cpp')
-rw-r--r--src/map/magic-stmt.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/map/magic-stmt.cpp b/src/map/magic-stmt.cpp
index 1905871..7ca718b 100644
--- a/src/map/magic-stmt.cpp
+++ b/src/map/magic-stmt.cpp
@@ -825,12 +825,28 @@ static
int op_set_script_variable(dumb_ptr<env_t>, const_array<val_t> args)
{
dumb_ptr<map_session_data> c = (ENTITY_TYPE(0) == BL::PC) ? ARGPC(0) : NULL;
+ VarName varname = stringish<VarName>(ARGSTR(1));
+ int array_index = 0;
if (!c)
return 1;
+ set_script_var_i(c, varname, array_index, ARGINT(2));
+
+ return 0;
+}
+
+static
+int op_set_script_str(dumb_ptr<env_t>, const_array<val_t> args)
+{
+ dumb_ptr<map_session_data> c = (ENTITY_TYPE(0) == BL::PC) ? ARGPC(0) : NULL;
VarName varname = stringish<VarName>(ARGSTR(1));
- pc_setglobalreg(c, varname, ARGINT(2));
+ int array_index = 0;
+
+ if (!c)
+ return 1;
+
+ set_script_var_s(c, varname, array_index, ARGSTR(2));
return 0;
}
@@ -924,6 +940,7 @@ std::map<ZString, op_t> operations =
MAGIC_OPERATION1(injure, "eeii"),
MAGIC_OPERATION1(emote, "ei"),
MAGIC_OPERATION1(set_script_variable, "esi"),
+ MAGIC_OPERATION1(set_script_str, "ess"),
MAGIC_OPERATION1(set_hair_colour, "ei"),
MAGIC_OPERATION1(set_hair_style, "ei"),
MAGIC_OPERATION("drop_item", "l.ii", op_drop_item_for),