summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/actormanager.cpp8
-rw-r--r--src/being/being.cpp36
-rw-r--r--src/being/being.h2
-rw-r--r--src/gui/windows/charcreatedialog.cpp5
-rw-r--r--src/net/eathena/beinghandler.cpp76
-rw-r--r--src/net/eathena/beingrecv.cpp5
-rw-r--r--src/net/eathena/charserverrecv.cpp48
-rw-r--r--src/net/tmwa/beinghandler.cpp26
-rw-r--r--src/net/tmwa/beingrecv.cpp49
-rw-r--r--src/net/tmwa/charserverrecv.cpp51
10 files changed, 235 insertions, 71 deletions
diff --git a/src/actormanager.cpp b/src/actormanager.cpp
index 0cfd9571d..75be42fb3 100644
--- a/src/actormanager.cpp
+++ b/src/actormanager.cpp
@@ -2047,11 +2047,15 @@ Being *ActorManager::cloneBeing(const Being *const srcBeing,
{
dstBeing->setSprite(hairSlot,
hairStyle * -1,
- ItemDB::get(-hairStyle).getDyeColorsString(hairColor));
+ ItemDB::get(-hairStyle).getDyeColorsString(hairColor),
+ ItemColor_one);
}
else
{
- dstBeing->setSprite(hairSlot, 0, std::string());
+ dstBeing->setSprite(hairSlot,
+ 0,
+ std::string(),
+ ItemColor_one);
}
dstBeing->setHairColor(hairColor);
return dstBeing;
diff --git a/src/being/being.cpp b/src/being/being.cpp
index 4adc83fcb..69550b6d3 100644
--- a/src/being/being.cpp
+++ b/src/being/being.cpp
@@ -495,7 +495,12 @@ void Being::setSubtype(const BeingTypeId subtype,
// TRANSLATORS: default race name
setRaceName(_("Human"));
if (charServerHandler)
- setSprite(charServerHandler->baseSprite(), id, std::string());
+ {
+ setSprite(charServerHandler->baseSprite(),
+ id,
+ std::string(),
+ ItemColor_one);
+ }
}
else
{
@@ -505,7 +510,8 @@ void Being::setSubtype(const BeingTypeId subtype,
{
setSprite(charServerHandler->baseSprite(),
id,
- info.getColor(fromInt(mLook, ItemColor)));
+ info.getColor(fromInt(mLook, ItemColor)),
+ ItemColor_one);
}
}
}
@@ -2604,20 +2610,23 @@ void Being::setSprite(const unsigned int slot,
void Being::setSpriteID(const unsigned int slot,
const int id) restrict2
{
- setSprite(slot, id, mSpriteColors[slot]);
+ setSprite(slot, id, mSpriteColors[slot], ItemColor_one);
}
void Being::setSpriteColor(const unsigned int slot,
const std::string &restrict color) restrict2
{
- setSprite(slot, mSpriteIDs[slot], color);
+ setSprite(slot, mSpriteIDs[slot], color, ItemColor_one);
}
void Being::setHairStyle(const unsigned int slot,
const int id) restrict2
{
// dumpSprites();
- setSprite(slot, id, ItemDB::get(id).getDyeColorsString(mHairColor));
+ setSprite(slot,
+ id,
+ ItemDB::get(id).getDyeColorsString(mHairColor),
+ ItemColor_one);
// dumpSprites();
}
@@ -2630,7 +2639,8 @@ void Being::setHairColor(const unsigned int slot,
{
setSprite(slot,
mSpriteIDs[slot],
- ItemDB::get(id).getDyeColorsString(color));
+ ItemDB::get(id).getDyeColorsString(color),
+ ItemColor_one);
}
}
@@ -2813,8 +2823,13 @@ void Being::setGender(const GenderT gender) restrict2
i < CAST_U32(mSpriteIDs.size());
i++)
{
- if (mSpriteIDs.at(i) != 0)
- setSprite(i, mSpriteIDs.at(i), mSpriteColors.at(i));
+ if (mSpriteIDs[i] != 0)
+ {
+ setSprite(i,
+ mSpriteIDs[i],
+ mSpriteColors[i],
+ ItemColor_one);
+ }
}
updateName();
@@ -3663,7 +3678,10 @@ void Being::undressItemById(const int id) restrict2
{
if (id == mSpriteIDs[f])
{
- setSprite(CAST_U32(f), 0, std::string());
+ setSprite(CAST_U32(f),
+ 0,
+ std::string(),
+ ItemColor_one);
break;
}
}
diff --git a/src/being/being.h b/src/being/being.h
index 28cf7a04a..80752bfd2 100644
--- a/src/being/being.h
+++ b/src/being/being.h
@@ -322,7 +322,7 @@ class Being notfinal : public ActorSprite,
void setSprite(const unsigned int slot,
const int id,
std::string color,
- ItemColor colorId = ItemColor_one,
+ ItemColor colorId,
const IsWeapon isWeapon = IsWeapon_false,
const IsTempSprite isTempSprite = IsTempSprite_false,
const int *const cards = nullptr)
diff --git a/src/gui/windows/charcreatedialog.cpp b/src/gui/windows/charcreatedialog.cpp
index 55b39bc62..412dd4761 100644
--- a/src/gui/windows/charcreatedialog.cpp
+++ b/src/gui/windows/charcreatedialog.cpp
@@ -156,7 +156,7 @@ CharCreateDialog::CharCreateDialog(CharSelectDialog *const parent,
it != it_fend;
++ it, i ++)
{
- mPlayer->setSprite(i, *it, std::string());
+ mPlayer->setSprite(i, *it, std::string(), ItemColor_one);
}
if (!maxHairColor)
@@ -767,7 +767,8 @@ void CharCreateDialog::updateHair()
mPlayer->setSprite(charServerHandler->hairSprite(),
mHairStyle * -1,
- item.getDyeColorsString(fromInt(mHairColor, ItemColor)));
+ item.getDyeColorsString(fromInt(mHairColor, ItemColor)),
+ ItemColor_one);
}
void CharCreateDialog::updateRace()
diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp
index f3de8d925..0243f1899 100644
--- a/src/net/eathena/beinghandler.cpp
+++ b/src/net/eathena/beinghandler.cpp
@@ -50,22 +50,66 @@ void BeingHandler::undress(Being *const being) const
{
if (!being)
return;
- being->setSprite(SPRITE_WEAPON, 0, std::string());
- being->setSprite(SPRITE_HEAD_BOTTOM, 0, std::string());
- being->setSprite(SPRITE_HEAD_TOP, 0, std::string());
- being->setSprite(SPRITE_HEAD_MID, 0, std::string());
- being->setSprite(SPRITE_CLOTHES_COLOR, 0, std::string());
- being->setSprite(SPRITE_SHIELD, 0, std::string());
- being->setSprite(SPRITE_FLOOR, 0, std::string());
- being->setSprite(SPRITE_ROBE, 0, std::string());
- being->setSprite(SPRITE_EVOL2, 0, std::string());
- being->setSprite(SPRITE_EVOL3, 0, std::string());
- being->setSprite(SPRITE_EVOL4, 0, std::string());
- being->setSprite(SPRITE_EVOL5, 0, std::string());
- being->setSprite(SPRITE_EVOL6, 0, std::string());
- being->setSprite(SPRITE_HAIR, 0, std::string());
- being->setSprite(SPRITE_SHOES, 0, std::string());
-// being->setSprite(SPRITE_BODY, 0, "", true);
+ being->setSprite(SPRITE_WEAPON,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_HEAD_BOTTOM,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_HEAD_TOP,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_HEAD_MID,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_CLOTHES_COLOR,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_SHIELD,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_FLOOR,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_ROBE,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_EVOL2,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_EVOL3,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_EVOL4,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_EVOL5,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_EVOL6,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_HAIR,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_SHOES,
+ 0,
+ std::string(),
+ ItemColor_one);
}
void BeingHandler::requestRanks(const RankT rank) const
diff --git a/src/net/eathena/beingrecv.cpp b/src/net/eathena/beingrecv.cpp
index ee31c236d..4c7e2727e 100644
--- a/src/net/eathena/beingrecv.cpp
+++ b/src/net/eathena/beingrecv.cpp
@@ -165,7 +165,10 @@ void BeingRecv::processBeingChangeLookContinue(const Net::MessageIn &msg,
"",
itemColor,
IsWeapon_true);
- dstBeing->setSprite(SPRITE_FLOOR, id2, std::string());
+ dstBeing->setSprite(SPRITE_FLOOR,
+ id2,
+ std::string(),
+ ItemColor_one);
if (localPlayer)
localPlayer->imitateOutfit(dstBeing, SPRITE_FLOOR);
break;
diff --git a/src/net/eathena/charserverrecv.cpp b/src/net/eathena/charserverrecv.cpp
index 0b3e5b82d..e10339b40 100644
--- a/src/net/eathena/charserverrecv.cpp
+++ b/src/net/eathena/charserverrecv.cpp
@@ -147,13 +147,15 @@ void CharServerRecv::readPlayerData(Net::MessageIn &msg,
tempPlayer->setHairColor(color);
if (hairStyle == 0)
{
- tempPlayer->setSprite(SPRITE_HAIR_COLOR, 0, std::string());
+ tempPlayer->setSprite(SPRITE_HAIR_COLOR, 0, std::string(), ItemColor_one);
}
else
{
- tempPlayer->setSprite(SPRITE_HAIR_COLOR, hairStyle * -1,
+ tempPlayer->setSprite(SPRITE_HAIR_COLOR,
+ hairStyle * -1,
ItemDB::get(-hairStyle).getDyeColorsString(
- color));
+ color),
+ ItemColor_one);
}
const uint16_t look = msg.readInt16("clothes color");
@@ -182,14 +184,38 @@ void CharServerRecv::readPlayerData(Net::MessageIn &msg,
shoes = msg.readInt32("robe");
if (!serverFeatures->haveAdvancedSprites())
{
- tempPlayer->setSprite(SPRITE_HAIR, shoes, std::string());
- tempPlayer->setSprite(SPRITE_SHOES, gloves, std::string());
- tempPlayer->setSprite(SPRITE_SHIELD, cape, std::string());
- tempPlayer->setSprite(SPRITE_HEAD_TOP, misc1, std::string());
- tempPlayer->setSprite(SPRITE_WEAPON, bottomClothes, std::string());
- tempPlayer->setSprite(SPRITE_FLOOR, shield, std::string());
- tempPlayer->setSprite(SPRITE_CLOTHES_COLOR, hat, std::string());
- tempPlayer->setSprite(SPRITE_HEAD_BOTTOM, topClothes, std::string());
+ tempPlayer->setSprite(SPRITE_HAIR,
+ shoes,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_SHOES,
+ gloves,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_SHIELD,
+ cape,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_HEAD_TOP,
+ misc1,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_WEAPON,
+ bottomClothes,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_FLOOR,
+ shield,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_CLOTHES_COLOR,
+ hat,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_HEAD_BOTTOM,
+ topClothes,
+ std::string(),
+ ItemColor_one);
// tempPlayer->setSprite(SPRITE_HEAD_MID, misc2);
}
if (packetVersion >= 20110928)
diff --git a/src/net/tmwa/beinghandler.cpp b/src/net/tmwa/beinghandler.cpp
index 6a3e8a854..159e56fb8 100644
--- a/src/net/tmwa/beinghandler.cpp
+++ b/src/net/tmwa/beinghandler.cpp
@@ -49,12 +49,26 @@ void BeingHandler::undress(Being *const being) const
{
if (!being)
return;
- being->setSprite(SPRITE_WEAPON, 0, std::string());
- being->setSprite(SPRITE_HEAD_BOTTOM, 0, std::string());
- being->setSprite(SPRITE_CLOTHES_COLOR, 0, std::string());
- being->setSprite(SPRITE_HAIR, 0, std::string());
- being->setSprite(SPRITE_SHOES, 0, std::string());
-// being->setSprite(SPRITE_BODY, 0, "", true);
+ being->setSprite(SPRITE_WEAPON,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_HEAD_BOTTOM,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_CLOTHES_COLOR,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_HAIR,
+ 0,
+ std::string(),
+ ItemColor_one);
+ being->setSprite(SPRITE_SHOES,
+ 0,
+ std::string(),
+ ItemColor_one);
}
#ifdef EATHENA_SUPPORT
diff --git a/src/net/tmwa/beingrecv.cpp b/src/net/tmwa/beingrecv.cpp
index 31b9bfdd0..8a47b1aca 100644
--- a/src/net/tmwa/beingrecv.cpp
+++ b/src/net/tmwa/beingrecv.cpp
@@ -148,21 +148,30 @@ void BeingRecv::processBeingChangeLookContinue(const Net::MessageIn &msg,
"",
ItemColor_one,
IsWeapon_true);
- dstBeing->setSprite(SPRITE_FLOOR, id2, std::string());
+ dstBeing->setSprite(SPRITE_FLOOR,
+ id2,
+ std::string(),
+ ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_FLOOR);
break;
case 3: // Change lower headgear for eAthena, pants for us
- dstBeing->setSprite(SPRITE_WEAPON, id, color,
+ dstBeing->setSprite(SPRITE_WEAPON,
+ id,
+ color,
ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_WEAPON);
break;
case 4: // Change upper headgear for eAthena, hat for us
- dstBeing->setSprite(SPRITE_CLOTHES_COLOR, id, color,
+ dstBeing->setSprite(SPRITE_CLOTHES_COLOR,
+ id,
+ color,
ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_CLOTHES_COLOR);
break;
case 5: // Change middle headgear for eathena, armor for us
- dstBeing->setSprite(SPRITE_HEAD_BOTTOM, id, color,
+ dstBeing->setSprite(SPRITE_HEAD_BOTTOM,
+ id,
+ color,
ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_HEAD_BOTTOM);
break;
@@ -174,42 +183,58 @@ void BeingRecv::processBeingChangeLookContinue(const Net::MessageIn &msg,
// ignoring it
break;
case 8: // eAthena LOOK_SHIELD
- dstBeing->setSprite(SPRITE_FLOOR, id, color,
+ dstBeing->setSprite(SPRITE_FLOOR,
+ id,
+ color,
ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_FLOOR);
break;
case 9: // eAthena LOOK_SHOES
- dstBeing->setSprite(SPRITE_HAIR, id, color,
+ dstBeing->setSprite(SPRITE_HAIR,
+ id,
+ color,
ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_HAIR);
break;
case 10: // LOOK_GLOVES
- dstBeing->setSprite(SPRITE_SHOES, id, color,
+ dstBeing->setSprite(SPRITE_SHOES,
+ id,
+ color,
ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_SHOES);
break;
case 11: // LOOK_CAPE
- dstBeing->setSprite(SPRITE_SHIELD, id, color,
+ dstBeing->setSprite(SPRITE_SHIELD,
+ id,
+ color,
ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_SHIELD);
break;
case 12:
- dstBeing->setSprite(SPRITE_HEAD_TOP, id, color,
+ dstBeing->setSprite(SPRITE_HEAD_TOP,
+ id,
+ color,
ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_HEAD_TOP);
break;
case 13:
- dstBeing->setSprite(SPRITE_HEAD_MID, id, color,
+ dstBeing->setSprite(SPRITE_HEAD_MID,
+ id,
+ color,
ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_HEAD_MID);
break;
case 14:
- dstBeing->setSprite(SPRITE_ROBE, id, color,
+ dstBeing->setSprite(SPRITE_ROBE,
+ id,
+ color,
ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_ROBE);
break;
case 15:
- dstBeing->setSprite(SPRITE_EVOL2, id, color,
+ dstBeing->setSprite(SPRITE_EVOL2,
+ id,
+ color,
ItemColor_one);
localPlayer->imitateOutfit(dstBeing, SPRITE_EVOL2);
break;
diff --git a/src/net/tmwa/charserverrecv.cpp b/src/net/tmwa/charserverrecv.cpp
index c599f17af..7c638882e 100644
--- a/src/net/tmwa/charserverrecv.cpp
+++ b/src/net/tmwa/charserverrecv.cpp
@@ -126,13 +126,15 @@ void CharServerRecv::readPlayerData(Net::MessageIn &msg,
{
tempPlayer->setSprite(SPRITE_HAIR_COLOR,
0,
- std::string());
+ std::string(),
+ ItemColor_one);
}
else
{
tempPlayer->setSprite(SPRITE_HAIR_COLOR,
hairStyle * -1,
- ItemDB::get(-hairStyle).getDyeColorsString(hairColor));
+ ItemDB::get(-hairStyle).getDyeColorsString(hairColor),
+ ItemColor_one);
}
tempPlayer->setHairColor(hairColor);
@@ -148,15 +150,42 @@ void CharServerRecv::readPlayerData(Net::MessageIn &msg,
character->data.mStats[Attributes::DEX].base = msg.readUInt8("dex");
character->data.mStats[Attributes::LUK].base = msg.readUInt8("luk");
- tempPlayer->setSprite(SPRITE_HAIR, shoes, std::string());
- tempPlayer->setSprite(SPRITE_SHOES, gloves, std::string());
- tempPlayer->setSprite(SPRITE_SHIELD, cape, std::string());
- tempPlayer->setSprite(SPRITE_HEAD_TOP, misc1, std::string());
- tempPlayer->setSprite(SPRITE_WEAPON, bottomClothes, std::string());
- tempPlayer->setSprite(SPRITE_FLOOR, shield, std::string());
- tempPlayer->setSprite(SPRITE_CLOTHES_COLOR, hat, std::string());
- tempPlayer->setSprite(SPRITE_HEAD_BOTTOM, topClothes, std::string());
- tempPlayer->setSprite(SPRITE_HEAD_MID, misc2, std::string());
+ tempPlayer->setSprite(SPRITE_HAIR,
+ shoes,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_SHOES,
+ gloves,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_SHIELD,
+ cape,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_HEAD_TOP,
+ misc1,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_WEAPON,
+ bottomClothes,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_FLOOR,
+ shield,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_CLOTHES_COLOR,
+ hat,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_HEAD_BOTTOM,
+ topClothes,
+ std::string(),
+ ItemColor_one);
+ tempPlayer->setSprite(SPRITE_HEAD_MID,
+ misc2,
+ std::string(),
+ ItemColor_one);
character->slot = msg.readUInt8("slot");
const uint8_t sex = CAST_U8(msg.readUInt8("gender"));