diff options
author | Ben Longbons <b.r.longbons@gmail.com> | 2013-05-18 17:37:33 -0700 |
---|---|---|
committer | Ben Longbons <b.r.longbons@gmail.com> | 2013-05-18 18:49:39 -0700 |
commit | ac359e696f162090840dab488a6ef4981d35bbda (patch) | |
tree | 2ee04de23428bba264d1e39c80d5f50180d1b555 /src/map/script.cpp | |
parent | fd00d50574064db9edfcccc4286ed8f1b55b185a (diff) | |
download | tmwa-ac359e696f162090840dab488a6ef4981d35bbda.tar.gz tmwa-ac359e696f162090840dab488a6ef4981d35bbda.tar.bz2 tmwa-ac359e696f162090840dab488a6ef4981d35bbda.tar.xz tmwa-ac359e696f162090840dab488a6ef4981d35bbda.zip |
Tweak a little memory management in char-server
Diffstat (limited to 'src/map/script.cpp')
-rw-r--r-- | src/map/script.cpp | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/src/map/script.cpp b/src/map/script.cpp index b5e2aca..43bcebf 100644 --- a/src/map/script.cpp +++ b/src/map/script.cpp @@ -3551,11 +3551,8 @@ void builtin_getmapflag(ScriptState *st) static void builtin_pvpon(ScriptState *st) { - int m, i; - struct map_session_data *pl_sd = NULL; - const char *str = conv_str(st, &(st->stack->stack_data[st->start + 2])); - m = map_mapname2mapid(str); + int m = map_mapname2mapid(str); if (m >= 0 && !map[m].flag.pvp && !map[m].flag.nopvp) { map[m].flag.pvp = 1; @@ -3563,10 +3560,12 @@ void builtin_pvpon(ScriptState *st) if (battle_config.pk_mode) // disable ranking functions if pk_mode is on [Valaris] return; - for (i = 0; i < fd_max; i++) - { //人数分ループ - if (session[i] && (pl_sd = (struct map_session_data *)session[i]->session_data) - && pl_sd->state.auth) + for (int i = 0; i < fd_max; i++) + { + if (!session[i]) + continue; + map_session_data *pl_sd = static_cast<map_session_data *>(session[i]->session_data.get()); + if (pl_sd && pl_sd->state.auth) { if (m == pl_sd->bl.m && !pl_sd->pvp_timer) { @@ -3586,11 +3585,8 @@ void builtin_pvpon(ScriptState *st) static void builtin_pvpoff(ScriptState *st) { - int m, i; - struct map_session_data *pl_sd = NULL; - const char *str = conv_str(st, &(st->stack->stack_data[st->start + 2])); - m = map_mapname2mapid(str); + int m = map_mapname2mapid(str); if (m >= 0 && map[m].flag.pvp && map[m].flag.nopvp) { map[m].flag.pvp = 0; @@ -3598,10 +3594,12 @@ void builtin_pvpoff(ScriptState *st) if (battle_config.pk_mode) // disable ranking options if pk_mode is on [Valaris] return; - for (i = 0; i < fd_max; i++) - { //人数分ループ - if (session[i] && (pl_sd = (struct map_session_data *)session[i]->session_data) - && pl_sd->state.auth) + for (int i = 0; i < fd_max; i++) + { + if (!session[i]) + continue; + map_session_data *pl_sd = static_cast<map_session_data *>(session[i]->session_data.get()); + if (pl_sd && pl_sd->state.auth) { if (m == pl_sd->bl.m) { |