summaryrefslogtreecommitdiff
path: root/src/actions
diff options
context:
space:
mode:
Diffstat (limited to 'src/actions')
-rw-r--r--src/actions/commands.cpp29
1 files changed, 20 insertions, 9 deletions
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp
index 9f38844ee..1a1b07dd5 100644
--- a/src/actions/commands.cpp
+++ b/src/actions/commands.cpp
@@ -601,7 +601,7 @@ impHandler(addPriorityAttack)
impHandler(addAttack)
{
- if (!actorManager || actorManager->isInAttackList(event.args))
+ if (!actorManager)
return false;
actorManager->removeAttackMob(event.args);
@@ -614,16 +614,27 @@ impHandler(addAttack)
impHandler(removeAttack)
{
- if (!actorManager ||
- event.args.empty() ||
- (!actorManager->isInAttackList(event.args) &&
- !actorManager->isInPriorityAttackList(event.args) &&
- !actorManager->isInIgnoreAttackList(event.args)))
- {
+ if (!actorManager)
return false;
+
+ if (event.args.empty())
+ {
+ if (actorManager->isInAttackList(event.args))
+ {
+ actorManager->removeAttackMob(event.args);
+ actorManager->addIgnoreAttackMob(event.args);
+ }
+ else
+ {
+ actorManager->removeAttackMob(event.args);
+ actorManager->addAttackMob(event.args);
+ }
+ }
+ else
+ {
+ actorManager->removeAttackMob(event.args);
}
- actorManager->removeAttackMob(event.args);
if (socialWindow)
socialWindow->updateAttackFilter();
@@ -632,7 +643,7 @@ impHandler(removeAttack)
impHandler(addIgnoreAttack)
{
- if (!actorManager || actorManager->isInIgnoreAttackList(event.args))
+ if (!actorManager)
return false;
actorManager->removeAttackMob(event.args);