OpenXcom  1.0
Open-source clone of the original X-Com
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | List of all members
OpenXcom::Map Class Reference

Interactive map of the battlescape. More...

#include <Map.h>

Inheritance diagram for OpenXcom::Map:
OpenXcom::InteractiveSurface OpenXcom::Surface

Public Member Functions

 Map (Game *game, int width, int height, int x, int y, int visibleMapHeight)
 Creates a new map at the specified position and size. More...
 
 ~Map ()
 Cleans up the map. More...
 
void init ()
 Initializes the map.
 
void think ()
 Handles timers. More...
 
void draw ()
 Draws the surface. More...
 
void setPalette (SDL_Color *colors, int firstcolor=0, int ncolors=256)
 Sets the palette. More...
 
void mousePress (Action *action, State *state)
 Special handling for mouse press. More...
 
void mouseRelease (Action *action, State *state)
 Special handling for mouse release. More...
 
void mouseOver (Action *action, State *state)
 Special handling for mouse over. More...
 
void keyboardPress (Action *action, State *state)
 Special handling for key presses. More...
 
void keyboardRelease (Action *action, State *state)
 Special handling for key releases. More...
 
void animate (bool redraw)
 Rotates the tileframes 0-7. More...
 
void setSelectorPosition (int mx, int my)
 Sets the battlescape selector position relative to mouseposition. More...
 
void getSelectorPosition (Position *pos) const
 Gets the currently selected position. More...
 
void calculateWalkingOffset (BattleUnit *unit, Position *offset)
 Calculates the offset of a soldier, when it is walking in the middle of 2 tiles. More...
 
void setCursorType (CursorType type, int size=1)
 Sets the 3D cursor type. More...
 
CursorType getCursorType () const
 Gets the 3D cursor type. More...
 
void cacheUnits ()
 Caches units. More...
 
void cacheUnit (BattleUnit *unit)
 Caches the unit. More...
 
void setProjectile (Projectile *projectile)
 Sets projectile. More...
 
ProjectilegetProjectile () const
 Gets projectile. More...
 
std::list< Explosion * > * getExplosions ()
 Gets explosion set. More...
 
CameragetCamera ()
 Gets the pointer to the camera. More...
 
void scrollMouse ()
 Mouse-scrolls the camera. More...
 
void scrollKey ()
 Keyboard-scrolls the camera. More...
 
std::vector< Position > * getWaypoints ()
 Get waypoints vector. More...
 
void setButtonsPressed (Uint8 button, bool pressed)
 Set mouse-buttons' pressed state. More...
 
void setUnitDying (bool flag)
 Sets the unitDying flag. More...
 
void refreshSelectorPosition ()
 Refreshes the battlescape selector after scrolling. More...
 
void setHeight (int height)
 Special handling for updating map height.
 
void setWidth (int width)
 Special handling for updating map width.
 
int getMessageY ()
 Get the vertical position of the hidden movement screen.
 
- Public Member Functions inherited from OpenXcom::InteractiveSurface
 InteractiveSurface (int width, int height, int x=0, int y=0)
 Creates a new interactive surface with the specified size and position. More...
 
virtual ~InteractiveSurface ()
 Cleans up the interactive surface.
 
void setVisible (bool visible)
 Sets the surface's visibility. More...
 
virtual void handle (Action *action, State *state)
 Processes any pending events. More...
 
virtual void setFocus (bool focus)
 Sets the focus of this surface. More...
 
bool isFocused () const
 Gets the focus of this surface. More...
 
virtual void unpress (State *state)
 Unpresses the surface. More...
 
void onMouseClick (ActionHandler handler, Uint8 button=SDL_BUTTON_LEFT)
 Hooks an action handler to a mouse click on the surface. More...
 
void onMousePress (ActionHandler handler, Uint8 button=0)
 Hooks an action handler to a mouse press over the surface. More...
 
