diff options
-rw-r--r-- | src/map/atcommand.c | 6 | ||||
-rw-r--r-- | src/map/pc.c | 2 | ||||
-rw-r--r-- | src/map/pc.h | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 64b005aae..c4dcba902 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -6280,6 +6280,7 @@ ACMD_FUNC(autolootitem) sd->state.autolootid[i] = item_data->nameid; // Autoloot Activated sprintf(atcmd_output, "Autolooting item: '%s'/'%s' {%d}", item_data->name, item_data->jname, item_data->nameid); clif_displaymessage(fd, atcmd_output); + sd->state.autolooting = 1; break; case 2: ARR_FIND(0, AUTOLOOTITEM_SIZE, i, sd->state.autolootid[i] == item_data->nameid); @@ -6290,6 +6291,10 @@ ACMD_FUNC(autolootitem) sd->state.autolootid[i] = 0; sprintf(atcmd_output, "Removed item: '%s'/'%s' {%d} from your autolootitem list.", item_data->name, item_data->jname, item_data->nameid); clif_displaymessage(fd, atcmd_output); + ARR_FIND(0, AUTOLOOTITEM_SIZE, i, sd->state.autolootid[i] != 0); + if (i == AUTOLOOTITEM_SIZE) { + sd->state.autolooting = 0; + } break; case 3: sprintf(atcmd_output, "You can have %d items on your autolootitem list.", AUTOLOOTITEM_SIZE); @@ -6317,6 +6322,7 @@ ACMD_FUNC(autolootitem) case 4: memset(sd->state.autolootid, 0, sizeof(sd->state.autolootid)); clif_displaymessage(fd, "Your autolootitem list has been reset."); + sd->state.autolooting = 0; break; } return 0; diff --git a/src/map/pc.c b/src/map/pc.c index 0d0ebe4bf..22f165374 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -8249,6 +8249,8 @@ void pc_overheat(struct map_session_data *sd, int val) { bool pc_isautolooting(struct map_session_data *sd, int nameid) { int i; + if( !sd->state.autolooting ) + return false; ARR_FIND(0, AUTOLOOTITEM_SIZE, i, sd->state.autolootid[i] == nameid); return (i != AUTOLOOTITEM_SIZE); } diff --git a/src/map/pc.h b/src/map/pc.h index c0863bb1d..34c05d7b8 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -140,6 +140,7 @@ struct map_session_data { short pmap; // Previous map on Map Change unsigned short autoloot; unsigned short autolootid[AUTOLOOTITEM_SIZE]; // [Zephyrus] + unsigned int autolooting : 1; //performance-saver, autolooting state for @alootid unsigned short autobonus; //flag to indicate if an autobonus is activated. [Inkfish] struct guild *gmaster_flag; unsigned int prevend : 1;//used to flag wheather you've spent 40sp to open the vending or not. |