diff options
-rw-r--r-- | src/net/eathena/beinghandler.cpp | 7 | ||||
-rw-r--r-- | src/net/eathena/charserverhandler.cpp | 8 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp index a3458c9f8..c2804586f 100644 --- a/src/net/eathena/beinghandler.cpp +++ b/src/net/eathena/beinghandler.cpp @@ -414,7 +414,8 @@ void BeingHandler::processBeingChangeLookContinue(Being *const dstBeing, switch (type) { case 0: // change race - dstBeing->setSubtype(static_cast<uint16_t>(id), 0); + dstBeing->setSubtype(static_cast<uint16_t>(id), + dstBeing->getLook()); break; case 1: // eAthena LOOK_HAIR dstBeing->setSpriteID(SPRITE_HAIR_COLOR, id *-1); @@ -446,8 +447,8 @@ void BeingHandler::processBeingChangeLookContinue(Being *const dstBeing, ItemDB::get(dstBeing->getSpriteID( SPRITE_HAIR_COLOR)).getDyeColorsString(id)); break; - case 7: // Clothes color - // ignoring it + case 7: // Clothes color. Now used as look + dstBeing->setLook(id); break; case 8: // eAthena LOOK_SHIELD if (!mHideShield) diff --git a/src/net/eathena/charserverhandler.cpp b/src/net/eathena/charserverhandler.cpp index c3d3665ad..0b0af5033 100644 --- a/src/net/eathena/charserverhandler.cpp +++ b/src/net/eathena/charserverhandler.cpp @@ -200,7 +200,8 @@ void CharServerHandler::readPlayerData(Net::MessageIn &msg, data.mAttributes[Attributes::MAX_MP] = msg.readInt16("max mp/sp"); msg.readInt16("speed"); - tempPlayer->setSubtype(msg.readInt16("class"), 0); + const int race = msg.readInt16("class"); +// tempPlayer->setSubtype(race, 0); const int hairStyle = msg.readInt16("hair style"); const int weapon = msg.readInt32("weapon"); @@ -218,7 +219,8 @@ void CharServerHandler::readPlayerData(Net::MessageIn &msg, ItemDB::get(-hairStyle).getDyeColorsString( msg.readInt16("hair color"))); - const int misc2 = msg.readInt16("clothes color"); + const int look = msg.readInt16("clothes color"); + tempPlayer->setSubtype(race, look); tempPlayer->setName(msg.readString(24, "name")); character->dummy = tempPlayer; @@ -245,7 +247,7 @@ void CharServerHandler::readPlayerData(Net::MessageIn &msg, tempPlayer->setSprite(SPRITE_CLOTHES_COLOR, hat); tempPlayer->setSprite(SPRITE_HEAD_BOTTOM, topClothes); - tempPlayer->setSprite(SPRITE_HEAD_MID, misc2); +// tempPlayer->setSprite(SPRITE_HEAD_MID, misc2); msg.readInt32("slot change"); tempPlayer->setRename(msg.readInt32("rename (inverse)")); |