src/viewport.cpp
changeset 7150 2cfe4a46fa1c
parent 7149 ba2798e551a3
child 7165 37eb253f3c06
equal deleted inserted replaced
7149:ba2798e551a3 7150:2cfe4a46fa1c
   162 	vp->width = width;
   162 	vp->width = width;
   163 	vp->height = height;
   163 	vp->height = height;
   164 
   164 
   165 	vp->zoom = zoom;
   165 	vp->zoom = zoom;
   166 
   166 
   167 	vp->virtual_width = width << zoom;
   167 	vp->virtual_width = ScaleByZoom(width, zoom);
   168 	vp->virtual_height = height << zoom;
   168 	vp->virtual_height = ScaleByZoom(height, zoom);
   169 
   169 
   170 	if (follow_flags & 0x80000000) {
   170 	if (follow_flags & 0x80000000) {
   171 		const Vehicle *veh;
   171 		const Vehicle *veh;
   172 
   172 
   173 		WP(w, vp_d).follow_vehicle = (VehicleID)(follow_flags & 0xFFFF);
   173 		WP(w, vp_d).follow_vehicle = (VehicleID)(follow_flags & 0xFFFF);
  1194 	dp = *dpi;
  1194 	dp = *dpi;
  1195 
  1195 
  1196 	zoom = dp.zoom;
  1196 	zoom = dp.zoom;
  1197 	dp.zoom = ZOOM_LVL_NORMAL;
  1197 	dp.zoom = ZOOM_LVL_NORMAL;
  1198 
  1198 
  1199 	dp.left >>= zoom;
  1199 	dp.left   = UnScaleByZoom(dp.left,   zoom);
  1200 	dp.top >>= zoom;
  1200 	dp.top    = UnScaleByZoom(dp.top,    zoom);
  1201 	dp.width >>= zoom;
  1201 	dp.width  = UnScaleByZoom(dp.width,  zoom);
  1202 	dp.height >>= zoom;
  1202 	dp.height = UnScaleByZoom(dp.height, zoom);
  1203 
  1203 
  1204 	do {
  1204 	do {
  1205 		uint16 colour;
  1205 		uint16 colour;
  1206 
  1206 
  1207 		if (ss->width != 0) {
  1207 		if (ss->width != 0) {
  1208 			int x = (ss->x >> zoom) - 1;
  1208 			int x = UnScaleByZoom(ss->x, zoom) - 1;
  1209 			int y = (ss->y >> zoom) - 1;
  1209 			int y = UnScaleByZoom(ss->y, zoom) - 1;
  1210 			int bottom = y + 11;
  1210 			int bottom = y + 11;
  1211 			int w = ss->width;
  1211 			int w = ss->width;
  1212 
  1212 
  1213 			if (w & 0x8000) {
  1213 			if (w & 0x8000) {
  1214 				w &= ~0x8000;
  1214 				w &= ~0x8000;
  1237 			colour = _colour_gradient[ss->color][6] | IS_PALETTE_COLOR;
  1237 			colour = _colour_gradient[ss->color][6] | IS_PALETTE_COLOR;
  1238 		} else {
  1238 		} else {
  1239 			colour = 16;
  1239 			colour = 16;
  1240 		}
  1240 		}
  1241 		DrawString(
  1241 		DrawString(
  1242 			ss->x >> zoom, (ss->y >> zoom) - (ss->width & 0x8000 ? 2 : 0),
  1242 			UnScaleByZoom(ss->x, zoom), UnScaleByZoom(ss->y, zoom) - (ss->width & 0x8000 ? 2 : 0),
  1243 			ss->string, colour
  1243 			ss->string, colour
  1244 		);
  1244 		);
  1245 
  1245 
  1246 		ss = ss->next;
  1246 		ss = ss->next;
  1247 	} while (ss != NULL);
  1247 	} while (ss != NULL);