tron@2186: /* $Id$ */ tron@2186: rubidium@8224: /** @file viewport_func.h Functions related to (drawing on) viewports. */ belugas@6423: rubidium@8224: #ifndef VIEWPORT_FUNC_H rubidium@8224: #define VIEWPORT_FUNC_H truelight@0: rubidium@8225: #include "gfx_type.h" rubidium@8224: #include "viewport_type.h" rubidium@8119: #include "vehicle_type.h" rubidium@8264: #include "strings_type.h" rubidium@9127: #include "window_type.h" rubidium@9127: #include "tile_type.h" truelight@0: tron@1990: void SetSelectionRed(bool); tron@1990: Darkvater@5122: void DeleteWindowViewport(Window *w); rubidium@8994: void InitializeWindowViewport(Window *w, int x, int y, int width, int height, uint32 follow_flags, ZoomLevel zoom); tron@2116: ViewPort *IsPtInWindowViewport(const Window *w, int x, int y); rubidium@6247: Point GetTileBelowCursor(); Darkvater@5044: void UpdateViewportPosition(Window *w); rubidium@9127: void UpdateViewportSignPos(ViewportSign *sign, int left, int top, StringID str); Darkvater@5044: Darkvater@5044: bool DoZoomInOutWindow(int how, Window *w); darkvater@152: void ZoomInOrOutToCursorWindow(bool in, Window * w); darkvater@152: Point GetTileZoomCenterWindow(bool in, Window * w); Darkvater@5045: void HandleZoomMessage(Window *w, const ViewPort *vp, byte widget_zoom_in, byte widget_zoom_out); truelight@0: Darkvater@5046: static inline void MaxZoomInOut(int how, Window *w) Darkvater@5046: { rubidium@7318: while (DoZoomInOutWindow(how, w)) {}; Darkvater@5046: } Darkvater@5046: truelight@0: void OffsetGroundSprite(int x, int y); truelight@0: rubidium@7681: void DrawGroundSprite(SpriteID image, SpriteID pal, const SubSprite *sub = NULL); rubidium@7681: void DrawGroundSpriteAt(SpriteID image, SpriteID pal, int32 x, int32 y, byte z, const SubSprite *sub = NULL); rubidium@7681: 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); rubidium@8946: void AddStringToDraw(int x, int y, StringID string, uint64 params_1, uint64 params_2, uint16 color = 0, uint16 width = 0); rubidium@7681: void AddChildSpriteScreen(SpriteID image, SpriteID pal, int x, int y, bool transparent = false, const SubSprite *sub = NULL); truelight@0: truelight@0: rubidium@6247: void StartSpriteCombine(); rubidium@6247: void EndSpriteCombine(); truelight@0: tron@2116: void HandleViewportClicked(const ViewPort *vp, int x, int y); rubidium@6247: void PlaceObject(); truelight@0: void SetRedErrorSquare(TileIndex tile); truelight@0: void SetTileSelectSize(int w, int h); truelight@0: void SetTileSelectBigSize(int ox, int oy, int sx, int sy); truelight@0: rubidium@6247: Vehicle *CheckMouseOverVehicle(); truelight@0: tron@430: void ViewportDoDraw(const ViewPort *vp, int left, int top, int right, int bottom); tron@430: rubidium@8121: bool ScrollWindowTo(int x, int y, Window *w, bool instant = false); rubidium@8121: rubidium@8121: bool ScrollMainWindowToTile(TileIndex tile, bool instant = false); rubidium@8121: bool ScrollMainWindowTo(int x, int y, bool instant = false); rubidium@8121: rubidium@8224: extern Point _tile_fract_coords; rubidium@8224: rubidium@8224: #endif /* VIEWPORT_FUNC_H */