OpenXcom  1.0
Open-source clone of the original X-Com
Public Member Functions | List of all members
OpenXcom::UnitSprite Class Reference

A class that renders a specific unit, given its render rules combining the right frames from the surfaceset. More...

#include <UnitSprite.h>

Inheritance diagram for OpenXcom::UnitSprite:
OpenXcom::Surface

Public Member Functions

 UnitSprite (int width, int height, int x, int y, bool helmet)
 Creates a new UnitSprite at the specified position and size. More...
 
 ~UnitSprite ()
 Cleans up the UnitSprite. More...
 
void setSurfaces (SurfaceSet *unitSurface, SurfaceSet *itemSurfaceA, SurfaceSet *itemSurfaceB)
 Sets surfacesets for rendering. More...
 
void setBattleUnit (BattleUnit *unit, int part=0)
 Sets the battleunit to be rendered. More...
 
void setAnimationFrame (int frame)
 Sets the animation frame. More...
 
void draw ()
 Draws the unit. 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 loadRaw (const std::vector< unsigned char > &bytes)
 Loads a raw pixel array. More...
 
void loadRaw (const std::vector< char > &bytes)
 Loads a raw pixel array. 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 (Uint32 color=0)
 Clears the surface's contents eith a specified colour. 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 offsetBlock (int off, int blk=16, int mul=1)
 Offsets the surface's colors in a color block. More...
 
void invert (Uint8 mid)
 Inverts the surface's colors. More...
 
virtual void think ()
 Runs surface functionality every cycle. 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...
 
virtual void setPalette (SDL_Color *colors, int firstcolor=0, int ncolors=256)
 Sets the surface's palette. 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...
 
virtual 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...
 
Uint8 * getRaw (int x, int y) const
 Returns the pointer to 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...
 
virtual void setWidth (int width)
 Sets the width of the surface. More...
 
int getHeight () const
 Returns the height of the surface. More...
 
virtual void setHeight (int height)
 Sets 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 shade, bool half=false, int newBaseColor=0)
 Specific blit function to blit battlescape terrain data in different shades in a fast way. More...
 
void blitNShade (Surface *surface, int x, int y, int shade, GraphSubset range)
 Specific blit function to blit battlescape terrain data in different shades in a fast way. More...
 
void invalidate (bool valid=true)
 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...
 
virtual void setColor (Uint8)
 Sets the color of the surface.
 
virtual void setSecondaryColor (Uint8)
 Sets the secondary color of the surface.
 
virtual void setBorderColor (Uint8)
 Sets the border colour of the surface.
 
virtual void setHighContrast (bool)
 Sets the high contrast color setting of the surface.
 
void setTFTDMode (bool mode)
 Sets this button to use a colour lookup table instead of inversion for its alternate form. More...
 
bool isTFTDMode () const
 checks if this is a TFTD mode surface. More...
 

Additional Inherited Members

- Protected Member Functions inherited from OpenXcom::Surface
template<typename T >
void rawCopy (const std::vector< T > &bytes)
 Copies raw pixels. More...
 
void resize (int width, int height)
 Resizes the surface. More...
 

Detailed Description

A class that renders a specific unit, given its render rules combining the right frames from the surfaceset.

Constructor & Destructor Documentation

◆ UnitSprite()

OpenXcom::UnitSprite::UnitSprite ( int  width,
int  height,
int  x,
int  y,
bool  helmet 
)

Creates a new UnitSprite at the specified position and size.

Sets up a UnitSprite with the specified size and position.

Parameters
widthWidth in pixels.
heightHeight in pixels.
xX position in pixels.
yY position in pixels.

◆ ~UnitSprite()

OpenXcom::UnitSprite::~UnitSprite ( )

Cleans up the UnitSprite.

Deletes the UnitSprite.

Member Function Documentation

◆ draw()

void OpenXcom::UnitSprite::draw ( )
virtual

Draws the unit.

Draws a unit, using the drawing rules of the unit.

This function is called by Map, for each unit on the screen.

Reimplemented from OpenXcom::Surface.

◆ setAnimationFrame()

void OpenXcom::UnitSprite::setAnimationFrame ( int  frame)

Sets the animation frame.

Sets the animation frame for animated units.

Parameters
frameFrame number.

◆ setBattleUnit()

void OpenXcom::UnitSprite::setBattleUnit ( BattleUnit unit,
int  part = 0 
)

Sets the battleunit to be rendered.

Links this sprite to a BattleUnit to get the data for rendering.

Parameters
unitPointer to the BattleUnit.
partThe part number for large units.

◆ setSurfaces()

void OpenXcom::UnitSprite::setSurfaces ( SurfaceSet unitSurface,
SurfaceSet itemSurfaceR,
SurfaceSet itemSurfaceL 
)

Sets surfacesets for rendering.

Changes the surface sets for the UnitSprite to get resources for rendering.

Parameters
unitSurfacePointer to the unit surface set.
itemSurfaceRPointer to the item surface set.
itemSurfaceLPointer to the item surface set.

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