diff --git a/src/economy.cpp b/src/economy.cpp index ae1db18457..15e136bf79 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -1329,8 +1329,10 @@ static void LoadUnloadVehicle(Vehicle *front, int *cargo_left) st->time_since_load = 0; st->last_vehicle_type = v->type; - TriggerStationAnimation(st, st->xy, SAT_CARGO_TAKEN, v->cargo_type); - AirportAnimationTrigger(st, AAT_STATION_CARGO_TAKEN, v->cargo_type); + if (ge->cargo.Empty()) { + TriggerStationAnimation(st, st->xy, SAT_CARGO_TAKEN, v->cargo_type); + AirportAnimationTrigger(st, AAT_STATION_CARGO_TAKEN, v->cargo_type); + } unloading_time += cap; diff --git a/src/newgrf_animation_type.h b/src/newgrf_animation_type.h index 660cec9904..1f3995f46d 100644 --- a/src/newgrf_animation_type.h +++ b/src/newgrf_animation_type.h @@ -28,7 +28,7 @@ struct AnimationInfo { enum StationAnimationTrigger { SAT_BUILT, ///< Trigger tile when built. SAT_NEW_CARGO, ///< Trigger station on new cargo arrival. - SAT_CARGO_TAKEN, ///< Trigger station when cargo is taken. + SAT_CARGO_TAKEN, ///< Trigger station when cargo is completely taken. SAT_TRAIN_ARRIVES, ///< Trigger platform when train arrives. SAT_TRAIN_DEPARTS, ///< Trigger platform when train leaves. SAT_TRAIN_LOADS, ///< Trigger platform when train loads/unloads.