(svn r9807) -Codechange: unify playing of sound when vehicle has been loaded and leaves the station.

This commit is contained in:
rubidium 2007-05-07 15:58:05 +00:00
parent 4591fb5b0d
commit 161786e222
5 changed files with 20 additions and 3 deletions

View File

@ -44,6 +44,7 @@ struct Ship: public Vehicle {
void UpdateDeltaXY(Direction direction);
ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_SHIP_INC : EXPENSES_SHIP_RUN; }
WindowClass GetVehicleListWindowClass() const { return WC_SHIPS_LIST; }
void PlayLeaveStationSound() const;
};
#endif /* SHIP_H */

View File

@ -235,13 +235,18 @@ void Ship::MarkDirty()
MarkAllViewportsDirty(this->left_coord, this->top_coord, this->right_coord + 1, this->bottom_coord + 1);
}
static void PlayShipSound(Vehicle *v)
static void PlayShipSound(const Vehicle *v)
{
if (!PlayVehicleSound(v, VSE_START)) {
SndPlayVehicleFx(ShipVehInfo(v->engine_type)->sfx, v);
}
}
void Ship::PlayLeaveStationSound() const
{
PlayShipSound(this);
}
static void ProcessShipOrder(Vehicle *v)
{
const Order *order;
@ -308,7 +313,7 @@ static void HandleShipLoading(Vehicle *v)
if (LoadUnloadVehicle(v)) return;
PlayShipSound(v);
v->PlayLeaveStationSound();
Order b = v->current_order;
v->LeaveStation();

View File

@ -248,6 +248,7 @@ struct Train : public Vehicle {
void UpdateDeltaXY(Direction direction);
ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_TRAIN_INC : EXPENSES_TRAIN_RUN; }
WindowClass GetVehicleListWindowClass() const { return WC_TRAINS_LIST; }
void PlayLeaveStationSound() const;
};
#endif /* TRAIN_H */

View File

@ -2097,6 +2097,11 @@ static void TrainPlayLeaveStationSound(const Vehicle* v)
SndPlayVehicleFx(sfx[RailVehInfo(engtype)->engclass], v);
}
void Train::PlayLeaveStationSound() const
{
TrainPlayLeaveStationSound(this);
}
static bool CheckTrainStayInDepot(Vehicle *v)
{
/* bail out if not all wagons are in the same depot or not in a depot at all */
@ -2531,7 +2536,7 @@ static void HandleTrainLoading(Vehicle *v, bool mode)
if (LoadUnloadVehicle(v)) return;
TrainPlayLeaveStationSound(v);
v->PlayLeaveStationSound();
Order b = v->current_order;
v->LeaveStation();

View File

@ -375,6 +375,11 @@ struct Vehicle {
* Invalidates the vehicle list window of this type of vehicle
*/
virtual WindowClass GetVehicleListWindowClass() const { return WC_NONE; }
/**
* Play the sound associated with leaving the station
*/
virtual void PlayLeaveStationSound() const {}
};
/**