# HG changeset patch # User peter1138 # Date 1204580557 0 # Node ID 79101c0c3bc9b7d11bf50375487f8244d74c6324 # Parent ec5f2f4eee1506e3b772cefcb52a30413433de8c (svn r12332) -Fix (r12331): Invalidate cached data and update image after setting flag. diff -r ec5f2f4eee15 -r 79101c0c3bc9 src/train_cmd.cpp --- a/src/train_cmd.cpp Mon Mar 03 20:56:30 2008 +0000 +++ b/src/train_cmd.cpp Mon Mar 03 21:42:37 2008 +0000 @@ -1786,14 +1786,17 @@ InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile); } - /* update all images */ - for (Vehicle *u = v; u != NULL; u = u->Next()) { - ToggleBit(u->u.rail.flags, VRF_TOGGLE_REVERSE); - u->cur_image = u->GetImage(u->direction); - } + /* set reversed flag on all parts */ + for (Vehicle *u = v; u != NULL; u = u->Next()) ToggleBit(u->u.rail.flags, VRF_TOGGLE_REVERSE); ClrBit(v->u.rail.flags, VRF_REVERSING); + /* recalculate cached data */ + TrainConsistChanged(v); + + /* update all images */ + for (Vehicle *u = v; u != NULL; u = u->Next()) u->cur_image = u->GetImage(u->direction); + /* update crossing we were approaching */ if (crossing != INVALID_TILE) UpdateLevelCrossing(crossing);