summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgumi <mekolat@users.noreply.github.com>2017-05-27 18:15:25 -0400
committergumi <mekolat@users.noreply.github.com>2017-05-28 11:48:25 -0400
commit0e30a97cb5629ee3c600fc2cdbc1ed9f0bc69636 (patch)
tree9d2bd2566ee6b0890da00b81c375a188296052a2 /src
parentf89da71c4480a6d2924351fb9e5a26e2f593e9a5 (diff)
downloadhercules-0e30a97cb5629ee3c600fc2cdbc1ed9f0bc69636.tar.gz
hercules-0e30a97cb5629ee3c600fc2cdbc1ed9f0bc69636.tar.bz2
hercules-0e30a97cb5629ee3c600fc2cdbc1ed9f0bc69636.tar.xz
hercules-0e30a97cb5629ee3c600fc2cdbc1ed9f0bc69636.zip
allow to pass actual params to getparam
Diffstat (limited to 'src')
-rw-r--r--src/map/script.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/map/script.c b/src/map/script.c
index 75f747fb6..81645b0e1 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -8568,20 +8568,26 @@ BUILDIN(disableitemuse)
BUILDIN(readparam) {
int type;
struct map_session_data *sd;
+ struct script_data *data = script_getdata(st, 2);
- type=script_getnum(st,2);
- if (script_hasdata(st,3))
- sd = script->nick2sd(st, script_getstr(st,3));
- else
- sd=script->rid2sd(st);
+ if (reference_toparam(data)) {
+ type = reference_getparamtype(data);
+ } else {
+ type = script->conv_num(st, data);
+ }
+
+ if (script_hasdata(st, 3)) {
+ sd = script->nick2sd(st, script_getstr(st, 3));
+ } else {
+ sd = script->rid2sd(st);
+ }
if (sd == NULL) {
- script_pushint(st,-1);
+ script_pushint(st, -1);
return true;
}
- script_pushint(st,pc->readparam(sd,type));
-
+ script_pushint(st, pc->readparam(sd, type));
return true;
}