summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/being/playerinfo.h2
-rw-r--r--src/gui/widgets/attrs/changedisplay.cpp3
-rw-r--r--src/gui/windows/statuswindow.cpp9
-rw-r--r--src/net/ea/playerrecv.cpp4
-rw-r--r--src/net/eathena/inventoryrecv.cpp6
-rw-r--r--src/net/eathena/playerhandler.cpp60
-rw-r--r--src/net/eathena/playerrecv.cpp10
-rw-r--r--src/net/tmwa/playerhandler.cpp77
-rw-r--r--src/net/tmwa/playerrecv.cpp3
9 files changed, 127 insertions, 47 deletions
diff --git a/src/being/playerinfo.h b/src/being/playerinfo.h
index 5528a1c3d..504b7d1d2 100644
--- a/src/being/playerinfo.h
+++ b/src/being/playerinfo.h
@@ -103,7 +103,7 @@ namespace PlayerInfo
*/
void setAttribute(const AttributesT id,
const int64_t value,
- const Notify notify = Notify_true);
+ const Notify notify);
int getSkillLevel(const int id) A_WARN_UNUSED;
diff --git a/src/gui/widgets/attrs/changedisplay.cpp b/src/gui/widgets/attrs/changedisplay.cpp
index e1af1eb76..213abc3d5 100644
--- a/src/gui/widgets/attrs/changedisplay.cpp
+++ b/src/gui/widgets/attrs/changedisplay.cpp
@@ -97,7 +97,8 @@ void ChangeDisplay::action(const ActionEvent &event)
const int newpoints = PlayerInfo::getAttribute(
Attributes::PLAYER_CHAR_POINTS) - cnt;
PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS,
- newpoints);
+ newpoints,
+ Notify_true);
const int newbase = PlayerInfo::getStatBase(mId) + cnt;
PlayerInfo::setStatBase(mId, newbase);
diff --git a/src/gui/windows/statuswindow.cpp b/src/gui/windows/statuswindow.cpp
index 092e401c2..c144fdc57 100644
--- a/src/gui/windows/statuswindow.cpp
+++ b/src/gui/windows/statuswindow.cpp
@@ -350,7 +350,8 @@ void StatusWindow::attributeChanged(const AttributesT id,
lvl = CAST_S32((expNeed - 20000) / 150);
blocked = true;
PlayerInfo::setAttribute(Attributes::PLAYER_JOB_LEVEL,
- lvl);
+ lvl,
+ Notify_true);
blocked = false;
}
}
@@ -363,9 +364,11 @@ void StatusWindow::attributeChanged(const AttributesT id,
lvl ++;
blocked = true;
PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP_NEEDED,
- 20000 + lvl * 150);
+ 20000 + lvl * 150,
+ Notify_true);
PlayerInfo::setAttribute(Attributes::PLAYER_JOB_LEVEL,
- lvl);
+ lvl,
+ Notify_true);
blocked = false;
}
diff --git a/src/net/ea/playerrecv.cpp b/src/net/ea/playerrecv.cpp
index edc604907..2f0e5782f 100644
--- a/src/net/ea/playerrecv.cpp
+++ b/src/net/ea/playerrecv.cpp
@@ -183,7 +183,9 @@ void PlayerRecv::processPlayerStatUpdate4(Net::MessageIn &msg)
static_cast<AttributesT>(type));
const int points = PlayerInfo::getAttribute(
Attributes::PLAYER_CHAR_POINTS) + oldValue - value;
- PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS, points);
+ PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS,
+ points,
+ Notify_true);
NotifyManager::notify(NotifyTypes::SKILL_RAISE_ERROR);
}
diff --git a/src/net/eathena/inventoryrecv.cpp b/src/net/eathena/inventoryrecv.cpp
index ead74ad63..30ff720eb 100644
--- a/src/net/eathena/inventoryrecv.cpp
+++ b/src/net/eathena/inventoryrecv.cpp
@@ -912,9 +912,11 @@ void InventoryRecv::processCartInfo(Net::MessageIn &msg)
msg.readInt16("cart items used");
const int size = msg.readInt16("max cart items");
PlayerInfo::setAttribute(Attributes::CART_TOTAL_WEIGHT,
- msg.readInt32("cart weight"));
+ msg.readInt32("cart weight"),
+ Notify_true);
PlayerInfo::setAttribute(Attributes::CART_MAX_WEIGHT,
- msg.readInt32("max cart weight"));
+ msg.readInt32("max cart weight"),
+ Notify_true);
if (mCartItems.empty())
return;
diff --git a/src/net/eathena/playerhandler.cpp b/src/net/eathena/playerhandler.cpp
index 1091fd454..e98331a28 100644
--- a/src/net/eathena/playerhandler.cpp
+++ b/src/net/eathena/playerhandler.cpp
@@ -529,10 +529,14 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
PlayerInfo::setStatMod(Attributes::PLAYER_WALK_SPEED, 0);
break;
case Sp::BASEEXP:
- PlayerInfo::setAttribute(Attributes::PLAYER_EXP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_EXP,
+ base,
+ Notify_true);
break;
case Sp::JOBEXP:
- PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP,
+ base,
+ Notify_true);
break;
case Sp::KARMA:
PlayerInfo::setStatBase(Attributes::PLAYER_KARMA, base);
@@ -543,7 +547,9 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
PlayerInfo::setStatMod(Attributes::PLAYER_MANNER, 0);
break;
case Sp::HP:
- PlayerInfo::setAttribute(Attributes::PLAYER_HP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_HP,
+ base,
+ Notify_true);
if (localPlayer->isInParty() && (Party::getParty(1) != nullptr))
{
PartyMember *const m = Party::getParty(1)
@@ -557,7 +563,9 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
}
break;
case Sp::MAXHP:
- PlayerInfo::setAttribute(Attributes::PLAYER_MAX_HP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_MAX_HP,
+ base,
+ Notify_true);
if (localPlayer->isInParty() && (Party::getParty(1) != nullptr))
{
@@ -571,16 +579,24 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
}
break;
case Sp::SP:
- PlayerInfo::setAttribute(Attributes::PLAYER_MP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_MP,
+ base,
+ Notify_true);
break;
case Sp::MAXSP:
- PlayerInfo::setAttribute(Attributes::PLAYER_MAX_MP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_MAX_MP,
+ base,
+ Notify_true);
break;
case Sp::STATUSPOINT:
- PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS,
+ base,
+ Notify_true);
break;
case Sp::BASELEVEL:
- PlayerInfo::setAttribute(Attributes::PLAYER_BASE_LEVEL, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_BASE_LEVEL,
+ base,
+ Notify_true);
if (localPlayer != nullptr)
{
localPlayer->setLevel(base);
@@ -588,7 +604,9 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
}
break;
case Sp::SKILLPOINT:
- PlayerInfo::setAttribute(Attributes::PLAYER_SKILL_POINTS, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_SKILL_POINTS,
+ base,
+ Notify_true);
if (skillDialog != nullptr)
skillDialog->update();
break;
@@ -625,20 +643,30 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
UnitsDb::formatCurrency(oldMoney - newMoney).c_str());
}
- PlayerInfo::setAttribute(Attributes::MONEY, newMoney);
+ PlayerInfo::setAttribute(Attributes::MONEY,
+ newMoney,
+ Notify_true);
break;
}
case Sp::NEXTBASEEXP:
- PlayerInfo::setAttribute(Attributes::PLAYER_EXP_NEEDED, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_EXP_NEEDED,
+ base,
+ Notify_true);
break;
case Sp::NEXTJOBEXP:
- PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP_NEEDED, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP_NEEDED,
+ base,
+ Notify_true);
break;
case Sp::WEIGHT:
- PlayerInfo::setAttribute(Attributes::TOTAL_WEIGHT, base);
+ PlayerInfo::setAttribute(Attributes::TOTAL_WEIGHT,
+ base,
+ Notify_true);
break;
case Sp::MAXWEIGHT:
- PlayerInfo::setAttribute(Attributes::MAX_WEIGHT, base);
+ PlayerInfo::setAttribute(Attributes::MAX_WEIGHT,
+ base,
+ Notify_true);
break;
case Sp::USTR:
statusWindow->setPointsNeeded(Attributes::PLAYER_STR, base);
@@ -704,7 +732,9 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
PlayerInfo::updateAttrs();
break;
case Sp::JOBLEVEL:
- PlayerInfo::setAttribute(Attributes::PLAYER_JOB_LEVEL, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_JOB_LEVEL,
+ base,
+ Notify_true);
break;
default:
diff --git a/src/net/eathena/playerrecv.cpp b/src/net/eathena/playerrecv.cpp
index 436852091..7aad0440a 100644
--- a/src/net/eathena/playerrecv.cpp
+++ b/src/net/eathena/playerrecv.cpp
@@ -77,7 +77,8 @@ void PlayerRecv::processPlayerStatUpdate5(Net::MessageIn &msg)
{
BLOCK_START("PlayerRecv::processPlayerStatUpdate5")
PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS,
- msg.readInt16("char points"));
+ msg.readInt16("char points"),
+ Notify_true);
unsigned int val = msg.readUInt8("str");
PlayerInfo::setStatBase(Attributes::PLAYER_STR, val);
@@ -185,7 +186,8 @@ void PlayerRecv::processPlayerStatUpdate5(Net::MessageIn &msg)
msg.readInt16("crit/10"));
PlayerInfo::setAttribute(Attributes::PLAYER_ATTACK_DELAY,
- msg.readInt16("attack speed"));
+ msg.readInt16("attack speed"),
+ Notify_true);
msg.readInt16("plus speed = 0");
BLOCK_END("PlayerRecv::processPlayerStatUpdate5")
@@ -282,7 +284,9 @@ void PlayerRecv::processPlayerHeal(Net::MessageIn &msg)
{
const int base = PlayerInfo::getAttribute(Attributes::PLAYER_HP) +
amount;
- PlayerInfo::setAttribute(Attributes::PLAYER_HP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_HP,
+ base,
+ Notify_true);
if (localPlayer->isInParty() && (Party::getParty(1) != nullptr))
{
PartyMember *const m = Party::getParty(1)
diff --git a/src/net/tmwa/playerhandler.cpp b/src/net/tmwa/playerhandler.cpp
index ef1b704a8..27cfc4bf4 100644
--- a/src/net/tmwa/playerhandler.cpp
+++ b/src/net/tmwa/playerhandler.cpp
@@ -230,21 +230,35 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
PlayerInfo::setStatMod(Attributes::PLAYER_WALK_SPEED, 0);
break;
case Sp::BASEEXP:
- PlayerInfo::setAttribute(Attributes::PLAYER_EXP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_EXP,
+ base,
+ Notify_true);
break;
case Sp::JOBEXP:
- PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP,
+ base,
+ Notify_true);
break;
case Sp::KARMA:
- PlayerInfo::setStatBase(Attributes::PLAYER_KARMA, base);
- PlayerInfo::setStatMod(Attributes::PLAYER_KARMA, 0);
+ PlayerInfo::setStatBase(Attributes::PLAYER_KARMA,
+ base,
+ Notify_true);
+ PlayerInfo::setStatMod(Attributes::PLAYER_KARMA,
+ 0,
+ Notify_true);
break;
case Sp::MANNER:
- PlayerInfo::setStatBase(Attributes::PLAYER_MANNER, base);
- PlayerInfo::setStatMod(Attributes::PLAYER_MANNER, 0);
+ PlayerInfo::setStatBase(Attributes::PLAYER_MANNER,
+ base,
+ Notify_true);
+ PlayerInfo::setStatMod(Attributes::PLAYER_MANNER,
+ 0,
+ Notify_true);
break;
case Sp::HP:
- PlayerInfo::setAttribute(Attributes::PLAYER_HP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_HP,
+ base,
+ Notify_true);
if (localPlayer->isInParty() && (Party::getParty(1) != nullptr))
{
PartyMember *const m = Party::getParty(1)
@@ -258,7 +272,9 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
}
break;
case Sp::MAXHP:
- PlayerInfo::setAttribute(Attributes::PLAYER_MAX_HP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_MAX_HP,
+ base,
+ Notify_true);
if (localPlayer->isInParty() && (Party::getParty(1) != nullptr))
{
@@ -272,16 +288,24 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
}
break;
case Sp::SP:
- PlayerInfo::setAttribute(Attributes::PLAYER_MP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_MP,
+ base,
+ Notify_true);
break;
case Sp::MAXSP:
- PlayerInfo::setAttribute(Attributes::PLAYER_MAX_MP, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_MAX_MP,
+ base,
+ Notify_true);
break;
case Sp::STATUSPOINT:
- PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS,
+ base,
+ Notify_true);
break;
case Sp::BASELEVEL:
- PlayerInfo::setAttribute(Attributes::PLAYER_BASE_LEVEL, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_BASE_LEVEL,
+ base,
+ Notify_true);
if (localPlayer != nullptr)
{
localPlayer->setLevel(base);
@@ -289,7 +313,9 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
}
break;
case Sp::SKILLPOINT:
- PlayerInfo::setAttribute(Attributes::PLAYER_SKILL_POINTS, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_SKILL_POINTS,
+ base,
+ Notify_true);
if (skillDialog != nullptr)
skillDialog->update();
break;
@@ -326,20 +352,30 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
UnitsDb::formatCurrency(oldMoney - newMoney).c_str());
}
- PlayerInfo::setAttribute(Attributes::MONEY, newMoney);
+ PlayerInfo::setAttribute(Attributes::MONEY,
+ newMoney,
+ Notify_true);
break;
}
case Sp::NEXTBASEEXP:
- PlayerInfo::setAttribute(Attributes::PLAYER_EXP_NEEDED, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_EXP_NEEDED,
+ base,
+ Notify_true);
break;
case Sp::JOB_MOD:
- PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP_NEEDED, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_JOB_EXP_NEEDED,
+ base,
+ Notify_true);
break;
case Sp::WEIGHT:
- PlayerInfo::setAttribute(Attributes::TOTAL_WEIGHT, base);
+ PlayerInfo::setAttribute(Attributes::TOTAL_WEIGHT,
+ base,
+ Notify_true);
break;
case Sp::MAXWEIGHT:
- PlayerInfo::setAttribute(Attributes::MAX_WEIGHT, base);
+ PlayerInfo::setAttribute(Attributes::MAX_WEIGHT,
+ base,
+ Notify_true);
break;
case Sp::USTR:
statusWindow->setPointsNeeded(Attributes::PLAYER_STR, base);
@@ -359,7 +395,6 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
case Sp::ULUK:
statusWindow->setPointsNeeded(Attributes::PLAYER_LUK, base);
break;
-
case Sp::ATK1:
PlayerInfo::setStatBase(Attributes::PLAYER_ATK, base);
PlayerInfo::updateAttrs();
@@ -405,7 +440,9 @@ void PlayerHandler::setStat(Net::MessageIn &msg,
PlayerInfo::updateAttrs();
break;
case Sp::JOBLEVEL:
- PlayerInfo::setAttribute(Attributes::PLAYER_JOB_LEVEL, base);
+ PlayerInfo::setAttribute(Attributes::PLAYER_JOB_LEVEL,
+ base,
+ Notify_true);
break;
case Sp::GM_LEVEL:
localPlayer->setGroupId(base);
diff --git a/src/net/tmwa/playerrecv.cpp b/src/net/tmwa/playerrecv.cpp
index b6b23403f..4bd0f7f88 100644
--- a/src/net/tmwa/playerrecv.cpp
+++ b/src/net/tmwa/playerrecv.cpp
@@ -38,7 +38,8 @@ void PlayerRecv::processPlayerStatUpdate5(Net::MessageIn &msg)
{
BLOCK_START("PlayerRecv::processPlayerStatUpdate5")
PlayerInfo::setAttribute(Attributes::PLAYER_CHAR_POINTS,
- msg.readInt16("char points"));
+ msg.readInt16("char points"),
+ Notify_true);
unsigned int val = msg.readUInt8("str");
PlayerInfo::setStatBase(Attributes::PLAYER_STR, val);