changeset 7134 | c5a90dd41166 |
parent 7104 | 59f24cd8470b |
child 7139 | 4ae3ab180d05 |
7133:fe36226cf557 | 7134:c5a90dd41166 |
---|---|
541 YearMonthDay ymd; |
541 YearMonthDay ymd; |
542 ConvertDateToYMD(e->intro_date, &ymd); |
542 ConvertDateToYMD(e->intro_date, &ymd); |
543 bool refitable = false; |
543 bool refitable = false; |
544 |
544 |
545 switch (e->type) { |
545 switch (e->type) { |
546 default: NOT_REACHED(); |
|
546 case VEH_TRAIN: { |
547 case VEH_TRAIN: { |
547 const RailVehicleInfo *rvi = RailVehInfo(engine_number); |
548 const RailVehicleInfo *rvi = RailVehInfo(engine_number); |
548 uint capacity = GetEngineProperty(engine_number, 0x14, rvi->capacity); |
549 uint capacity = GetEngineProperty(engine_number, 0x14, rvi->capacity); |
549 |
550 |
550 refitable = (EngInfo(engine_number)->refit_mask != 0) && (capacity > 0); |
551 refitable = (EngInfo(engine_number)->refit_mask != 0) && (capacity > 0); |
718 static void GenerateBuildList(Window *w) |
719 static void GenerateBuildList(Window *w) |
719 { |
720 { |
720 buildvehicle_d *bv = &WP(w, buildvehicle_d); |
721 buildvehicle_d *bv = &WP(w, buildvehicle_d); |
721 |
722 |
722 switch (bv->vehicle_type) { |
723 switch (bv->vehicle_type) { |
724 default: NOT_REACHED(); |
|
723 case VEH_TRAIN: |
725 case VEH_TRAIN: |
724 GenerateBuildTrainList(w); |
726 GenerateBuildTrainList(w); |
725 return; // trains should not reach the last sorting |
727 return; // trains should not reach the last sorting |
726 case VEH_ROAD: |
728 case VEH_ROAD: |
727 GenerateBuildRoadVehList(w); |
729 GenerateBuildRoadVehList(w); |
755 * @param min where to start in the list |
757 * @param min where to start in the list |
756 * @param max where in the list to end |
758 * @param max where in the list to end |
757 * @param selected_id what engine to highlight as selected, if any |
759 * @param selected_id what engine to highlight as selected, if any |
758 * @param show_count Display the number of vehicles (used by autoreplace) |
760 * @param show_count Display the number of vehicles (used by autoreplace) |
759 */ |
761 */ |
760 void DrawEngineList(byte type, int x, int y, const EngineList eng_list, uint16 min, uint16 max, EngineID selected_id, bool show_count) |
762 void DrawEngineList(VehicleType type, int x, int y, const EngineList eng_list, uint16 min, uint16 max, EngineID selected_id, bool show_count) |
761 { |
763 { |
762 byte step_size = GetVehicleListHeight(type); |
764 byte step_size = GetVehicleListHeight(type); |
763 byte x_offset = 0; |
765 byte x_offset = 0; |
764 byte y_offset = 0; |
766 byte y_offset = 0; |
765 Player *p = GetPlayer(_local_player); |
767 Player *p = GetPlayer(_local_player); |
870 |
872 |
871 case BUILD_VEHICLE_WIDGET_BUILD: { |
873 case BUILD_VEHICLE_WIDGET_BUILD: { |
872 EngineID sel_eng = bv->sel_engine; |
874 EngineID sel_eng = bv->sel_engine; |
873 if (sel_eng != INVALID_ENGINE) { |
875 if (sel_eng != INVALID_ENGINE) { |
874 switch (bv->vehicle_type) { |
876 switch (bv->vehicle_type) { |
877 default: NOT_REACHED(); |
|
875 case VEH_TRAIN: |
878 case VEH_TRAIN: |
876 DoCommandP(w->window_number, sel_eng, 0, (RailVehInfo(sel_eng)->railveh_type == RAILVEH_WAGON) ? CcBuildWagon : CcBuildLoco, |
879 DoCommandP(w->window_number, sel_eng, 0, (RailVehInfo(sel_eng)->railveh_type == RAILVEH_WAGON) ? CcBuildWagon : CcBuildLoco, |
877 CMD_BUILD_RAIL_VEHICLE | CMD_MSG(STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE)); |
880 CMD_BUILD_RAIL_VEHICLE | CMD_MSG(STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE)); |
878 break; |
881 break; |
879 case VEH_ROAD: |
882 case VEH_ROAD: |
895 if (sel_eng != INVALID_ENGINE) { |
898 if (sel_eng != INVALID_ENGINE) { |
896 StringID str = STR_NULL; |
899 StringID str = STR_NULL; |
897 |
900 |
898 bv->rename_engine = sel_eng; |
901 bv->rename_engine = sel_eng; |
899 switch (bv->vehicle_type) { |
902 switch (bv->vehicle_type) { |
903 default: NOT_REACHED(); |
|
900 case VEH_TRAIN: str = STR_886A_RENAME_TRAIN_VEHICLE_TYPE; break; |
904 case VEH_TRAIN: str = STR_886A_RENAME_TRAIN_VEHICLE_TYPE; break; |
901 case VEH_ROAD: str = STR_9036_RENAME_ROAD_VEHICLE_TYPE; break; |
905 case VEH_ROAD: str = STR_9036_RENAME_ROAD_VEHICLE_TYPE; break; |
902 case VEH_SHIP: str = STR_9838_RENAME_SHIP_TYPE; break; |
906 case VEH_SHIP: str = STR_9838_RENAME_SHIP_TYPE; break; |
903 case VEH_AIRCRAFT: str = STR_A039_RENAME_AIRCRAFT_TYPE; break; |
907 case VEH_AIRCRAFT: str = STR_A039_RENAME_AIRCRAFT_TYPE; break; |
904 } |
908 } |
938 case WE_ON_EDIT_TEXT: { |
942 case WE_ON_EDIT_TEXT: { |
939 if (e->we.edittext.str[0] != '\0') { |
943 if (e->we.edittext.str[0] != '\0') { |
940 StringID str = STR_NULL; |
944 StringID str = STR_NULL; |
941 _cmd_text = e->we.edittext.str; |
945 _cmd_text = e->we.edittext.str; |
942 switch (bv->vehicle_type) { |
946 switch (bv->vehicle_type) { |
947 default: NOT_REACHED(); |
|
943 case VEH_TRAIN: str = STR_886B_CAN_T_RENAME_TRAIN_VEHICLE; break; |
948 case VEH_TRAIN: str = STR_886B_CAN_T_RENAME_TRAIN_VEHICLE; break; |
944 case VEH_ROAD: str = STR_9037_CAN_T_RENAME_ROAD_VEHICLE; break; |
949 case VEH_ROAD: str = STR_9037_CAN_T_RENAME_ROAD_VEHICLE; break; |
945 case VEH_SHIP: str = STR_9839_CAN_T_RENAME_SHIP_TYPE; break; |
950 case VEH_SHIP: str = STR_9839_CAN_T_RENAME_SHIP_TYPE; break; |
946 case VEH_AIRCRAFT: str = STR_A03A_CAN_T_RENAME_AIRCRAFT_TYPE; break; |
951 case VEH_AIRCRAFT: str = STR_A03A_CAN_T_RENAME_AIRCRAFT_TYPE; break; |
947 } |
952 } |
975 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE, |
980 WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE, |
976 _build_vehicle_widgets, |
981 _build_vehicle_widgets, |
977 NewVehicleWndProc |
982 NewVehicleWndProc |
978 }; |
983 }; |
979 |
984 |
980 void ShowBuildVehicleWindow(TileIndex tile, byte type) |
985 void ShowBuildVehicleWindow(TileIndex tile, VehicleType type) |
981 { |
986 { |
982 buildvehicle_d *bv; |
987 buildvehicle_d *bv; |
983 Window *w; |
988 Window *w; |
984 |
989 |
985 assert(IsPlayerBuildableVehicleType(type)); |
990 assert(IsPlayerBuildableVehicleType(type)); |
1004 |
1009 |
1005 bv->sort_criteria = _last_sort_criteria[type]; |
1010 bv->sort_criteria = _last_sort_criteria[type]; |
1006 bv->descending_sort_order = _last_sort_order[type]; |
1011 bv->descending_sort_order = _last_sort_order[type]; |
1007 |
1012 |
1008 switch (type) { |
1013 switch (type) { |
1014 default: NOT_REACHED(); |
|
1009 case VEH_TRAIN: |
1015 case VEH_TRAIN: |
1010 WP(w, buildvehicle_d).filter.railtype = (tile == 0) ? RAILTYPE_END : GetRailType(tile); |
1016 WP(w, buildvehicle_d).filter.railtype = (tile == 0) ? RAILTYPE_END : GetRailType(tile); |
1011 ResizeWindow(w, 0, 16); |
1017 ResizeWindow(w, 0, 16); |
1012 break; |
1018 break; |
1013 case VEH_ROAD: |
1019 case VEH_ROAD: |