diff --git a/economy.c b/economy.c index c2984123d9..5a66be14c5 100644 --- a/economy.c +++ b/economy.c @@ -28,6 +28,7 @@ #include "ai/ai.h" #include "train.h" #include "newgrf_engine.h" +#include "newgrf_sound.h" #include "unmovable.h" #include "date.h" @@ -1464,7 +1465,9 @@ int LoadUnloadVehicle(Vehicle *v) v->profit_this_year += profit; SubtractMoneyFromPlayer(-profit); - if (IsLocalPlayer()) SndPlayVehicleFx(SND_14_CASHTILL, v); + if (IsLocalPlayer() && !PlayVehicleSound(v, VSE_LOAD_UNLOAD)) { + SndPlayVehicleFx(SND_14_CASHTILL, v); + } ShowCostOrIncomeAnimation(v->x_pos, v->y_pos, v->z_pos, -profit); } diff --git a/newgrf_sound.c b/newgrf_sound.c index 7d746f7121..990629e823 100644 --- a/newgrf_sound.c +++ b/newgrf_sound.c @@ -68,6 +68,6 @@ bool PlayVehicleSound(const Vehicle *v, VehicleSoundEvent event) if (callback == CALLBACK_FAILED) return false; if (callback >= GetNumOriginalSounds()) callback += file->sound_offset - GetNumOriginalSounds(); - SndPlayVehicleFx(callback, v); + if (callback < GetNumSounds()) SndPlayVehicleFx(callback, v); return true; }