diff options
-rw-r--r-- | src/main.cpp | 17 | ||||
-rw-r--r-- | src/net/charserverhandler.cpp | 6 | ||||
-rw-r--r-- | src/player.cpp | 5 |
3 files changed, 17 insertions, 11 deletions
diff --git a/src/main.cpp b/src/main.cpp index 5713b7db..20a1771c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -84,7 +84,7 @@ char n_server, n_character; std::vector<Spriteset *> hairset; Spriteset *playerset[2]; -Spriteset *equipmentset = NULL; +Spriteset *equipmentset[2]; Graphics *graphics; // TODO Anyone knows a good location for this? Or a way to make it non-global? @@ -250,13 +250,17 @@ void init_engine() playerset[0] = resman->createSpriteset( "graphics/sprites/player_male_base.png", 64, 64); + if (!playerset[0]) logger->error("Couldn't load male player spriteset!"); playerset[1] = resman->createSpriteset( "graphics/sprites/player_female_base.png", 64, 64); - if (!playerset[0]) logger->error("Couldn't load male player spriteset!"); if (!playerset[1]) logger->error("Couldn't load female player spriteset!"); - equipmentset = resman->createSpriteset( - "graphics/sprites/item1202.png", 64, 64); - if (!equipmentset) logger->error("Couldn't load player equipmentset!"); + equipmentset[0] = resman->createSpriteset( + "graphics/sprites/item001.png", 64, 64); + if (!equipmentset[0]) logger->error("Couldn't load player equipmentset!"); + equipmentset[1] = resman->createSpriteset( + "graphics/sprites/item002.png", 64, 64); + if (!equipmentset[1]) logger->error("Couldn't load player equipmentset!"); + for (int i=0; i < NR_HAIR_STYLES; i++) { @@ -298,7 +302,8 @@ void exit_engine() hairset.clear(); delete playerset[0]; delete playerset[1]; - delete equipmentset; + delete equipmentset[0]; + delete equipmentset[1]; // Shutdown libxml xmlCleanupParser(); diff --git a/src/net/charserverhandler.cpp b/src/net/charserverhandler.cpp index 12813795..9857ddc0 100644 --- a/src/net/charserverhandler.cpp +++ b/src/net/charserverhandler.cpp @@ -191,10 +191,10 @@ LocalPlayer* CharServerHandler::readPlayerData(MessageIn *msg, int &slot) tempPlayer->setWeapon(weapon); tempPlayer->mLevel = msg->readInt16(); msg->readInt16(); // skill point - msg->readInt16(); // head bottom + tempPlayer->mVisibleEquipment[3] = msg->readInt16(); // head bottom msg->readInt16(); // shield - msg->readInt16(); // head option top - msg->readInt16(); // head option mid + tempPlayer->mVisibleEquipment[4] = msg->readInt16(); // head option top + tempPlayer->mVisibleEquipment[5] = msg->readInt16(); // head option mid tempPlayer->setHairColor(msg->readInt16()); msg->readInt16(); // unknown tempPlayer->setName(msg->readString(24)); diff --git a/src/player.cpp b/src/player.cpp index b014a390..43439ab1 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -34,7 +34,7 @@ extern std::vector<Spriteset *> hairset; extern Spriteset *playerset[2]; extern std::vector<Spriteset *> weaponset; -extern Spriteset *equipmentset; +extern Spriteset *equipmentset[2]; signed char hairtable[19][4][2] = { // S(x,y) W(x,y) N(x,y) E(x,y) @@ -154,7 +154,8 @@ void Player::draw(Graphics *graphics, int offsetX, int offsetY) // Display middle equipment if (mVisibleEquipment[5]) { - graphics->drawImage(equipmentset->get(frame + 18 * dir), + graphics->drawImage( + equipmentset[mVisibleEquipment[5] - 1]->get(frame + 18 * dir), px - 16, py - 32); } } |