diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-10-04 19:19:53 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-10-04 19:19:53 +0300 |
commit | db43ad3b72fe207e6cc03a1fd341ea598d123319 (patch) | |
tree | 6d338e9e0bff66e7751d6d0866f32388bdcfe59c /src/being | |
parent | 65a88f27b994f7ade178368c569d466f6344ded6 (diff) | |
download | manaplus-db43ad3b72fe207e6cc03a1fd341ea598d123319.tar.gz manaplus-db43ad3b72fe207e6cc03a1fd341ea598d123319.tar.bz2 manaplus-db43ad3b72fe207e6cc03a1fd341ea598d123319.tar.xz manaplus-db43ad3b72fe207e6cc03a1fd341ea598d123319.zip |
add pickup and drop sound effects.
Works like equip/unequip effects.
Diffstat (limited to 'src/being')
-rw-r--r-- | src/being/localplayer.cpp | 2 | ||||
-rw-r--r-- | src/being/playerinfo.cpp | 20 | ||||
-rw-r--r-- | src/being/playerinfo.h | 5 |
3 files changed, 25 insertions, 2 deletions
diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp index 657436f49..787d59038 100644 --- a/src/being/localplayer.cpp +++ b/src/being/localplayer.cpp @@ -898,7 +898,7 @@ bool LocalPlayer::pickUp(FloorItem *const item) { if (actorSpriteManager && actorSpriteManager->checkForPickup(item)) { - Net::getPlayerHandler()->pickUp(item); + PlayerInfo::pickUpItem(item, true); mPickUpTarget = nullptr; } } diff --git a/src/being/playerinfo.cpp b/src/being/playerinfo.cpp index 3d311dd91..169ee5be3 100644 --- a/src/being/playerinfo.cpp +++ b/src/being/playerinfo.cpp @@ -24,6 +24,7 @@ #include "client.h" #include "configuration.h" #include "depricatedevent.h" +#include "flooritem.h" #include "inventory.h" #include "itemsoundmanager.h" @@ -321,14 +322,31 @@ void useEquipItem2(const Item *const item, bool sfx) { if (mProtectedItems.find(item->getId()) == mProtectedItems.end()) { - Net::getInventoryHandler()->useItem(item); if (sfx) ItemSoundManager::playSfx(item, SOUND_EVENT_USE); + Net::getInventoryHandler()->useItem(item); } } } } +void dropItem(const Item *const item, const int amount, bool sfx) +{ + if (item && mProtectedItems.find(item->getId()) == mProtectedItems.end()) + { + if (sfx) + ItemSoundManager::playSfx(item, SOUND_EVENT_DROP); + Net::getInventoryHandler()->dropItem(item, amount); + } +} + +void pickUpItem(const FloorItem *const item, bool sfx) +{ + if (sfx) + ItemSoundManager::playSfx(item, SOUND_EVENT_PICKUP); + Net::getPlayerHandler()->pickUp(item); +} + // --- Misc ------------------------------------------------------------------- void setBackend(const PlayerInfoBackend &backend) diff --git a/src/being/playerinfo.h b/src/being/playerinfo.h index cd454692f..eef07c584 100644 --- a/src/being/playerinfo.h +++ b/src/being/playerinfo.h @@ -61,6 +61,7 @@ struct PlayerInfoBackend final IntMap mSkills; }; +class FloorItem; class Inventory; class Item; @@ -267,6 +268,10 @@ namespace PlayerInfo void useEquipItem2(const Item *const item, bool sfx); + void dropItem(const Item *const item, const int amount, bool sfx); + + void pickUpItem(const FloorItem *const item, bool sfx); + void protectItem(const int id); void unprotectItem(const int id); |