summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/being/crazymoves.cpp2
-rw-r--r--src/being/localplayer.cpp44
-rw-r--r--src/being/localplayer.h47
-rw-r--r--src/net/ea/playerrecv.cpp2
-rw-r--r--src/net/eathena/beingrecv.cpp4
-rw-r--r--src/net/tmwa/beingrecv.cpp8
-rw-r--r--src/progs/manaplus/actions/actions.cpp12
-rw-r--r--src/progs/manaplus/actions/commands.cpp2
-rw-r--r--src/progs/manaplus/actions/move.cpp2
-rw-r--r--src/progs/manaplus/gui/viewport.cpp8
10 files changed, 75 insertions, 56 deletions
diff --git a/src/being/crazymoves.cpp b/src/being/crazymoves.cpp
index 5fb093d9d..e2d960aa4 100644
--- a/src/being/crazymoves.cpp
+++ b/src/being/crazymoves.cpp
@@ -806,7 +806,7 @@ void CrazyMoves::crazyMoveA()
else if (mMoveProgram[settings.crazyMoveState] == 'p')
{
settings.crazyMoveState ++;
- localPlayer->pickUpItems();
+ localPlayer->pickUpItems(0);
}
// emote
else if (mMoveProgram[settings.crazyMoveState] == 'e'
diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp
index 206f1f1ca..e12bdbdf4 100644
--- a/src/being/localplayer.cpp
+++ b/src/being/localplayer.cpp
@@ -334,7 +334,7 @@ void LocalPlayer::logic()
}
if (mKeepAttacking && (mTarget != nullptr))
- attack(mTarget, true);
+ attack(mTarget, true, false);
}
}
@@ -466,10 +466,12 @@ void LocalPlayer::nextTile()
pickUp(mPickUpTarget);
}
- if (mGoingToTarget && (mTarget != nullptr) && withinAttackRange(mTarget))
+ if (mGoingToTarget &&
+ mTarget != nullptr &&
+ withinAttackRange(mTarget, false, 0))
{
mAction = BeingAction::STAND;
- attack(mTarget, true);
+ attack(mTarget, true, false);
mGoingToTarget = false;
mPath.clear();
return;
@@ -780,7 +782,8 @@ bool LocalPlayer::emote(const uint8_t emotion)
return true;
}
-void LocalPlayer::attack(Being *const target, const bool keep,
+void LocalPlayer::attack(Being *const target,
+ const bool keep,
const bool dontChangeEquipment)
{
mKeepAttacking = keep;
@@ -841,7 +844,7 @@ void LocalPlayer::attack(Being *const target, const bool keep,
}
if (!keep)
- stopAttack();
+ stopAttack(false);
}
void LocalPlayer::stopAttack(const bool keepAttack)
@@ -1190,7 +1193,8 @@ void LocalPlayer::addJobMessage(const int64_t change)
addMessageToQueue(strprintf("%s %s",
xpStr.c_str(),
// TRANSLATORS: this is job experience
- _("job")));
+ _("job")),
+ UserColorId::EXP_INFO);
}
}
else
@@ -1198,7 +1202,8 @@ void LocalPlayer::addJobMessage(const int64_t change)
addMessageToQueue(strprintf("%s %s",
xpStr.c_str(),
// TRANSLATORS: this is job experience
- _("job")));
+ _("job")),
+ UserColorId::EXP_INFO);
}
}
}
@@ -1210,7 +1215,8 @@ void LocalPlayer::addXpMessage(const int64_t change)
addMessageToQueue(strprintf("%s %s",
toString(CAST_U64(change)).c_str(),
// TRANSLATORS: get xp message
- _("xp")));
+ _("xp")),
+ UserColorId::EXP_INFO);
}
}
@@ -1223,7 +1229,8 @@ void LocalPlayer::addHomunXpMessage(const int change)
_("Homun"),
change,
// TRANSLATORS: get xp message
- _("xp")));
+ _("xp")),
+ UserColorId::EXP_INFO);
}
}
@@ -1232,7 +1239,8 @@ void LocalPlayer::addHpMessage(const int change)
if (change != 0 && mMessages.size() < 20)
{
// TRANSLATORS: get hp message
- addMessageToQueue(strprintf("%d %s", change, _("hp")));
+ addMessageToQueue(strprintf("%d %s", change, _("hp")),
+ UserColorId::EXP_INFO);
}
}
@@ -1241,7 +1249,8 @@ void LocalPlayer::addSpMessage(const int change)
if (change != 0 && mMessages.size() < 20)
{
// TRANSLATORS: get hp message
- addMessageToQueue(strprintf("%d %s", change, _("mana")));
+ addMessageToQueue(strprintf("%d %s", change, _("mana")),
+ UserColorId::EXP_INFO);
}
}
@@ -2268,7 +2277,8 @@ int LocalPlayer::getAttackRange2() const
return range;
}
-void LocalPlayer::attack2(Being *const target, const bool keep,
+void LocalPlayer::attack2(Being *const target,
+ const bool keep,
const bool dontChangeEquipment)
{
if (!dontChangeEquipment && (target != nullptr))
@@ -2283,12 +2293,12 @@ void LocalPlayer::attack2(Being *const target, const bool keep,
(withinAttackRange(target, broken, broken ? 1 : 0) &&
getPathLength(target) <= getAttackRange2()))
{
- attack(target, keep);
+ attack(target, keep, false);
if (settings.attackType == 2)
{
if (target == nullptr)
{
- if (pickUpItems())
+ if (pickUpItems(0))
return;
}
else
@@ -2301,14 +2311,14 @@ void LocalPlayer::attack2(Being *const target, const bool keep,
{
if (settings.attackType == 2)
{
- if (pickUpItems())
+ if (pickUpItems(0))
return;
}
setTarget(target);
if (target->getType() != ActorType::Npc)
{
mKeepAttacking = true;
- moveToTarget();
+ moveToTarget(-1);
}
}
}
@@ -2526,7 +2536,7 @@ void LocalPlayer::followMoveTo(const Being *const being,
setTarget(b);
}
}
- moveToTarget();
+ moveToTarget(-1);
setNextDest(x2, y2);
break;
default:
diff --git a/src/being/localplayer.h b/src/being/localplayer.h
index 11ac545bc..a262a6651 100644
--- a/src/being/localplayer.h
+++ b/src/being/localplayer.h
@@ -56,7 +56,7 @@ class LocalPlayer final : public Being,
* Constructor.
*/
explicit LocalPlayer(const BeingId id,
- const BeingTypeId subType = BeingTypeId_zero);
+ const BeingTypeId subType);
A_DELETE_COPY(LocalPlayer)
@@ -103,15 +103,17 @@ class LocalPlayer final : public Being,
int getAttackRange2() const A_WARN_UNUSED;
- void attack(Being *const target = nullptr, const bool keep = false,
- const bool dontChangeEquipment = false);
+ void attack(Being *const target,
+ const bool keep,
+ const bool dontChangeEquipment);
- void attack2(Being *const target = nullptr, const bool keep = false,
- const bool dontChangeEquipment = false);
+ void attack2(Being *const target,
+ const bool keep,
+ const bool dontChangeEquipment);
void setGroupId(const int id) override final;
- void stopAttack(const bool keepAttack = false);
+ void stopAttack(const bool keepAttack);
void untarget();
@@ -154,13 +156,13 @@ class LocalPlayer final : public Being,
* Returns whether the target is in range to attack
*/
bool withinAttackRange(const Being *const target,
- const bool fixDistance = false,
- const int addRange = 0) const A_WARN_UNUSED;
+ const bool fixDistance,
+ const int addRange) const A_WARN_UNUSED;
/**
* Stops the player dead in his tracks
*/
- void stopWalking(const bool sendToServer = true);
+ void stopWalking(const bool sendToServer);
bool toggleSit() const;
@@ -205,18 +207,19 @@ class LocalPlayer final : public Being,
void moveByDirection(const unsigned char dir);
- bool pickUpItems(int pickUpType = 0);
+ bool pickUpItems(int pickUpType);
void move(const int dX, const int dY);
- void moveToTarget(int dist = -1);
+ void moveToTarget(int dist);
void moveToHome();
bool isReachable(Being *const being,
- const int maxCost = 0) A_WARN_UNUSED;
+ const int maxCost) A_WARN_UNUSED;
- bool isReachable(const int x, const int y,
+ bool isReachable(const int x,
+ const int y,
const bool allowCollision) const A_WARN_UNUSED;
void setHome();
@@ -253,12 +256,17 @@ class LocalPlayer final : public Being,
const unsigned char dir);
void imitateOutfit(const Being *const player,
- const int sprite = -1) const;
+ const int sprite) const;
- void followMoveTo(const Being *const being, const int x, const int y);
+ void followMoveTo(const Being *const being,
+ const int x,
+ const int y);
- void followMoveTo(const Being *const being, const int x1, const int y1,
- const int x2, const int y2);
+ void followMoveTo(const Being *const being,
+ const int x1,
+ const int y1,
+ const int x2,
+ const int y2);
bool allowAction() A_WARN_UNUSED;
@@ -275,8 +283,7 @@ class LocalPlayer final : public Being,
void setMap(Map *const map) override final;
void addMessageToQueue(const std::string &message,
- const UserColorIdT color
- = UserColorId::EXP_INFO);
+ const UserColorIdT color);
/**
* Called when a option (set with config.addListener()) is changed
@@ -385,7 +392,7 @@ class LocalPlayer final : public Being,
void updateStatus() const;
void setTestParticle(const std::string &fileName,
- const bool updateHash = true);
+ const bool updateHash);
int getLastAttackX() const override final
{ return mTarget != nullptr ? mTarget->mX : mLastAttackX; }
diff --git a/src/net/ea/playerrecv.cpp b/src/net/ea/playerrecv.cpp
index 2f0e5782f..493e80a5e 100644
--- a/src/net/ea/playerrecv.cpp
+++ b/src/net/ea/playerrecv.cpp
@@ -73,7 +73,7 @@ void PlayerRecv::processPlayerWarp(Net::MessageIn &msg)
* to changeMap, as it deletes all beings.
*/
if (localPlayer != nullptr)
- localPlayer->stopAttack();
+ localPlayer->stopAttack(false);
Game *const game = Game::instance();
if (game == nullptr)
diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp
index ff67669d4..30c6a932e 100644
--- a/src/net/eathena/beingrecv.cpp
+++ b/src/net/eathena/beingrecv.cpp
@@ -1598,7 +1598,7 @@ void BeingRecv::processBeingResurrect(Net::MessageIn &msg)
// If this is player's current target, clear it.
if (dstBeing == localPlayer->getTarget())
- localPlayer->stopAttack();
+ localPlayer->stopAttack(false);
if (dstBeing == localPlayer &&
deathNotice != nullptr)
{
@@ -1844,7 +1844,7 @@ void BeingRecv::processBeingSlide(Net::MessageIn &msg)
return;
if (localPlayer == dstBeing)
{
- localPlayer->stopAttack();
+ localPlayer->stopAttack(false);
localPlayer->navigateClean();
if (viewport != nullptr)
viewport->returnCamera();
diff --git a/src/net/tmwa/beingrecv.cpp b/src/net/tmwa/beingrecv.cpp
index b4e1df298..874c5069f 100644
--- a/src/net/tmwa/beingrecv.cpp
+++ b/src/net/tmwa/beingrecv.cpp
@@ -363,7 +363,7 @@ void BeingRecv::processPlayerUpdate1(Net::MessageIn &msg)
}
dstBeing->setHairColor(hairColor);
}
- localPlayer->imitateOutfit(dstBeing);
+ localPlayer->imitateOutfit(dstBeing, -1);
uint16_t x, y;
msg.readCoordinates(x, y, dir, "position");
@@ -507,7 +507,7 @@ void BeingRecv::processPlayerUpdate2(Net::MessageIn &msg)
}
dstBeing->setHairColor(hairColor);
}
- localPlayer->imitateOutfit(dstBeing);
+ localPlayer->imitateOutfit(dstBeing, -1);
uint16_t x, y;
msg.readCoordinates(x, y, dir, "position");
@@ -651,7 +651,7 @@ void BeingRecv::processPlayerMove(Net::MessageIn &msg)
}
dstBeing->setHairColor(hairColor);
}
- localPlayer->imitateOutfit(dstBeing);
+ localPlayer->imitateOutfit(dstBeing, -1);
uint16_t srcX, srcY, dstX, dstY;
msg.readCoordinatePair(srcX, srcY, dstX, dstY, "moving path");
@@ -1298,7 +1298,7 @@ void BeingRecv::processBeingResurrect(Net::MessageIn &msg)
// If this is player's current target, clear it.
if (dstBeing == localPlayer->getTarget())
- localPlayer->stopAttack();
+ localPlayer->stopAttack(false);
if (dstBeing == localPlayer &&
deathNotice != nullptr)
{
diff --git a/src/progs/manaplus/actions/actions.cpp b/src/progs/manaplus/actions/actions.cpp
index d71ba50a5..67eefc568 100644
--- a/src/progs/manaplus/actions/actions.cpp
+++ b/src/progs/manaplus/actions/actions.cpp
@@ -672,7 +672,7 @@ impHandler(pickup)
const std::string args = event.args;
if (args.empty())
{
- localPlayer->pickUpItems();
+ localPlayer->pickUpItems(0);
}
else
{
@@ -837,7 +837,7 @@ impHandler0(stopAttack)
{
if (localPlayer != nullptr)
{
- localPlayer->stopAttack();
+ localPlayer->stopAttack(false);
// not consume if target attack key pressed
if (inputManager.isActionActive(InputAction::TARGET_ATTACK))
return false;
@@ -885,7 +885,7 @@ impHandler(attack)
else
localPlayer->setTarget(target);
if (target != nullptr)
- localPlayer->attack(target, true);
+ localPlayer->attack(target, true, false);
return true;
}
@@ -925,7 +925,7 @@ impHandler(targetAttack)
localPlayer, 90, ActorType::Monster, AllowSort_true);
}
- localPlayer->attack2(target, newTarget);
+ localPlayer->attack2(target, newTarget, false);
return true;
}
return false;
@@ -940,7 +940,7 @@ impHandler0(attackHuman)
if (target != nullptr)
{
localPlayer->setTarget(target);
- localPlayer->attack2(target, true);
+ localPlayer->attack2(target, true, false);
}
return true;
}
@@ -956,7 +956,7 @@ impHandler0(stopSit)
{
if (localPlayer != nullptr)
{
- localPlayer->stopAttack();
+ localPlayer->stopAttack(false);
// not consume if target attack key pressed
if (inputManager.isActionActive(InputAction::TARGET_ATTACK))
return false;
diff --git a/src/progs/manaplus/actions/commands.cpp b/src/progs/manaplus/actions/commands.cpp
index 765d1ceb1..985a17a5f 100644
--- a/src/progs/manaplus/actions/commands.cpp
+++ b/src/progs/manaplus/actions/commands.cpp
@@ -843,7 +843,7 @@ impHandler(testParticle)
{
if (localPlayer != nullptr)
{
- localPlayer->setTestParticle(event.args);
+ localPlayer->setTestParticle(event.args, true);
return true;
}
return false;
diff --git a/src/progs/manaplus/actions/move.cpp b/src/progs/manaplus/actions/move.cpp
index d2be4de7e..ea4088f61 100644
--- a/src/progs/manaplus/actions/move.cpp
+++ b/src/progs/manaplus/actions/move.cpp
@@ -176,7 +176,7 @@ impHandler0(moveToTarget)
!inputManager.isActionActive(InputAction::TARGET_ATTACK) &&
!inputManager.isActionActive(InputAction::ATTACK))
{
- localPlayer->moveToTarget();
+ localPlayer->moveToTarget(-1);
return true;
}
return false;
diff --git a/src/progs/manaplus/gui/viewport.cpp b/src/progs/manaplus/gui/viewport.cpp
index de7571c7c..2ae57f170 100644
--- a/src/progs/manaplus/gui/viewport.cpp
+++ b/src/progs/manaplus/gui/viewport.cpp
@@ -467,7 +467,8 @@ bool Viewport::leftMouseAction()
case ActorType::SkillUnit:
if (!stopAttack)
{
- if (localPlayer->withinAttackRange(mHoverBeing) ||
+ if (localPlayer->withinAttackRange(mHoverBeing,
+ false, 0) ||
inputManager.isActionActive(InputAction::ATTACK))
{
validateSpeed();
@@ -475,7 +476,8 @@ bool Viewport::leftMouseAction()
{
localPlayer->attack(mHoverBeing,
!inputManager.isActionActive(
- InputAction::STOP_ATTACK));
+ InputAction::STOP_ATTACK),
+ false);
return true;
}
}
@@ -531,7 +533,7 @@ bool Viewport::leftMouseAction()
localPlayer->canMove())
{
validateSpeed();
- localPlayer->stopAttack();
+ localPlayer->stopAttack(false);
localPlayer->cancelFollow();
mPlayerFollowMouse = mAllowMoveByMouse;
if (mPlayerFollowMouse)