summaryrefslogtreecommitdiff
path: root/src/net/ea/charserverhandler.cpp
diff options
context:
space:
mode:
authorPhilipp Sehmisch <crush@themanaworld.org>2009-08-16 17:47:51 +0200
committerPhilipp Sehmisch <crush@themanaworld.org>2009-08-16 17:47:51 +0200
commite0ba8f7f67ddd08c54f0d453a316b3620d52529d (patch)
tree7324fa33f2c6af04067b77e0ce7f73d9effed1c6 /src/net/ea/charserverhandler.cpp
parent346d68307553c18777df4c49f9b3fe57955c5c0d (diff)
parent6460413ee2f50be561fd0824e3eaa9c2c09415b1 (diff)
downloadmana-e0ba8f7f67ddd08c54f0d453a316b3620d52529d.tar.gz
mana-e0ba8f7f67ddd08c54f0d453a316b3620d52529d.tar.bz2
mana-e0ba8f7f67ddd08c54f0d453a316b3620d52529d.tar.xz
mana-e0ba8f7f67ddd08c54f0d453a316b3620d52529d.zip
Merged changes from last month with a commit I forgot to commit before I went on vacation.
Diffstat (limited to 'src/net/ea/charserverhandler.cpp')
-rw-r--r--src/net/ea/charserverhandler.cpp33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/net/ea/charserverhandler.cpp b/src/net/ea/charserverhandler.cpp
index 77bfaa50..6fae1864 100644
--- a/src/net/ea/charserverhandler.cpp
+++ b/src/net/ea/charserverhandler.cpp
@@ -61,18 +61,16 @@ CharServerHandler::CharServerHandler():
void CharServerHandler::handleMessage(MessageIn &msg)
{
- int slot, flags;
+ int slot;
LocalPlayer *tempPlayer;
logger->log("CharServerHandler: Packet ID: %x, Length: %d",
msg.getId(), msg.getLength());
switch (msg.getId())
{
- case 0x006b:
+ case SMSG_CHAR_LOGIN:
msg.skip(2); // Length word
- flags = msg.readInt32(); // Aethyra extensions flags
- logger->log("Server flags are: %x", flags);
- msg.skip(16); // Unused
+ msg.skip(20); // Unused
// Derive number of characters from message length
n_character = (msg.getLength() - 24) / 106;
@@ -92,13 +90,13 @@ void CharServerHandler::handleMessage(MessageIn &msg)
case SMSG_CHAR_LOGIN_ERROR:
switch (msg.readInt8()) {
case 0:
- errorMessage = _("Access denied");
+ errorMessage = _("Access denied.");
break;
case 1:
- errorMessage = _("Cannot use this ID");
+ errorMessage = _("Cannot use this ID.");
break;
default:
- errorMessage = _("Unknown failure to select character");
+ errorMessage = _("Unknown failure to select character.");
break;
}
mCharInfo->unlock();
@@ -169,14 +167,15 @@ void CharServerHandler::handleMessage(MessageIn &msg)
LocalPlayer *CharServerHandler::readPlayerData(MessageIn &msg, int &slot)
{
- LocalPlayer *tempPlayer = new LocalPlayer(mLoginData->account_ID, 0, NULL);
+ LocalPlayer *tempPlayer = new LocalPlayer(msg.readInt32(), 0, NULL);
tempPlayer->setGender(mLoginData->sex);
- tempPlayer->mCharId = msg.readInt32();
- tempPlayer->setXp(msg.readInt32());
+ tempPlayer->setExp(msg.readInt32());
tempPlayer->setMoney(msg.readInt32());
- tempPlayer->mJobXp = msg.readInt32();
- tempPlayer->mJobLevel = msg.readInt32();
+ tempPlayer->setExperience(JOB, msg.readInt32(), 1);
+ int temp = msg.readInt32();
+ tempPlayer->setAttributeBase(JOB, temp);
+ tempPlayer->setAttributeEffective(JOB, temp);
tempPlayer->setSprite(Being::SHOE_SPRITE, msg.readInt16());
tempPlayer->setSprite(Being::GLOVES_SPRITE, msg.readInt16());
tempPlayer->setSprite(Being::CAPE_SPRITE, msg.readInt16());
@@ -187,8 +186,8 @@ LocalPlayer *CharServerHandler::readPlayerData(MessageIn &msg, int &slot)
msg.skip(2); // unknown
tempPlayer->setHp(msg.readInt16());
tempPlayer->setMaxHp(msg.readInt16());
- tempPlayer->mMp = msg.readInt16();
- tempPlayer->mMaxMp = msg.readInt16();
+ tempPlayer->setMP(msg.readInt16());
+ tempPlayer->setMaxMP(msg.readInt16());
msg.readInt16(); // speed
msg.readInt16(); // class
int hairStyle = msg.readInt16();
@@ -205,7 +204,7 @@ LocalPlayer *CharServerHandler::readPlayerData(MessageIn &msg, int &slot)
tempPlayer->setSprite(Being::MISC2_SPRITE, msg.readInt16());
tempPlayer->setName(msg.readString(24));
for (int i = 0; i < 6; i++) {
- tempPlayer->mAttr[i] = msg.readInt8();
+ tempPlayer->setAttributeBase(i + STR, msg.readInt8());
}
slot = msg.readInt8(); // character slot
msg.readInt8(); // unknown
@@ -272,7 +271,7 @@ void CharServerHandler::newCharacter(const std::string &name, int slot,
void CharServerHandler::deleteCharacter(int slot, LocalPlayer* character)
{
MessageOut outMsg(CMSG_CHAR_DELETE);
- outMsg.writeInt32(character->mCharId);
+ outMsg.writeInt32(character->getId());
outMsg.writeString("a@a.com", 40);
}