Browse Source

Add new option to enable/disable item pickup sounds

pull/3210/head
Bernd Stellwag 4 years ago committed by GitHub
parent
commit
fcc0266703
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 9
      Source/inv.cpp
  2. 2
      Source/options.cpp
  3. 2
      Source/options.h
  4. 1
      Source/qol/autopickup.cpp

9
Source/inv.cpp

@ -1586,6 +1586,7 @@ void InvGetItem(int pnum, Item *item, int ii)
void AutoGetItem(int pnum, Item *item, int ii)
{
bool done;
bool autoEquipped = false;
if (pcurs != CURSOR_HAND) {
return;
@ -1615,6 +1616,10 @@ void AutoGetItem(int pnum, Item *item, int ii)
}
} else {
done = AutoEquipEnabled(player, player.HoldItem) && AutoEquip(pnum, player.HoldItem);
if (done) {
autoEquipped = true;
}
if (!done) {
done = AutoPlaceItemInBelt(player, player.HoldItem, true);
}
@ -1624,6 +1629,10 @@ void AutoGetItem(int pnum, Item *item, int ii)
}
if (done) {
if (!autoEquipped && sgOptions.Audio.bItemPickupSound && pnum == MyPlayerId) {
PlaySFX(IS_IGRAB);
}
CleanupItems(&Items[ii], ii);
return;
}

2
Source/options.cpp

@ -227,6 +227,7 @@ void LoadOptions()
sgOptions.Audio.nMusicVolume = GetIniInt("Audio", "Music Volume", VOLUME_MAX);
sgOptions.Audio.bWalkingSound = GetIniBool("Audio", "Walking Sound", true);
sgOptions.Audio.bAutoEquipSound = GetIniBool("Audio", "Auto Equip Sound", AUTO_PICKUP_DEFAULT(false));
sgOptions.Audio.bItemPickupSound = GetIniBool("Audio", "Item Pickup Sound", AUTO_PICKUP_DEFAULT(false));
sgOptions.Audio.nSampleRate = GetIniInt("Audio", "Sample Rate", DEFAULT_AUDIO_SAMPLE_RATE);
sgOptions.Audio.nChannels = GetIniInt("Audio", "Channels", DEFAULT_AUDIO_CHANNELS);
@ -382,6 +383,7 @@ void SaveOptions()
SetIniValue("Audio", "Music Volume", sgOptions.Audio.nMusicVolume);
SetIniValue("Audio", "Walking Sound", sgOptions.Audio.bWalkingSound);
SetIniValue("Audio", "Auto Equip Sound", sgOptions.Audio.bAutoEquipSound);
SetIniValue("Audio", "Item Pickup Sound", sgOptions.Audio.bItemPickupSound);
SetIniValue("Audio", "Sample Rate", sgOptions.Audio.nSampleRate);
SetIniValue("Audio", "Channels", sgOptions.Audio.nChannels);

2
Source/options.h

@ -45,6 +45,8 @@ struct AudioOptions {
bool bWalkingSound;
/** @brief Automatically equipping items on pickup emits the equipment sound. */
bool bAutoEquipSound;
/** @brief Picking up items emits the items pickup sound. */
bool bItemPickupSound;
/** @brief Output sample rate (Hz) */
std::uint32_t nSampleRate;

1
Source/qol/autopickup.cpp

@ -52,7 +52,6 @@ void AutoGoldPickup(int pnum)
if (item._itype == ItemType::Gold) {
NetSendCmdGItem(true, CMD_REQUESTAGITEM, pnum, pnum, itemIndex);
item._iRequest = true;
PlaySFX(IS_IGRAB);
}
}
}

Loading…
Cancel
Save