diff options
-rw-r--r-- | src/actormanager.cpp | 8 | ||||
-rw-r--r-- | src/being/being.cpp | 36 | ||||
-rw-r--r-- | src/being/being.h | 2 | ||||
-rw-r--r-- | src/gui/windows/charcreatedialog.cpp | 5 | ||||
-rw-r--r-- | src/net/eathena/beinghandler.cpp | 76 | ||||
-rw-r--r-- | src/net/eathena/beingrecv.cpp | 5 | ||||
-rw-r--r-- | src/net/eathena/charserverrecv.cpp | 48 | ||||
-rw-r--r-- | src/net/tmwa/beinghandler.cpp | 26 | ||||
-rw-r--r-- | src/net/tmwa/beingrecv.cpp | 49 | ||||
-rw-r--r-- | src/net/tmwa/charserverrecv.cpp | 51 |
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")); |