Files
@ r7921:8e674055514f
Branch filter:
Location: cpp/openttd-patchpack/source/src/zoom.hpp - annotation
r7921:8e674055514f
2.6 KiB
text/x-c++hdr
(svn r11474) -Feature: Allow to resize on creation the smallmap gui in order to show all the types industry available.
-Feature: Allow to enable/disable individually or all at once, the industries shown on small map.
This will permit to easily find those that are of some interest for the player.
Heavily based on gule's patch
-Feature: Allow to enable/disable individually or all at once, the industries shown on small map.
This will permit to easily find those that are of some interest for the player.
Heavily based on gule's patch
r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6653:8767c847638f r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6626:a882a4aaa61c r6852:5b6b567a9e32 r6626:a882a4aaa61c r6626:a882a4aaa61c r6853:39397cc729b3 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r6624:8e8cb5121304 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r6626:a882a4aaa61c r6626:a882a4aaa61c r6653:8767c847638f r6626:a882a4aaa61c r6833:49cfb0cbd58d r6626:a882a4aaa61c r6626:a882a4aaa61c r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r6626:a882a4aaa61c r6626:a882a4aaa61c r6653:8767c847638f r6626:a882a4aaa61c r6831:5a8208bdbe9b r6626:a882a4aaa61c r6626:a882a4aaa61c r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r7905:248f62044329 r6624:8e8cb5121304 | /* $Id$ */
/** @file zoom.hpp */
#ifndef ZOOM_HPP
#define ZOOM_HPP
enum ZoomLevel {
/* Our possible zoom-levels */
ZOOM_LVL_NORMAL = 0,
ZOOM_LVL_OUT_2X,
ZOOM_LVL_OUT_4X,
ZOOM_LVL_OUT_8X,
ZOOM_LVL_END,
/* Here we define in which zoom viewports are */
ZOOM_LVL_VIEWPORT = ZOOM_LVL_NORMAL,
ZOOM_LVL_NEWS = ZOOM_LVL_NORMAL,
ZOOM_LVL_INDUSTRY = ZOOM_LVL_OUT_2X,
ZOOM_LVL_TOWN = ZOOM_LVL_OUT_2X,
ZOOM_LVL_AIRCRAFT = ZOOM_LVL_NORMAL,
ZOOM_LVL_SHIP = ZOOM_LVL_NORMAL,
ZOOM_LVL_TRAIN = ZOOM_LVL_NORMAL,
ZOOM_LVL_ROADVEH = ZOOM_LVL_NORMAL,
ZOOM_LVL_WORLD_SCREENSHOT = ZOOM_LVL_NORMAL,
ZOOM_LVL_DETAIL = ZOOM_LVL_OUT_2X, ///< All zoomlevels below or equal to this, will result in details on the screen, like road-work, ...
ZOOM_LVL_MIN = ZOOM_LVL_NORMAL,
ZOOM_LVL_MAX = ZOOM_LVL_OUT_8X,
};
extern ZoomLevel _saved_scrollpos_zoom;
/**
* Scale by zoom level, usually shift left (when zoom > ZOOM_LVL_NORMAL)
* When shifting right, value is rounded up
* @param value value to shift
* @param zoom zoom level to shift to
* @return shifted value
*/
static inline int ScaleByZoom(int value, ZoomLevel zoom)
{
if (zoom == ZOOM_LVL_NORMAL) return value;
int izoom = (int)zoom - (int)ZOOM_LVL_NORMAL;
return (zoom > ZOOM_LVL_NORMAL) ? value << izoom : (value + (1 << -izoom) - 1) >> -izoom;
}
/**
* Scale by zoom level, usually shift right (when zoom > ZOOM_LVL_NORMAL)
* When shifting right, value is rounded up
* @param value value to shift
* @param zoom zoom level to shift to
* @return shifted value
*/
static inline int UnScaleByZoom(int value, ZoomLevel zoom)
{
if (zoom == ZOOM_LVL_NORMAL) return value;
int izoom = (int)zoom - (int)ZOOM_LVL_NORMAL;
return (zoom > ZOOM_LVL_NORMAL) ? (value + (1 << izoom) - 1) >> izoom : value << -izoom;
}
/**
* Scale by zoom level, usually shift left (when zoom > ZOOM_LVL_NORMAL)
* @param value value to shift
* @param zoom zoom level to shift to
* @return shifted value
*/
static inline int ScaleByZoomLower(int value, ZoomLevel zoom)
{
if (zoom == ZOOM_LVL_NORMAL) return value;
int izoom = (int)zoom - (int)ZOOM_LVL_NORMAL;
return (zoom > ZOOM_LVL_NORMAL) ? value << izoom : value >> -izoom;
}
/**
* Scale by zoom level, usually shift right (when zoom > ZOOM_LVL_NORMAL)
* @param value value to shift
* @param zoom zoom level to shift to
* @return shifted value
*/
static inline int UnScaleByZoomLower(int value, ZoomLevel zoom)
{
if (zoom == ZOOM_LVL_NORMAL) return value;
int izoom = (int)zoom - (int)ZOOM_LVL_NORMAL;
return (zoom > ZOOM_LVL_NORMAL) ? value >> izoom : value << -izoom;
}
#endif /* ZOOM_HPP */
|