mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r25226) -Fix/Change [FS#5538]: [NewGRF] Revise when vehicle running sound effects 04, 07 and 08 are played.
In depot or tunnel, or when crashed or stopped: No sound. Braking: Effect 08 instead of 07.
This commit is contained in:
parent
9dee2f5c1e
commit
266bdfaffe
|
@ -890,7 +890,16 @@ void CallVehicleTicks()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check vehicle sounds */
|
/* Do not play any sound when crashed */
|
||||||
|
if (front->vehstatus & VS_CRASHED) continue;
|
||||||
|
|
||||||
|
/* Do not play any sound when in depot or tunnel */
|
||||||
|
if (v->vehstatus & VS_HIDDEN) continue;
|
||||||
|
|
||||||
|
/* Do not play any sound when stopped */
|
||||||
|
if ((front->vehstatus & VS_STOPPED) && (front->type != VEH_TRAIN || front->cur_speed == 0)) continue;
|
||||||
|
|
||||||
|
/* Check vehicle type specifics */
|
||||||
switch (v->type) {
|
switch (v->type) {
|
||||||
case VEH_TRAIN:
|
case VEH_TRAIN:
|
||||||
if (Train::From(v)->IsWagon()) continue;
|
if (Train::From(v)->IsWagon()) continue;
|
||||||
|
@ -913,7 +922,11 @@ void CallVehicleTicks()
|
||||||
if (GB(v->motion_counter, 0, 8) < front->cur_speed) PlayVehicleSound(v, VSE_RUNNING);
|
if (GB(v->motion_counter, 0, 8) < front->cur_speed) PlayVehicleSound(v, VSE_RUNNING);
|
||||||
|
|
||||||
/* Play an alternating running sound every 16 ticks */
|
/* Play an alternating running sound every 16 ticks */
|
||||||
if (GB(v->tick_counter, 0, 4) == 0) PlayVehicleSound(v, front->cur_speed > 0 ? VSE_RUNNING_16 : VSE_STOPPED_16);
|
if (GB(v->tick_counter, 0, 4) == 0) {
|
||||||
|
/* Play running sound when speed > 0 and not braking */
|
||||||
|
bool running = (front->cur_speed > 0) && !(front->vehstatus & (VS_STOPPED | VS_TRAIN_SLOWING));
|
||||||
|
PlayVehicleSound(v, running ? VSE_RUNNING_16 : VSE_STOPPED_16);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue