2008-01-09 09:45:45 +00:00
|
|
|
/* $Id$ */
|
|
|
|
|
|
|
|
/** @file viewport_func.h Functions related to (drawing on) viewports. */
|
|
|
|
|
|
|
|
#ifndef VIEWPORT_FUNC_H
|
|
|
|
#define VIEWPORT_FUNC_H
|
|
|
|
|
2008-01-09 09:57:48 +00:00
|
|
|
#include "gfx_type.h"
|
2008-01-09 09:45:45 +00:00
|
|
|
#include "viewport_type.h"
|
|
|
|
#include "vehicle_type.h"
|
2008-01-13 01:21:35 +00:00
|
|
|
#include "strings_type.h"
|
2008-05-07 13:10:15 +00:00
|
|
|
#include "window_type.h"
|
|
|
|
#include "tile_type.h"
|
2008-01-09 09:45:45 +00:00
|
|
|
|
|
|
|
void SetSelectionRed(bool);
|
|
|
|
|
|
|
|
void DeleteWindowViewport(Window *w);
|
2008-04-19 13:17:19 +00:00
|
|
|
void InitializeWindowViewport(Window *w, int x, int y, int width, int height, uint32 follow_flags, ZoomLevel zoom);
|
2008-01-09 09:45:45 +00:00
|
|
|
ViewPort *IsPtInWindowViewport(const Window *w, int x, int y);
|
|
|
|
Point GetTileBelowCursor();
|
|
|
|
void UpdateViewportPosition(Window *w);
|
2008-05-07 13:10:15 +00:00
|
|
|
void UpdateViewportSignPos(ViewportSign *sign, int left, int top, StringID str);
|
2008-01-09 09:45:45 +00:00
|
|
|
|
|
|
|
bool DoZoomInOutWindow(int how, Window *w);
|
|
|
|
void ZoomInOrOutToCursorWindow(bool in, Window * w);
|
|
|
|
Point GetTileZoomCenterWindow(bool in, Window * w);
|
|
|
|
void HandleZoomMessage(Window *w, const ViewPort *vp, byte widget_zoom_in, byte widget_zoom_out);
|
|
|
|
|
|
|
|
static inline void MaxZoomInOut(int how, Window *w)
|
|
|
|
{
|
|
|
|
while (DoZoomInOutWindow(how, w)) {};
|
|
|
|
}
|
|
|
|
|
|
|
|
void OffsetGroundSprite(int x, int y);
|
|
|
|
|
|
|
|
void DrawGroundSprite(SpriteID image, SpriteID pal, const SubSprite *sub = NULL);
|
|
|
|
void DrawGroundSpriteAt(SpriteID image, SpriteID pal, int32 x, int32 y, byte z, const SubSprite *sub = NULL);
|
|
|
|
void AddSortableSpriteToDraw(SpriteID image, SpriteID pal, int x, int y, int w, int h, int dz, int z, bool transparent = false, int bb_offset_x = 0, int bb_offset_y = 0, int bb_offset_z = 0, const SubSprite *sub = NULL);
|
2009-02-09 02:57:15 +00:00
|
|
|
void AddStringToDraw(int x, int y, StringID string, uint64 params_1, uint64 params_2, uint16 colour = 0, uint16 width = 0);
|
2008-01-09 09:45:45 +00:00
|
|
|
void AddChildSpriteScreen(SpriteID image, SpriteID pal, int x, int y, bool transparent = false, const SubSprite *sub = NULL);
|
|
|
|
|
|
|
|
|
|
|
|
void StartSpriteCombine();
|
|
|
|
void EndSpriteCombine();
|
|
|
|
|
2009-01-02 22:42:05 +00:00
|
|
|
bool HandleViewportClicked(const ViewPort *vp, int x, int y);
|
2008-01-09 09:45:45 +00:00
|
|
|
void PlaceObject();
|
|
|
|
void SetRedErrorSquare(TileIndex tile);
|
|
|
|
void SetTileSelectSize(int w, int h);
|
|
|
|
void SetTileSelectBigSize(int ox, int oy, int sx, int sy);
|
|
|
|
|
|
|
|
Vehicle *CheckMouseOverVehicle();
|
|
|
|
|
|
|
|
void ViewportDoDraw(const ViewPort *vp, int left, int top, int right, int bottom);
|
|
|
|
|
2009-03-15 15:25:18 +00:00
|
|
|
bool ScrollWindowTo(int x, int y, int z, Window *w, bool instant = false);
|
2008-01-09 09:45:45 +00:00
|
|
|
|
|
|
|
bool ScrollMainWindowToTile(TileIndex tile, bool instant = false);
|
2009-03-15 15:25:18 +00:00
|
|
|
bool ScrollMainWindowTo(int x, int y, int z = -1, bool instant = false);
|
2008-01-09 09:45:45 +00:00
|
|
|
|
|
|
|
extern Point _tile_fract_coords;
|
|
|
|
|
|
|
|
#endif /* VIEWPORT_FUNC_H */
|