summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-10-18 19:00:38 +0000
committerGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-10-18 19:00:38 +0000
commit54ac35bc5a1484757efeae9b342469b9a00fe2a2 (patch)
tree73917e6a43f0a90a9f25aaaad24c214c37bf52c4 /src/net
parent03b2efa5973db10c3e6366aa0bd2990eee60d8b9 (diff)
downloadmana-54ac35bc5a1484757efeae9b342469b9a00fe2a2.tar.gz
mana-54ac35bc5a1484757efeae9b342469b9a00fe2a2.tar.bz2
mana-54ac35bc5a1484757efeae9b342469b9a00fe2a2.tar.xz
mana-54ac35bc5a1484757efeae9b342469b9a00fe2a2.zip
Removed player looks from generic beings. Prevented client termination on missing sprites. Merged weapon-type and attack-type fields for items.
Diffstat (limited to 'src/net')
-rw-r--r--src/net/beinghandler.cpp15
-rw-r--r--src/net/charserverhandler.cpp2
2 files changed, 9 insertions, 8 deletions
diff --git a/src/net/beinghandler.cpp b/src/net/beinghandler.cpp
index 020d24af..6bd31c9f 100644
--- a/src/net/beinghandler.cpp
+++ b/src/net/beinghandler.cpp
@@ -418,7 +418,7 @@ void BeingHandler::handleMessage(MessageIn &msg)
}
}
-static void handleLooks(Being *being, MessageIn &msg)
+static void handleLooks(Player *being, MessageIn &msg)
{
// Order of sent slots. Has to be in sync with the server code.
static int const nb_slots = 4;
@@ -471,10 +471,11 @@ BeingHandler::handleBeingEnterMessage(MessageIn &msg)
being = beingManager->createBeing(id, type, 0);
being->setName(name);
}
- being->setHairStyle(msg.readByte());
- being->setHairColor(msg.readByte());
- being->setSex(msg.readByte());
- handleLooks(being, msg);
+ Player *p = static_cast< Player * >(being);
+ p->setHairStyle(msg.readByte());
+ p->setHairColor(msg.readByte());
+ p->setGender(msg.readByte());
+ handleLooks(p, msg);
} break;
case OBJECT_MONSTER:
@@ -591,7 +592,7 @@ void BeingHandler::handleBeingActionChangeMessage(MessageIn &msg)
void BeingHandler::handleBeingLooksChangeMessage(MessageIn &msg)
{
Being *being = beingManager->findBeing(msg.readShort());
- if (!being) return;
- handleLooks(being, msg);
+ if (!being || being->getType() != Being::PLAYER) return;
+ handleLooks(static_cast< Player * >(being), msg);
}
diff --git a/src/net/charserverhandler.cpp b/src/net/charserverhandler.cpp
index 820aaea4..1cfd815b 100644
--- a/src/net/charserverhandler.cpp
+++ b/src/net/charserverhandler.cpp
@@ -216,7 +216,7 @@ CharServerHandler::readPlayerData(MessageIn &msg, int &slot)
LocalPlayer *tempPlayer = new LocalPlayer;
slot = msg.readByte(); // character slot
tempPlayer->mName = msg.readString();
- tempPlayer->setSex(msg.readByte());
+ tempPlayer->setGender(msg.readByte());
tempPlayer->setHairStyle(msg.readByte());
tempPlayer->setHairColor(msg.readByte());
tempPlayer->setLevel(msg.readByte());