From ac359e696f162090840dab488a6ef4981d35bbda Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Sat, 18 May 2013 17:37:33 -0700 Subject: Tweak a little memory management in char-server --- src/map/script.cpp | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) (limited to 'src/map/script.cpp') 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(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(session[i]->session_data.get()); + if (pl_sd && pl_sd->state.auth) { if (m == pl_sd->bl.m) { -- cgit v1.2.3-60-g2f50