0x004B671C
| 863 | |
| 864 | // 0x004B671C |
| 865 | VehicleStatus VehicleHead::getStatus() const |
| 866 | { |
| 867 | VehicleStatus vehStatus = {}; |
| 868 | vehStatus.status2 = StringIds::null; |
| 869 | if (tileX == -1) |
| 870 | { |
| 871 | vehStatus.status1 = StringIds::vehicle_status_no_position; |
| 872 | return vehStatus; |
| 873 | } |
| 874 | Vehicle train(head); |
| 875 | if (train.veh2->has73Flags(Flags73::isBrokenDown)) |
| 876 | { |
| 877 | vehStatus.status1 = StringIds::vehicle_status_broken_down; |
| 878 | return vehStatus; |
| 879 | } |
| 880 | |
| 881 | switch (status) |
| 882 | { |
| 883 | case Status::unk_0: |
| 884 | vehStatus.status1 = StringIds::vehicle_status_no_position; |
| 885 | return vehStatus; |
| 886 | case Status::stopped: |
| 887 | vehStatus.status1 = StringIds::vehicle_status_stopped; |
| 888 | return vehStatus; |
| 889 | case Status::travelling: |
| 890 | case Status::waitingAtSignal: |
| 891 | return getStatusTravelling(); |
| 892 | case Status::approaching: |
| 893 | { |
| 894 | if (stationId == StationId::null) |
| 895 | { |
| 896 | return getStatusTravelling(); |
| 897 | } |
| 898 | vehStatus.status1 = StringIds::vehicle_status_approaching; |
| 899 | auto station = StationManager::get(stationId); |
| 900 | vehStatus.status1Args = station->name | (enumValue(station->town) << 16); |
| 901 | getSecondStatus(vehStatus); |
| 902 | return vehStatus; |
| 903 | } |
| 904 | case Status::unloading: |
| 905 | { |
| 906 | if (stationId == StationId::null) |
| 907 | { |
| 908 | return getStatusTravelling(); |
| 909 | } |
| 910 | vehStatus.status1 = StringIds::vehicle_status_unloading; |
| 911 | auto station = StationManager::get(stationId); |
| 912 | vehStatus.status1Args = station->name | (enumValue(station->town) << 16); |
| 913 | return vehStatus; |
| 914 | } |
| 915 | case Status::loading: |
| 916 | { |
| 917 | if (stationId == StationId::null) |
| 918 | { |
| 919 | return getStatusTravelling(); |
| 920 | } |
| 921 | vehStatus.status1 = StringIds::vehicle_status_loading; |
| 922 | auto station = StationManager::get(stationId); |
no test coverage detected