void onMouseRelease (ActionHandler handler, Uint8 button=0)
 Hooks an action handler to a mouse release over the surface. More...
 
void onMouseIn (ActionHandler handler)
 Hooks an action handler to moving the mouse into the surface. More...
 
void onMouseOver (ActionHandler handler)
 Hooks an action handler to moving the mouse over the surface. More...
 
void onMouseOut (ActionHandler handler)
 Hooks an action handler to moving the mouse out of the surface. More...
 
void onKeyboardPress (ActionHandler handler, SDLKey key=SDLK_ANY)
 Hooks an action handler to pressing a key when the surface is focused. More...
 
void onKeyboardRelease (ActionHandler handler, SDLKey key=SDLK_ANY)
 Hooks an action handler to releasing a key when the surface is focused. More...
 
virtual void mouseClick (Action *action, State *state)
 Processes a mouse click event. More...
 
virtual void mouseIn (Action *action, State *state)
 Processes a mouse hover in event. More...
 
virtual void mouseOut (Action *action, State *state)
 Processes a mouse hover out event. More...
 
void setListButton ()
 Check this surface to see if it's a textlist button. More...
 
- Public Member Functions inherited from OpenXcom::Surface
 Surface (int width, int height, int x=0, int y=0, int bpp=8)
 Creates a new surface with the specified size and position. More...
 
 Surface (const Surface &other)
 Creates a new surface from an existing one. More...
 
virtual ~Surface ()
 Cleans up the surface. More...
 
void loadScr (const std::string &filename)
 Loads an X-Com SCR graphic. More...
 
void loadSpk (const std::string &filename)
 Loads an X-Com SPK graphic. More...
 
void loadBdy (const std::string &filename)
 Loads a TFTD BDY graphic. More...
 
void loadImage (const std::string &filename)
 Loads a general image file. More...
 
void clear ()
 Clears the surface's contents. More...
 
void offset (int off, int min=-1, int max=-1, int mul=1)
 Offsets the surface's colors by a set amount. More...
 
void invert (Uint8 mid)
 Inverts the surface's colors. More...
 
virtual void blit (Surface *surface)
 Blits this surface onto another one. More...
 
virtual void initText (Font *, Font *, Language *)
 Initializes the surface's various text resources.
 
void copy (Surface *surface)
 Copies a portion of another surface into this one. More...
 
void drawRect (SDL_Rect *rect, Uint8 color)
 Draws a filled rectangle on the surface. More...
 
void drawRect (Sint16 x, Sint16 y, Sint16 w, Sint16 h, Uint8 color)
 Draws a filled rectangle on the surface. More...
 
void drawLine (Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 color)
 Draws a line on the surface. More...
 
void drawCircle (Sint16 x, Sint16 y, Sint16 r, Uint8 color)
 Draws a filled circle on the surface. More...
 
void drawPolygon (Sint16 *x, Sint16 *y, int n, Uint8 color)
 Draws a filled polygon on the surface. More...
 
void drawTexturedPolygon (Sint16 *x, Sint16 *y, int n, Surface *texture, int dx, int dy)
 Draws a textured polygon on the surface. More...
 
void drawString (Sint16 x, Sint16 y, const char *s, Uint8 color)
 Draws a string on the surface. More...
 
SDL_Color * getPalette () const
 Returns the surface's 8bpp palette. More...
 
virtual void setX (int x)
 Sets the X position of the surface. More...
 
int getX () const
 Returns the position of the surface in the X axis. More...
 
virtual void setY (int y)
 Sets the Y position of the surface. More...
 
int getY () const
 Returns the position of the surface in the Y axis. More...
 
void setVisible (bool visible)
 Sets the surface's visibility. More...
 
bool getVisible () const
 Gets the surface's visibility. More...
 
void resetCrop ()
 Resets the cropping rectangle for the surface. More...
 
