summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/beinghandler.cpp45
-rw-r--r--src/net/eathena/beingrecv.cpp93
-rw-r--r--src/net/eathena/charserverrecv.cpp33
3 files changed, 130 insertions, 41 deletions
diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp
index 0243f1899..19789f802 100644
--- a/src/net/eathena/beinghandler.cpp
+++ b/src/net/eathena/beinghandler.cpp
@@ -53,63 +53,78 @@ void BeingHandler::undress(Being *const being) const
being->setSprite(SPRITE_WEAPON,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_HEAD_BOTTOM,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_HEAD_TOP,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_HEAD_MID,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_CLOTHES_COLOR,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_SHIELD,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_FLOOR,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_ROBE,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_EVOL2,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_EVOL3,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_EVOL4,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_EVOL5,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_EVOL6,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_HAIR,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
being->setSprite(SPRITE_SHOES,
0,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
}
void BeingHandler::requestRanks(const RankT rank) const
diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp
index 4c7e2727e..ea84fe0d0 100644
--- a/src/net/eathena/beingrecv.cpp
+++ b/src/net/eathena/beingrecv.cpp
@@ -168,23 +168,36 @@ void BeingRecv::processBeingChangeLookContinue(const Net::MessageIn &msg,
dstBeing->setSprite(SPRITE_FLOOR,
id2,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_FLOOR);
break;
case 3: // LOOK_HEAD_BOTTOM
- dstBeing->setSprite(SPRITE_WEAPON, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_WEAPON,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_WEAPON);
break;
case 4: // LOOK_HEAD_TOP Change upper headgear for eAthena, hat for us
- dstBeing->setSprite(SPRITE_CLOTHES_COLOR, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_CLOTHES_COLOR,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_CLOTHES_COLOR);
break;
case 5: // LOOK_HEAD_MID Change middle headgear for eathena,
// armor for us
- dstBeing->setSprite(SPRITE_HEAD_BOTTOM, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_HEAD_BOTTOM,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_HEAD_BOTTOM);
break;
@@ -199,62 +212,110 @@ void BeingRecv::processBeingChangeLookContinue(const Net::MessageIn &msg,
dstBeing->setLook(CAST_U8(id));
break;
case 8: // eAthena LOOK_SHIELD
- dstBeing->setSprite(SPRITE_FLOOR, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_FLOOR,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_FLOOR);
break;
case 9: // eAthena LOOK_SHOES
- dstBeing->setSprite(SPRITE_HAIR, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_HAIR,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_HAIR);
break;
case 10: // LOOK_GLOVES
- dstBeing->setSprite(SPRITE_SHOES, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_SHOES,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_SHOES);
break;
case 11: // LOOK_FLOOR
- dstBeing->setSprite(SPRITE_SHIELD, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_SHIELD,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_SHIELD);
break;
case 12: // LOOK_ROBE
- dstBeing->setSprite(SPRITE_HEAD_TOP, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_HEAD_TOP,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_HEAD_TOP);
break;
case 13: // COSTUME_HEAD_TOP
- dstBeing->setSprite(SPRITE_HEAD_MID, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_HEAD_MID,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_HEAD_MID);
break;
case 14: // COSTUME_HEAD_MID
- dstBeing->setSprite(SPRITE_ROBE, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_ROBE,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_ROBE);
break;
case 15: // COSTUME_HEAD_LOW
- dstBeing->setSprite(SPRITE_EVOL2, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_EVOL2,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_EVOL2);
break;
case 16: // COSTUME_GARMENT
- dstBeing->setSprite(SPRITE_EVOL3, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_EVOL3,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_EVOL3);
break;
case 17: // ARMOR
- dstBeing->setSprite(SPRITE_EVOL4, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_EVOL4,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_EVOL4);
break;
case 18:
- dstBeing->setSprite(SPRITE_EVOL5, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_EVOL5,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_EVOL5);
break;
case 19:
- dstBeing->setSprite(SPRITE_EVOL6, id, color, itemColor);
+ dstBeing->setSprite(SPRITE_EVOL6,
+ id,
+ color,
+ itemColor,
+ IsWeapon_false);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_EVOL6);
break;
diff --git a/src/net/eathena/charserverrecv.cpp b/src/net/eathena/charserverrecv.cpp
index e10339b40..67917cfd8 100644
--- a/src/net/eathena/charserverrecv.cpp
+++ b/src/net/eathena/charserverrecv.cpp
@@ -147,7 +147,11 @@ void CharServerRecv::readPlayerData(Net::MessageIn &msg,
tempPlayer->setHairColor(color);
if (hairStyle == 0)
{
- tempPlayer->setSprite(SPRITE_HAIR_COLOR, 0, std::string(), ItemColor_one);
+ tempPlayer->setSprite(SPRITE_HAIR_COLOR,
+ 0,
+ std::string(),
+ ItemColor_one,
+ IsWeapon_false);
}
else
{
@@ -155,7 +159,8 @@ void CharServerRecv::readPlayerData(Net::MessageIn &msg,
hairStyle * -1,
ItemDB::get(-hairStyle).getDyeColorsString(
color),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
}
const uint16_t look = msg.readInt16("clothes color");
@@ -187,35 +192,43 @@ void CharServerRecv::readPlayerData(Net::MessageIn &msg,
tempPlayer->setSprite(SPRITE_HAIR,
shoes,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
tempPlayer->setSprite(SPRITE_SHOES,
gloves,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
tempPlayer->setSprite(SPRITE_SHIELD,
cape,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
tempPlayer->setSprite(SPRITE_HEAD_TOP,
misc1,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
tempPlayer->setSprite(SPRITE_WEAPON,
bottomClothes,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
tempPlayer->setSprite(SPRITE_FLOOR,
shield,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
tempPlayer->setSprite(SPRITE_CLOTHES_COLOR,
hat,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
tempPlayer->setSprite(SPRITE_HEAD_BOTTOM,
topClothes,
std::string(),
- ItemColor_one);
+ ItemColor_one,
+ IsWeapon_false);
// tempPlayer->setSprite(SPRITE_HEAD_MID, misc2);
}
if (packetVersion >= 20110928)