diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-09-03 03:18:21 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-09-04 03:02:23 +0300 |
commit | ebecb0cf42f2066943908fa158ac91527e0e6629 (patch) | |
tree | 83dfe4650746e6b31803f7876ab3c0a50179a794 /src/net | |
parent | fa21c1b65dbe91a1e6ac880db977416162f268df (diff) | |
download | manaverse-ebecb0cf42f2066943908fa158ac91527e0e6629.tar.gz manaverse-ebecb0cf42f2066943908fa158ac91527e0e6629.tar.bz2 manaverse-ebecb0cf42f2066943908fa158ac91527e0e6629.tar.xz manaverse-ebecb0cf42f2066943908fa158ac91527e0e6629.zip |
Fix hair colors color if old and new hair using different paletes.
Also fix hair replace logic between hairs with different paletes.
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/ea/beinghandler.cpp | 1 | ||||
-rw-r--r-- | src/net/tmwa/beinghandler.cpp | 6 | ||||
-rw-r--r-- | src/net/tmwa/charserverhandler.cpp | 4 |
3 files changed, 7 insertions, 4 deletions
diff --git a/src/net/ea/beinghandler.cpp b/src/net/ea/beinghandler.cpp index 1dc98f776..d234bca6a 100644 --- a/src/net/ea/beinghandler.cpp +++ b/src/net/ea/beinghandler.cpp @@ -265,6 +265,7 @@ void BeingHandler::processBeingVisibleOrMove(Net::MessageIn &msg, bool visible) // Set these after the gender, as the sprites may be gender-specific setSprite(dstBeing, EA_SPRITE_HAIR, hairStyle * -1, ItemDB::get(-hairStyle).getDyeColorsString(hairColor)); + dstBeing->setHairColor(hairColor); setSprite(dstBeing, EA_SPRITE_BOTTOMCLOTHES, headBottom); setSprite(dstBeing, EA_SPRITE_TOPCLOTHES, headMid); setSprite(dstBeing, EA_SPRITE_HAT, headTop); diff --git a/src/net/tmwa/beinghandler.cpp b/src/net/tmwa/beinghandler.cpp index 2eac3c4a2..f816c9e04 100644 --- a/src/net/tmwa/beinghandler.cpp +++ b/src/net/tmwa/beinghandler.cpp @@ -299,7 +299,7 @@ void BeingHandler::processBeingChangeLook(Net::MessageIn &msg, bool look2) dstBeing->setSubtype(static_cast<uint16_t>(id)); break; case 1: // eAthena LOOK_HAIR - dstBeing->setSpriteID(SPRITE_HAIR, id *-1); + dstBeing->setHairStyle(SPRITE_HAIR, id * -1); break; case 2: // Weapon ID in id, Shield ID in id2 dstBeing->setSprite(SPRITE_WEAPON, id, "", 1, true); @@ -323,8 +323,7 @@ void BeingHandler::processBeingChangeLook(Net::MessageIn &msg, bool look2) player_node->imitateOutfit(dstBeing, SPRITE_TOPCLOTHES); break; case 6: // eAthena LOOK_HAIR_COLOR - dstBeing->setSpriteColor(SPRITE_HAIR, ItemDB::get( - dstBeing->getSpriteID(SPRITE_HAIR)).getDyeColorsString(id)); + dstBeing->setHairColor(SPRITE_HAIR, id); break; case 7: // Clothes color // ignoring it @@ -541,6 +540,7 @@ void BeingHandler::processPlayerMoveUpdate(Net::MessageIn &msg, int msgType) //dstBeing->setSprite(SPRITE_MISC2, misc2); dstBeing->setSprite(SPRITE_HAIR, hairStyle * -1, ItemDB::get(-hairStyle).getDyeColorsString(hairColor)); + dstBeing->setHairColor(hairColor); player_node->imitateOutfit(dstBeing); diff --git a/src/net/tmwa/charserverhandler.cpp b/src/net/tmwa/charserverhandler.cpp index 235028f71..4261887fb 100644 --- a/src/net/tmwa/charserverhandler.cpp +++ b/src/net/tmwa/charserverhandler.cpp @@ -215,8 +215,10 @@ void CharServerHandler::readPlayerData(Net::MessageIn &msg, const int hat = msg.readInt16(); // head option top const int topClothes = msg.readInt16(); + const int hairColor = msg.readInt16(); tempPlayer->setSprite(SPRITE_HAIR, hairStyle * -1, - ItemDB::get(-hairStyle).getDyeColorsString(msg.readInt16())); + ItemDB::get(-hairStyle).getDyeColorsString(hairColor)); + tempPlayer->setHairColor(hairColor); const int misc2 = msg.readInt16(); tempPlayer->setName(msg.readString(24)); |