SDL_Rect * getCrop ()
 Gets the cropping rectangle for the surface. More...
 
void setPixel (int x, int y, Uint8 pixel)
 Changes the color of a pixel in the surface, relative to the top-left corner of the surface. More...
 
void setPixelIterative (int *x, int *y, Uint8 pixel)
 Changes the color of a pixel in the surface and returns the next pixel position. More...
 
Uint8 getPixel (int x, int y) const
 Returns the color of a specified pixel in the surface. More...
 
SDL_Surface * getSurface () const
 Returns the internal SDL_Surface for SDL calls. More...
 
int getWidth () const
 Returns the width of the surface. More...
 
int getHeight () const
 Returns the height of the surface. More...
 
void setHidden (bool hidden)
 Sets the surface's special hidden flag. More...
 
void lock ()
 Locks the surface. More...
 
void unlock ()
 Unlocks the surface. More...
 
void blitNShade (Surface *surface, int x, int y, int off, bool half=false, int newBaseColor=0)
 Specific blit function to blit battlescape terrain data in different shades in a fast way. More...
 
void invalidate ()
 Invalidate the surface: force it to be redrawn. More...
 
std::string getTooltip () const
 Gets the tooltip of the surface. More...
 
void setTooltip (const std::string &tooltip)
 Sets the tooltip of the surface. More...
 

Additional Inherited Members

- Protected Member Functions inherited from OpenXcom::InteractiveSurface
bool isButtonPressed (Uint8 button=0)
 Is this mouse button pressed?
 
virtual bool isButtonHandled (Uint8 button=0)
 Is this mouse button event handled?
 
void setButtonPressed (Uint8 button, bool pressed)
 Set a mouse button's internal state.
 
- Protected Member Functions inherited from OpenXcom::Surface
void resize (int width, int height)
 Recreates the surface with a new size. More...
 

Detailed Description

Interactive map of the battlescape.

Constructor & Destructor Documentation

OpenXcom::Map::Map ( Game game,
int  width,
int  height,
int  x,
int  y,
int  visibleMapHeight 
)

Creates a new map at the specified position and size.

Sets up a map with the specified size and position.

Parameters
gamePointer to the core game.
widthWidth in pixels.
heightHeight in pixels.
xX position in pixels.
yY position in pixels.
visibleMapHeightCurrent visible map height.
OpenXcom::Map::~Map ( )

Cleans up the map.

Deletes the map.

Member Function Documentation

void OpenXcom::Map::animate ( bool  redraw)

Rotates the tileframes 0-7.

Handles animating tiles.

8 Frames per animation.

Parameters
redrawRedraw the battlescape?
void OpenXcom::Map::cacheUnit ( BattleUnit unit)

Caches the unit.

Check if a certain unit needs to be redrawn.

Parameters
unitPointer to battleUnit.
void OpenXcom::Map::cacheUnits ( )

Caches units.

Checks all units for if they need to be redrawn.

void OpenXcom::Map::calculateWalkingOffset ( BattleUnit unit,
Position offset 
)

Calculates the offset of a soldier, when it is walking in the middle of 2 tiles.

Parameters
unitPointer to BattleUnit.
offsetPointer to the offset to return the calculation.
void OpenXcom::Map::draw ( )
virtual

Draws the surface.

Draws the whole map, part by part.

Reimplemented from OpenXcom::Surface.

Camera * OpenXcom::Map::getCamera ( )

Gets the pointer to the camera.

Returns
Pointer to camera.
CursorType OpenXcom::Map::getCursorType ( ) const

Gets the 3D cursor type.

Gets the cursor type.

Returns
cursortype.
std::list< Explosion * > * OpenXcom::Map::getExplosions ( )

Gets explosion set.

Gets a list of explosion sprites on the map.

Returns
A list of explosion sprites.
Projectile * OpenXcom::Map::getProjectile ( ) const

Gets projectile.

Gets the current projectile sprite on the map.

Returns
Projectile or 0 if there is no projectile sprite on the map.
void OpenXcom::Map::getSelectorPosition ( Position pos) const

Gets the currently selected position.

Draws the rectangle selector.

Parameters
posPointer to a position.
std::vector< Position > * OpenXcom::Map::getWaypoints ( )

Get waypoints vector.

Gets a list of waypoints on the map.

Returns
A list of waypoints.
void OpenXcom::Map::keyboardPress ( Action action,
State state 
)
virtual

Special handling for key presses.

Handles keyboard presses on the map.

Parameters
actionPointer to an action.
stateState that the action handlers belong to.

Reimplemented from OpenXcom::InteractiveSurface.

void OpenXcom::Map::keyboardRelease ( Action action,
State state 
)
virtual

Special handling for key releases.

Handles keyboard releases on the map.

Parameters
actionPointer to an action.
stateState that the action handlers belong to.

Reimplemented from OpenXcom::InteractiveSurface.

void OpenXcom::Map::mouseOver ( Action action,
State state 
)
virtual

Special handling for mouse over.

Handles mouse over events on the map.

Parameters
actionPointer to an action.
stateState that the action handlers belong to.

Reimplemented from OpenXcom::InteractiveSurface.

void OpenXcom::Map::mousePress ( Action action,
State state 
)
virtual

Special handling for mouse press.

Handles mouse presses on the map.

Parameters
actionPointer to an action.
stateState that the action handlers belong to.

Reimplemented from OpenXcom::InteractiveSurface.

void OpenXcom::Map::mouseRelease ( Action action,
State state 
)
virtual

Special handling for mouse release.

Handles mouse releases on the map.

Parameters
actionPointer to an action.
stateState that the action handlers belong to.

Reimplemented from OpenXcom::InteractiveSurface.

void OpenXcom::Map::refreshSelectorPosition ( )

Refreshes the battlescape selector after scrolling.

Updates the selector to the last-known mouse position.

void OpenXcom::Map::scrollKey ( )

Keyboard-scrolls the camera.

Timers only work on surfaces so we have to pass this on to the camera object.

void OpenXcom::Map::scrollMouse ( )

Mouse-scrolls the camera.

Timers only work on surfaces so we have to pass this on to the camera object.

void OpenXcom::Map::setButtonsPressed ( Uint8  button,
bool  pressed 
)

Set mouse-buttons' pressed state.

Sets mouse-buttons' pressed state.

Parameters
buttonIndex of the button.
pressedThe state of the button.
void OpenXcom::Map::setCursorType ( CursorType  type,
int  size = 1 
)

Sets the 3D cursor type.

Sets the 3D cursor to selection/aim mode.

Parameters
typeCursor type.
sizeSize of cursor.
void OpenXcom::Map::setPalette ( SDL_Color *  colors,
int  firstcolor = 0,
int  ncolors = 256 
)
virtual

Sets the palette.

Replaces a certain amount of colors in the surface's palette.

Parameters
colorsPointer to the set of colors.
firstcolorOffset of the first color to replace.
ncolorsAmount of colors to replace.

Reimplemented from OpenXcom::Surface.

void OpenXcom::Map::setProjectile ( Projectile projectile)

Sets projectile.

Puts a projectile sprite on the map.

Parameters
projectileProjectile to place.
void OpenXcom::Map::setSelectorPosition ( int  mx,
int  my 
)

Sets the battlescape selector position relative to mouseposition.

Sets the selector to a certain tile on the map.

Parameters
mxmouse x position.
mymouse y position.
void OpenXcom::Map::setUnitDying ( bool  flag)

Sets the unitDying flag.

Parameters
flagTrue if the unit is dying.
void OpenXcom::Map::think ( )
virtual

Handles timers.

Keeps the animation timers running.

Reimplemented from OpenXcom::Surface.


The documentation for this class was generated from the following files: