diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-05-30 00:50:00 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-05-30 00:50:00 +0300 |
commit | a3f8e297c74534ceba6063e10cdeee558b215d6d (patch) | |
tree | 919c4cc0a7bd78fb4d6c8dda03a35e13f3b67532 | |
parent | 82f54003e520947340823e8d86dcb8c57e182237 (diff) | |
download | manaplus-a3f8e297c74534ceba6063e10cdeee558b215d6d.tar.gz manaplus-a3f8e297c74534ceba6063e10cdeee558b215d6d.tar.bz2 manaplus-a3f8e297c74534ceba6063e10cdeee558b215d6d.tar.xz manaplus-a3f8e297c74534ceba6063e10cdeee558b215d6d.zip |
Limit hair color and hair style only for one byte.
Other bytes reserved for future usage.
-rw-r--r-- | src/net/ea/beinghandler.cpp | 6 | ||||
-rw-r--r-- | src/net/tmwa/beinghandler.cpp | 6 | ||||
-rw-r--r-- | src/net/tmwa/charserverhandler.cpp | 12 |
3 files changed, 16 insertions, 8 deletions
diff --git a/src/net/ea/beinghandler.cpp b/src/net/ea/beinghandler.cpp index 71194520d..05b7c348a 100644 --- a/src/net/ea/beinghandler.cpp +++ b/src/net/ea/beinghandler.cpp @@ -200,7 +200,8 @@ void BeingHandler::processBeingVisibleOrMove(Net::MessageIn &msg, if (dstBeing->getType() == ActorSprite::MONSTER && player_node) player_node->checkNewName(dstBeing); - const int hairStyle = msg.readInt16(); + const int hairStyle = msg.readInt8(); + msg.readInt8(); // free const uint16_t weapon = msg.readInt16(); const uint16_t headBottom = msg.readInt16(); @@ -210,7 +211,8 @@ void BeingHandler::processBeingVisibleOrMove(Net::MessageIn &msg, const uint16_t shield = msg.readInt16(); const uint16_t headTop = msg.readInt16(); const uint16_t headMid = msg.readInt16(); - const int hairColor = msg.readInt16(); + const int hairColor = msg.readInt8(); + msg.readInt8(); // free const uint16_t shoes = msg.readInt16(); // clothes color uint16_t gloves; diff --git a/src/net/tmwa/beinghandler.cpp b/src/net/tmwa/beinghandler.cpp index 3ef060d96..738a81651 100644 --- a/src/net/tmwa/beinghandler.cpp +++ b/src/net/tmwa/beinghandler.cpp @@ -477,7 +477,8 @@ void BeingHandler::processPlayerMoveUpdate(Net::MessageIn &msg, dstBeing->setWalkSpeed(Vector(speed, speed, 0)); dstBeing->setSubtype(job); - const int hairStyle = msg.readInt16(); + const int hairStyle = msg.readInt8(); + msg.readInt8(); // free const uint16_t weapon = msg.readInt16(); const uint16_t shield = msg.readInt16(); const uint16_t headBottom = msg.readInt16(); @@ -487,7 +488,8 @@ void BeingHandler::processPlayerMoveUpdate(Net::MessageIn &msg, const uint16_t headTop = msg.readInt16(); const uint16_t headMid = msg.readInt16(); - const int hairColor = msg.readInt16(); + const int hairColor = msg.readInt8(); + msg.readInt8(); // free unsigned char colors[9]; colors[0] = msg.readInt8(); diff --git a/src/net/tmwa/charserverhandler.cpp b/src/net/tmwa/charserverhandler.cpp index 773a9d060..10be5edf8 100644 --- a/src/net/tmwa/charserverhandler.cpp +++ b/src/net/tmwa/charserverhandler.cpp @@ -159,7 +159,8 @@ void CharServerHandler::readPlayerData(Net::MessageIn &msg, msg.readInt16(); // speed tempPlayer->setSubtype(msg.readInt16()); // class (used for race) - const int hairStyle = msg.readInt16(); + const int hairStyle = msg.readInt8(); + msg.readInt8(); // free const uint16_t weapon = msg.readInt16(); // unused on server. need use? tempPlayer->setSprite(SPRITE_WEAPON, weapon, "", 1, true); @@ -172,9 +173,10 @@ void CharServerHandler::readPlayerData(Net::MessageIn &msg, const int hat = msg.readInt16(); // head option top const int topClothes = msg.readInt16(); - int hairColor = msg.readInt16(); + int hairColor = msg.readInt8(); if (hairColor > 255) hairColor = 255; + msg.readInt8(); // free tempPlayer->setSprite(SPRITE_HAIR, hairStyle * -1, ItemDB::get(-hairStyle).getDyeColorsString(hairColor)); tempPlayer->setHairColor(static_cast<unsigned char>(hairColor)); @@ -253,8 +255,10 @@ void CharServerHandler::newCharacter(const std::string &name, const int slot, outMsg.writeInt8(static_cast<unsigned char>(stats[i])); outMsg.writeInt8(static_cast<unsigned char>(slot)); - outMsg.writeInt16(static_cast<int16_t>(hairColor)); - outMsg.writeInt16(static_cast<int16_t>(hairstyle)); + outMsg.writeInt8(static_cast<int8_t>(hairColor)); + outMsg.writeInt8(0); // unused + outMsg.writeInt8(static_cast<int8_t>(hairstyle)); + outMsg.writeInt8(0); // unused if (serverVersion >= 2) outMsg.writeInt8(race); } |