diff options
-rw-r--r-- | src/actormanager.cpp | 6 | ||||
-rw-r--r-- | src/being/being.cpp | 30 | ||||
-rw-r--r-- | src/being/being.h | 2 | ||||
-rw-r--r-- | src/gui/windows/charcreatedialog.cpp | 9 | ||||
-rw-r--r-- | src/net/eathena/beinghandler.cpp | 45 | ||||
-rw-r--r-- | src/net/eathena/beingrecv.cpp | 93 | ||||
-rw-r--r-- | src/net/eathena/charserverrecv.cpp | 33 | ||||
-rw-r--r-- | src/net/tmwa/beinghandler.cpp | 15 | ||||
-rw-r--r-- | src/net/tmwa/beingrecv.cpp | 36 | ||||
-rw-r--r-- | src/net/tmwa/charserverrecv.cpp | 33 |
10 files changed, 220 insertions, 82 deletions
diff --git a/src/actormanager.cpp b/src/actormanager.cpp index 75be42fb3..28e51e6cd 100644 --- a/src/actormanager.cpp +++ b/src/actormanager.cpp @@ -2048,14 +2048,16 @@ Being *ActorManager::cloneBeing(const Being *const srcBeing, dstBeing->setSprite(hairSlot, hairStyle * -1, ItemDB::get(-hairStyle).getDyeColorsString(hairColor), - ItemColor_one); + ItemColor_one, + IsWeapon_false); } else { dstBeing->setSprite(hairSlot, 0, std::string(), - ItemColor_one); + ItemColor_one, + IsWeapon_false); } dstBeing->setHairColor(hairColor); return dstBeing; diff --git a/src/being/being.cpp b/src/being/being.cpp index 69550b6d3..04b2463b4 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -499,7 +499,8 @@ void Being::setSubtype(const BeingTypeId subtype, setSprite(charServerHandler->baseSprite(), id, std::string(), - ItemColor_one); + ItemColor_one, + IsWeapon_false); } } else @@ -511,7 +512,8 @@ void Being::setSubtype(const BeingTypeId subtype, setSprite(charServerHandler->baseSprite(), id, info.getColor(fromInt(mLook, ItemColor)), - ItemColor_one); + ItemColor_one, + IsWeapon_false); } } } @@ -2610,13 +2612,21 @@ void Being::setSprite(const unsigned int slot, void Being::setSpriteID(const unsigned int slot, const int id) restrict2 { - setSprite(slot, id, mSpriteColors[slot], ItemColor_one); + setSprite(slot, + id, + mSpriteColors[slot], + ItemColor_one, + IsWeapon_false); } void Being::setSpriteColor(const unsigned int slot, const std::string &restrict color) restrict2 { - setSprite(slot, mSpriteIDs[slot], color, ItemColor_one); + setSprite(slot, + mSpriteIDs[slot], + color, + ItemColor_one, + IsWeapon_false); } void Being::setHairStyle(const unsigned int slot, @@ -2626,7 +2636,8 @@ void Being::setHairStyle(const unsigned int slot, setSprite(slot, id, ItemDB::get(id).getDyeColorsString(mHairColor), - ItemColor_one); + ItemColor_one, + IsWeapon_false); // dumpSprites(); } @@ -2640,7 +2651,8 @@ void Being::setHairColor(const unsigned int slot, setSprite(slot, mSpriteIDs[slot], ItemDB::get(id).getDyeColorsString(color), - ItemColor_one); + ItemColor_one, + IsWeapon_false); } } @@ -2828,7 +2840,8 @@ void Being::setGender(const GenderT gender) restrict2 setSprite(i, mSpriteIDs[i], mSpriteColors[i], - ItemColor_one); + ItemColor_one, + IsWeapon_false); } } @@ -3681,7 +3694,8 @@ void Being::undressItemById(const int id) restrict2 setSprite(CAST_U32(f), 0, std::string(), - ItemColor_one); + ItemColor_one, + IsWeapon_false); break; } } diff --git a/src/being/being.h b/src/being/being.h index 80752bfd2..6d6929bca 100644 --- a/src/being/being.h +++ b/src/being/being.h @@ -323,7 +323,7 @@ class Being notfinal : public ActorSprite, const int id, std::string color, ItemColor colorId, - const IsWeapon isWeapon = IsWeapon_false, + const IsWeapon isWeapon, const IsTempSprite isTempSprite = IsTempSprite_false, const int *const cards = nullptr) restrict2; diff --git a/src/gui/windows/charcreatedialog.cpp b/src/gui/windows/charcreatedialog.cpp index 412dd4761..00d8e13a0 100644 --- a/src/gui/windows/charcreatedialog.cpp +++ b/src/gui/windows/charcreatedialog.cpp @@ -156,7 +156,11 @@ CharCreateDialog::CharCreateDialog(CharSelectDialog *const parent, it != it_fend; ++ it, i ++) { - mPlayer->setSprite(i, *it, std::string(), ItemColor_one); + mPlayer->setSprite(i, + *it, + std::string(), + ItemColor_one, + IsWeapon_false); } if (!maxHairColor) @@ -768,7 +772,8 @@ void CharCreateDialog::updateHair() mPlayer->setSprite(charServerHandler->hairSprite(), mHairStyle * -1, item.getDyeColorsString(fromInt(mHairColor, ItemColor)), - ItemColor_one); + ItemColor_one, + IsWeapon_false); } void CharCreateDialog::updateRace() 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) diff --git a/src/net/tmwa/beinghandler.cpp b/src/net/tmwa/beinghandler.cpp index 159e56fb8..59a34332b 100644 --- a/src/net/tmwa/beinghandler.cpp +++ b/src/net/tmwa/beinghandler.cpp @@ -52,23 +52,28 @@ 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_CLOTHES_COLOR, 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); } #ifdef EATHENA_SUPPORT diff --git a/src/net/tmwa/beingrecv.cpp b/src/net/tmwa/beingrecv.cpp index 8a47b1aca..167e0042f 100644 --- a/src/net/tmwa/beingrecv.cpp +++ b/src/net/tmwa/beingrecv.cpp @@ -151,28 +151,32 @@ void BeingRecv::processBeingChangeLookContinue(const Net::MessageIn &msg, dstBeing->setSprite(SPRITE_FLOOR, id2, std::string(), - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_FLOOR); break; case 3: // Change lower headgear for eAthena, pants for us dstBeing->setSprite(SPRITE_WEAPON, id, color, - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_WEAPON); break; case 4: // Change upper headgear for eAthena, hat for us dstBeing->setSprite(SPRITE_CLOTHES_COLOR, id, color, - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_CLOTHES_COLOR); break; case 5: // Change middle headgear for eathena, armor for us dstBeing->setSprite(SPRITE_HEAD_BOTTOM, id, color, - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_HEAD_BOTTOM); break; case 6: // eAthena LOOK_HAIR_COLOR @@ -186,56 +190,64 @@ void BeingRecv::processBeingChangeLookContinue(const Net::MessageIn &msg, dstBeing->setSprite(SPRITE_FLOOR, id, color, - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_FLOOR); break; case 9: // eAthena LOOK_SHOES dstBeing->setSprite(SPRITE_HAIR, id, color, - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_HAIR); break; case 10: // LOOK_GLOVES dstBeing->setSprite(SPRITE_SHOES, id, color, - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_SHOES); break; case 11: // LOOK_CAPE dstBeing->setSprite(SPRITE_SHIELD, id, color, - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_SHIELD); break; case 12: dstBeing->setSprite(SPRITE_HEAD_TOP, id, color, - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_HEAD_TOP); break; case 13: dstBeing->setSprite(SPRITE_HEAD_MID, id, color, - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_HEAD_MID); break; case 14: dstBeing->setSprite(SPRITE_ROBE, id, color, - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_ROBE); break; case 15: dstBeing->setSprite(SPRITE_EVOL2, id, color, - ItemColor_one); + ItemColor_one, + IsWeapon_false); localPlayer->imitateOutfit(dstBeing, SPRITE_EVOL2); break; case 16: diff --git a/src/net/tmwa/charserverrecv.cpp b/src/net/tmwa/charserverrecv.cpp index 7c638882e..401585fc7 100644 --- a/src/net/tmwa/charserverrecv.cpp +++ b/src/net/tmwa/charserverrecv.cpp @@ -127,14 +127,16 @@ void CharServerRecv::readPlayerData(Net::MessageIn &msg, tempPlayer->setSprite(SPRITE_HAIR_COLOR, 0, std::string(), - ItemColor_one); + ItemColor_one, + IsWeapon_false); } else { tempPlayer->setSprite(SPRITE_HAIR_COLOR, hairStyle * -1, ItemDB::get(-hairStyle).getDyeColorsString(hairColor), - ItemColor_one); + ItemColor_one, + IsWeapon_false); } tempPlayer->setHairColor(hairColor); @@ -153,39 +155,48 @@ 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, std::string(), - ItemColor_one); + ItemColor_one, + IsWeapon_false); character->slot = msg.readUInt8("slot"); const uint8_t sex = CAST_U8(msg.readUInt8("gender")); |