summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/beinghandler.cpp7
-rw-r--r--src/net/eathena/charserverhandler.cpp8
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)"));