mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-17 21:25:40 +00:00
(svn r21234) -Codechange: Make Train::UpdateVisualEffect work for all vehicle types (Hirundo)
This commit is contained in:
parent
f4689f4301
commit
797435f05d
@ -148,19 +148,25 @@ void Train::UpdateVisualEffect(bool allow_power_change)
|
|||||||
this->vcache.cached_vis_effect = 0;
|
this->vcache.cached_vis_effect = 0;
|
||||||
|
|
||||||
const Engine *e = Engine::Get(this->engine_type);
|
const Engine *e = Engine::Get(this->engine_type);
|
||||||
if (e->u.rail.visual_effect != 0) {
|
if (this->type == VEH_TRAIN) {
|
||||||
this->vcache.cached_vis_effect = e->u.rail.visual_effect;
|
if (e->u.rail.visual_effect != 0) {
|
||||||
} else {
|
this->vcache.cached_vis_effect = e->u.rail.visual_effect;
|
||||||
if (this->IsWagon() || this->IsArticulatedPart()) {
|
|
||||||
/* Wagons and articulated parts have no effect by default */
|
|
||||||
SetBit(this->vcache.cached_vis_effect, VE_DISABLE_EFFECT);
|
|
||||||
} else if (e->u.rail.engclass == 0) {
|
|
||||||
/* Steam is offset by -4 units */
|
|
||||||
SB(this->vcache.cached_vis_effect, VE_OFFSET_START, VE_OFFSET_COUNT, VE_OFFSET_CENTRE - 4);
|
|
||||||
} else {
|
} else {
|
||||||
/* Diesel fumes and sparks come from the centre */
|
Train *t = Train::From(this);
|
||||||
SB(this->vcache.cached_vis_effect, VE_OFFSET_START, VE_OFFSET_COUNT, VE_OFFSET_CENTRE);
|
if (t->IsWagon() || t->IsArticulatedPart()) {
|
||||||
|
/* Wagons and articulated parts have no effect by default */
|
||||||
|
SetBit(this->vcache.cached_vis_effect, VE_DISABLE_EFFECT);
|
||||||
|
} else if (e->u.rail.engclass == 0) {
|
||||||
|
/* Steam is offset by -4 units */
|
||||||
|
SB(this->vcache.cached_vis_effect, VE_OFFSET_START, VE_OFFSET_COUNT, VE_OFFSET_CENTRE - 4);
|
||||||
|
} else {
|
||||||
|
/* Diesel fumes and sparks come from the centre */
|
||||||
|
SB(this->vcache.cached_vis_effect, VE_OFFSET_START, VE_OFFSET_COUNT, VE_OFFSET_CENTRE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
/* Non-trains do not have a visual effect by default. */
|
||||||
|
SetBit(this->vcache.cached_vis_effect, VE_DISABLE_EFFECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check powered wagon / visual effect callback */
|
/* Check powered wagon / visual effect callback */
|
||||||
|
Loading…
Reference in New Issue
Block a user