summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/atcommand.c6
-rw-r--r--src/map/pc.c2
-rw-r--r--src/map/pc.h1
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.