MCPcopy Create free account
hub / github.com/OpenLoco/OpenLoco / getStatus

Method getStatus

src/OpenLoco/src/Vehicles/VehicleHead.cpp:865–974  ·  view source on GitHub ↗

0x004B671C

Source from the content-addressed store, hash-verified

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);

Callers 4

getVehicleArgumentsFunction · 0.45
drawScrollFunction · 0.45
drawFunction · 0.45
drawScrollFunction · 0.45

Calls 3

enumValueFunction · 0.85
has73FlagsMethod · 0.80
getFunction · 0.50

Tested by

no test coverage detected