src/rail_gui.cpp
branch0.6
changeset 10330 700e4a785535
parent 10328 721fe18a2176
equal deleted inserted replaced
10328:721fe18a2176 10330:700e4a785535
   930 
   930 
   931 			for (uint16 i = w->vscroll.pos; i < _railstation.station_count && i < (uint)(w->vscroll.pos + w->vscroll.cap); i++) {
   931 			for (uint16 i = w->vscroll.pos; i < _railstation.station_count && i < (uint)(w->vscroll.pos + w->vscroll.cap); i++) {
   932 				const StationSpec *statspec = GetCustomStationSpec(_railstation.station_class, i);
   932 				const StationSpec *statspec = GetCustomStationSpec(_railstation.station_class, i);
   933 
   933 
   934 				if (statspec != NULL && statspec->name != 0) {
   934 				if (statspec != NULL && statspec->name != 0) {
   935 					if (HasBit(statspec->callbackmask, CBM_STATION_AVAIL) && GetStationCallback(CBID_STATION_AVAILABILITY, 0, 0, statspec, NULL, INVALID_TILE) == 0) {
   935 					if (HasBit(statspec->callbackmask, CBM_STATION_AVAIL) && GB(GetStationCallback(CBID_STATION_AVAILABILITY, 0, 0, statspec, NULL, INVALID_TILE), 0, 8) == 0) {
   936 						GfxFillRect(8, y - 2, 127, y + 10, (1 << PALETTE_MODIFIER_GREYOUT));
   936 						GfxFillRect(8, y - 2, 127, y + 10, (1 << PALETTE_MODIFIER_GREYOUT));
   937 					}
   937 					}
   938 
   938 
   939 					DrawStringTruncated(9, y, statspec->name, i == _railstation.station_type ? TC_WHITE : TC_BLACK, 118);
   939 					DrawStringTruncated(9, y, statspec->name, i == _railstation.station_type ? TC_WHITE : TC_BLACK, 118);
   940 				} else {
   940 				} else {
  1075 
  1075 
  1076 			/* Check station availability callback */
  1076 			/* Check station availability callback */
  1077 			statspec = GetCustomStationSpec(_railstation.station_class, y);
  1077 			statspec = GetCustomStationSpec(_railstation.station_class, y);
  1078 			if (statspec != NULL &&
  1078 			if (statspec != NULL &&
  1079 				HasBit(statspec->callbackmask, CBM_STATION_AVAIL) &&
  1079 				HasBit(statspec->callbackmask, CBM_STATION_AVAIL) &&
  1080 				GetStationCallback(CBID_STATION_AVAILABILITY, 0, 0, statspec, NULL, INVALID_TILE) == 0) return;
  1080 				GB(GetStationCallback(CBID_STATION_AVAILABILITY, 0, 0, statspec, NULL, INVALID_TILE), 0, 8) == 0) return;
  1081 
  1081 
  1082 			_railstation.station_type = y;
  1082 			_railstation.station_type = y;
  1083 
  1083 
  1084 			CheckSelectedSize(w, statspec);
  1084 			CheckSelectedSize(w, statspec);
  1085 
  1085 
  1493 
  1493 
  1494 				DrawWaypointSprite(2 + i * 68, 25, w->hscroll.pos + i, _cur_railtype);
  1494 				DrawWaypointSprite(2 + i * 68, 25, w->hscroll.pos + i, _cur_railtype);
  1495 
  1495 
  1496 				if (statspec != NULL &&
  1496 				if (statspec != NULL &&
  1497 						HasBit(statspec->callbackmask, CBM_STATION_AVAIL) &&
  1497 						HasBit(statspec->callbackmask, CBM_STATION_AVAIL) &&
  1498 						GetStationCallback(CBID_STATION_AVAILABILITY, 0, 0, statspec, NULL, INVALID_TILE) == 0) {
  1498 						GB(GetStationCallback(CBID_STATION_AVAILABILITY, 0, 0, statspec, NULL, INVALID_TILE), 0, 8) == 0) {
  1499 					GfxFillRect(4 + i * 68, 18, 67 + i * 68, 75, (1 << PALETTE_MODIFIER_GREYOUT));
  1499 					GfxFillRect(4 + i * 68, 18, 67 + i * 68, 75, (1 << PALETTE_MODIFIER_GREYOUT));
  1500 				}
  1500 				}
  1501 			}
  1501 			}
  1502 		}
  1502 		}
  1503 		break;
  1503 		break;
  1513 
  1513 
  1514 				/* Check station availability callback */
  1514 				/* Check station availability callback */
  1515 				const StationSpec *statspec = GetCustomStationSpec(STAT_CLASS_WAYP, type);
  1515 				const StationSpec *statspec = GetCustomStationSpec(STAT_CLASS_WAYP, type);
  1516 				if (statspec != NULL &&
  1516 				if (statspec != NULL &&
  1517 						HasBit(statspec->callbackmask, CBM_STATION_AVAIL) &&
  1517 						HasBit(statspec->callbackmask, CBM_STATION_AVAIL) &&
  1518 						GetStationCallback(CBID_STATION_AVAILABILITY, 0, 0, statspec, NULL, INVALID_TILE) == 0) return;
  1518 						GB(GetStationCallback(CBID_STATION_AVAILABILITY, 0, 0, statspec, NULL, INVALID_TILE), 0, 8) == 0) return;
  1519 
  1519 
  1520 				_cur_waypoint_type = type;
  1520 				_cur_waypoint_type = type;
  1521 				SndPlayFx(SND_15_BEEP);
  1521 				SndPlayFx(SND_15_BEEP);
  1522 				SetWindowDirty(w);
  1522 				SetWindowDirty(w);
  1523 				break;
  1523 				break;