OpenXcom
1.0
Open-source clone of the original X-Com
|
Interactive view of a base. More...
#include <BaseView.h>
Public Member Functions | |
BaseView (int width, int height, int x=0, int y=0) | |
Creates a new base view at the specified position and size. More... | |
~BaseView () | |
Cleans up the base view. More... | |
void | initText (Font *big, Font *small, Language *lang) |
Initializes the base view's various resources. More... | |
void | setBase (Base *base) |
Sets the base to display. More... | |
void | setTexture (SurfaceSet *texture) |
Sets the texture for this base view. More... | |
BaseFacility * | getSelectedFacility () const |
Gets the currently selected facility. More... | |
void | resetSelectedFacility () |
Prevents any mouseover bugs on dismantling base facilities before setBase has had time to update the base. | |
int | getGridX () const |
Gets the X position of the currently selected square. More... | |
int | getGridY () const |
Gets the Y position of the currently selected square. More... | |
void | setSelectable (int size) |
Sets whether the base view is selectable. More... | |
bool | isPlaceable (RuleBaseFacility *rule) const |
Checks if a facility can be placed. More... | |
bool | isQueuedBuilding (RuleBaseFacility *rule) const |
Checks if the placed facility is placed in queue or not. More... | |
void | reCalcQueuedBuildings () |
ReCalculates the remaining build-time of all queued buildings. | |
void | think () |
Handles the timers. More... | |
void | blink () |
Blinks the selector. More... | |
void | draw () |
Draws the base view. More... | |
void | blit (Surface *surface) |
Blits the base view onto another surface. More... | |
void | mouseOver (Action *action, State *state) |
Special handling for mouse hovers. More... | |
void | mouseOut (Action *action, State *state) |
Special handling for mouse hovering out. More... | |
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 | mousePress (Action *action, State *state) |
Processes a mouse button press event. More... | |
virtual void | mouseRelease (Action *action, State *state) |
Processes a mouse button release event. 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 | keyboardPress (Action *action, State *state) |
Processes a keyboard key press event. More... | |
virtual void | keyboardRelease (Action *action, State *state) |
Processes a keyboard key release 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... | |
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... | |
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... | |
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 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... | |
Interactive view of a base.
Takes a certain base and displays all its facilities and status, allowing players to manage them.
OpenXcom::BaseView::BaseView | ( | int | width, |
int | height, | ||
int | x = 0 , |
||
int | y = 0 |
||
) |
Creates a new base view at the specified position and size.
Sets up a base view with the specified size and position.
width | Width in pixels. |
height | Height in pixels. |
x | X position in pixels. |
y | Y position in pixels. |
OpenXcom::BaseView::~BaseView | ( | ) |
Cleans up the base view.
Deletes contents.
void OpenXcom::BaseView::blink | ( | ) |
Blinks the selector.
Makes the facility selector blink.
|
virtual |
Blits the base view onto another surface.
Blits the base view and selector.
surface | Pointer to surface to blit onto. |
Reimplemented from OpenXcom::Surface.
|
virtual |
Draws the base view.
Draws the view of all the facilities in the base, connectors between them and crafts landed in hangars.
Reimplemented from OpenXcom::Surface.
int OpenXcom::BaseView::getGridX | ( | ) | const |
Gets the X position of the currently selected square.
Returns the X position of the grid square the mouse is currently over.
int OpenXcom::BaseView::getGridY | ( | ) | const |
Gets the Y position of the currently selected square.
Returns the Y position of the grid square the mouse is currently over.
BaseFacility * OpenXcom::BaseView::getSelectedFacility | ( | ) | const |
Gets the currently selected facility.
Returns the facility the mouse is currently over.
Initializes the base view's various resources.
Changes the various resources needed for text rendering.
The different fonts need to be passed in advance since the text size can change mid-text, and the language affects how the text is rendered.
big | Pointer to large-size font. |
small | Pointer to small-size font. |
lang | Pointer to current language. |
Reimplemented from OpenXcom::Surface.
bool OpenXcom::BaseView::isPlaceable | ( | RuleBaseFacility * | rule | ) | const |
Checks if a facility can be placed.
Returns if a certain facility can be successfully placed on the currently selected square.
rule | Facility type. |
bool OpenXcom::BaseView::isQueuedBuilding | ( | RuleBaseFacility * | rule | ) | const |
Checks if the placed facility is placed in queue or not.
Returns if the placed facility is placed in queue or not.
rule | Facility type. |
Special handling for mouse hovering out.
Deselects the facility.
action | Pointer to an action. |
state | State that the action handlers belong to. |
Reimplemented from OpenXcom::InteractiveSurface.
Special handling for mouse hovers.
Selects the facility the mouse is over.
action | Pointer to an action. |
state | State that the action handlers belong to. |
Reimplemented from OpenXcom::InteractiveSurface.
void OpenXcom::BaseView::setBase | ( | Base * | base | ) |
Sets the base to display.
Changes the current base to display and initializes the internal base grid.
base | Pointer to base to display. |
void OpenXcom::BaseView::setSelectable | ( | int | size | ) |
Sets whether the base view is selectable.
If enabled, the base view will respond to player input, highlighting the selected facility.
size | Facility length (0 disables it). |
void OpenXcom::BaseView::setTexture | ( | SurfaceSet * | texture | ) |
Sets the texture for this base view.
Changes the texture to use for drawing the various base elements.
texture | Pointer to SurfaceSet to use. |
|
virtual |